react-tooltip 5.25.2 → 5.26.1-beta.1168.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -359,7 +359,7 @@
359
359
  // props
360
360
  forwardRef, id, className, classNameArrow, variant = 'dark', anchorId, anchorSelect, place = 'top', offset = 10, events = ['hover'], openOnClick = false, positionStrategy = 'absolute', middlewares, wrapper: WrapperElement, delayShow = 0, delayHide = 0, float = false, hidden = false, noArrow = false, clickable = false, closeOnEsc = false, closeOnScroll = false, closeOnResize = false, openEvents, closeEvents, globalCloseEvents, imperativeModeOnly, style: externalStyles, position, afterShow, afterHide,
361
361
  // props handled by controller
362
- content, contentWrapperRef, isOpen, setIsOpen, activeAnchor, setActiveAnchor, border, opacity, arrowColor, role = 'tooltip', }) => {
362
+ content, contentWrapperRef, isOpen, defaultIsOpen = false, setIsOpen, activeAnchor, setActiveAnchor, border, opacity, arrowColor, role = 'tooltip', }) => {
363
363
  var _a;
364
364
  const tooltipRef = React.useRef(null);
365
365
  const tooltipArrowRef = React.useRef(null);
@@ -530,6 +530,11 @@
530
530
  if (tooltipShowDelayTimerRef.current) {
531
531
  clearTimeout(tooltipShowDelayTimerRef.current);
532
532
  }
533
+ if (rendered) {
534
+ // if the tooltip is already rendered, ignore delay
535
+ handleShow(true);
536
+ return;
537
+ }
533
538
  tooltipShowDelayTimerRef.current = setTimeout(() => {
534
539
  handleShow(true);
535
540
  }, delay);
@@ -891,6 +896,8 @@
891
896
  closeEvents,
892
897
  globalCloseEvents,
893
898
  shouldOpenOnClick,
899
+ delayShow,
900
+ delayHide,
894
901
  ]);
895
902
  React.useEffect(() => {
896
903
  var _a, _b;
@@ -907,6 +914,10 @@
907
914
  if (newId === id) {
908
915
  newAnchors.push(mutation.target);
909
916
  }
917
+ else if (mutation.oldValue === id) {
918
+ // data-tooltip-id has now been changed, so we need to remove this anchor
919
+ removedAnchors.push(mutation.target);
920
+ }
910
921
  }
911
922
  if (mutation.type !== 'childList') {
912
923
  return;
@@ -979,6 +990,8 @@
979
990
  subtree: true,
980
991
  attributes: true,
981
992
  attributeFilter: ['data-tooltip-id'],
993
+ // to track the prev value if we need to remove anchor when data-tooltip-id gets changed
994
+ attributeOldValue: true,
982
995
  });
983
996
  return () => {
984
997
  documentObserver.disconnect();
@@ -1013,6 +1026,9 @@
1013
1026
  }
1014
1027
  }, [anchorId, anchorsBySelect, activeAnchor]);
