{"version":3,"file":"7000.de72cde6.js","mappings":"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","sources":["webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/BRS7GKWU.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/MFZZDIHG.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3OMHZVJD.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/YMV43K4F.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/6YZEXKNV.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/BYD75WXE.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/E5E7G32I.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/FWINX72I.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TE637IA7.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TWDHCE7Y.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/tooltip/tooltip-store.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/WKII7I2E.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/XWCFCD3Q.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-anchor.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/QFL5V2DO.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UFM3D5TN.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-arrow.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip.js","webpack://@finviz/website/../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://@finviz/website/../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://@finviz/website/../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://@finviz/website/../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs"],"sourcesContent":["\"use client\";\nimport {\n createPopoverStore\n} from \"./MFZZDIHG.js\";\nimport {\n createStore\n} from \"./R676XYVY.js\";\nimport {\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/hovercard/hovercard-store.ts\nfunction createHovercardStore(props = {}) {\n var _a;\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const popover = createPopoverStore(__spreadProps(__spreadValues({}, props), {\n placement: defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom\"\n )\n }));\n const timeout = defaultValue(props.timeout, syncState == null ? void 0 : syncState.timeout, 500);\n const initialState = __spreadProps(__spreadValues({}, popover.getState()), {\n timeout,\n showTimeout: defaultValue(props.showTimeout, syncState == null ? void 0 : syncState.showTimeout),\n hideTimeout: defaultValue(props.hideTimeout, syncState == null ? void 0 : syncState.hideTimeout),\n autoFocusOnShow: defaultValue(syncState == null ? void 0 : syncState.autoFocusOnShow, false)\n });\n const hovercard = createStore(initialState, popover, props.store);\n return __spreadProps(__spreadValues(__spreadValues({}, popover), hovercard), {\n setAutoFocusOnShow: (value) => hovercard.setState(\"autoFocusOnShow\", value)\n });\n}\n\nexport {\n createHovercardStore\n};\n","\"use client\";\nimport {\n createDialogStore\n} from \"./5RJNXXU2.js\";\nimport {\n createStore,\n mergeStore,\n omit,\n throwOnConflictingProps\n} from \"./R676XYVY.js\";\nimport {\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/popover/popover-store.ts\nfunction createPopoverStore(_a = {}) {\n var _b = _a, {\n popover: otherPopover\n } = _b, props = __objRest(_b, [\n \"popover\"\n ]);\n const store = mergeStore(\n props.store,\n omit(otherPopover, [\n \"arrowElement\",\n \"anchorElement\",\n \"contentElement\",\n \"popoverElement\",\n \"disclosureElement\"\n ])\n );\n throwOnConflictingProps(props, store);\n const syncState = store == null ? void 0 : store.getState();\n const dialog = createDialogStore(__spreadProps(__spreadValues({}, props), { store }));\n const placement = defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom\"\n );\n const initialState = __spreadProps(__spreadValues({}, dialog.getState()), {\n placement,\n currentPlacement: placement,\n anchorElement: defaultValue(syncState == null ? void 0 : syncState.anchorElement, null),\n popoverElement: defaultValue(syncState == null ? void 0 : syncState.popoverElement, null),\n arrowElement: defaultValue(syncState == null ? void 0 : syncState.arrowElement, null),\n rendered: Symbol(\"rendered\")\n });\n const popover = createStore(initialState, dialog, store);\n return __spreadProps(__spreadValues(__spreadValues({}, dialog), popover), {\n setAnchorElement: (element) => popover.setState(\"anchorElement\", element),\n setPopoverElement: (element) => popover.setState(\"popoverElement\", element),\n setArrowElement: (element) => popover.setState(\"arrowElement\", element),\n render: () => popover.setState(\"rendered\", Symbol(\"rendered\"))\n });\n}\n\nexport {\n createPopoverStore\n};\n","\"use client\";\nimport {\n HovercardContextProvider,\n HovercardScopedContextProvider\n} from \"./TWDHCE7Y.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/tooltip/tooltip-context.tsx\nvar ctx = createStoreContext(\n [HovercardContextProvider],\n [HovercardScopedContextProvider]\n);\nvar useTooltipContext = ctx.useContext;\nvar useTooltipScopedContext = ctx.useScopedContext;\nvar useTooltipProviderContext = ctx.useProviderContext;\nvar TooltipContextProvider = ctx.ContextProvider;\nvar TooltipScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useTooltipContext,\n useTooltipScopedContext,\n useTooltipProviderContext,\n TooltipContextProvider,\n TooltipScopedContextProvider\n};\n","\"use client\";\n\n// src/hovercard/utils/polygon.ts\nfunction getEventPoint(event) {\n return [event.clientX, event.clientY];\n}\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let inside = false;\n const length = polygon.length;\n for (let l = length, i = 0, j = l - 1; i < l; j = i++) {\n const [xi, yi] = polygon[i];\n const [xj, yj] = polygon[j];\n const [, vy] = polygon[j === 0 ? l - 1 : j - 1] || [0, 0];\n const where = (yi - yj) * (x - xi) - (xi - xj) * (y - yi);\n if (yj < yi) {\n if (y >= yj && y < yi) {\n if (where === 0)\n return true;\n if (where > 0) {\n if (y === yj) {\n if (y > vy) {\n inside = !inside;\n }\n } else {\n inside = !inside;\n }\n }\n }\n } else if (yi < yj) {\n if (y > yi && y <= yj) {\n if (where === 0)\n return true;\n if (where < 0) {\n if (y === yj) {\n if (y < vy) {\n inside = !inside;\n }\n } else {\n inside = !inside;\n }\n }\n }\n } else if (y == yi && (x >= xj && x <= xi || x >= xi && x <= xj)) {\n return true;\n }\n }\n return inside;\n}\nfunction getEnterPointPlacement(enterPoint, rect) {\n const { top, right, bottom, left } = rect;\n const [x, y] = enterPoint;\n const placementX = x < left ? \"left\" : x > right ? \"right\" : null;\n const placementY = y < top ? \"top\" : y > bottom ? \"bottom\" : null;\n return [placementX, placementY];\n}\nfunction getElementPolygon(element, enterPoint) {\n const rect = element.getBoundingClientRect();\n const { top, right, bottom, left } = rect;\n const [x, y] = getEnterPointPlacement(enterPoint, rect);\n const polygon = [enterPoint];\n if (x) {\n if (y !== \"top\") {\n polygon.push([x === \"left\" ? left : right, top]);\n }\n polygon.push([x === \"left\" ? right : left, top]);\n polygon.push([x === \"left\" ? right : left, bottom]);\n if (y !== \"bottom\") {\n polygon.push([x === \"left\" ? left : right, bottom]);\n }\n } else if (y === \"top\") {\n polygon.push([left, top]);\n polygon.push([left, bottom]);\n polygon.push([right, bottom]);\n polygon.push([right, top]);\n } else {\n polygon.push([left, bottom]);\n polygon.push([left, top]);\n polygon.push([right, top]);\n polygon.push([right, bottom]);\n }\n return polygon;\n}\n\nexport {\n getEventPoint,\n isPointInPolygon,\n getElementPolygon\n};\n","\"use client\";\nimport {\n getElementPolygon,\n getEventPoint,\n isPointInPolygon\n} from \"./YMV43K4F.js\";\nimport {\n usePopover\n} from \"./BYD75WXE.js\";\nimport {\n createDialogComponent\n} from \"./KXSO5EFT.js\";\nimport {\n HovercardScopedContextProvider,\n useHovercardProviderContext\n} from \"./TWDHCE7Y.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useLiveRef,\n useMergeRefs,\n usePortalRef,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/hovercard/hovercard.tsx\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport {\n chain,\n invariant,\n isFalsyBooleanCallback\n} from \"@ariakit/core/utils/misc\";\nimport { sync } from \"@ariakit/core/utils/store\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isMovingOnHovercard(target, card, anchor, nested) {\n if (hasFocusWithin(card))\n return true;\n if (!target)\n return false;\n if (contains(card, target))\n return true;\n if (anchor && contains(anchor, target))\n return true;\n if (nested == null ? void 0 : nested.some((card2) => isMovingOnHovercard(target, card2, anchor))) {\n return true;\n }\n return false;\n}\nfunction useAutoFocusOnHide(_a) {\n var _b = _a, {\n store\n } = _b, props = __objRest(_b, [\n \"store\"\n ]);\n const [autoFocusOnHide, setAutoFocusOnHide] = useState(false);\n const mounted = store.useState(\"mounted\");\n useEffect(() => {\n if (!mounted) {\n setAutoFocusOnHide(false);\n }\n }, [mounted]);\n const onFocusProp = props.onFocus;\n const onFocus = useEvent((event) => {\n onFocusProp == null ? void 0 : onFocusProp(event);\n if (event.defaultPrevented)\n return;\n setAutoFocusOnHide(true);\n });\n const finalFocusRef = useRef(null);\n useEffect(() => {\n return sync(store, [\"anchorElement\"], (state) => {\n finalFocusRef.current = state.anchorElement;\n });\n }, []);\n props = __spreadProps(__spreadValues({\n autoFocusOnHide,\n finalFocus: finalFocusRef\n }, props), {\n onFocus\n });\n return props;\n}\nvar NestedHovercardContext = createContext(null);\nvar useHovercard = createHook(\n function useHovercard2(_a) {\n var _b = _a, {\n store,\n modal = false,\n portal = !!modal,\n hideOnEscape = true,\n hideOnHoverOutside = true,\n disablePointerEventsOnApproach = !!hideOnHoverOutside\n } = _b, props = __objRest(_b, [\n \"store\",\n \"modal\",\n \"portal\",\n \"hideOnEscape\",\n \"hideOnHoverOutside\",\n \"disablePointerEventsOnApproach\"\n ]);\n const context = useHovercardProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Hovercard must receive a `store` prop or be wrapped in a HovercardProvider component.\"\n );\n const ref = useRef(null);\n const [nestedHovercards, setNestedHovercards] = useState([]);\n const hideTimeoutRef = useRef(0);\n const enterPointRef = useRef(null);\n const { portalRef, domReady } = usePortalRef(portal, props.portalRef);\n const mayHideOnHoverOutside = !!hideOnHoverOutside;\n const hideOnHoverOutsideProp = useBooleanEvent(hideOnHoverOutside);\n const mayDisablePointerEvents = !!disablePointerEventsOnApproach;\n const disablePointerEventsProp = useBooleanEvent(\n disablePointerEventsOnApproach\n );\n const open = store.useState(\"open\");\n const mounted = store.useState(\"mounted\");\n useEffect(() => {\n if (!domReady)\n return;\n if (!mounted)\n return;\n if (!mayHideOnHoverOutside && !mayDisablePointerEvents)\n return;\n const element = ref.current;\n if (!element)\n return;\n const onMouseMove = (event) => {\n if (!store)\n return;\n const { anchorElement, hideTimeout, timeout } = store.getState();\n const enterPoint = enterPointRef.current;\n const [target] = event.composedPath();\n const anchor = anchorElement;\n if (isMovingOnHovercard(target, element, anchor, nestedHovercards)) {\n enterPointRef.current = target && anchor && contains(anchor, target) ? getEventPoint(event) : null;\n window.clearTimeout(hideTimeoutRef.current);\n hideTimeoutRef.current = 0;\n return;\n }\n if (hideTimeoutRef.current)\n return;\n if (enterPoint) {\n const currentPoint = getEventPoint(event);\n const polygon = getElementPolygon(element, enterPoint);\n if (isPointInPolygon(currentPoint, polygon)) {\n enterPointRef.current = currentPoint;\n if (!disablePointerEventsProp(event))\n return;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n if (!hideOnHoverOutsideProp(event))\n return;\n hideTimeoutRef.current = window.setTimeout(() => {\n hideTimeoutRef.current = 0;\n store == null ? void 0 : store.hide();\n }, hideTimeout != null ? hideTimeout : timeout);\n };\n return chain(\n addGlobalEventListener(\"mousemove\", onMouseMove, true),\n () => clearTimeout(hideTimeoutRef.current)\n );\n }, [\n store,\n domReady,\n mounted,\n mayHideOnHoverOutside,\n mayDisablePointerEvents,\n nestedHovercards,\n disablePointerEventsProp,\n hideOnHoverOutsideProp\n ]);\n useEffect(() => {\n if (!domReady)\n return;\n if (!mounted)\n return;\n if (!mayDisablePointerEvents)\n return;\n const disableEvent = (event) => {\n const element = ref.current;\n if (!element)\n return;\n const enterPoint = enterPointRef.current;\n if (!enterPoint)\n return;\n const polygon = getElementPolygon(element, enterPoint);\n if (isPointInPolygon(getEventPoint(event), polygon)) {\n if (!disablePointerEventsProp(event))\n return;\n event.preventDefault();\n event.stopPropagation();\n }\n };\n return chain(\n // Note: we may need to add pointer events here in the future.\n addGlobalEventListener(\"mouseenter\", disableEvent, true),\n addGlobalEventListener(\"mouseover\", disableEvent, true),\n addGlobalEventListener(\"mouseout\", disableEvent, true),\n addGlobalEventListener(\"mouseleave\", disableEvent, true)\n );\n }, [domReady, mounted, mayDisablePointerEvents, disablePointerEventsProp]);\n useEffect(() => {\n if (!domReady)\n return;\n if (open)\n return;\n store == null ? void 0 : store.setAutoFocusOnShow(false);\n }, [store, domReady, open]);\n const openRef = useLiveRef(open);\n useEffect(() => {\n if (!domReady)\n return;\n return () => {\n if (!openRef.current) {\n store == null ? void 0 : store.setAutoFocusOnShow(false);\n }\n };\n }, [store, domReady]);\n const registerOnParent = useContext(NestedHovercardContext);\n useSafeLayoutEffect(() => {\n if (modal)\n return;\n if (!portal)\n return;\n if (!mounted)\n return;\n if (!domReady)\n return;\n const element = ref.current;\n if (!element)\n return;\n return registerOnParent == null ? void 0 : registerOnParent(element);\n }, [modal, portal, mounted, domReady]);\n const registerNestedHovercard = useCallback(\n (element) => {\n setNestedHovercards((prevElements) => [...prevElements, element]);\n const parentUnregister = registerOnParent == null ? void 0 : registerOnParent(element);\n return () => {\n setNestedHovercards(\n (prevElements) => prevElements.filter((item) => item !== element)\n );\n parentUnregister == null ? void 0 : parentUnregister();\n };\n },\n [registerOnParent]\n );\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(HovercardScopedContextProvider, { value: store, children: /* @__PURE__ */ jsx(NestedHovercardContext.Provider, { value: registerNestedHovercard, children: element }) }),\n [store, registerNestedHovercard]\n );\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref)\n });\n props = useAutoFocusOnHide(__spreadValues({ store }, props));\n const autoFocusOnShow = store.useState(\n (state) => modal || state.autoFocusOnShow\n );\n props = usePopover(__spreadProps(__spreadValues({\n store,\n modal,\n portal,\n autoFocusOnShow\n }, props), {\n portalRef,\n hideOnEscape(event) {\n if (isFalsyBooleanCallback(hideOnEscape, event))\n return false;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n store == null ? void 0 : store.hide();\n });\n });\n return true;\n }\n }));\n return props;\n }\n);\nvar Hovercard = createDialogComponent(\n forwardRef(function Hovercard2(props) {\n const htmlProps = useHovercard(props);\n return createElement(TagName, htmlProps);\n }),\n useHovercardProviderContext\n);\n\nexport {\n useHovercard,\n Hovercard\n};\n","\"use client\";\nimport {\n createDialogComponent,\n useDialog\n} from \"./KXSO5EFT.js\";\nimport {\n PopoverScopedContextProvider,\n usePopoverProviderContext\n} from \"./TE637IA7.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useEvent,\n usePortalRef,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/popover/popover.tsx\nimport { useState } from \"react\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n limitShift,\n offset,\n shift,\n size\n} from \"@floating-ui/dom\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction createDOMRect(x = 0, y = 0, width = 0, height = 0) {\n if (typeof DOMRect === \"function\") {\n return new DOMRect(x, y, width, height);\n }\n const rect = {\n x,\n y,\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n return __spreadProps(__spreadValues({}, rect), { toJSON: () => rect });\n}\nfunction getDOMRect(anchorRect) {\n if (!anchorRect)\n return createDOMRect();\n const { x, y, width, height } = anchorRect;\n return createDOMRect(x, y, width, height);\n}\nfunction getAnchorElement(anchorElement, getAnchorRect) {\n const contextElement = anchorElement || void 0;\n return {\n contextElement,\n getBoundingClientRect: () => {\n const anchor = anchorElement;\n const anchorRect = getAnchorRect == null ? void 0 : getAnchorRect(anchor);\n if (anchorRect || !anchor) {\n return getDOMRect(anchorRect);\n }\n return anchor.getBoundingClientRect();\n }\n };\n}\nfunction isValidPlacement(flip2) {\n return /^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(flip2);\n}\nfunction roundByDPR(value) {\n const dpr = window.devicePixelRatio || 1;\n return Math.round(value * dpr) / dpr;\n}\nfunction getOffsetMiddleware(arrowElement, props) {\n return offset(({ placement }) => {\n var _a;\n const arrowOffset = ((arrowElement == null ? void 0 : arrowElement.clientHeight) || 0) / 2;\n const finalGutter = typeof props.gutter === \"number\" ? props.gutter + arrowOffset : (_a = props.gutter) != null ? _a : arrowOffset;\n const hasAlignment = !!placement.split(\"-\")[1];\n return {\n crossAxis: !hasAlignment ? props.shift : void 0,\n mainAxis: finalGutter,\n alignmentAxis: props.shift\n };\n });\n}\nfunction getFlipMiddleware(props) {\n if (props.flip === false)\n return;\n const fallbackPlacements = typeof props.flip === \"string\" ? props.flip.split(\" \") : void 0;\n invariant(\n !fallbackPlacements || fallbackPlacements.every(isValidPlacement),\n process.env.NODE_ENV !== \"production\" && \"`flip` expects a spaced-delimited list of placements\"\n );\n return flip({\n padding: props.overflowPadding,\n fallbackPlacements\n });\n}\nfunction getShiftMiddleware(props) {\n if (!props.slide && !props.overlap)\n return;\n return shift({\n mainAxis: props.slide,\n crossAxis: props.overlap,\n padding: props.overflowPadding,\n limiter: limitShift()\n });\n}\nfunction getSizeMiddleware(props) {\n return size({\n padding: props.overflowPadding,\n apply({ elements, availableWidth, availableHeight, rects }) {\n const wrapper = elements.floating;\n const referenceWidth = Math.round(rects.reference.width);\n availableWidth = Math.floor(availableWidth);\n availableHeight = Math.floor(availableHeight);\n wrapper.style.setProperty(\n \"--popover-anchor-width\",\n `${referenceWidth}px`\n );\n wrapper.style.setProperty(\n \"--popover-available-width\",\n `${availableWidth}px`\n );\n wrapper.style.setProperty(\n \"--popover-available-height\",\n `${availableHeight}px`\n );\n if (props.sameWidth) {\n wrapper.style.width = `${referenceWidth}px`;\n }\n if (props.fitViewport) {\n wrapper.style.maxWidth = `${availableWidth}px`;\n wrapper.style.maxHeight = `${availableHeight}px`;\n }\n }\n });\n}\nfunction getArrowMiddleware(arrowElement, props) {\n if (!arrowElement)\n return;\n return arrow({\n element: arrowElement,\n padding: props.arrowPadding\n });\n}\nvar usePopover = createHook(\n function usePopover2(_a) {\n var _b = _a, {\n store,\n modal = false,\n portal = !!modal,\n preserveTabOrder = true,\n autoFocusOnShow = true,\n wrapperProps,\n fixed = false,\n flip: flip2 = true,\n shift: shift2 = 0,\n slide = true,\n overlap = false,\n sameWidth = false,\n fitViewport = false,\n gutter,\n arrowPadding = 4,\n overflowPadding = 8,\n getAnchorRect,\n updatePosition\n } = _b, props = __objRest(_b, [\n \"store\",\n \"modal\",\n \"portal\",\n \"preserveTabOrder\",\n \"autoFocusOnShow\",\n \"wrapperProps\",\n \"fixed\",\n \"flip\",\n \"shift\",\n \"slide\",\n \"overlap\",\n \"sameWidth\",\n \"fitViewport\",\n \"gutter\",\n \"arrowPadding\",\n \"overflowPadding\",\n \"getAnchorRect\",\n \"updatePosition\"\n ]);\n const context = usePopoverProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Popover must receive a `store` prop or be wrapped in a PopoverProvider component.\"\n );\n const arrowElement = store.useState(\"arrowElement\");\n const anchorElement = store.useState(\"anchorElement\");\n const disclosureElement = store.useState(\"disclosureElement\");\n const popoverElement = store.useState(\"popoverElement\");\n const contentElement = store.useState(\"contentElement\");\n const placement = store.useState(\"placement\");\n const mounted = store.useState(\"mounted\");\n const rendered = store.useState(\"rendered\");\n const [positioned, setPositioned] = useState(false);\n const { portalRef, domReady } = usePortalRef(portal, props.portalRef);\n const getAnchorRectProp = useEvent(getAnchorRect);\n const updatePositionProp = useEvent(updatePosition);\n const hasCustomUpdatePosition = !!updatePosition;\n useSafeLayoutEffect(() => {\n if (!(popoverElement == null ? void 0 : popoverElement.isConnected))\n return;\n popoverElement.style.setProperty(\n \"--popover-overflow-padding\",\n `${overflowPadding}px`\n );\n const anchor = getAnchorElement(anchorElement, getAnchorRectProp);\n const updatePosition2 = async () => {\n if (!mounted)\n return;\n const middleware = [\n getOffsetMiddleware(arrowElement, { gutter, shift: shift2 }),\n getFlipMiddleware({ flip: flip2, overflowPadding }),\n getShiftMiddleware({ slide, shift: shift2, overlap, overflowPadding }),\n getArrowMiddleware(arrowElement, { arrowPadding }),\n getSizeMiddleware({\n sameWidth,\n fitViewport,\n overflowPadding\n })\n ];\n const pos = await computePosition(anchor, popoverElement, {\n placement,\n strategy: fixed ? \"fixed\" : \"absolute\",\n middleware\n });\n store == null ? void 0 : store.setState(\"currentPlacement\", pos.placement);\n setPositioned(true);\n const x = roundByDPR(pos.x);\n const y = roundByDPR(pos.y);\n Object.assign(popoverElement.style, {\n top: \"0\",\n left: \"0\",\n transform: `translate3d(${x}px,${y}px,0)`\n });\n if (arrowElement && pos.middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = pos.middlewareData.arrow;\n const dir = pos.placement.split(\"-\")[0];\n Object.assign(arrowElement.style, {\n left: arrowX != null ? `${arrowX}px` : \"\",\n top: arrowY != null ? `${arrowY}px` : \"\",\n [dir]: \"100%\"\n });\n }\n };\n const update = async () => {\n if (hasCustomUpdatePosition) {\n await updatePositionProp({ updatePosition: updatePosition2 });\n setPositioned(true);\n } else {\n await updatePosition2();\n }\n };\n const cancelAutoUpdate = autoUpdate(anchor, popoverElement, update, {\n // JSDOM doesn't support ResizeObserver\n elementResize: typeof ResizeObserver === \"function\"\n });\n return () => {\n setPositioned(false);\n cancelAutoUpdate();\n };\n }, [\n store,\n rendered,\n popoverElement,\n arrowElement,\n anchorElement,\n popoverElement,\n placement,\n mounted,\n domReady,\n fixed,\n flip2,\n shift2,\n slide,\n overlap,\n sameWidth,\n fitViewport,\n gutter,\n arrowPadding,\n overflowPadding,\n getAnchorRectProp,\n hasCustomUpdatePosition,\n updatePositionProp\n ]);\n useSafeLayoutEffect(() => {\n if (!mounted)\n return;\n if (!domReady)\n return;\n if (!(popoverElement == null ? void 0 : popoverElement.isConnected))\n return;\n if (!(contentElement == null ? void 0 : contentElement.isConnected))\n return;\n const applyZIndex = () => {\n popoverElement.style.zIndex = getComputedStyle(contentElement).zIndex;\n };\n applyZIndex();\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(applyZIndex);\n });\n return () => cancelAnimationFrame(raf);\n }, [mounted, domReady, popoverElement, contentElement]);\n const position = fixed ? \"fixed\" : \"absolute\";\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(\n \"div\",\n __spreadProps(__spreadValues({}, wrapperProps), {\n style: __spreadValues({\n // https://floating-ui.com/docs/computeposition#initial-layout\n position,\n top: 0,\n left: 0,\n width: \"max-content\"\n }, wrapperProps == null ? void 0 : wrapperProps.style),\n ref: store == null ? void 0 : store.setPopoverElement,\n children: element\n })\n ),\n [store, position, wrapperProps]\n );\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(PopoverScopedContextProvider, { value: store, children: element }),\n [store]\n );\n props = __spreadProps(__spreadValues({\n // data-placing is not part of the public API. We're setting this here so\n // we can wait for the popover to be positioned before other components\n // move focus into it. For example, this attribute is observed by the\n // Combobox component with the autoSelect behavior.\n \"data-placing\": !positioned || void 0\n }, props), {\n style: __spreadValues({\n position: \"relative\"\n }, props.style)\n });\n props = useDialog(__spreadProps(__spreadValues({\n store,\n modal,\n portal,\n preserveTabOrder,\n preserveTabOrderAnchor: disclosureElement || anchorElement,\n autoFocusOnShow: positioned && autoFocusOnShow\n }, props), {\n portalRef\n }));\n return props;\n }\n);\nvar Popover = createDialogComponent(\n forwardRef(function Popover2(props) {\n const htmlProps = usePopover(props);\n return createElement(TagName, htmlProps);\n }),\n usePopoverProviderContext\n);\n\nexport {\n usePopover,\n Popover\n};\n","\"use client\";\nimport {\n usePopoverStoreProps\n} from \"./XWCFCD3Q.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\n\n// src/hovercard/hovercard-store.ts\nimport * as Core from \"@ariakit/core/hovercard/hovercard-store\";\nfunction useHovercardStoreProps(store, update, props) {\n useStoreProps(store, props, \"timeout\");\n useStoreProps(store, props, \"showTimeout\");\n useStoreProps(store, props, \"hideTimeout\");\n return usePopoverStoreProps(store, update, props);\n}\nfunction useHovercardStore(props = {}) {\n const [store, update] = useStore(Core.createHovercardStore, props);\n return useHovercardStoreProps(store, update, props);\n}\n\nexport {\n useHovercardStoreProps,\n useHovercardStore\n};\n","\"use client\";\nimport {\n useHovercardProviderContext\n} from \"./TWDHCE7Y.js\";\nimport {\n useFocusable\n} from \"./WAZE6NXP.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useIsMouseMoving,\n useMergeRefs\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/hovercard/hovercard-anchor.ts\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { disabledFromProps, invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"a\";\nvar useHovercardAnchor = createHook(\n function useHovercardAnchor2(_a) {\n var _b = _a, { store, showOnHover = true } = _b, props = __objRest(_b, [\"store\", \"showOnHover\"]);\n const context = useHovercardProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"HovercardAnchor must receive a `store` prop or be wrapped in a HovercardProvider component.\"\n );\n const disabled = disabledFromProps(props);\n const showTimeoutRef = useRef(0);\n useEffect(() => () => window.clearTimeout(showTimeoutRef.current), []);\n useEffect(() => {\n const onMouseLeave = (event) => {\n if (!store)\n return;\n const { anchorElement } = store.getState();\n if (!anchorElement)\n return;\n if (event.target !== anchorElement)\n return;\n window.clearTimeout(showTimeoutRef.current);\n showTimeoutRef.current = 0;\n };\n return addGlobalEventListener(\"mouseleave\", onMouseLeave, true);\n }, [store]);\n const onMouseMoveProp = props.onMouseMove;\n const showOnHoverProp = useBooleanEvent(showOnHover);\n const isMouseMoving = useIsMouseMoving();\n const onMouseMove = useEvent((event) => {\n onMouseMoveProp == null ? void 0 : onMouseMoveProp(event);\n if (disabled)\n return;\n if (!store)\n return;\n if (event.defaultPrevented)\n return;\n if (showTimeoutRef.current)\n return;\n if (!isMouseMoving())\n return;\n if (!showOnHoverProp(event))\n return;\n const element = event.currentTarget;\n store.setAnchorElement(element);\n store.setDisclosureElement(element);\n const { showTimeout, timeout } = store.getState();\n const showHovercard = () => {\n showTimeoutRef.current = 0;\n if (!isMouseMoving())\n return;\n store == null ? void 0 : store.setAnchorElement(element);\n store == null ? void 0 : store.show();\n queueMicrotask(() => {\n store == null ? void 0 : store.setDisclosureElement(element);\n });\n };\n const timeoutMs = showTimeout != null ? showTimeout : timeout;\n if (timeoutMs === 0) {\n showHovercard();\n } else {\n showTimeoutRef.current = window.setTimeout(showHovercard, timeoutMs);\n }\n });\n const ref = useCallback(\n (element) => {\n if (!store)\n return;\n const { anchorElement } = store.getState();\n if (anchorElement == null ? void 0 : anchorElement.isConnected)\n return;\n store.setAnchorElement(element);\n },\n [store]\n );\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref),\n onMouseMove\n });\n props = useFocusable(props);\n return props;\n }\n);\nvar HovercardAnchor = forwardRef(function HovercardAnchor2(props) {\n const htmlProps = useHovercardAnchor(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useHovercardAnchor,\n HovercardAnchor\n};\n","\"use client\";\nimport {\n DialogContextProvider,\n DialogScopedContextProvider\n} from \"./XXVAHUAO.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/popover/popover-context.tsx\nvar ctx = createStoreContext(\n [DialogContextProvider],\n [DialogScopedContextProvider]\n);\nvar usePopoverContext = ctx.useContext;\nvar usePopoverScopedContext = ctx.useScopedContext;\nvar usePopoverProviderContext = ctx.useProviderContext;\nvar PopoverContextProvider = ctx.ContextProvider;\nvar PopoverScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n usePopoverContext,\n usePopoverScopedContext,\n usePopoverProviderContext,\n PopoverContextProvider,\n PopoverScopedContextProvider\n};\n","\"use client\";\nimport {\n PopoverContextProvider,\n PopoverScopedContextProvider\n} from \"./TE637IA7.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/hovercard/hovercard-context.tsx\nvar ctx = createStoreContext(\n [PopoverContextProvider],\n [PopoverScopedContextProvider]\n);\nvar useHovercardContext = ctx.useContext;\nvar useHovercardScopedContext = ctx.useScopedContext;\nvar useHovercardProviderContext = ctx.useProviderContext;\nvar HovercardContextProvider = ctx.ContextProvider;\nvar HovercardScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useHovercardContext,\n useHovercardScopedContext,\n useHovercardProviderContext,\n HovercardContextProvider,\n HovercardScopedContextProvider\n};\n","\"use client\";\nimport {\n createHovercardStore\n} from \"../__chunks/BRS7GKWU.js\";\nimport \"../__chunks/MFZZDIHG.js\";\nimport \"../__chunks/5RJNXXU2.js\";\nimport \"../__chunks/WCKXDMU7.js\";\nimport {\n createStore\n} from \"../__chunks/R676XYVY.js\";\nimport {\n defaultValue\n} from \"../__chunks/22HHDS5F.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/tooltip/tooltip-store.ts\nfunction createTooltipStore(props = {}) {\n var _a;\n if (process.env.NODE_ENV !== \"production\") {\n if (props.type === \"label\") {\n console.warn(\n \"The `type` option on the tooltip store is deprecated.\",\n \"Render a visually hidden label or use the `aria-label` or `aria-labelledby` attributes on the anchor element instead.\",\n \"See https://ariakit.org/components/tooltip#tooltip-anchors-must-have-accessible-names\"\n );\n }\n }\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const hovercard = createHovercardStore(__spreadProps(__spreadValues({}, props), {\n placement: defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"top\"\n ),\n hideTimeout: defaultValue(props.hideTimeout, syncState == null ? void 0 : syncState.hideTimeout, 0)\n }));\n const initialState = __spreadProps(__spreadValues({}, hovercard.getState()), {\n type: defaultValue(props.type, syncState == null ? void 0 : syncState.type, \"description\"),\n skipTimeout: defaultValue(props.skipTimeout, syncState == null ? void 0 : syncState.skipTimeout, 300)\n });\n const tooltip = createStore(initialState, hovercard, props.store);\n return __spreadValues(__spreadValues({}, hovercard), tooltip);\n}\nexport {\n createTooltipStore\n};\n","\"use client\";\nimport {\n useHovercardStoreProps\n} from \"./E5E7G32I.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\n\n// src/tooltip/tooltip-store.ts\nimport * as Core from \"@ariakit/core/tooltip/tooltip-store\";\nfunction useTooltipStoreProps(store, update, props) {\n useStoreProps(store, props, \"type\");\n useStoreProps(store, props, \"skipTimeout\");\n return useHovercardStoreProps(store, update, props);\n}\nfunction useTooltipStore(props = {}) {\n const [store, update] = useStore(Core.createTooltipStore, props);\n return useTooltipStoreProps(store, update, props);\n}\n\nexport {\n useTooltipStoreProps,\n useTooltipStore\n};\n","\"use client\";\nimport {\n useDialogStoreProps\n} from \"./I62TROYO.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\nimport {\n useUpdateEffect\n} from \"./6O5OEQGF.js\";\n\n// src/popover/popover-store.ts\nimport * as Core from \"@ariakit/core/popover/popover-store\";\nfunction usePopoverStoreProps(store, update, props) {\n useUpdateEffect(update, [props.popover]);\n useStoreProps(store, props, \"placement\");\n return useDialogStoreProps(store, update, props);\n}\nfunction usePopoverStore(props = {}) {\n const [store, update] = useStore(Core.createPopoverStore, props);\n return usePopoverStoreProps(store, update, props);\n}\n\nexport {\n usePopoverStoreProps,\n usePopoverStore\n};\n","\"use client\";\nimport {\n useHovercardAnchor\n} from \"../__chunks/FWINX72I.js\";\nimport {\n useTooltipProviderContext\n} from \"../__chunks/3OMHZVJD.js\";\nimport \"../__chunks/TWDHCE7Y.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport \"../__chunks/WAZE6NXP.js\";\nimport \"../__chunks/SHA3WOPI.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/5M6RSQEC.js\";\nimport {\n useEvent\n} from \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/tooltip/tooltip-anchor.ts\nimport { useEffect, useRef } from \"react\";\nimport { invariant, isFalsyBooleanCallback } from \"@ariakit/core/utils/misc\";\nimport { createStore, sync } from \"@ariakit/core/utils/store\";\nvar TagName = \"div\";\nvar globalStore = createStore({\n activeStore: null\n});\nvar useTooltipAnchor = createHook(\n function useTooltipAnchor2(_a) {\n var _b = _a, { store, showOnHover = true } = _b, props = __objRest(_b, [\"store\", \"showOnHover\"]);\n const context = useTooltipProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"TooltipAnchor must receive a `store` prop or be wrapped in a TooltipProvider component.\"\n );\n const canShowOnHoverRef = useRef(false);\n useEffect(() => {\n return sync(store, [\"mounted\"], (state) => {\n if (state.mounted)\n return;\n canShowOnHoverRef.current = false;\n });\n }, [store]);\n useEffect(() => {\n return sync(store, [\"mounted\", \"skipTimeout\"], (state) => {\n if (!store)\n return;\n if (state.mounted) {\n const { activeStore } = globalStore.getState();\n if (activeStore !== store) {\n activeStore == null ? void 0 : activeStore.hide();\n }\n return globalStore.setState(\"activeStore\", store);\n }\n const id = setTimeout(() => {\n const { activeStore } = globalStore.getState();\n if (activeStore !== store)\n return;\n globalStore.setState(\"activeStore\", null);\n }, state.skipTimeout);\n return () => clearTimeout(id);\n });\n }, [store]);\n const onMouseEnterProp = props.onMouseEnter;\n const onMouseEnter = useEvent((event) => {\n onMouseEnterProp == null ? void 0 : onMouseEnterProp(event);\n canShowOnHoverRef.current = true;\n });\n const onFocusVisibleProp = props.onFocusVisible;\n const onFocusVisible = useEvent((event) => {\n onFocusVisibleProp == null ? void 0 : onFocusVisibleProp(event);\n if (event.defaultPrevented)\n return;\n store == null ? void 0 : store.setAnchorElement(event.currentTarget);\n store == null ? void 0 : store.show();\n });\n const onBlurProp = props.onBlur;\n const onBlur = useEvent((event) => {\n onBlurProp == null ? void 0 : onBlurProp(event);\n if (event.defaultPrevented)\n return;\n const { activeStore } = globalStore.getState();\n if (activeStore === store) {\n globalStore.setState(\"activeStore\", null);\n }\n });\n const type = store.useState(\"type\");\n const contentId = store.useState((state) => {\n var _a2;\n return (_a2 = state.contentElement) == null ? void 0 : _a2.id;\n });\n props = __spreadProps(__spreadValues({\n \"aria-labelledby\": type === \"label\" ? contentId : void 0\n }, props), {\n onMouseEnter,\n onFocusVisible,\n onBlur\n });\n props = useHovercardAnchor(__spreadValues({\n store,\n showOnHover(event) {\n if (!canShowOnHoverRef.current)\n return false;\n if (isFalsyBooleanCallback(showOnHover, event))\n return false;\n const { activeStore } = globalStore.getState();\n if (!activeStore)\n return true;\n store == null ? void 0 : store.show();\n return false;\n }\n }, props));\n return props;\n }\n);\nvar TooltipAnchor = forwardRef(function TooltipAnchor2(props) {\n const htmlProps = useTooltipAnchor(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n TooltipAnchor,\n useTooltipAnchor\n};\n","\"use client\";\n\n// src/popover/popover-arrow-path.ts\nvar POPOVER_ARROW_PATH = \"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\";\n\nexport {\n POPOVER_ARROW_PATH\n};\n","\"use client\";\nimport {\n POPOVER_ARROW_PATH\n} from \"./QFL5V2DO.js\";\nimport {\n usePopoverContext\n} from \"./TE637IA7.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useMergeRefs,\n useSafeLayoutEffect\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/popover/popover-arrow.tsx\nimport { useMemo, useState } from \"react\";\nimport { getWindow } from \"@ariakit/core/utils/dom\";\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar defaultSize = 30;\nvar halfDefaultSize = defaultSize / 2;\nvar rotateMap = {\n top: `rotate(180 ${halfDefaultSize} ${halfDefaultSize})`,\n right: `rotate(-90 ${halfDefaultSize} ${halfDefaultSize})`,\n bottom: `rotate(0 ${halfDefaultSize} ${halfDefaultSize})`,\n left: `rotate(90 ${halfDefaultSize} ${halfDefaultSize})`\n};\nfunction useComputedStyle(store) {\n const [style, setStyle] = useState();\n const contentElement = store.useState(\"contentElement\");\n useSafeLayoutEffect(() => {\n if (!contentElement)\n return;\n const win = getWindow(contentElement);\n const computedStyle = win.getComputedStyle(contentElement);\n setStyle(computedStyle);\n }, [contentElement]);\n return style;\n}\nvar usePopoverArrow = createHook(\n function usePopoverArrow2(_a) {\n var _b = _a, { store, size = defaultSize } = _b, props = __objRest(_b, [\"store\", \"size\"]);\n const context = usePopoverContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"PopoverArrow must be wrapped in a Popover component.\"\n );\n const dir = store.useState(\n (state) => state.currentPlacement.split(\"-\")[0]\n );\n const style = useComputedStyle(store);\n const fill = (style == null ? void 0 : style.getPropertyValue(\"background-color\")) || \"none\";\n const stroke = (style == null ? void 0 : style.getPropertyValue(`border-${dir}-color`)) || \"none\";\n const borderWidth = (style == null ? void 0 : style.getPropertyValue(`border-${dir}-width`)) || \"0px\";\n const strokeWidth = parseInt(borderWidth) * 2 * (defaultSize / size);\n const transform = rotateMap[dir];\n const children = useMemo(\n () => /* @__PURE__ */ jsx(\"svg\", { display: \"block\", viewBox: \"0 0 30 30\", children: /* @__PURE__ */ jsxs(\"g\", { transform, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"none\", d: POPOVER_ARROW_PATH }),\n /* @__PURE__ */ jsx(\"path\", { stroke: \"none\", d: POPOVER_ARROW_PATH })\n ] }) }),\n [transform]\n );\n props = __spreadProps(__spreadValues({\n children,\n \"aria-hidden\": true\n }, props), {\n ref: useMergeRefs(store.setArrowElement, props.ref),\n style: __spreadValues({\n // server side rendering\n position: \"absolute\",\n fontSize: size,\n width: \"1em\",\n height: \"1em\",\n pointerEvents: \"none\",\n fill,\n stroke,\n strokeWidth\n }, props.style)\n });\n return removeUndefinedValues(props);\n }\n);\nvar PopoverArrow = forwardRef(function PopoverArrow2(props) {\n const htmlProps = usePopoverArrow(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n usePopoverArrow,\n PopoverArrow\n};\n","\"use client\";\nimport {\n usePopoverArrow\n} from \"../__chunks/UFM3D5TN.js\";\nimport \"../__chunks/QFL5V2DO.js\";\nimport {\n useTooltipContext\n} from \"../__chunks/3OMHZVJD.js\";\nimport \"../__chunks/TWDHCE7Y.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/5M6RSQEC.js\";\nimport \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport {\n __objRest,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/tooltip/tooltip-arrow.ts\nimport { invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"div\";\nvar useTooltipArrow = createHook(\n function useTooltipArrow2(_a) {\n var _b = _a, { store, size = 16 } = _b, props = __objRest(_b, [\"store\", \"size\"]);\n const context = useTooltipContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"TooltipArrow must be wrapped in a Tooltip component.\"\n );\n props = usePopoverArrow(__spreadValues({ store, size }, props));\n return props;\n }\n);\nvar TooltipArrow = forwardRef(function TooltipArrow2(props) {\n const htmlProps = useTooltipArrow(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n TooltipArrow,\n useTooltipArrow\n};\n","\"use client\";\nimport {\n TooltipContextProvider\n} from \"../__chunks/3OMHZVJD.js\";\nimport \"../__chunks/TWDHCE7Y.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport \"../__chunks/5M6RSQEC.js\";\nimport {\n useTooltipStore\n} from \"../__chunks/WKII7I2E.js\";\nimport \"../__chunks/E5E7G32I.js\";\nimport \"../__chunks/XWCFCD3Q.js\";\nimport \"../__chunks/I62TROYO.js\";\nimport \"../__chunks/HZJ2XALY.js\";\nimport \"../__chunks/EKQEJRUF.js\";\nimport \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport \"../__chunks/4R3V3JGP.js\";\n\n// src/tooltip/tooltip-provider.tsx\nimport { jsx } from \"react/jsx-runtime\";\nfunction TooltipProvider(props = {}) {\n const store = useTooltipStore(props);\n return /* @__PURE__ */ jsx(TooltipContextProvider, { value: store, children: props.children });\n}\nexport {\n TooltipProvider\n};\n","\"use client\";\nimport {\n useHovercard\n} from \"../__chunks/6YZEXKNV.js\";\nimport \"../__chunks/YMV43K4F.js\";\nimport \"../__chunks/BYD75WXE.js\";\nimport {\n createDialogComponent\n} from \"../__chunks/KXSO5EFT.js\";\nimport \"../__chunks/3N4FFVWW.js\";\nimport \"../__chunks/NOYDL3YS.js\";\nimport \"../__chunks/BULCTPRV.js\";\nimport \"../__chunks/6BJGLK2C.js\";\nimport \"../__chunks/CS347UVZ.js\";\nimport \"../__chunks/IUB2BTEK.js\";\nimport \"../__chunks/XHJGS6Z5.js\";\nimport \"../__chunks/TL67WVI6.js\";\nimport \"../__chunks/MKDDWKFK.js\";\nimport \"../__chunks/72E5EPFF.js\";\nimport \"../__chunks/OOBDFMJL.js\";\nimport \"../__chunks/X6WIMZJE.js\";\nimport \"../__chunks/677M2CI3.js\";\nimport \"../__chunks/6GXEOXGT.js\";\nimport \"../__chunks/WCIYB4YS.js\";\nimport \"../__chunks/UYRJLDVS.js\";\nimport \"../__chunks/CK3UW3AQ.js\";\nimport \"../__chunks/WKWX2XLD.js\";\nimport \"../__chunks/7452U3HH.js\";\nimport \"../__chunks/XPF5GU3Q.js\";\nimport \"../__chunks/CBTO7DFZ.js\";\nimport \"../__chunks/RQZGFHI2.js\";\nimport {\n TooltipScopedContextProvider,\n useTooltipProviderContext\n} from \"../__chunks/3OMHZVJD.js\";\nimport \"../__chunks/TWDHCE7Y.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport \"../__chunks/WAZE6NXP.js\";\nimport \"../__chunks/SHA3WOPI.js\";\nimport \"../__chunks/IFT5JEUU.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/5M6RSQEC.js\";\nimport \"../__chunks/I62TROYO.js\";\nimport \"../__chunks/HZJ2XALY.js\";\nimport \"../__chunks/EKQEJRUF.js\";\nimport {\n useWrapElement\n} from \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/tooltip/tooltip.tsx\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { invariant, isFalsyBooleanCallback } from \"@ariakit/core/utils/misc\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar useTooltip = createHook(\n function useTooltip2(_a) {\n var _b = _a, {\n store,\n portal = true,\n gutter = 8,\n preserveTabOrder = false,\n hideOnHoverOutside = true,\n hideOnInteractOutside = true\n } = _b, props = __objRest(_b, [\n \"store\",\n \"portal\",\n \"gutter\",\n \"preserveTabOrder\",\n \"hideOnHoverOutside\",\n \"hideOnInteractOutside\"\n ]);\n const context = useTooltipProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Tooltip must receive a `store` prop or be wrapped in a TooltipProvider component.\"\n );\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(TooltipScopedContextProvider, { value: store, children: element }),\n [store]\n );\n const role = store.useState(\n (state) => state.type === \"description\" ? \"tooltip\" : \"none\"\n );\n props = __spreadValues({ role }, props);\n props = useHovercard(__spreadProps(__spreadValues({}, props), {\n store,\n portal,\n gutter,\n preserveTabOrder,\n hideOnHoverOutside(event) {\n if (isFalsyBooleanCallback(hideOnHoverOutside, event))\n return false;\n const anchorElement = store == null ? void 0 : store.getState().anchorElement;\n if (!anchorElement)\n return true;\n if (\"focusVisible\" in anchorElement.dataset)\n return false;\n return true;\n },\n hideOnInteractOutside: (event) => {\n if (isFalsyBooleanCallback(hideOnInteractOutside, event))\n return false;\n const anchorElement = store == null ? void 0 : store.getState().anchorElement;\n if (!anchorElement)\n return true;\n if (contains(anchorElement, event.target))\n return false;\n return true;\n }\n }));\n return props;\n }\n);\nvar Tooltip = createDialogComponent(\n forwardRef(function Tooltip2(props) {\n const htmlProps = useTooltip(props);\n return createElement(TagName, htmlProps);\n }),\n useTooltipProviderContext\n);\nexport {\n Tooltip,\n useTooltip\n};\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle