{"mappings":";;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;CAUC;;;;;;;;;;;AAoCD,IAAI,gCAAU;IACZ,MAAM,CAAA,GAAA,+BAAQ;IACd,UAAU,CAAA,GAAA,kCAAW;IACrB,UAAU,CAAA,GAAA,gCAAS;AACrB;AAKO,MAAM,0DAAU,CAAA,GAAA,YAAI,EAAE,UAAU,CAAC,SAAS,QAAQ,KAA2B,EAAE,GAAW;IAC/F,IAAI,EACF,KAAK,UAAU,cACf,UAAU,SACV,KAAK,YACL,QAAQ,EACR,GAAG,sBACJ,GAAG,CAAA,GAAA,iBAAS,EAAE,CAAA,GAAA,yCAAa;IAC5B,IAAI,aAAa,CAAA,GAAA,aAAK,EAAE;IACxB,aAAa,cAAc;IAC3B,IAAI,kBAAkB,MAAM,SAAS;IACrC,QAAQ,CAAA,GAAA,iBAAS,EAAE,OAAO;IAC1B,IAAI,WAAC,UAAU,sBAAW,SAAS,UAAE,MAAM,YAAE,QAAQ,EAAE,GAAG,YAAW,GAAG;IACxE,IAAI,aAAa,MACf,YAAY,mBAAmB;IAEjC,IAAI,cAAC,UAAU,EAAC,GAAG,CAAA,GAAA,yCAAY,EAAE;IACjC,IAAI,gBAAC,YAAY,EAAC,GAAG,CAAA,GAAA,iBAAS,EAAE,OAAO;IAEvC,yCAAyC;IACzC,CAAA,GAAA,0BAAkB,EAAE,KAAK,IAAM,CAAA,GAAA,yCAAW,EAAE;IAE5C,IAAI,OAAO,6BAAO,CAAC,QAAQ;IAE3B,qBACE,gCAAC;QACE,GAAG,UAAU;QACb,GAAG,YAAY;QAChB,WAAW,CAAA,GAAA,yCAAS,EAClB,CAAA,GAAA,oDAAK,GACL,oBACA,CAAC,kBAAkB,EAAE,SAAS,EAC9B,CAAC,kBAAkB,EAAE,WAAW,EAChC;YACE,WAAW;YACX,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE;QAC7B,GACA,WAAW,SAAS;QAEtB,KAAK;OACJ,YAAY,YAAY,2BACvB,gCAAC;QAAK,kBAAkB,CAAA,GAAA,yCAAS,EAAE,CAAA,GAAA,oDAAK,GAAG;QAA8B,eAAA;QAE1E,MAAM,QAAQ,kBACb,gCAAC;QAAK,WAAW,CAAA,GAAA,yCAAS,EAAE,CAAA,GAAA,oDAAK,GAAG;OAA4B,MAAM,QAAQ,iBAEhF,gCAAC;QAAM,GAAG,UAAU;QAAE,KAAK;QAAU,WAAW,CAAA,GAAA,yCAAS,EAAE,CAAA,GAAA,oDAAK,GAAG;;AAGzE","sources":["packages/@adobe/react-spectrum/src/tooltip/Tooltip.tsx"],"sourcesContent":["/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport AlertSmall from '@spectrum-icons/ui/AlertSmall';\nimport {AriaTooltipProps, useTooltip} from 'react-aria/useTooltipTrigger';\nimport {classNames} from '../utils/classNames';\nimport {createDOMRef} from '../utils/useDOMRef';\nimport {DOMRef, StyleProps} from '@react-types/shared';\nimport InfoSmall from '@spectrum-icons/ui/InfoSmall';\nimport {mergeProps} from 'react-aria/mergeProps';\nimport React, {ReactNode, useContext, useImperativeHandle, useRef} from 'react';\nimport styles from '@adobe/spectrum-css-temp/components/tooltip/vars.css';\nimport SuccessSmall from '@spectrum-icons/ui/SuccessSmall';\nimport {TooltipContext} from './context';\nimport {useStyleProps} from '../utils/styleProps';\n\nexport interface SpectrumTooltipProps extends AriaTooltipProps, StyleProps {\n  /**\n   * The [visual style](https://spectrum.adobe.com/page/tooltip/#Semantic-variants) of the Tooltip.\n   */\n  variant?: 'neutral' | 'positive' | 'negative' | 'info';\n\n  /**\n   * The placement of the element with respect to its anchor element.\n   *\n   * @default 'top'\n   */\n  placement?: 'start' | 'end' | 'right' | 'left' | 'top' | 'bottom';\n\n  /**\n   * Whether the element is rendered.\n   */\n  showIcon?: boolean;\n\n  children: ReactNode;\n}\n\nlet iconMap = {\n  info: InfoSmall,\n  positive: SuccessSmall,\n  negative: AlertSmall\n};\n\n/**\n * Display container for Tooltip content. Has a directional arrow dependent on its placement.\n */\nexport const Tooltip = React.forwardRef(function Tooltip(props: SpectrumTooltipProps, ref: DOMRef) {\n  let {\n    ref: overlayRef,\n    arrowProps,\n    state,\n    arrowRef,\n    ...tooltipProviderProps\n  } = useContext(TooltipContext);\n  let defaultRef = useRef(null);\n  overlayRef = overlayRef || defaultRef;\n  let backupPlacement = props.placement;\n  props = mergeProps(props, tooltipProviderProps);\n  let {variant = 'neutral', placement, isOpen, showIcon, ...otherProps} = props;\n  if (placement == null) {\n    placement = backupPlacement ?? 'top';\n  }\n  let {styleProps} = useStyleProps(otherProps);\n  let {tooltipProps} = useTooltip(props, state);\n\n  // Sync ref with overlayRef from context.\n  useImperativeHandle(ref, () => createDOMRef(overlayRef));\n\n  let Icon = iconMap[variant];\n\n  return (\n    <div\n      {...styleProps}\n      {...tooltipProps}\n      className={classNames(\n        styles,\n        'spectrum-Tooltip',\n        `spectrum-Tooltip--${variant}`,\n        `spectrum-Tooltip--${placement}`,\n        {\n          'is-open': isOpen,\n          [`is-open--${placement}`]: isOpen\n        },\n        styleProps.className\n      )}\n      ref={overlayRef}>\n      {showIcon && variant !== 'neutral' && (\n        <Icon UNSAFE_className={classNames(styles, 'spectrum-Tooltip-typeIcon')} aria-hidden />\n      )}\n      {props.children && (\n        <span className={classNames(styles, 'spectrum-Tooltip-label')}>{props.children}</span>\n      )}\n      <span {...arrowProps} ref={arrowRef} className={classNames(styles, 'spectrum-Tooltip-tip')} />\n    </div>\n  );\n});\n"],"names":[],"version":3,"file":"Tooltip.mjs.map"}