1015
1028
  React.useEffect(() => {
1029
+ if (defaultIsOpen) {
1030
+ handleShow(true);
1031
+ }
1016
1032
  return () => {
1017
1033
  if (tooltipShowDelayTimerRef.current) {
1018
1034
  clearTimeout(tooltipShowDelayTimerRef.current);
@@ -1040,6 +1056,12 @@
1040
1056
  setAnchorsBySelect([]);
1041
1057
  }
1042
1058
  }, [id, anchorSelect, imperativeOptions === null || imperativeOptions === void 0 ? void 0 : imperativeOptions.anchorSelect]);
1059
+ React.useEffect(() => {
1060
+ if (tooltipShowDelayTimerRef.current) {
1061
+ clearTimeout(tooltipShowDelayTimerRef.current);
1062
+ handleShowTooltipDelayed(delayShow);
1063
+ }
1064
+ }, [delayShow]);
1043
1065
  const actualContent = (_a = imperativeOptions === null || imperativeOptions === void 0 ? void 0 : imperativeOptions.content) !== null && _a !== void 0 ? _a : content;
1044
1066
  const canShow = show && Object.keys(inlineStyles).length > 0;
1045
1067
  React.useImperativeHandle(forwardRef, () => ({
@@ -1110,7 +1132,7 @@
1110
1132
  return hasCssSupports ? window.CSS.supports(property, value) : true;
1111
1133
  };
1112
1134
 
1113
- const TooltipController = React__default["default"].forwardRef(({ id, anchorId, anchorSelect, content, html, render, className, classNameArrow, variant = 'dark', place = 'top', offset = 10, wrapper = 'div', children = null, events = ['hover'], openOnClick = false, positionStrategy = 'absolute', middlewares, delayShow = 0, delayHide = 0, float = false, hidden = false, noArrow = false, clickable = false, closeOnEsc = false, closeOnScroll = false, closeOnResize = false, openEvents, closeEvents, globalCloseEvents, imperativeModeOnly = false, style, position, isOpen, disableStyleInjection = false, border, opacity, arrowColor, setIsOpen, afterShow, afterHide, role = 'tooltip', }, ref) => {
1135
+ const TooltipController = React__default["default"].forwardRef(({ id, anchorId, anchorSelect, content, html, render, className, classNameArrow, variant = 'dark', place = 'top', offset = 10, wrapper = 'div', children = null, events = ['hover'], openOnClick = false, positionStrategy = 'absolute', middlewares, delayShow = 0, delayHide = 0, float = false, hidden = false, noArrow = false, clickable = false, closeOnEsc = false, closeOnScroll = false, closeOnResize = false, openEvents, closeEvents, globalCloseEvents, imperativeModeOnly = false, style, position, isOpen, defaultIsOpen = false, disableStyleInjection = false, border, opacity, arrowColor, setIsOpen, afterShow, afterHide, role = 'tooltip', }, ref) => {
1114
1136
  const [tooltipContent, setTooltipContent] = React.useState(content);
1115
1137
  const [tooltipHtml, setTooltipHtml] = React.useState(html);
1116
1138
  const [tooltipPlace, setTooltipPlace] = React.useState(place);
@@ -1370,6 +1392,7 @@
1370
1392
  style,
1371
1393
  position,
1372
1394
  isOpen,
1395
+ defaultIsOpen,
1373
1396
  border,
1374
1397
  opacity,
1375
1398
  arrowColor,
@@ -1 +1 @@
1
- {"version":3,"file":"react-tooltip.umd.js","sources":["../src/utils/handle-style.ts","../src/utils/debounce.ts","../src/components/TooltipProvider/TooltipProvider.tsx","../src/components/TooltipProvider/TooltipWrapper.tsx","../src/utils/use-isomorphic-layout-effect.ts","../src/utils/get-scroll-parent.ts","../src/utils/compute-positions.ts","../src/utils/css-time-to-ms.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/TooltipContent/TooltipContent.tsx","../src/utils/css-supports.ts","../src/components/TooltipController/TooltipController.tsx","../src/index.tsx"],"sourcesContent":["// This is the ID for the core styles of ReactTooltip\nconst REACT_TOOLTIP_CORE_STYLES_ID = 'react-tooltip-core-styles'\n// This is the ID for the visual styles of ReactTooltip\nconst REACT_TOOLTIP_BASE_STYLES_ID = 'react-tooltip-base-styles'\n\nconst injected = {\n core: false,\n base: false,\n}\n\nfunction injectStyle({\n css,\n id = REACT_TOOLTIP_BASE_STYLES_ID,\n type = 'base',\n ref,\n}: {\n css: string\n id?: string\n type?: 'core' | 'base'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref?: any\n}) {\n if (!css || typeof document === 'undefined' || injected[type]) {\n return\n }\n\n if (\n type === 'core' &&\n typeof process !== 'undefined' && // this validation prevents docs from breaking even with `process?`\n process?.env?.REACT_TOOLTIP_DISABLE_CORE_STYLES\n ) {\n return\n }\n\n if (\n type !== 'base' &&\n typeof process !== 'undefined' && // this validation prevents docs from breaking even with `process?`\n process?.env?.REACT_TOOLTIP_DISABLE_BASE_STYLES\n ) {\n return\n }\n\n if (type === 'core') {\n // eslint-disable-next-line no-param-reassign\n id = REACT_TOOLTIP_CORE_STYLES_ID\n }\n\n if (!ref) {\n // eslint-disable-next-line no-param-reassign\n ref = {}\n }\n const { insertAt } = ref\n\n if (document.getElementById(id)) {\n // this should never happen because of `injected[type]`\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(\n `[react-tooltip] Element with id '${id}' already exists. Call \\`removeStyle()\\` first`,\n )\n }\n return\n }\n\n const head = document.head || document.getElementsByTagName('head')[0]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const style: any = document.createElement('style')\n style.id = id\n style.type = 'text/css'\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n\n injected[type] = true\n}\n\n/**\n * @deprecated Use the `disableStyleInjection` tooltip prop instead.\n * See https://react-tooltip.com/docs/examples/styling#disabling-reacttooltip-css\n */\nfunction removeStyle({\n type = 'base',\n id = REACT_TOOLTIP_BASE_STYLES_ID,\n}: {\n type?: 'core' | 'base'\n id?: string\n} = {}) {\n if (!injected[type]) {\n return\n }\n\n if (type === 'core') {\n // eslint-disable-next-line no-param-reassign\n id = REACT_TOOLTIP_CORE_STYLES_ID\n }\n\n const style = document.getElementById(id)\n if (style?.tagName === 'style') {\n style?.remove()\n } else if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(\n `[react-tooltip] Failed to remove 'style' element with id '${id}'. Call \\`injectStyle()\\` first`,\n )\n }\n\n injected[type] = false\n}\n\nexport { injectStyle, removeStyle }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * This function debounce the received function\n * @param { function } \tfunc\t\t\t\tFunction to be debounced\n * @param { number } \t\twait\t\t\t\tTime to wait before execut the function\n * @param { boolean } \timmediate\t\tParam to define if the function will be executed immediately\n */\nconst debounce = <T, A extends any[]>(\n func: (...args: A) => void,\n wait?: number,\n immediate?: boolean,\n) => {\n let timeout: NodeJS.Timeout | null = null\n\n const debounced = function debounced(this: T, ...args: A): void {\n const later = () => {\n timeout = null\n if (!immediate) {\n func.apply(this, args)\n }\n }\n\n if (immediate && !timeout) {\n /**\n * there's not need to clear the timeout\n * since we expect it to resolve and set `timeout = null`\n */\n func.apply(this, args)\n timeout = setTimeout(later, wait)\n }\n\n if (!immediate) {\n if (timeout) {\n clearTimeout(timeout)\n }\n timeout = setTimeout(later, wait)\n }\n }\n\n debounced.cancel = () => {\n if (!timeout) {\n return\n }\n clearTimeout(timeout)\n timeout = null\n }\n\n return debounced\n}\n\nexport default debounce\n","import React, {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\n\nimport type {\n AnchorRef,\n TooltipContextData,\n TooltipContextDataWrapper,\n} from './TooltipProviderTypes'\n\nconst DEFAULT_TOOLTIP_ID = 'DEFAULT_TOOLTIP_ID'\nconst DEFAULT_CONTEXT_DATA: TooltipContextData = {\n anchorRefs: new Set(),\n activeAnchor: { current: null },\n attach: () => {\n /* attach anchor element */\n },\n detach: () => {\n /* detach anchor element */\n },\n setActiveAnchor: () => {\n /* set active anchor */\n },\n}\n\nconst DEFAULT_CONTEXT_DATA_WRAPPER: TooltipContextDataWrapper = {\n getTooltipData: () => DEFAULT_CONTEXT_DATA,\n}\n\nconst TooltipContext = createContext<TooltipContextDataWrapper>(DEFAULT_CONTEXT_DATA_WRAPPER)\n\n/**\n * @deprecated Use the `data-tooltip-id` attribute, or the `anchorSelect` prop instead.\n * See https://react-tooltip.com/docs/getting-started\n */\nconst TooltipProvider: React.FC<PropsWithChildren<void>> = ({ children }) => {\n const [anchorRefMap, setAnchorRefMap] = useState<Record<string, Set<AnchorRef>>>({\n [DEFAULT_TOOLTIP_ID]: new Set(),\n })\n const [activeAnchorMap, setActiveAnchorMap] = useState<Record<string, AnchorRef>>({\n [DEFAULT_TOOLTIP_ID]: { current: null },\n })\n\n const attach = (tooltipId: string, ...refs: AnchorRef[]) => {\n setAnchorRefMap((oldMap) => {\n const tooltipRefs = oldMap[tooltipId] ?? new Set()\n refs.forEach((ref) => tooltipRefs.add(ref))\n // create new object to trigger re-render\n return { ...oldMap, [tooltipId]: new Set(tooltipRefs) }\n })\n }\n\n const detach = (tooltipId: string, ...refs: AnchorRef[]) => {\n setAnchorRefMap((oldMap) => {\n const tooltipRefs = oldMap[tooltipId]\n if (!tooltipRefs) {\n // tooltip not found\n // maybe thow error?\n return oldMap\n }\n refs.forEach((ref) => tooltipRefs.delete(ref))\n // create new object to trigger re-render\n return { ...oldMap }\n })\n }\n\n const setActiveAnchor = (tooltipId: string, ref: React.RefObject<HTMLElement>) => {\n setActiveAnchorMap((oldMap) => {\n if (oldMap[tooltipId]?.current === ref.current) {\n return oldMap\n }\n // create new object to trigger re-render\n return { ...oldMap, [tooltipId]: ref }\n })\n }\n\n const getTooltipData = useCallback(\n (tooltipId = DEFAULT_TOOLTIP_ID) => ({\n anchorRefs: anchorRefMap[tooltipId] ?? new Set(),\n activeAnchor: activeAnchorMap[tooltipId] ?? { current: null },\n attach: (...refs: AnchorRef[]) => attach(tooltipId, ...refs),\n detach: (...refs: AnchorRef[]) => detach(tooltipId, ...refs),\n setActiveAnchor: (ref: AnchorRef) => setActiveAnchor(tooltipId, ref),\n }),\n [anchorRefMap, activeAnchorMap, attach, detach],\n )\n\n const context = useMemo(() => {\n return {\n getTooltipData,\n }\n }, [getTooltipData])\n\n return <TooltipContext.Provider value={context}>{children}</TooltipContext.Provider>\n}\n\nexport function useTooltip(tooltipId = DEFAULT_TOOLTIP_ID) {\n return useContext(TooltipContext).getTooltipData(tooltipId)\n}\n\nexport default TooltipProvider\n","import React, { useEffect, useRef } from 'react'\nimport classNames from 'classnames'\nimport { useTooltip } from './TooltipProvider'\nimport type { ITooltipWrapper } from './TooltipProviderTypes'\n\n/**\n * @deprecated Use the `data-tooltip-id` attribute, or the `anchorSelect` prop instead.\n * See https://react-tooltip.com/docs/getting-started\n */\nconst TooltipWrapper = ({\n tooltipId,\n children,\n className,\n place,\n content,\n html,\n variant,\n offset,\n wrapper,\n events,\n positionStrategy,\n delayShow,\n delayHide,\n}: ITooltipWrapper) => {\n const { attach, detach } = useTooltip(tooltipId)\n const anchorRef = useRef<HTMLElement | null>(null)\n\n useEffect(() => {\n attach(anchorRef)\n return () => {\n detach(anchorRef)\n }\n }, [])\n\n return (\n <span\n ref={anchorRef}\n className={classNames('react-tooltip-wrapper', className)}\n data-tooltip-place={place}\n data-tooltip-content={content}\n data-tooltip-html={html}\n data-tooltip-variant={variant}\n data-tooltip-offset={offset}\n data-tooltip-wrapper={wrapper}\n data-tooltip-events={events}\n data-tooltip-position-strategy={positionStrategy}\n data-tooltip-delay-show={delayShow}\n data-tooltip-delay-hide={delayHide}\n >\n {children}\n </span>\n )\n}\n\nexport default TooltipWrapper\n","import { useLayoutEffect, useEffect } from 'react'\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\nexport default useIsomorphicLayoutEffect\n","const isScrollable = (node: Element) => {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return false\n }\n const style = getComputedStyle(node)\n return ['overflow', 'overflow-x', 'overflow-y'].some((propertyName) => {\n const value = style.getPropertyValue(propertyName)\n return value === 'auto' || value === 'scroll'\n })\n}\n\nexport const getScrollParent = (node: Element | null) => {\n if (!node) {\n return null\n }\n let currentParent = node.parentElement\n while (currentParent) {\n if (isScrollable(currentParent)) {\n return currentParent\n }\n currentParent = currentParent.parentElement\n }\n return document.scrollingElement || document.documentElement\n}\n","import { computePosition, offset, shift, arrow, flip } from '@floating-ui/dom'\nimport type { IComputePositions } from './compute-positions-types'\n\nexport const computeTooltipPosition = async ({\n elementReference = null,\n tooltipReference = null,\n tooltipArrowReference = null,\n place = 'top',\n offset: offsetValue = 10,\n strategy = 'absolute',\n middlewares = [\n offset(Number(offsetValue)),\n flip({\n fallbackAxisSideDirection: 'start',\n }),\n shift({ padding: 5 }),\n ],\n border,\n}: IComputePositions) => {\n if (!elementReference) {\n // elementReference can be null or undefined and we will not compute the position\n // eslint-disable-next-line no-console\n // console.error('The reference element for tooltip was not defined: ', elementReference)\n return { tooltipStyles: {}, tooltipArrowStyles: {}, place }\n }\n\n if (tooltipReference === null) {\n return { tooltipStyles: {}, tooltipArrowStyles: {}, place }\n }\n\n const middleware = middlewares\n\n if (tooltipArrowReference) {\n middleware.push(arrow({ element: tooltipArrowReference as HTMLElement, padding: 5 }))\n\n return computePosition(elementReference as HTMLElement, tooltipReference as HTMLElement, {\n placement: place,\n strategy,\n middleware,\n }).then(({ x, y, placement, middlewareData }) => {\n const styles = { left: `${x}px`, top: `${y}px`, border }\n\n const { x: arrowX, y: arrowY } = middlewareData.arrow ?? { x: 0, y: 0 }\n\n const staticSide =\n {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]] ?? 'bottom'\n\n const borderSide = border && {\n borderBottom: border,\n borderRight: border,\n }\n\n let borderWidth = 0\n if (border) {\n const match = `${border}`.match(/(\\d+)px/)\n if (match?.[1]) {\n borderWidth = Number(match[1])\n } else {\n /**\n * this means `border` was set without `width`, or non-px value\n */\n borderWidth = 1\n }\n }\n\n const arrowStyle = {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n ...borderSide,\n [staticSide]: `-${4 + borderWidth}px`,\n }\n\n return { tooltipStyles: styles, tooltipArrowStyles: arrowStyle, place: placement }\n })\n }\n\n return computePosition(elementReference as HTMLElement, tooltipReference as HTMLElement, {\n placement: 'bottom',\n strategy,\n middleware,\n }).then(({ x, y, placement }) => {\n const styles = { left: `${x}px`, top: `${y}px` }\n\n return { tooltipStyles: styles, tooltipArrowStyles: {}, place: placement }\n })\n}\n","export const cssTimeToMs = (time: string): number => {\n const match = time.match(/^([\\d.]+)(m?s?)$/)\n if (!match) {\n return 0\n }\n const [, amount, unit] = match\n if (unit !== 's' && unit !== 'ms') {\n return 0\n }\n return Number(amount) * (unit === 'ms' ? 1 : 1000)\n}\n","import React, { useEffect, useState, useRef, useCallback, useImperativeHandle } from 'react'\nimport { autoUpdate } from '@floating-ui/dom'\nimport classNames from 'classnames'\nimport debounce from 'utils/debounce'\nimport { useTooltip } from 'components/TooltipProvider'\nimport useIsomorphicLayoutEffect from 'utils/use-isomorphic-layout-effect'\nimport { getScrollParent } from 'utils/get-scroll-parent'\nimport { computeTooltipPosition } from 'utils/compute-positions'\nimport { cssTimeToMs } from 'utils/css-time-to-ms'\nimport coreStyles from './core-styles.module.css'\nimport styles from './styles.module.css'\nimport type {\n AnchorCloseEvents,\n AnchorOpenEvents,\n GlobalCloseEvents,\n IPosition,\n ITooltip,\n PlacesType,\n TooltipImperativeOpenOptions,\n} from './TooltipTypes'\n\nconst Tooltip = ({\n // props\n forwardRef,\n id,\n className,\n classNameArrow,\n variant = 'dark',\n anchorId,\n anchorSelect,\n place = 'top',\n offset = 10,\n events = ['hover'],\n openOnClick = false,\n positionStrategy = 'absolute',\n middlewares,\n wrapper: WrapperElement,\n delayShow = 0,\n delayHide = 0,\n float = false,\n hidden = false,\n noArrow = false,\n clickable = false,\n closeOnEsc = false,\n closeOnScroll = false,\n closeOnResize = false,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly,\n style: externalStyles,\n position,\n afterShow,\n afterHide,\n // props handled by controller\n content,\n contentWrapperRef,\n isOpen,\n setIsOpen,\n activeAnchor,\n setActiveAnchor,\n border,\n opacity,\n arrowColor,\n role = 'tooltip',\n}: ITooltip) => {\n const tooltipRef = useRef<HTMLElement>(null)\n const tooltipArrowRef = useRef<HTMLElement>(null)\n const tooltipShowDelayTimerRef = useRef<NodeJS.Timeout | null>(null)\n const tooltipHideDelayTimerRef = useRef<NodeJS.Timeout | null>(null)\n const missedTransitionTimerRef = useRef<NodeJS.Timeout | null>(null)\n const [actualPlacement, setActualPlacement] = useState(place)\n const [inlineStyles, setInlineStyles] = useState({})\n const [inlineArrowStyles, setInlineArrowStyles] = useState({})\n const [show, setShow] = useState(false)\n const [rendered, setRendered] = useState(false)\n const [imperativeOptions, setImperativeOptions] = useState<TooltipImperativeOpenOptions | null>(\n null,\n )\n const wasShowing = useRef(false)\n const lastFloatPosition = useRef<IPosition | null>(null)\n /**\n * @todo Remove this in a future version (provider/wrapper method is deprecated)\n */\n const { anchorRefs, setActiveAnchor: setProviderActiveAnchor } = useTooltip(id)\n const hoveringTooltip = useRef(false)\n const [anchorsBySelect, setAnchorsBySelect] = useState<HTMLElement[]>([])\n const mounted = useRef(false)\n\n /**\n * @todo Update when deprecated stuff gets removed.\n */\n const shouldOpenOnClick = openOnClick || events.includes('click')\n const hasClickEvent =\n shouldOpenOnClick || openEvents?.click || openEvents?.dblclick || openEvents?.mousedown\n const actualOpenEvents: AnchorOpenEvents = openEvents\n ? { ...openEvents }\n : {\n mouseenter: true,\n focus: true,\n click: false,\n dblclick: false,\n mousedown: false,\n }\n if (!openEvents && shouldOpenOnClick) {\n Object.assign(actualOpenEvents, {\n mouseenter: false,\n focus: false,\n click: true,\n })\n }\n const actualCloseEvents: AnchorCloseEvents = closeEvents\n ? { ...closeEvents }\n : {\n mouseleave: true,\n blur: true,\n click: false,\n dblclick: false,\n mouseup: false,\n }\n if (!closeEvents && shouldOpenOnClick) {\n Object.assign(actualCloseEvents, {\n mouseleave: false,\n blur: false,\n })\n }\n const actualGlobalCloseEvents: GlobalCloseEvents = globalCloseEvents\n ? { ...globalCloseEvents }\n : {\n escape: closeOnEsc || false,\n scroll: closeOnScroll || false,\n resize: closeOnResize || false,\n clickOutsideAnchor: hasClickEvent || false,\n }\n\n if (imperativeModeOnly) {\n Object.assign(actualOpenEvents, {\n mouseenter: false,\n focus: false,\n click: false,\n dblclick: false,\n mousedown: false,\n })\n Object.assign(actualCloseEvents, {\n mouseleave: false,\n blur: false,\n click: false,\n dblclick: false,\n mouseup: false,\n })\n Object.assign(actualGlobalCloseEvents, {\n escape: false,\n scroll: false,\n resize: false,\n clickOutsideAnchor: false,\n })\n }\n\n /**\n * useLayoutEffect runs before useEffect,\n * but should be used carefully because of caveats\n * https://beta.reactjs.org/reference/react/useLayoutEffect#caveats\n */\n useIsomorphicLayoutEffect(() => {\n mounted.current = true\n return () => {\n mounted.current = false\n }\n }, [])\n\n const handleShow = (value: boolean) => {\n if (!mounted.current) {\n return\n }\n if (value) {\n setRendered(true)\n }\n /**\n * wait for the component to render and calculate position\n * before actually showing\n */\n setTimeout(() => {\n if (!mounted.current) {\n return\n }\n setIsOpen?.(value)\n if (isOpen === undefined) {\n setShow(value)\n }\n }, 10)\n }\n\n /**\n * this replicates the effect from `handleShow()`\n * when `isOpen` is changed from outside\n */\n useEffect(() => {\n if (isOpen === undefined) {\n return () => null\n }\n if (isOpen) {\n setRendered(true)\n }\n const timeout = setTimeout(() => {\n setShow(isOpen)\n }, 10)\n return () => {\n clearTimeout(timeout)\n }\n }, [isOpen])\n\n useEffect(() => {\n if (show === wasShowing.current) {\n return\n }\n if (missedTransitionTimerRef.current) {\n clearTimeout(missedTransitionTimerRef.current)\n }\n wasShowing.current = show\n if (show) {\n afterShow?.()\n } else {\n /**\n * see `onTransitionEnd` on tooltip wrapper\n */\n const style = getComputedStyle(document.body)\n const transitionShowDelay = cssTimeToMs(style.getPropertyValue('--rt-transition-show-delay'))\n missedTransitionTimerRef.current = setTimeout(() => {\n /**\n * if the tooltip switches from `show === true` to `show === false` too fast\n * the transition never runs, so `onTransitionEnd` callback never gets fired\n */\n setRendered(false)\n setImperativeOptions(null)\n afterHide?.()\n // +25ms just to make sure `onTransitionEnd` (if it gets fired) has time to run\n }, transitionShowDelay + 25)\n }\n }, [show])\n\n const handleShowTooltipDelayed = (delay = delayShow) => {\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n\n tooltipShowDelayTimerRef.current = setTimeout(() => {\n handleShow(true)\n }, delay)\n }\n\n const handleHideTooltipDelayed = (delay = delayHide) => {\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n\n tooltipHideDelayTimerRef.current = setTimeout(() => {\n if (hoveringTooltip.current) {\n return\n }\n handleShow(false)\n }, delay)\n }\n\n const handleShowTooltip = (event?: Event) => {\n if (!event) {\n return\n }\n const target = (event.currentTarget ?? event.target) as HTMLElement | null\n if (!target?.isConnected) {\n /**\n * this happens when the target is removed from the DOM\n * at the same time the tooltip gets triggered\n */\n setActiveAnchor(null)\n setProviderActiveAnchor({ current: null })\n return\n }\n if (delayShow) {\n handleShowTooltipDelayed()\n } else {\n handleShow(true)\n }\n setActiveAnchor(target)\n setProviderActiveAnchor({ current: target })\n\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n }\n\n const handleHideTooltip = () => {\n if (clickable) {\n // allow time for the mouse to reach the tooltip, in case there's a gap\n handleHideTooltipDelayed(delayHide || 100)\n } else if (delayHide) {\n handleHideTooltipDelayed()\n } else {\n handleShow(false)\n }\n\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n }\n\n const handleTooltipPosition = ({ x, y }: IPosition) => {\n const virtualElement = {\n getBoundingClientRect() {\n return {\n x,\n y,\n width: 0,\n height: 0,\n top: y,\n left: x,\n right: x,\n bottom: y,\n }\n },\n } as Element\n computeTooltipPosition({\n place: imperativeOptions?.place ?? place,\n offset,\n elementReference: virtualElement,\n tooltipReference: tooltipRef.current,\n tooltipArrowReference: tooltipArrowRef.current,\n strategy: positionStrategy,\n middlewares,\n border,\n }).then((computedStylesData) => {\n if (Object.keys(computedStylesData.tooltipStyles).length) {\n setInlineStyles(computedStylesData.tooltipStyles)\n }\n if (Object.keys(computedStylesData.tooltipArrowStyles).length) {\n setInlineArrowStyles(computedStylesData.tooltipArrowStyles)\n }\n setActualPlacement(computedStylesData.place as PlacesType)\n })\n }\n\n const handlePointerMove = (event?: Event) => {\n if (!event) {\n return\n }\n const mouseEvent = event as MouseEvent\n const mousePosition = {\n x: mouseEvent.clientX,\n y: mouseEvent.clientY,\n }\n handleTooltipPosition(mousePosition)\n lastFloatPosition.current = mousePosition\n }\n\n const handleClickOutsideAnchors = (event: MouseEvent) => {\n if (!show) {\n return\n }\n const target = event.target as HTMLElement\n if (tooltipRef.current?.contains(target)) {\n return\n }\n const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n const anchors = [anchorById, ...anchorsBySelect]\n if (anchors.some((anchor) => anchor?.contains(target))) {\n return\n }\n handleShow(false)\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n }\n\n // debounce handler to prevent call twice when\n // mouse enter and focus events being triggered toggether\n const internalDebouncedHandleShowTooltip = debounce(handleShowTooltip, 50, true)\n const internalDebouncedHandleHideTooltip = debounce(handleHideTooltip, 50, true)\n // If either of the functions is called while the other is still debounced,\n // reset the timeout. Otherwise if there is a sub-50ms (leave A, enter B, leave B)\n // sequence of events, the tooltip will stay open because the hide debounce\n // from leave A prevented the leave B event from calling it, leaving the\n // tooltip visible.\n const debouncedHandleShowTooltip = (e?: Event) => {\n internalDebouncedHandleHideTooltip.cancel()\n internalDebouncedHandleShowTooltip(e)\n }\n const debouncedHandleHideTooltip = () => {\n internalDebouncedHandleShowTooltip.cancel()\n internalDebouncedHandleHideTooltip()\n }\n\n const updateTooltipPosition = useCallback(() => {\n const actualPosition = imperativeOptions?.position ?? position\n if (actualPosition) {\n // if `position` is set, override regular and `float` positioning\n handleTooltipPosition(actualPosition)\n return\n }\n\n if (float) {\n if (lastFloatPosition.current) {\n /*\n Without this, changes to `content`, `place`, `offset`, ..., will only\n trigger a position calculation after a `mousemove` event.\n\n To see why this matters, comment this line, run `yarn dev` and click the\n \"Hover me!\" anchor.\n */\n handleTooltipPosition(lastFloatPosition.current)\n }\n // if `float` is set, override regular positioning\n return\n }\n\n if (!activeAnchor?.isConnected) {\n return\n }\n\n computeTooltipPosition({\n place: imperativeOptions?.place ?? place,\n offset,\n elementReference: activeAnchor,\n tooltipReference: tooltipRef.current,\n tooltipArrowReference: tooltipArrowRef.current,\n strategy: positionStrategy,\n middlewares,\n border,\n }).then((computedStylesData) => {\n if (!mounted.current) {\n // invalidate computed positions after remount\n return\n }\n if (Object.keys(computedStylesData.tooltipStyles).length) {\n setInlineStyles(computedStylesData.tooltipStyles)\n }\n if (Object.keys(computedStylesData.tooltipArrowStyles).length) {\n setInlineArrowStyles(computedStylesData.tooltipArrowStyles)\n }\n setActualPlacement(computedStylesData.place as PlacesType)\n })\n }, [\n show,\n activeAnchor,\n content,\n externalStyles,\n place,\n imperativeOptions?.place,\n offset,\n positionStrategy,\n position,\n imperativeOptions?.position,\n float,\n ])\n\n useEffect(() => {\n const elementRefs = new Set(anchorRefs)\n\n anchorsBySelect.forEach((anchor) => {\n elementRefs.add({ current: anchor })\n })\n\n const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n if (anchorById) {\n elementRefs.add({ current: anchorById })\n }\n\n const handleScrollResize = () => {\n handleShow(false)\n }\n\n const anchorScrollParent = getScrollParent(activeAnchor)\n const tooltipScrollParent = getScrollParent(tooltipRef.current)\n\n if (actualGlobalCloseEvents.scroll) {\n window.addEventListener('scroll', handleScrollResize)\n anchorScrollParent?.addEventListener('scroll', handleScrollResize)\n tooltipScrollParent?.addEventListener('scroll', handleScrollResize)\n }\n let updateTooltipCleanup: null | (() => void) = null\n if (actualGlobalCloseEvents.resize) {\n window.addEventListener('resize', handleScrollResize)\n } else if (activeAnchor && tooltipRef.current) {\n updateTooltipCleanup = autoUpdate(\n activeAnchor as HTMLElement,\n tooltipRef.current as HTMLElement,\n updateTooltipPosition,\n {\n ancestorResize: true,\n elementResize: true,\n layoutShift: true,\n },\n )\n }\n\n const handleEsc = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') {\n return\n }\n handleShow(false)\n }\n if (actualGlobalCloseEvents.escape) {\n window.addEventListener('keydown', handleEsc)\n }\n\n if (actualGlobalCloseEvents.clickOutsideAnchor) {\n window.addEventListener('click', handleClickOutsideAnchors)\n }\n\n const enabledEvents: { event: string; listener: (event?: Event) => void }[] = []\n\n const handleClickOpenTooltipAnchor = (event?: Event) => {\n if (show && event?.target === activeAnchor) {\n /**\n * ignore clicking the anchor that was used to open the tooltip.\n * this avoids conflict with the click close event.\n */\n return\n }\n handleShowTooltip(event)\n }\n const handleClickCloseTooltipAnchor = (event?: Event) => {\n if (!show || event?.target !== activeAnchor) {\n /**\n * ignore clicking the anchor that was NOT used to open the tooltip.\n * this avoids closing the tooltip when clicking on a\n * new anchor with the tooltip already open.\n */\n return\n }\n handleHideTooltip()\n }\n\n const regularEvents = ['mouseenter', 'mouseleave', 'focus', 'blur']\n const clickEvents = ['click', 'dblclick', 'mousedown', 'mouseup']\n\n Object.entries(actualOpenEvents).forEach(([event, enabled]) => {\n if (!enabled) {\n return\n }\n if (regularEvents.includes(event)) {\n enabledEvents.push({ event, listener: debouncedHandleShowTooltip })\n } else if (clickEvents.includes(event)) {\n enabledEvents.push({ event, listener: handleClickOpenTooltipAnchor })\n } else {\n // never happens\n }\n })\n\n Object.entries(actualCloseEvents).forEach(([event, enabled]) => {\n if (!enabled) {\n return\n }\n if (regularEvents.includes(event)) {\n enabledEvents.push({ event, listener: debouncedHandleHideTooltip })\n } else if (clickEvents.includes(event)) {\n enabledEvents.push({ event, listener: handleClickCloseTooltipAnchor })\n } else {\n // never happens\n }\n })\n\n if (float) {\n enabledEvents.push({\n event: 'pointermove',\n listener: handlePointerMove,\n })\n }\n\n const handleMouseEnterTooltip = () => {\n hoveringTooltip.current = true\n }\n const handleMouseLeaveTooltip = () => {\n hoveringTooltip.current = false\n handleHideTooltip()\n }\n\n if (clickable && !hasClickEvent) {\n // used to keep the tooltip open when hovering content.\n // not needed if using click events.\n tooltipRef.current?.addEventListener('mouseenter', handleMouseEnterTooltip)\n tooltipRef.current?.addEventListener('mouseleave', handleMouseLeaveTooltip)\n }\n\n enabledEvents.forEach(({ event, listener }) => {\n elementRefs.forEach((ref) => {\n ref.current?.addEventListener(event, listener)\n })\n })\n\n return () => {\n if (actualGlobalCloseEvents.scroll) {\n window.removeEventListener('scroll', handleScrollResize)\n anchorScrollParent?.removeEventListener('scroll', handleScrollResize)\n tooltipScrollParent?.removeEventListener('scroll', handleScrollResize)\n }\n if (actualGlobalCloseEvents.resize) {\n window.removeEventListener('resize', handleScrollResize)\n } else {\n updateTooltipCleanup?.()\n }\n if (actualGlobalCloseEvents.clickOutsideAnchor) {\n window.removeEventListener('click', handleClickOutsideAnchors)\n }\n if (actualGlobalCloseEvents.escape) {\n window.removeEventListener('keydown', handleEsc)\n }\n if (clickable && !hasClickEvent) {\n tooltipRef.current?.removeEventListener('mouseenter', handleMouseEnterTooltip)\n tooltipRef.current?.removeEventListener('mouseleave', handleMouseLeaveTooltip)\n }\n enabledEvents.forEach(({ event, listener }) => {\n elementRefs.forEach((ref) => {\n ref.current?.removeEventListener(event, listener)\n })\n })\n }\n /**\n * rendered is also a dependency to ensure anchor observers are re-registered\n * since `tooltipRef` becomes stale after removing/adding the tooltip to the DOM\n */\n }, [\n activeAnchor,\n updateTooltipPosition,\n rendered,\n anchorRefs,\n anchorsBySelect,\n // the effect uses the `actual*Events` objects, but this should work\n openEvents,\n closeEvents,\n globalCloseEvents,\n shouldOpenOnClick,\n ])\n\n useEffect(() => {\n let selector = imperativeOptions?.anchorSelect ?? anchorSelect ?? ''\n if (!selector && id) {\n selector = `[data-tooltip-id='${id}']`\n }\n const documentObserverCallback: MutationCallback = (mutationList) => {\n const newAnchors: HTMLElement[] = []\n const removedAnchors: HTMLElement[] = []\n mutationList.forEach((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === 'data-tooltip-id') {\n const newId = (mutation.target as HTMLElement).getAttribute('data-tooltip-id')\n if (newId === id) {\n newAnchors.push(mutation.target as HTMLElement)\n }\n }\n if (mutation.type !== 'childList') {\n return\n }\n if (activeAnchor) {\n const elements = [...mutation.removedNodes].filter((node) => node.nodeType === 1)\n if (selector) {\n try {\n removedAnchors.push(\n // the element itself is an anchor\n ...(elements.filter((element) =>\n (element as HTMLElement).matches(selector),\n ) as HTMLElement[]),\n )\n removedAnchors.push(\n // the element has children which are anchors\n ...elements.flatMap(\n (element) =>\n [...(element as HTMLElement).querySelectorAll(selector)] as HTMLElement[],\n ),\n )\n } catch {\n /**\n * invalid CSS selector.\n * already warned on tooltip controller\n */\n }\n }\n elements.some((node) => {\n if (node?.contains?.(activeAnchor)) {\n setRendered(false)\n handleShow(false)\n setActiveAnchor(null)\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n return true\n }\n return false\n })\n }\n if (!selector) {\n return\n }\n try {\n const elements = [...mutation.addedNodes].filter((node) => node.nodeType === 1)\n newAnchors.push(\n // the element itself is an anchor\n ...(elements.filter((element) =>\n (element as HTMLElement).matches(selector),\n ) as HTMLElement[]),\n )\n newAnchors.push(\n // the element has children which are anchors\n ...elements.flatMap(\n (element) =>\n [...(element as HTMLElement).querySelectorAll(selector)] as HTMLElement[],\n ),\n )\n } catch {\n /**\n * invalid CSS selector.\n * already warned on tooltip controller\n */\n }\n })\n if (newAnchors.length || removedAnchors.length) {\n setAnchorsBySelect((anchors) => [\n ...anchors.filter((anchor) => !removedAnchors.includes(anchor)),\n ...newAnchors,\n ])\n }\n }\n const documentObserver = new MutationObserver(documentObserverCallback)\n // watch for anchor being removed from the DOM\n documentObserver.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['data-tooltip-id'],\n })\n return () => {\n documentObserver.disconnect()\n }\n }, [id, anchorSelect, imperativeOptions?.anchorSelect, activeAnchor])\n\n useEffect(() => {\n updateTooltipPosition()\n }, [updateTooltipPosition])\n\n useEffect(() => {\n if (!contentWrapperRef?.current) {\n return () => null\n }\n const contentObserver = new ResizeObserver(() => {\n setTimeout(() => updateTooltipPosition())\n })\n contentObserver.observe(contentWrapperRef.current)\n return () => {\n contentObserver.disconnect()\n }\n }, [content, contentWrapperRef?.current])\n\n useEffect(() => {\n const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n const anchors = [...anchorsBySelect, anchorById]\n if (!activeAnchor || !anchors.includes(activeAnchor)) {\n /**\n * if there is no active anchor,\n * or if the current active anchor is not amongst the allowed ones,\n * reset it\n */\n setActiveAnchor(anchorsBySelect[0] ?? anchorById)\n }\n }, [anchorId, anchorsBySelect, activeAnchor])\n\n useEffect(() => {\n return () => {\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n }\n }, [])\n\n useEffect(() => {\n let selector = imperativeOptions?.anchorSelect ?? anchorSelect\n if (!selector && id) {\n selector = `[data-tooltip-id='${id}']`\n }\n if (!selector) {\n return\n }\n try {\n const anchors = Array.from(document.querySelectorAll<HTMLElement>(selector))\n setAnchorsBySelect(anchors)\n } catch {\n // warning was already issued in the controller\n setAnchorsBySelect([])\n }\n }, [id, anchorSelect, imperativeOptions?.anchorSelect])\n\n const actualContent = imperativeOptions?.content ?? content\n const canShow = show && Object.keys(inlineStyles).length > 0\n\n useImperativeHandle(forwardRef, () => ({\n open: (options) => {\n if (options?.anchorSelect) {\n try {\n document.querySelector(options.anchorSelect)\n } catch {\n if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${options.anchorSelect}\" is not a valid CSS selector`)\n }\n return\n }\n }\n setImperativeOptions(options ?? null)\n if (options?.delay) {\n handleShowTooltipDelayed(options.delay)\n } else {\n handleShow(true)\n }\n },\n close: (options) => {\n if (options?.delay) {\n handleHideTooltipDelayed(options.delay)\n } else {\n handleShow(false)\n }\n },\n activeAnchor,\n place: actualPlacement,\n isOpen: Boolean(rendered && !hidden && actualContent && canShow),\n }))\n\n return rendered && !hidden && actualContent ? (\n <WrapperElement\n id={id}\n role={role}\n className={classNames(\n 'react-tooltip',\n coreStyles['tooltip'],\n styles['tooltip'],\n styles[variant],\n className,\n `react-tooltip__place-${actualPlacement}`,\n coreStyles[canShow ? 'show' : 'closing'],\n canShow ? 'react-tooltip__show' : 'react-tooltip__closing',\n positionStrategy === 'fixed' && coreStyles['fixed'],\n clickable && coreStyles['clickable'],\n )}\n onTransitionEnd={(event: TransitionEvent) => {\n if (missedTransitionTimerRef.current) {\n clearTimeout(missedTransitionTimerRef.current)\n }\n if (show || event.propertyName !== 'opacity') {\n return\n }\n setRendered(false)\n setImperativeOptions(null)\n afterHide?.()\n }}\n style={{\n ...externalStyles,\n ...inlineStyles,\n opacity: opacity !== undefined && canShow ? opacity : undefined,\n }}\n ref={tooltipRef}\n >\n {actualContent}\n <WrapperElement\n className={classNames(\n 'react-tooltip-arrow',\n coreStyles['arrow'],\n styles['arrow'],\n classNameArrow,\n noArrow && coreStyles['noArrow'],\n )}\n style={{\n ...inlineArrowStyles,\n background: arrowColor\n ? `linear-gradient(to right bottom, transparent 50%, ${arrowColor} 50%)`\n : undefined,\n }}\n ref={tooltipArrowRef}\n />\n </WrapperElement>\n ) : null\n}\n\nexport default Tooltip\n","/* eslint-disable react/no-danger */\nimport React from 'react'\nimport type { ITooltipContent } from './TooltipContentTypes'\n\nconst TooltipContent = ({ content }: ITooltipContent) => {\n return <span dangerouslySetInnerHTML={{ __html: content }} />\n}\n\nexport default TooltipContent\n","const cssSupports = (property: string, value: string): boolean => {\n const hasCssSupports = 'CSS' in window && 'supports' in window.CSS\n return hasCssSupports ? window.CSS.supports(property, value) : true\n}\n\nexport default cssSupports\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Tooltip } from 'components/Tooltip'\nimport type {\n EventsType,\n PositionStrategy,\n PlacesType,\n VariantType,\n WrapperType,\n DataAttribute,\n ITooltip,\n ChildrenType,\n TooltipRefProps,\n} from 'components/Tooltip/TooltipTypes'\nimport { useTooltip } from 'components/TooltipProvider'\nimport { TooltipContent } from 'components/TooltipContent'\nimport cssSupports from 'utils/css-supports'\nimport classNames from 'classnames'\nimport type { ITooltipController } from './TooltipControllerTypes'\n\nconst TooltipController = React.forwardRef<TooltipRefProps, ITooltipController>(\n (\n {\n id,\n anchorId,\n anchorSelect,\n content,\n html,\n render,\n className,\n classNameArrow,\n variant = 'dark',\n place = 'top',\n offset = 10,\n wrapper = 'div',\n children = null,\n events = ['hover'],\n openOnClick = false,\n positionStrategy = 'absolute',\n middlewares,\n delayShow = 0,\n delayHide = 0,\n float = false,\n hidden = false,\n noArrow = false,\n clickable = false,\n closeOnEsc = false,\n closeOnScroll = false,\n closeOnResize = false,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly = false,\n style,\n position,\n isOpen,\n disableStyleInjection = false,\n border,\n opacity,\n arrowColor,\n setIsOpen,\n afterShow,\n afterHide,\n role = 'tooltip',\n }: ITooltipController,\n ref,\n ) => {\n const [tooltipContent, setTooltipContent] = useState(content)\n const [tooltipHtml, setTooltipHtml] = useState(html)\n const [tooltipPlace, setTooltipPlace] = useState(place)\n const [tooltipVariant, setTooltipVariant] = useState(variant)\n const [tooltipOffset, setTooltipOffset] = useState(offset)\n const [tooltipDelayShow, setTooltipDelayShow] = useState(delayShow)\n const [tooltipDelayHide, setTooltipDelayHide] = useState(delayHide)\n const [tooltipFloat, setTooltipFloat] = useState(float)\n const [tooltipHidden, setTooltipHidden] = useState(hidden)\n const [tooltipWrapper, setTooltipWrapper] = useState<WrapperType>(wrapper)\n const [tooltipEvents, setTooltipEvents] = useState(events)\n const [tooltipPositionStrategy, setTooltipPositionStrategy] = useState(positionStrategy)\n const [tooltipClassName, setTooltipClassName] = useState<string | null>(null)\n const [activeAnchor, setActiveAnchor] = useState<HTMLElement | null>(null)\n const styleInjectionRef = useRef(disableStyleInjection)\n /**\n * @todo Remove this in a future version (provider/wrapper method is deprecated)\n */\n const { anchorRefs, activeAnchor: providerActiveAnchor } = useTooltip(id)\n\n const getDataAttributesFromAnchorElement = (elementReference: HTMLElement) => {\n const dataAttributes = elementReference?.getAttributeNames().reduce((acc, name) => {\n if (name.startsWith('data-tooltip-')) {\n const parsedAttribute = name.replace(/^data-tooltip-/, '') as DataAttribute\n acc[parsedAttribute] = elementReference?.getAttribute(name) ?? null\n }\n return acc\n }, {} as Record<DataAttribute, string | null>)\n\n return dataAttributes\n }\n\n const applyAllDataAttributesFromAnchorElement = (\n dataAttributes: Record<string, string | null>,\n ) => {\n const handleDataAttributes: Record<DataAttribute, (value: string | null) => void> = {\n place: (value) => {\n setTooltipPlace((value as PlacesType) ?? place)\n },\n content: (value) => {\n setTooltipContent(value ?? content)\n },\n html: (value) => {\n setTooltipHtml(value ?? html)\n },\n variant: (value) => {\n setTooltipVariant((value as VariantType) ?? variant)\n },\n offset: (value) => {\n setTooltipOffset(value === null ? offset : Number(value))\n },\n wrapper: (value) => {\n setTooltipWrapper((value as WrapperType) ?? wrapper)\n },\n events: (value) => {\n const parsed = value?.split(' ') as EventsType[]\n setTooltipEvents(parsed ?? events)\n },\n 'position-strategy': (value) => {\n setTooltipPositionStrategy((value as PositionStrategy) ?? positionStrategy)\n },\n 'delay-show': (value) => {\n setTooltipDelayShow(value === null ? delayShow : Number(value))\n },\n 'delay-hide': (value) => {\n setTooltipDelayHide(value === null ? delayHide : Number(value))\n },\n float: (value) => {\n setTooltipFloat(value === null ? float : value === 'true')\n },\n hidden: (value) => {\n setTooltipHidden(value === null ? hidden : value === 'true')\n },\n 'class-name': (value) => {\n setTooltipClassName(value)\n },\n }\n // reset unset data attributes to default values\n // without this, data attributes from the last active anchor will still be used\n Object.values(handleDataAttributes).forEach((handler) => handler(null))\n Object.entries(dataAttributes).forEach(([key, value]) => {\n handleDataAttributes[key as DataAttribute]?.(value)\n })\n }\n\n useEffect(() => {\n setTooltipContent(content)\n }, [content])\n\n useEffect(() => {\n setTooltipHtml(html)\n }, [html])\n\n useEffect(() => {\n setTooltipPlace(place)\n }, [place])\n\n useEffect(() => {\n setTooltipVariant(variant)\n }, [variant])\n\n useEffect(() => {\n setTooltipOffset(offset)\n }, [offset])\n\n useEffect(() => {\n setTooltipDelayShow(delayShow)\n }, [delayShow])\n\n useEffect(() => {\n setTooltipDelayHide(delayHide)\n }, [delayHide])\n\n useEffect(() => {\n setTooltipFloat(float)\n }, [float])\n\n useEffect(() => {\n setTooltipHidden(hidden)\n }, [hidden])\n\n useEffect(() => {\n setTooltipPositionStrategy(positionStrategy)\n }, [positionStrategy])\n\n useEffect(() => {\n if (styleInjectionRef.current === disableStyleInjection) {\n return\n }\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not change `disableStyleInjection` dynamically.')\n }\n }, [disableStyleInjection])\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n window.dispatchEvent(\n new CustomEvent('react-tooltip-inject-styles', {\n detail: {\n disableCore: disableStyleInjection === 'core',\n disableBase: disableStyleInjection,\n },\n }),\n )\n }\n }, [])\n\n useEffect(() => {\n const elementRefs = new Set(anchorRefs)\n\n let selector = anchorSelect\n if (!selector && id) {\n selector = `[data-tooltip-id='${id}']`\n }\n if (selector) {\n try {\n const anchorsBySelect = document.querySelectorAll<HTMLElement>(selector)\n anchorsBySelect.forEach((anchor) => {\n elementRefs.add({ current: anchor })\n })\n } catch {\n if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${selector}\" is not a valid CSS selector`)\n }\n }\n }\n\n const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n if (anchorById) {\n elementRefs.add({ current: anchorById })\n }\n\n if (!elementRefs.size) {\n return () => null\n }\n\n const anchorElement = activeAnchor ?? anchorById ?? providerActiveAnchor.current\n\n const observerCallback: MutationCallback = (mutationList) => {\n mutationList.forEach((mutation) => {\n if (\n !anchorElement ||\n mutation.type !== 'attributes' ||\n !mutation.attributeName?.startsWith('data-tooltip-')\n ) {\n return\n }\n // make sure to get all set attributes, since all unset attributes are reset\n const dataAttributes = getDataAttributesFromAnchorElement(anchorElement)\n applyAllDataAttributesFromAnchorElement(dataAttributes)\n })\n }\n\n // Create an observer instance linked to the callback function\n const observer = new MutationObserver(observerCallback)\n\n // do not check for subtree and childrens, we only want to know attribute changes\n // to stay watching `data-attributes-*` from anchor element\n const observerConfig = { attributes: true, childList: false, subtree: false }\n\n if (anchorElement) {\n const dataAttributes = getDataAttributesFromAnchorElement(anchorElement)\n applyAllDataAttributesFromAnchorElement(dataAttributes)\n // Start observing the target node for configured mutations\n observer.observe(anchorElement, observerConfig)\n }\n\n return () => {\n // Remove the observer when the tooltip is destroyed\n observer.disconnect()\n }\n }, [anchorRefs, providerActiveAnchor, activeAnchor, anchorId, anchorSelect])\n\n useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return\n }\n if (style?.border) {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not set `style.border`. Use `border` prop instead.')\n }\n if (border && !cssSupports('border', `${border}`)) {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${border}\" is not a valid \\`border\\`.`)\n }\n if (style?.opacity) {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead.')\n }\n if (opacity && !cssSupports('opacity', `${opacity}`)) {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${opacity}\" is not a valid \\`opacity\\`.`)\n }\n }, [])\n\n /**\n * content priority: children < render or content < html\n * children should be lower priority so that it can be used as the \"default\" content\n */\n let renderedContent: ChildrenType = children\n const contentWrapperRef = useRef<HTMLDivElement>(null)\n if (render) {\n const rendered = render({ content: tooltipContent ?? null, activeAnchor }) as React.ReactNode\n renderedContent = rendered ? (\n <div ref={contentWrapperRef} className=\"react-tooltip-content-wrapper\">\n {rendered}\n </div>\n ) : null\n } else if (tooltipContent) {\n renderedContent = tooltipContent\n }\n if (tooltipHtml) {\n renderedContent = <TooltipContent content={tooltipHtml} />\n }\n\n const props: ITooltip = {\n forwardRef: ref,\n id,\n anchorId,\n anchorSelect,\n className: classNames(className, tooltipClassName),\n classNameArrow,\n content: renderedContent,\n contentWrapperRef,\n place: tooltipPlace,\n variant: tooltipVariant,\n offset: tooltipOffset,\n wrapper: tooltipWrapper,\n events: tooltipEvents,\n openOnClick,\n positionStrategy: tooltipPositionStrategy,\n middlewares,\n delayShow: tooltipDelayShow,\n delayHide: tooltipDelayHide,\n float: tooltipFloat,\n hidden: tooltipHidden,\n noArrow,\n clickable,\n closeOnEsc,\n closeOnScroll,\n closeOnResize,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly,\n style,\n position,\n isOpen,\n border,\n opacity,\n arrowColor,\n setIsOpen,\n afterShow,\n afterHide,\n activeAnchor,\n setActiveAnchor: (anchor: HTMLElement | null) => setActiveAnchor(anchor),\n role,\n }\n\n return <Tooltip {...props} />\n },\n)\n\nexport default TooltipController\n","import './tokens.css'\n\nimport { injectStyle } from 'utils/handle-style'\n\nimport type {\n ChildrenType,\n DataAttribute,\n EventsType,\n PlacesType,\n PositionStrategy,\n VariantType,\n WrapperType,\n IPosition,\n Middleware,\n TooltipRefProps,\n} from './components/Tooltip/TooltipTypes'\nimport type { ITooltipController } from './components/TooltipController/TooltipControllerTypes'\nimport type { ITooltipWrapper } from './components/TooltipProvider/TooltipProviderTypes'\n\n// those content will be replaced in build time with the `react-tooltip.css` builded content\nconst TooltipCoreStyles = 'react-tooltip-core-css-placeholder'\nconst TooltipStyles = 'react-tooltip-css-placeholder'\n\nif (typeof window !== 'undefined') {\n window.addEventListener('react-tooltip-inject-styles', ((\n event: CustomEvent<{ disableCore: boolean; disableBase: boolean }>,\n ) => {\n if (!event.detail.disableCore) {\n injectStyle({ css: TooltipCoreStyles, type: 'core' })\n }\n if (!event.detail.disableBase) {\n injectStyle({ css: TooltipStyles, type: 'base' })\n }\n }) as EventListener)\n}\n\nexport { TooltipController as Tooltip } from './components/TooltipController'\nexport { TooltipProvider, TooltipWrapper } from './components/TooltipProvider'\nexport type {\n ChildrenType,\n DataAttribute,\n EventsType,\n PlacesType,\n PositionStrategy,\n VariantType,\n WrapperType,\n ITooltipController as ITooltip,\n ITooltipWrapper,\n IPosition,\n Middleware,\n TooltipRefProps,\n}\n\nexport { removeStyle } from './utils/handle-style'\n"],"names":["createContext","useState","useCallback","useMemo","React","useContext","useRef","useEffect","classNames","useLayoutEffect","offset","flip","shift","arrow","computePosition","autoUpdate","useImperativeHandle"],"mappings":"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"}
1
+ {"version":3,"file":"react-tooltip.umd.js","sources":["../src/utils/handle-style.ts","../src/utils/debounce.ts","../src/components/TooltipProvider/TooltipProvider.tsx","../src/components/TooltipProvider/TooltipWrapper.tsx","../src/utils/use-isomorphic-layout-effect.ts","../src/utils/get-scroll-parent.ts","../src/utils/compute-positions.ts","../src/utils/css-time-to-ms.ts","../src/components/Tooltip/Tooltip.tsx","../src/components/TooltipContent/TooltipContent.tsx","../src/utils/css-supports.ts","../src/components/TooltipController/TooltipController.tsx","../src/index.tsx"],"sourcesContent":["// This is the ID for the core styles of ReactTooltip\nconst REACT_TOOLTIP_CORE_STYLES_ID = 'react-tooltip-core-styles'\n// This is the ID for the visual styles of ReactTooltip\nconst REACT_TOOLTIP_BASE_STYLES_ID = 'react-tooltip-base-styles'\n\nconst injected = {\n core: false,\n base: false,\n}\n\nfunction injectStyle({\n css,\n id = REACT_TOOLTIP_BASE_STYLES_ID,\n type = 'base',\n ref,\n}: {\n css: string\n id?: string\n type?: 'core' | 'base'\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref?: any\n}) {\n if (!css || typeof document === 'undefined' || injected[type]) {\n return\n }\n\n if (\n type === 'core' &&\n typeof process !== 'undefined' && // this validation prevents docs from breaking even with `process?`\n process?.env?.REACT_TOOLTIP_DISABLE_CORE_STYLES\n ) {\n return\n }\n\n if (\n type !== 'base' &&\n typeof process !== 'undefined' && // this validation prevents docs from breaking even with `process?`\n process?.env?.REACT_TOOLTIP_DISABLE_BASE_STYLES\n ) {\n return\n }\n\n if (type === 'core') {\n // eslint-disable-next-line no-param-reassign\n id = REACT_TOOLTIP_CORE_STYLES_ID\n }\n\n if (!ref) {\n // eslint-disable-next-line no-param-reassign\n ref = {}\n }\n const { insertAt } = ref\n\n if (document.getElementById(id)) {\n // this should never happen because of `injected[type]`\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(\n `[react-tooltip] Element with id '${id}' already exists. Call \\`removeStyle()\\` first`,\n )\n }\n return\n }\n\n const head = document.head || document.getElementsByTagName('head')[0]\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const style: any = document.createElement('style')\n style.id = id\n style.type = 'text/css'\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild)\n } else {\n head.appendChild(style)\n }\n } else {\n head.appendChild(style)\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css\n } else {\n style.appendChild(document.createTextNode(css))\n }\n\n injected[type] = true\n}\n\n/**\n * @deprecated Use the `disableStyleInjection` tooltip prop instead.\n * See https://react-tooltip.com/docs/examples/styling#disabling-reacttooltip-css\n */\nfunction removeStyle({\n type = 'base',\n id = REACT_TOOLTIP_BASE_STYLES_ID,\n}: {\n type?: 'core' | 'base'\n id?: string\n} = {}) {\n if (!injected[type]) {\n return\n }\n\n if (type === 'core') {\n // eslint-disable-next-line no-param-reassign\n id = REACT_TOOLTIP_CORE_STYLES_ID\n }\n\n const style = document.getElementById(id)\n if (style?.tagName === 'style') {\n style?.remove()\n } else if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(\n `[react-tooltip] Failed to remove 'style' element with id '${id}'. Call \\`injectStyle()\\` first`,\n )\n }\n\n injected[type] = false\n}\n\nexport { injectStyle, removeStyle }\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * This function debounce the received function\n * @param { function } \tfunc\t\t\t\tFunction to be debounced\n * @param { number } \t\twait\t\t\t\tTime to wait before execut the function\n * @param { boolean } \timmediate\t\tParam to define if the function will be executed immediately\n */\nconst debounce = <T, A extends any[]>(\n func: (...args: A) => void,\n wait?: number,\n immediate?: boolean,\n) => {\n let timeout: NodeJS.Timeout | null = null\n\n const debounced = function debounced(this: T, ...args: A): void {\n const later = () => {\n timeout = null\n if (!immediate) {\n func.apply(this, args)\n }\n }\n\n if (immediate && !timeout) {\n /**\n * there's not need to clear the timeout\n * since we expect it to resolve and set `timeout = null`\n */\n func.apply(this, args)\n timeout = setTimeout(later, wait)\n }\n\n if (!immediate) {\n if (timeout) {\n clearTimeout(timeout)\n }\n timeout = setTimeout(later, wait)\n }\n }\n\n debounced.cancel = () => {\n if (!timeout) {\n return\n }\n clearTimeout(timeout)\n timeout = null\n }\n\n return debounced\n}\n\nexport default debounce\n","import React, {\n createContext,\n PropsWithChildren,\n useCallback,\n useContext,\n useMemo,\n useState,\n} from 'react'\n\nimport type {\n AnchorRef,\n TooltipContextData,\n TooltipContextDataWrapper,\n} from './TooltipProviderTypes'\n\nconst DEFAULT_TOOLTIP_ID = 'DEFAULT_TOOLTIP_ID'\nconst DEFAULT_CONTEXT_DATA: TooltipContextData = {\n anchorRefs: new Set(),\n activeAnchor: { current: null },\n attach: () => {\n /* attach anchor element */\n },\n detach: () => {\n /* detach anchor element */\n },\n setActiveAnchor: () => {\n /* set active anchor */\n },\n}\n\nconst DEFAULT_CONTEXT_DATA_WRAPPER: TooltipContextDataWrapper = {\n getTooltipData: () => DEFAULT_CONTEXT_DATA,\n}\n\nconst TooltipContext = createContext<TooltipContextDataWrapper>(DEFAULT_CONTEXT_DATA_WRAPPER)\n\n/**\n * @deprecated Use the `data-tooltip-id` attribute, or the `anchorSelect` prop instead.\n * See https://react-tooltip.com/docs/getting-started\n */\nconst TooltipProvider: React.FC<PropsWithChildren<void>> = ({ children }) => {\n const [anchorRefMap, setAnchorRefMap] = useState<Record<string, Set<AnchorRef>>>({\n [DEFAULT_TOOLTIP_ID]: new Set(),\n })\n const [activeAnchorMap, setActiveAnchorMap] = useState<Record<string, AnchorRef>>({\n [DEFAULT_TOOLTIP_ID]: { current: null },\n })\n\n const attach = (tooltipId: string, ...refs: AnchorRef[]) => {\n setAnchorRefMap((oldMap) => {\n const tooltipRefs = oldMap[tooltipId] ?? new Set()\n refs.forEach((ref) => tooltipRefs.add(ref))\n // create new object to trigger re-render\n return { ...oldMap, [tooltipId]: new Set(tooltipRefs) }\n })\n }\n\n const detach = (tooltipId: string, ...refs: AnchorRef[]) => {\n setAnchorRefMap((oldMap) => {\n const tooltipRefs = oldMap[tooltipId]\n if (!tooltipRefs) {\n // tooltip not found\n // maybe thow error?\n return oldMap\n }\n refs.forEach((ref) => tooltipRefs.delete(ref))\n // create new object to trigger re-render\n return { ...oldMap }\n })\n }\n\n const setActiveAnchor = (tooltipId: string, ref: React.RefObject<HTMLElement>) => {\n setActiveAnchorMap((oldMap) => {\n if (oldMap[tooltipId]?.current === ref.current) {\n return oldMap\n }\n // create new object to trigger re-render\n return { ...oldMap, [tooltipId]: ref }\n })\n }\n\n const getTooltipData = useCallback(\n (tooltipId = DEFAULT_TOOLTIP_ID) => ({\n anchorRefs: anchorRefMap[tooltipId] ?? new Set(),\n activeAnchor: activeAnchorMap[tooltipId] ?? { current: null },\n attach: (...refs: AnchorRef[]) => attach(tooltipId, ...refs),\n detach: (...refs: AnchorRef[]) => detach(tooltipId, ...refs),\n setActiveAnchor: (ref: AnchorRef) => setActiveAnchor(tooltipId, ref),\n }),\n [anchorRefMap, activeAnchorMap, attach, detach],\n )\n\n const context = useMemo(() => {\n return {\n getTooltipData,\n }\n }, [getTooltipData])\n\n return <TooltipContext.Provider value={context}>{children}</TooltipContext.Provider>\n}\n\nexport function useTooltip(tooltipId = DEFAULT_TOOLTIP_ID) {\n return useContext(TooltipContext).getTooltipData(tooltipId)\n}\n\nexport default TooltipProvider\n","import React, { useEffect, useRef } from 'react'\nimport classNames from 'classnames'\nimport { useTooltip } from './TooltipProvider'\nimport type { ITooltipWrapper } from './TooltipProviderTypes'\n\n/**\n * @deprecated Use the `data-tooltip-id` attribute, or the `anchorSelect` prop instead.\n * See https://react-tooltip.com/docs/getting-started\n */\nconst TooltipWrapper = ({\n tooltipId,\n children,\n className,\n place,\n content,\n html,\n variant,\n offset,\n wrapper,\n events,\n positionStrategy,\n delayShow,\n delayHide,\n}: ITooltipWrapper) => {\n const { attach, detach } = useTooltip(tooltipId)\n const anchorRef = useRef<HTMLElement | null>(null)\n\n useEffect(() => {\n attach(anchorRef)\n return () => {\n detach(anchorRef)\n }\n }, [])\n\n return (\n <span\n ref={anchorRef}\n className={classNames('react-tooltip-wrapper', className)}\n data-tooltip-place={place}\n data-tooltip-content={content}\n data-tooltip-html={html}\n data-tooltip-variant={variant}\n data-tooltip-offset={offset}\n data-tooltip-wrapper={wrapper}\n data-tooltip-events={events}\n data-tooltip-position-strategy={positionStrategy}\n data-tooltip-delay-show={delayShow}\n data-tooltip-delay-hide={delayHide}\n >\n {children}\n </span>\n )\n}\n\nexport default TooltipWrapper\n","import { useLayoutEffect, useEffect } from 'react'\n\nconst useIsomorphicLayoutEffect = typeof window !== 'undefined' ? useLayoutEffect : useEffect\n\nexport default useIsomorphicLayoutEffect\n","const isScrollable = (node: Element) => {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return false\n }\n const style = getComputedStyle(node)\n return ['overflow', 'overflow-x', 'overflow-y'].some((propertyName) => {\n const value = style.getPropertyValue(propertyName)\n return value === 'auto' || value === 'scroll'\n })\n}\n\nexport const getScrollParent = (node: Element | null) => {\n if (!node) {\n return null\n }\n let currentParent = node.parentElement\n while (currentParent) {\n if (isScrollable(currentParent)) {\n return currentParent\n }\n currentParent = currentParent.parentElement\n }\n return document.scrollingElement || document.documentElement\n}\n","import { computePosition, offset, shift, arrow, flip } from '@floating-ui/dom'\nimport type { IComputePositions } from './compute-positions-types'\n\nexport const computeTooltipPosition = async ({\n elementReference = null,\n tooltipReference = null,\n tooltipArrowReference = null,\n place = 'top',\n offset: offsetValue = 10,\n strategy = 'absolute',\n middlewares = [\n offset(Number(offsetValue)),\n flip({\n fallbackAxisSideDirection: 'start',\n }),\n shift({ padding: 5 }),\n ],\n border,\n}: IComputePositions) => {\n if (!elementReference) {\n // elementReference can be null or undefined and we will not compute the position\n // eslint-disable-next-line no-console\n // console.error('The reference element for tooltip was not defined: ', elementReference)\n return { tooltipStyles: {}, tooltipArrowStyles: {}, place }\n }\n\n if (tooltipReference === null) {\n return { tooltipStyles: {}, tooltipArrowStyles: {}, place }\n }\n\n const middleware = middlewares\n\n if (tooltipArrowReference) {\n middleware.push(arrow({ element: tooltipArrowReference as HTMLElement, padding: 5 }))\n\n return computePosition(elementReference as HTMLElement, tooltipReference as HTMLElement, {\n placement: place,\n strategy,\n middleware,\n }).then(({ x, y, placement, middlewareData }) => {\n const styles = { left: `${x}px`, top: `${y}px`, border }\n\n const { x: arrowX, y: arrowY } = middlewareData.arrow ?? { x: 0, y: 0 }\n\n const staticSide =\n {\n top: 'bottom',\n right: 'left',\n bottom: 'top',\n left: 'right',\n }[placement.split('-')[0]] ?? 'bottom'\n\n const borderSide = border && {\n borderBottom: border,\n borderRight: border,\n }\n\n let borderWidth = 0\n if (border) {\n const match = `${border}`.match(/(\\d+)px/)\n if (match?.[1]) {\n borderWidth = Number(match[1])\n } else {\n /**\n * this means `border` was set without `width`, or non-px value\n */\n borderWidth = 1\n }\n }\n\n const arrowStyle = {\n left: arrowX != null ? `${arrowX}px` : '',\n top: arrowY != null ? `${arrowY}px` : '',\n right: '',\n bottom: '',\n ...borderSide,\n [staticSide]: `-${4 + borderWidth}px`,\n }\n\n return { tooltipStyles: styles, tooltipArrowStyles: arrowStyle, place: placement }\n })\n }\n\n return computePosition(elementReference as HTMLElement, tooltipReference as HTMLElement, {\n placement: 'bottom',\n strategy,\n middleware,\n }).then(({ x, y, placement }) => {\n const styles = { left: `${x}px`, top: `${y}px` }\n\n return { tooltipStyles: styles, tooltipArrowStyles: {}, place: placement }\n })\n}\n","export const cssTimeToMs = (time: string): number => {\n const match = time.match(/^([\\d.]+)(m?s?)$/)\n if (!match) {\n return 0\n }\n const [, amount, unit] = match\n if (unit !== 's' && unit !== 'ms') {\n return 0\n }\n return Number(amount) * (unit === 'ms' ? 1 : 1000)\n}\n","import React, { useEffect, useState, useRef, useCallback, useImperativeHandle } from 'react'\nimport { autoUpdate } from '@floating-ui/dom'\nimport classNames from 'classnames'\nimport debounce from 'utils/debounce'\nimport { useTooltip } from 'components/TooltipProvider'\nimport useIsomorphicLayoutEffect from 'utils/use-isomorphic-layout-effect'\nimport { getScrollParent } from 'utils/get-scroll-parent'\nimport { computeTooltipPosition } from 'utils/compute-positions'\nimport { cssTimeToMs } from 'utils/css-time-to-ms'\nimport coreStyles from './core-styles.module.css'\nimport styles from './styles.module.css'\nimport type {\n AnchorCloseEvents,\n AnchorOpenEvents,\n GlobalCloseEvents,\n IPosition,\n ITooltip,\n PlacesType,\n TooltipImperativeOpenOptions,\n} from './TooltipTypes'\n\nconst Tooltip = ({\n // props\n forwardRef,\n id,\n className,\n classNameArrow,\n variant = 'dark',\n anchorId,\n anchorSelect,\n place = 'top',\n offset = 10,\n events = ['hover'],\n openOnClick = false,\n positionStrategy = 'absolute',\n middlewares,\n wrapper: WrapperElement,\n delayShow = 0,\n delayHide = 0,\n float = false,\n hidden = false,\n noArrow = false,\n clickable = false,\n closeOnEsc = false,\n closeOnScroll = false,\n closeOnResize = false,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly,\n style: externalStyles,\n position,\n afterShow,\n afterHide,\n // props handled by controller\n content,\n contentWrapperRef,\n isOpen,\n defaultIsOpen = false,\n setIsOpen,\n activeAnchor,\n setActiveAnchor,\n border,\n opacity,\n arrowColor,\n role = 'tooltip',\n}: ITooltip) => {\n const tooltipRef = useRef<HTMLElement>(null)\n const tooltipArrowRef = useRef<HTMLElement>(null)\n const tooltipShowDelayTimerRef = useRef<NodeJS.Timeout | null>(null)\n const tooltipHideDelayTimerRef = useRef<NodeJS.Timeout | null>(null)\n const missedTransitionTimerRef = useRef<NodeJS.Timeout | null>(null)\n const [actualPlacement, setActualPlacement] = useState(place)\n const [inlineStyles, setInlineStyles] = useState({})\n const [inlineArrowStyles, setInlineArrowStyles] = useState({})\n const [show, setShow] = useState(false)\n const [rendered, setRendered] = useState(false)\n const [imperativeOptions, setImperativeOptions] = useState<TooltipImperativeOpenOptions | null>(\n null,\n )\n const wasShowing = useRef(false)\n const lastFloatPosition = useRef<IPosition | null>(null)\n /**\n * @todo Remove this in a future version (provider/wrapper method is deprecated)\n */\n const { anchorRefs, setActiveAnchor: setProviderActiveAnchor } = useTooltip(id)\n const hoveringTooltip = useRef(false)\n const [anchorsBySelect, setAnchorsBySelect] = useState<HTMLElement[]>([])\n const mounted = useRef(false)\n\n /**\n * @todo Update when deprecated stuff gets removed.\n */\n const shouldOpenOnClick = openOnClick || events.includes('click')\n const hasClickEvent =\n shouldOpenOnClick || openEvents?.click || openEvents?.dblclick || openEvents?.mousedown\n const actualOpenEvents: AnchorOpenEvents = openEvents\n ? { ...openEvents }\n : {\n mouseenter: true,\n focus: true,\n click: false,\n dblclick: false,\n mousedown: false,\n }\n if (!openEvents && shouldOpenOnClick) {\n Object.assign(actualOpenEvents, {\n mouseenter: false,\n focus: false,\n click: true,\n })\n }\n const actualCloseEvents: AnchorCloseEvents = closeEvents\n ? { ...closeEvents }\n : {\n mouseleave: true,\n blur: true,\n click: false,\n dblclick: false,\n mouseup: false,\n }\n if (!closeEvents && shouldOpenOnClick) {\n Object.assign(actualCloseEvents, {\n mouseleave: false,\n blur: false,\n })\n }\n const actualGlobalCloseEvents: GlobalCloseEvents = globalCloseEvents\n ? { ...globalCloseEvents }\n : {\n escape: closeOnEsc || false,\n scroll: closeOnScroll || false,\n resize: closeOnResize || false,\n clickOutsideAnchor: hasClickEvent || false,\n }\n\n if (imperativeModeOnly) {\n Object.assign(actualOpenEvents, {\n mouseenter: false,\n focus: false,\n click: false,\n dblclick: false,\n mousedown: false,\n })\n Object.assign(actualCloseEvents, {\n mouseleave: false,\n blur: false,\n click: false,\n dblclick: false,\n mouseup: false,\n })\n Object.assign(actualGlobalCloseEvents, {\n escape: false,\n scroll: false,\n resize: false,\n clickOutsideAnchor: false,\n })\n }\n\n /**\n * useLayoutEffect runs before useEffect,\n * but should be used carefully because of caveats\n * https://beta.reactjs.org/reference/react/useLayoutEffect#caveats\n */\n useIsomorphicLayoutEffect(() => {\n mounted.current = true\n return () => {\n mounted.current = false\n }\n }, [])\n\n const handleShow = (value: boolean) => {\n if (!mounted.current) {\n return\n }\n if (value) {\n setRendered(true)\n }\n /**\n * wait for the component to render and calculate position\n * before actually showing\n */\n setTimeout(() => {\n if (!mounted.current) {\n return\n }\n setIsOpen?.(value)\n if (isOpen === undefined) {\n setShow(value)\n }\n }, 10)\n }\n\n /**\n * this replicates the effect from `handleShow()`\n * when `isOpen` is changed from outside\n */\n useEffect(() => {\n if (isOpen === undefined) {\n return () => null\n }\n if (isOpen) {\n setRendered(true)\n }\n const timeout = setTimeout(() => {\n setShow(isOpen)\n }, 10)\n return () => {\n clearTimeout(timeout)\n }\n }, [isOpen])\n\n useEffect(() => {\n if (show === wasShowing.current) {\n return\n }\n if (missedTransitionTimerRef.current) {\n clearTimeout(missedTransitionTimerRef.current)\n }\n wasShowing.current = show\n if (show) {\n afterShow?.()\n } else {\n /**\n * see `onTransitionEnd` on tooltip wrapper\n */\n const style = getComputedStyle(document.body)\n const transitionShowDelay = cssTimeToMs(style.getPropertyValue('--rt-transition-show-delay'))\n missedTransitionTimerRef.current = setTimeout(() => {\n /**\n * if the tooltip switches from `show === true` to `show === false` too fast\n * the transition never runs, so `onTransitionEnd` callback never gets fired\n */\n setRendered(false)\n setImperativeOptions(null)\n afterHide?.()\n // +25ms just to make sure `onTransitionEnd` (if it gets fired) has time to run\n }, transitionShowDelay + 25)\n }\n }, [show])\n\n const handleShowTooltipDelayed = (delay = delayShow) => {\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n\n if (rendered) {\n // if the tooltip is already rendered, ignore delay\n handleShow(true)\n return\n }\n\n tooltipShowDelayTimerRef.current = setTimeout(() => {\n handleShow(true)\n }, delay)\n }\n\n const handleHideTooltipDelayed = (delay = delayHide) => {\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n\n tooltipHideDelayTimerRef.current = setTimeout(() => {\n if (hoveringTooltip.current) {\n return\n }\n handleShow(false)\n }, delay)\n }\n\n const handleShowTooltip = (event?: Event) => {\n if (!event) {\n return\n }\n const target = (event.currentTarget ?? event.target) as HTMLElement | null\n if (!target?.isConnected) {\n /**\n * this happens when the target is removed from the DOM\n * at the same time the tooltip gets triggered\n */\n setActiveAnchor(null)\n setProviderActiveAnchor({ current: null })\n return\n }\n if (delayShow) {\n handleShowTooltipDelayed()\n } else {\n handleShow(true)\n }\n setActiveAnchor(target)\n setProviderActiveAnchor({ current: target })\n\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n }\n\n const handleHideTooltip = () => {\n if (clickable) {\n // allow time for the mouse to reach the tooltip, in case there's a gap\n handleHideTooltipDelayed(delayHide || 100)\n } else if (delayHide) {\n handleHideTooltipDelayed()\n } else {\n handleShow(false)\n }\n\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n }\n\n const handleTooltipPosition = ({ x, y }: IPosition) => {\n const virtualElement = {\n getBoundingClientRect() {\n return {\n x,\n y,\n width: 0,\n height: 0,\n top: y,\n left: x,\n right: x,\n bottom: y,\n }\n },\n } as Element\n computeTooltipPosition({\n place: imperativeOptions?.place ?? place,\n offset,\n elementReference: virtualElement,\n tooltipReference: tooltipRef.current,\n tooltipArrowReference: tooltipArrowRef.current,\n strategy: positionStrategy,\n middlewares,\n border,\n }).then((computedStylesData) => {\n if (Object.keys(computedStylesData.tooltipStyles).length) {\n setInlineStyles(computedStylesData.tooltipStyles)\n }\n if (Object.keys(computedStylesData.tooltipArrowStyles).length) {\n setInlineArrowStyles(computedStylesData.tooltipArrowStyles)\n }\n setActualPlacement(computedStylesData.place as PlacesType)\n })\n }\n\n const handlePointerMove = (event?: Event) => {\n if (!event) {\n return\n }\n const mouseEvent = event as MouseEvent\n const mousePosition = {\n x: mouseEvent.clientX,\n y: mouseEvent.clientY,\n }\n handleTooltipPosition(mousePosition)\n lastFloatPosition.current = mousePosition\n }\n\n const handleClickOutsideAnchors = (event: MouseEvent) => {\n if (!show) {\n return\n }\n const target = event.target as HTMLElement\n if (tooltipRef.current?.contains(target)) {\n return\n }\n const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n const anchors = [anchorById, ...anchorsBySelect]\n if (anchors.some((anchor) => anchor?.contains(target))) {\n return\n }\n handleShow(false)\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n }\n\n // debounce handler to prevent call twice when\n // mouse enter and focus events being triggered toggether\n const internalDebouncedHandleShowTooltip = debounce(handleShowTooltip, 50, true)\n const internalDebouncedHandleHideTooltip = debounce(handleHideTooltip, 50, true)\n // If either of the functions is called while the other is still debounced,\n // reset the timeout. Otherwise if there is a sub-50ms (leave A, enter B, leave B)\n // sequence of events, the tooltip will stay open because the hide debounce\n // from leave A prevented the leave B event from calling it, leaving the\n // tooltip visible.\n const debouncedHandleShowTooltip = (e?: Event) => {\n internalDebouncedHandleHideTooltip.cancel()\n internalDebouncedHandleShowTooltip(e)\n }\n const debouncedHandleHideTooltip = () => {\n internalDebouncedHandleShowTooltip.cancel()\n internalDebouncedHandleHideTooltip()\n }\n\n const updateTooltipPosition = useCallback(() => {\n const actualPosition = imperativeOptions?.position ?? position\n if (actualPosition) {\n // if `position` is set, override regular and `float` positioning\n handleTooltipPosition(actualPosition)\n return\n }\n\n if (float) {\n if (lastFloatPosition.current) {\n /*\n Without this, changes to `content`, `place`, `offset`, ..., will only\n trigger a position calculation after a `mousemove` event.\n\n To see why this matters, comment this line, run `yarn dev` and click the\n \"Hover me!\" anchor.\n */\n handleTooltipPosition(lastFloatPosition.current)\n }\n // if `float` is set, override regular positioning\n return\n }\n\n if (!activeAnchor?.isConnected) {\n return\n }\n\n computeTooltipPosition({\n place: imperativeOptions?.place ?? place,\n offset,\n elementReference: activeAnchor,\n tooltipReference: tooltipRef.current,\n tooltipArrowReference: tooltipArrowRef.current,\n strategy: positionStrategy,\n middlewares,\n border,\n }).then((computedStylesData) => {\n if (!mounted.current) {\n // invalidate computed positions after remount\n return\n }\n if (Object.keys(computedStylesData.tooltipStyles).length) {\n setInlineStyles(computedStylesData.tooltipStyles)\n }\n if (Object.keys(computedStylesData.tooltipArrowStyles).length) {\n setInlineArrowStyles(computedStylesData.tooltipArrowStyles)\n }\n setActualPlacement(computedStylesData.place as PlacesType)\n })\n }, [\n show,\n activeAnchor,\n content,\n externalStyles,\n place,\n imperativeOptions?.place,\n offset,\n positionStrategy,\n position,\n imperativeOptions?.position,\n float,\n ])\n\n useEffect(() => {\n const elementRefs = new Set(anchorRefs)\n\n anchorsBySelect.forEach((anchor) => {\n elementRefs.add({ current: anchor })\n })\n\n const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n if (anchorById) {\n elementRefs.add({ current: anchorById })\n }\n\n const handleScrollResize = () => {\n handleShow(false)\n }\n\n const anchorScrollParent = getScrollParent(activeAnchor)\n const tooltipScrollParent = getScrollParent(tooltipRef.current)\n\n if (actualGlobalCloseEvents.scroll) {\n window.addEventListener('scroll', handleScrollResize)\n anchorScrollParent?.addEventListener('scroll', handleScrollResize)\n tooltipScrollParent?.addEventListener('scroll', handleScrollResize)\n }\n let updateTooltipCleanup: null | (() => void) = null\n if (actualGlobalCloseEvents.resize) {\n window.addEventListener('resize', handleScrollResize)\n } else if (activeAnchor && tooltipRef.current) {\n updateTooltipCleanup = autoUpdate(\n activeAnchor as HTMLElement,\n tooltipRef.current as HTMLElement,\n updateTooltipPosition,\n {\n ancestorResize: true,\n elementResize: true,\n layoutShift: true,\n },\n )\n }\n\n const handleEsc = (event: KeyboardEvent) => {\n if (event.key !== 'Escape') {\n return\n }\n handleShow(false)\n }\n if (actualGlobalCloseEvents.escape) {\n window.addEventListener('keydown', handleEsc)\n }\n\n if (actualGlobalCloseEvents.clickOutsideAnchor) {\n window.addEventListener('click', handleClickOutsideAnchors)\n }\n\n const enabledEvents: { event: string; listener: (event?: Event) => void }[] = []\n\n const handleClickOpenTooltipAnchor = (event?: Event) => {\n if (show && event?.target === activeAnchor) {\n /**\n * ignore clicking the anchor that was used to open the tooltip.\n * this avoids conflict with the click close event.\n */\n return\n }\n handleShowTooltip(event)\n }\n const handleClickCloseTooltipAnchor = (event?: Event) => {\n if (!show || event?.target !== activeAnchor) {\n /**\n * ignore clicking the anchor that was NOT used to open the tooltip.\n * this avoids closing the tooltip when clicking on a\n * new anchor with the tooltip already open.\n */\n return\n }\n handleHideTooltip()\n }\n\n const regularEvents = ['mouseenter', 'mouseleave', 'focus', 'blur']\n const clickEvents = ['click', 'dblclick', 'mousedown', 'mouseup']\n\n Object.entries(actualOpenEvents).forEach(([event, enabled]) => {\n if (!enabled) {\n return\n }\n if (regularEvents.includes(event)) {\n enabledEvents.push({ event, listener: debouncedHandleShowTooltip })\n } else if (clickEvents.includes(event)) {\n enabledEvents.push({ event, listener: handleClickOpenTooltipAnchor })\n } else {\n // never happens\n }\n })\n\n Object.entries(actualCloseEvents).forEach(([event, enabled]) => {\n if (!enabled) {\n return\n }\n if (regularEvents.includes(event)) {\n enabledEvents.push({ event, listener: debouncedHandleHideTooltip })\n } else if (clickEvents.includes(event)) {\n enabledEvents.push({ event, listener: handleClickCloseTooltipAnchor })\n } else {\n // never happens\n }\n })\n\n if (float) {\n enabledEvents.push({\n event: 'pointermove',\n listener: handlePointerMove,\n })\n }\n\n const handleMouseEnterTooltip = () => {\n hoveringTooltip.current = true\n }\n const handleMouseLeaveTooltip = () => {\n hoveringTooltip.current = false\n handleHideTooltip()\n }\n\n if (clickable && !hasClickEvent) {\n // used to keep the tooltip open when hovering content.\n // not needed if using click events.\n tooltipRef.current?.addEventListener('mouseenter', handleMouseEnterTooltip)\n tooltipRef.current?.addEventListener('mouseleave', handleMouseLeaveTooltip)\n }\n\n enabledEvents.forEach(({ event, listener }) => {\n elementRefs.forEach((ref) => {\n ref.current?.addEventListener(event, listener)\n })\n })\n\n return () => {\n if (actualGlobalCloseEvents.scroll) {\n window.removeEventListener('scroll', handleScrollResize)\n anchorScrollParent?.removeEventListener('scroll', handleScrollResize)\n tooltipScrollParent?.removeEventListener('scroll', handleScrollResize)\n }\n if (actualGlobalCloseEvents.resize) {\n window.removeEventListener('resize', handleScrollResize)\n } else {\n updateTooltipCleanup?.()\n }\n if (actualGlobalCloseEvents.clickOutsideAnchor) {\n window.removeEventListener('click', handleClickOutsideAnchors)\n }\n if (actualGlobalCloseEvents.escape) {\n window.removeEventListener('keydown', handleEsc)\n }\n if (clickable && !hasClickEvent) {\n tooltipRef.current?.removeEventListener('mouseenter', handleMouseEnterTooltip)\n tooltipRef.current?.removeEventListener('mouseleave', handleMouseLeaveTooltip)\n }\n enabledEvents.forEach(({ event, listener }) => {\n elementRefs.forEach((ref) => {\n ref.current?.removeEventListener(event, listener)\n })\n })\n }\n /**\n * rendered is also a dependency to ensure anchor observers are re-registered\n * since `tooltipRef` becomes stale after removing/adding the tooltip to the DOM\n */\n }, [\n activeAnchor,\n updateTooltipPosition,\n rendered,\n anchorRefs,\n anchorsBySelect,\n // the effect uses the `actual*Events` objects, but this should work\n openEvents,\n closeEvents,\n globalCloseEvents,\n shouldOpenOnClick,\n delayShow,\n delayHide,\n ])\n\n useEffect(() => {\n let selector = imperativeOptions?.anchorSelect ?? anchorSelect ?? ''\n if (!selector && id) {\n selector = `[data-tooltip-id='${id}']`\n }\n const documentObserverCallback: MutationCallback = (mutationList) => {\n const newAnchors: HTMLElement[] = []\n const removedAnchors: HTMLElement[] = []\n mutationList.forEach((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === 'data-tooltip-id') {\n const newId = (mutation.target as HTMLElement).getAttribute('data-tooltip-id')\n if (newId === id) {\n newAnchors.push(mutation.target as HTMLElement)\n } else if (mutation.oldValue === id) {\n // data-tooltip-id has now been changed, so we need to remove this anchor\n removedAnchors.push(mutation.target as HTMLElement)\n }\n }\n if (mutation.type !== 'childList') {\n return\n }\n if (activeAnchor) {\n const elements = [...mutation.removedNodes].filter((node) => node.nodeType === 1)\n if (selector) {\n try {\n removedAnchors.push(\n // the element itself is an anchor\n ...(elements.filter((element) =>\n (element as HTMLElement).matches(selector),\n ) as HTMLElement[]),\n )\n removedAnchors.push(\n // the element has children which are anchors\n ...elements.flatMap(\n (element) =>\n [...(element as HTMLElement).querySelectorAll(selector)] as HTMLElement[],\n ),\n )\n } catch {\n /**\n * invalid CSS selector.\n * already warned on tooltip controller\n */\n }\n }\n elements.some((node) => {\n if (node?.contains?.(activeAnchor)) {\n setRendered(false)\n handleShow(false)\n setActiveAnchor(null)\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n return true\n }\n return false\n })\n }\n if (!selector) {\n return\n }\n try {\n const elements = [...mutation.addedNodes].filter((node) => node.nodeType === 1)\n newAnchors.push(\n // the element itself is an anchor\n ...(elements.filter((element) =>\n (element as HTMLElement).matches(selector),\n ) as HTMLElement[]),\n )\n newAnchors.push(\n // the element has children which are anchors\n ...elements.flatMap(\n (element) =>\n [...(element as HTMLElement).querySelectorAll(selector)] as HTMLElement[],\n ),\n )\n } catch {\n /**\n * invalid CSS selector.\n * already warned on tooltip controller\n */\n }\n })\n if (newAnchors.length || removedAnchors.length) {\n setAnchorsBySelect((anchors) => [\n ...anchors.filter((anchor) => !removedAnchors.includes(anchor)),\n ...newAnchors,\n ])\n }\n }\n const documentObserver = new MutationObserver(documentObserverCallback)\n // watch for anchor being removed from the DOM\n documentObserver.observe(document.body, {\n childList: true,\n subtree: true,\n attributes: true,\n attributeFilter: ['data-tooltip-id'],\n // to track the prev value if we need to remove anchor when data-tooltip-id gets changed\n attributeOldValue: true,\n })\n return () => {\n documentObserver.disconnect()\n }\n }, [id, anchorSelect, imperativeOptions?.anchorSelect, activeAnchor])\n\n useEffect(() => {\n updateTooltipPosition()\n }, [updateTooltipPosition])\n\n useEffect(() => {\n if (!contentWrapperRef?.current) {\n return () => null\n }\n const contentObserver = new ResizeObserver(() => {\n setTimeout(() => updateTooltipPosition())\n })\n contentObserver.observe(contentWrapperRef.current)\n return () => {\n contentObserver.disconnect()\n }\n }, [content, contentWrapperRef?.current])\n\n useEffect(() => {\n const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n const anchors = [...anchorsBySelect, anchorById]\n if (!activeAnchor || !anchors.includes(activeAnchor)) {\n /**\n * if there is no active anchor,\n * or if the current active anchor is not amongst the allowed ones,\n * reset it\n */\n setActiveAnchor(anchorsBySelect[0] ?? anchorById)\n }\n }, [anchorId, anchorsBySelect, activeAnchor])\n\n useEffect(() => {\n if (defaultIsOpen) {\n handleShow(true)\n }\n return () => {\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n }\n if (tooltipHideDelayTimerRef.current) {\n clearTimeout(tooltipHideDelayTimerRef.current)\n }\n }\n }, [])\n\n useEffect(() => {\n let selector = imperativeOptions?.anchorSelect ?? anchorSelect\n if (!selector && id) {\n selector = `[data-tooltip-id='${id}']`\n }\n if (!selector) {\n return\n }\n try {\n const anchors = Array.from(document.querySelectorAll<HTMLElement>(selector))\n setAnchorsBySelect(anchors)\n } catch {\n // warning was already issued in the controller\n setAnchorsBySelect([])\n }\n }, [id, anchorSelect, imperativeOptions?.anchorSelect])\n\n useEffect(() => {\n if (tooltipShowDelayTimerRef.current) {\n clearTimeout(tooltipShowDelayTimerRef.current)\n handleShowTooltipDelayed(delayShow)\n }\n }, [delayShow])\n\n const actualContent = imperativeOptions?.content ?? content\n const canShow = show && Object.keys(inlineStyles).length > 0\n\n useImperativeHandle(forwardRef, () => ({\n open: (options) => {\n if (options?.anchorSelect) {\n try {\n document.querySelector(options.anchorSelect)\n } catch {\n if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${options.anchorSelect}\" is not a valid CSS selector`)\n }\n return\n }\n }\n setImperativeOptions(options ?? null)\n if (options?.delay) {\n handleShowTooltipDelayed(options.delay)\n } else {\n handleShow(true)\n }\n },\n close: (options) => {\n if (options?.delay) {\n handleHideTooltipDelayed(options.delay)\n } else {\n handleShow(false)\n }\n },\n activeAnchor,\n place: actualPlacement,\n isOpen: Boolean(rendered && !hidden && actualContent && canShow),\n }))\n\n return rendered && !hidden && actualContent ? (\n <WrapperElement\n id={id}\n role={role}\n className={classNames(\n 'react-tooltip',\n coreStyles['tooltip'],\n styles['tooltip'],\n styles[variant],\n className,\n `react-tooltip__place-${actualPlacement}`,\n coreStyles[canShow ? 'show' : 'closing'],\n canShow ? 'react-tooltip__show' : 'react-tooltip__closing',\n positionStrategy === 'fixed' && coreStyles['fixed'],\n clickable && coreStyles['clickable'],\n )}\n onTransitionEnd={(event: TransitionEvent) => {\n if (missedTransitionTimerRef.current) {\n clearTimeout(missedTransitionTimerRef.current)\n }\n if (show || event.propertyName !== 'opacity') {\n return\n }\n setRendered(false)\n setImperativeOptions(null)\n afterHide?.()\n }}\n style={{\n ...externalStyles,\n ...inlineStyles,\n opacity: opacity !== undefined && canShow ? opacity : undefined,\n }}\n ref={tooltipRef}\n >\n {actualContent}\n <WrapperElement\n className={classNames(\n 'react-tooltip-arrow',\n coreStyles['arrow'],\n styles['arrow'],\n classNameArrow,\n noArrow && coreStyles['noArrow'],\n )}\n style={{\n ...inlineArrowStyles,\n background: arrowColor\n ? `linear-gradient(to right bottom, transparent 50%, ${arrowColor} 50%)`\n : undefined,\n }}\n ref={tooltipArrowRef}\n />\n </WrapperElement>\n ) : null\n}\n\nexport default Tooltip\n","/* eslint-disable react/no-danger */\nimport React from 'react'\nimport type { ITooltipContent } from './TooltipContentTypes'\n\nconst TooltipContent = ({ content }: ITooltipContent) => {\n return <span dangerouslySetInnerHTML={{ __html: content }} />\n}\n\nexport default TooltipContent\n","const cssSupports = (property: string, value: string): boolean => {\n const hasCssSupports = 'CSS' in window && 'supports' in window.CSS\n return hasCssSupports ? window.CSS.supports(property, value) : true\n}\n\nexport default cssSupports\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Tooltip } from 'components/Tooltip'\nimport type {\n EventsType,\n PositionStrategy,\n PlacesType,\n VariantType,\n WrapperType,\n DataAttribute,\n ITooltip,\n ChildrenType,\n TooltipRefProps,\n} from 'components/Tooltip/TooltipTypes'\nimport { useTooltip } from 'components/TooltipProvider'\nimport { TooltipContent } from 'components/TooltipContent'\nimport cssSupports from 'utils/css-supports'\nimport classNames from 'classnames'\nimport type { ITooltipController } from './TooltipControllerTypes'\n\nconst TooltipController = React.forwardRef<TooltipRefProps, ITooltipController>(\n (\n {\n id,\n anchorId,\n anchorSelect,\n content,\n html,\n render,\n className,\n classNameArrow,\n variant = 'dark',\n place = 'top',\n offset = 10,\n wrapper = 'div',\n children = null,\n events = ['hover'],\n openOnClick = false,\n positionStrategy = 'absolute',\n middlewares,\n delayShow = 0,\n delayHide = 0,\n float = false,\n hidden = false,\n noArrow = false,\n clickable = false,\n closeOnEsc = false,\n closeOnScroll = false,\n closeOnResize = false,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly = false,\n style,\n position,\n isOpen,\n defaultIsOpen = false,\n disableStyleInjection = false,\n border,\n opacity,\n arrowColor,\n setIsOpen,\n afterShow,\n afterHide,\n role = 'tooltip',\n }: ITooltipController,\n ref,\n ) => {\n const [tooltipContent, setTooltipContent] = useState(content)\n const [tooltipHtml, setTooltipHtml] = useState(html)\n const [tooltipPlace, setTooltipPlace] = useState(place)\n const [tooltipVariant, setTooltipVariant] = useState(variant)\n const [tooltipOffset, setTooltipOffset] = useState(offset)\n const [tooltipDelayShow, setTooltipDelayShow] = useState(delayShow)\n const [tooltipDelayHide, setTooltipDelayHide] = useState(delayHide)\n const [tooltipFloat, setTooltipFloat] = useState(float)\n const [tooltipHidden, setTooltipHidden] = useState(hidden)\n const [tooltipWrapper, setTooltipWrapper] = useState<WrapperType>(wrapper)\n const [tooltipEvents, setTooltipEvents] = useState(events)\n const [tooltipPositionStrategy, setTooltipPositionStrategy] = useState(positionStrategy)\n const [tooltipClassName, setTooltipClassName] = useState<string | null>(null)\n const [activeAnchor, setActiveAnchor] = useState<HTMLElement | null>(null)\n const styleInjectionRef = useRef(disableStyleInjection)\n /**\n * @todo Remove this in a future version (provider/wrapper method is deprecated)\n */\n const { anchorRefs, activeAnchor: providerActiveAnchor } = useTooltip(id)\n\n const getDataAttributesFromAnchorElement = (elementReference: HTMLElement) => {\n const dataAttributes = elementReference?.getAttributeNames().reduce((acc, name) => {\n if (name.startsWith('data-tooltip-')) {\n const parsedAttribute = name.replace(/^data-tooltip-/, '') as DataAttribute\n acc[parsedAttribute] = elementReference?.getAttribute(name) ?? null\n }\n return acc\n }, {} as Record<DataAttribute, string | null>)\n\n return dataAttributes\n }\n\n const applyAllDataAttributesFromAnchorElement = (\n dataAttributes: Record<string, string | null>,\n ) => {\n const handleDataAttributes: Record<DataAttribute, (value: string | null) => void> = {\n place: (value) => {\n setTooltipPlace((value as PlacesType) ?? place)\n },\n content: (value) => {\n setTooltipContent(value ?? content)\n },\n html: (value) => {\n setTooltipHtml(value ?? html)\n },\n variant: (value) => {\n setTooltipVariant((value as VariantType) ?? variant)\n },\n offset: (value) => {\n setTooltipOffset(value === null ? offset : Number(value))\n },\n wrapper: (value) => {\n setTooltipWrapper((value as WrapperType) ?? wrapper)\n },\n events: (value) => {\n const parsed = value?.split(' ') as EventsType[]\n setTooltipEvents(parsed ?? events)\n },\n 'position-strategy': (value) => {\n setTooltipPositionStrategy((value as PositionStrategy) ?? positionStrategy)\n },\n 'delay-show': (value) => {\n setTooltipDelayShow(value === null ? delayShow : Number(value))\n },\n 'delay-hide': (value) => {\n setTooltipDelayHide(value === null ? delayHide : Number(value))\n },\n float: (value) => {\n setTooltipFloat(value === null ? float : value === 'true')\n },\n hidden: (value) => {\n setTooltipHidden(value === null ? hidden : value === 'true')\n },\n 'class-name': (value) => {\n setTooltipClassName(value)\n },\n }\n // reset unset data attributes to default values\n // without this, data attributes from the last active anchor will still be used\n Object.values(handleDataAttributes).forEach((handler) => handler(null))\n Object.entries(dataAttributes).forEach(([key, value]) => {\n handleDataAttributes[key as DataAttribute]?.(value)\n })\n }\n\n useEffect(() => {\n setTooltipContent(content)\n }, [content])\n\n useEffect(() => {\n setTooltipHtml(html)\n }, [html])\n\n useEffect(() => {\n setTooltipPlace(place)\n }, [place])\n\n useEffect(() => {\n setTooltipVariant(variant)\n }, [variant])\n\n useEffect(() => {\n setTooltipOffset(offset)\n }, [offset])\n\n useEffect(() => {\n setTooltipDelayShow(delayShow)\n }, [delayShow])\n\n useEffect(() => {\n setTooltipDelayHide(delayHide)\n }, [delayHide])\n\n useEffect(() => {\n setTooltipFloat(float)\n }, [float])\n\n useEffect(() => {\n setTooltipHidden(hidden)\n }, [hidden])\n\n useEffect(() => {\n setTooltipPositionStrategy(positionStrategy)\n }, [positionStrategy])\n\n useEffect(() => {\n if (styleInjectionRef.current === disableStyleInjection) {\n return\n }\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not change `disableStyleInjection` dynamically.')\n }\n }, [disableStyleInjection])\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n window.dispatchEvent(\n new CustomEvent('react-tooltip-inject-styles', {\n detail: {\n disableCore: disableStyleInjection === 'core',\n disableBase: disableStyleInjection,\n },\n }),\n )\n }\n }, [])\n\n useEffect(() => {\n const elementRefs = new Set(anchorRefs)\n\n let selector = anchorSelect\n if (!selector && id) {\n selector = `[data-tooltip-id='${id}']`\n }\n if (selector) {\n try {\n const anchorsBySelect = document.querySelectorAll<HTMLElement>(selector)\n anchorsBySelect.forEach((anchor) => {\n elementRefs.add({ current: anchor })\n })\n } catch {\n if (!process.env.NODE_ENV || process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${selector}\" is not a valid CSS selector`)\n }\n }\n }\n\n const anchorById = document.querySelector<HTMLElement>(`[id='${anchorId}']`)\n if (anchorById) {\n elementRefs.add({ current: anchorById })\n }\n\n if (!elementRefs.size) {\n return () => null\n }\n\n const anchorElement = activeAnchor ?? anchorById ?? providerActiveAnchor.current\n\n const observerCallback: MutationCallback = (mutationList) => {\n mutationList.forEach((mutation) => {\n if (\n !anchorElement ||\n mutation.type !== 'attributes' ||\n !mutation.attributeName?.startsWith('data-tooltip-')\n ) {\n return\n }\n // make sure to get all set attributes, since all unset attributes are reset\n const dataAttributes = getDataAttributesFromAnchorElement(anchorElement)\n applyAllDataAttributesFromAnchorElement(dataAttributes)\n })\n }\n\n // Create an observer instance linked to the callback function\n const observer = new MutationObserver(observerCallback)\n\n // do not check for subtree and childrens, we only want to know attribute changes\n // to stay watching `data-attributes-*` from anchor element\n const observerConfig = { attributes: true, childList: false, subtree: false }\n\n if (anchorElement) {\n const dataAttributes = getDataAttributesFromAnchorElement(anchorElement)\n applyAllDataAttributesFromAnchorElement(dataAttributes)\n // Start observing the target node for configured mutations\n observer.observe(anchorElement, observerConfig)\n }\n\n return () => {\n // Remove the observer when the tooltip is destroyed\n observer.disconnect()\n }\n }, [anchorRefs, providerActiveAnchor, activeAnchor, anchorId, anchorSelect])\n\n useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return\n }\n if (style?.border) {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not set `style.border`. Use `border` prop instead.')\n }\n if (border && !cssSupports('border', `${border}`)) {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${border}\" is not a valid \\`border\\`.`)\n }\n if (style?.opacity) {\n // eslint-disable-next-line no-console\n console.warn('[react-tooltip] Do not set `style.opacity`. Use `opacity` prop instead.')\n }\n if (opacity && !cssSupports('opacity', `${opacity}`)) {\n // eslint-disable-next-line no-console\n console.warn(`[react-tooltip] \"${opacity}\" is not a valid \\`opacity\\`.`)\n }\n }, [])\n\n /**\n * content priority: children < render or content < html\n * children should be lower priority so that it can be used as the \"default\" content\n */\n let renderedContent: ChildrenType = children\n const contentWrapperRef = useRef<HTMLDivElement>(null)\n if (render) {\n const rendered = render({ content: tooltipContent ?? null, activeAnchor }) as React.ReactNode\n renderedContent = rendered ? (\n <div ref={contentWrapperRef} className=\"react-tooltip-content-wrapper\">\n {rendered}\n </div>\n ) : null\n } else if (tooltipContent) {\n renderedContent = tooltipContent\n }\n if (tooltipHtml) {\n renderedContent = <TooltipContent content={tooltipHtml} />\n }\n\n const props: ITooltip = {\n forwardRef: ref,\n id,\n anchorId,\n anchorSelect,\n className: classNames(className, tooltipClassName),\n classNameArrow,\n content: renderedContent,\n contentWrapperRef,\n place: tooltipPlace,\n variant: tooltipVariant,\n offset: tooltipOffset,\n wrapper: tooltipWrapper,\n events: tooltipEvents,\n openOnClick,\n positionStrategy: tooltipPositionStrategy,\n middlewares,\n delayShow: tooltipDelayShow,\n delayHide: tooltipDelayHide,\n float: tooltipFloat,\n hidden: tooltipHidden,\n noArrow,\n clickable,\n closeOnEsc,\n closeOnScroll,\n closeOnResize,\n openEvents,\n closeEvents,\n globalCloseEvents,\n imperativeModeOnly,\n style,\n position,\n isOpen,\n defaultIsOpen,\n border,\n opacity,\n arrowColor,\n setIsOpen,\n afterShow,\n afterHide,\n activeAnchor,\n setActiveAnchor: (anchor: HTMLElement | null) => setActiveAnchor(anchor),\n role,\n }\n\n return <Tooltip {...props} />\n },\n)\n\nexport default TooltipController\n","import './tokens.css'\n\nimport { injectStyle } from 'utils/handle-style'\n\nimport type {\n ChildrenType,\n DataAttribute,\n EventsType,\n PlacesType,\n PositionStrategy,\n VariantType,\n WrapperType,\n IPosition,\n Middleware,\n TooltipRefProps,\n} from './components/Tooltip/TooltipTypes'\nimport type { ITooltipController } from './components/TooltipController/TooltipControllerTypes'\nimport type { ITooltipWrapper } from './components/TooltipProvider/TooltipProviderTypes'\n\n// those content will be replaced in build time with the `react-tooltip.css` builded content\nconst TooltipCoreStyles = 'react-tooltip-core-css-placeholder'\nconst TooltipStyles = 'react-tooltip-css-placeholder'\n\nif (typeof window !== 'undefined') {\n window.addEventListener('react-tooltip-inject-styles', ((\n event: CustomEvent<{ disableCore: boolean; disableBase: boolean }>,\n ) => {\n if (!event.detail.disableCore) {\n injectStyle({ css: TooltipCoreStyles, type: 'core' })\n }\n if (!event.detail.disableBase) {\n injectStyle({ css: TooltipStyles, type: 'base' })\n }\n }) as EventListener)\n}\n\nexport { TooltipController as Tooltip } from './components/TooltipController'\nexport { TooltipProvider, TooltipWrapper } from './components/TooltipProvider'\nexport type {\n ChildrenType,\n DataAttribute,\n EventsType,\n PlacesType,\n PositionStrategy,\n VariantType,\n WrapperType,\n ITooltipController as ITooltip,\n ITooltipWrapper,\n IPosition,\n Middleware,\n TooltipRefProps,\n}\n\nexport { removeStyle } from './utils/handle-style'\n"],"names":["createContext","useState","useCallback","useMemo","React","useContext","useRef","useEffect","classNames","useLayoutEffect","offset","flip","shift","arrow","computePosition","autoUpdate","useImperativeHandle"],"mappings":"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"}