{"version":3,"file":"component---src-templates-blog-post-js-ed4ed4b90e2e95419406.js","mappings":"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","sources":["webpack://soyio-landing/./src/features/Blog/BlogPostItem/index.js","webpack://soyio-landing/./src/features/Blog/BlogPostAuthor/index.js","webpack://soyio-landing/./src/features/Blog/BlogPostCta/index.js","webpack://soyio-landing/./node_modules/@radix-ui/primitive/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-compose-refs/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-context/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-slot/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-primitive/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-use-callback-ref/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-use-escape-keydown/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-use-layout-effect/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-id/dist/index.mjs","webpack://soyio-landing/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://soyio-landing/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://soyio-landing/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://soyio-landing/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://soyio-landing/./node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-arrow/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-popper/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-use-size/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-portal/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-presence/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-use-controllable-state/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-visually-hidden/dist/index.mjs","webpack://soyio-landing/./node_modules/@radix-ui/react-tooltip/dist/index.mjs","webpack://soyio-landing/./src/components/Tooltip/index.js","webpack://soyio-landing/./src/features/Blog/BlogShareActions/index.js","webpack://soyio-landing/./src/utils/getTimeToRead.js","webpack://soyio-landing/./src/templates/blog-post.js","webpack://soyio-landing/./src/utils/getAuthors.js"],"sourcesContent":["import React from \"react\";\nimport { Link } from \"gatsby\";\nimport { GatsbyImage } from \"gatsby-plugin-image\";\n\nimport getAuthors from '../../../utils/getAuthors';\n\nexport default function BlogPostItem({ post, to, ...props }) {\n return (\n \n \n
\n
\n {post.publishedAt}\n {post.categories\n ? post.categories.map((tag) => (\n {tag.title}\n ))\n : null}\n
\n

{post.title}

\n

\n por \n {getAuthors(post).map((author) => author.name).join(' & ')}\n

\n
\n \n );\n}\n","import React from 'react'\nimport { GatsbyImage } from \"gatsby-plugin-image\"\n\nimport './_styles.scss'\n\nexport default function BlogPostAuthor({ author, ...props }) {\n return (\n
\n \n
\n Acerca del autor\n

{author.name}

\n

{author.title}

\n Ir a su perfil >\n
\n
\n )\n}\n","import React from \"react\";\n\nimport Button from \"../../../components/Button\";\n\nimport \"./_styles.scss\";\nimport { TYPEFORM_URL } from \"../../../constants/links\";\nimport useFathomEvent from '../../../hooks/useFathomEvent';\nexport default function BlogPostCta({ className }) {\n const trackFathomEvent = useFathomEvent('cta-click cta-blog-post');\n\n return (\n
\n
\n

Desbloquea la privacidad como ventaja competitiva

\n {\n trackFathomEvent();\n }}\n />\n
\n );\n}\n","// packages/core/primitive/src/primitive.tsx\nfunction composeEventHandlers(originalEventHandler, ourEventHandler, { checkForDefaultPrevented = true } = {}) {\n return function handleEvent(event) {\n originalEventHandler?.(event);\n if (checkForDefaultPrevented === false || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\nexport {\n composeEventHandlers\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/compose-refs/src/composeRefs.tsx\nimport * as React from \"react\";\nfunction setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => refs.forEach((ref) => setRef(ref, node));\n}\nfunction useComposedRefs(...refs) {\n return React.useCallback(composeRefs(...refs), refs);\n}\nexport {\n composeRefs,\n useComposedRefs\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/context/src/createContext.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction createContext2(rootComponentName, defaultContext) {\n const Context = React.createContext(defaultContext);\n const Provider = (props) => {\n const { children, ...context } = props;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName) {\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n}\nfunction createContextScope(scopeName, createContextScopeDeps = []) {\n let defaultContexts = [];\n function createContext3(rootComponentName, defaultContext) {\n const BaseContext = React.createContext(defaultContext);\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n const Provider = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const value = React.useMemo(() => context, Object.values(context));\n return /* @__PURE__ */ jsx(Context.Provider, { value, children });\n };\n Provider.displayName = rootComponentName + \"Provider\";\n function useContext2(consumerName, scope) {\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== void 0) return defaultContext;\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n return [Provider, useContext2];\n }\n const createScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts]\n );\n };\n };\n createScope.scopeName = scopeName;\n return [createContext3, composeContextScopes(createScope, ...createContextScopeDeps)];\n}\nfunction composeContextScopes(...scopes) {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n const createScope = () => {\n const scopeHooks = scopes.map((createScope2) => ({\n useScope: createScope2(),\n scopeName: createScope2.scopeName\n }));\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes2, { useScope, scopeName }) => {\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes2, ...currentScope };\n }, {});\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\nexport {\n createContext2 as createContext,\n createContextScope\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/slot/src/Slot.tsx\nimport * as React from \"react\";\nimport { composeRefs } from \"@radix-ui/react-compose-refs\";\nimport { Fragment, jsx } from \"react/jsx-runtime\";\nvar Slot = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n const childrenArray = React.Children.toArray(children);\n const slottable = childrenArray.find(isSlottable);\n if (slottable) {\n const newElement = slottable.props.children;\n const newChildren = childrenArray.map((child) => {\n if (child === slottable) {\n if (React.Children.count(newElement) > 1) return React.Children.only(null);\n return React.isValidElement(newElement) ? newElement.props.children : null;\n } else {\n return child;\n }\n });\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children: React.isValidElement(newElement) ? React.cloneElement(newElement, void 0, newChildren) : null });\n }\n return /* @__PURE__ */ jsx(SlotClone, { ...slotProps, ref: forwardedRef, children });\n});\nSlot.displayName = \"Slot\";\nvar SlotClone = React.forwardRef((props, forwardedRef) => {\n const { children, ...slotProps } = props;\n if (React.isValidElement(children)) {\n const childrenRef = getElementRef(children);\n return React.cloneElement(children, {\n ...mergeProps(slotProps, children.props),\n // @ts-ignore\n ref: forwardedRef ? composeRefs(forwardedRef, childrenRef) : childrenRef\n });\n }\n return React.Children.count(children) > 1 ? React.Children.only(null) : null;\n});\nSlotClone.displayName = \"SlotClone\";\nvar Slottable = ({ children }) => {\n return /* @__PURE__ */ jsx(Fragment, { children });\n};\nfunction isSlottable(child) {\n return React.isValidElement(child) && child.type === Slottable;\n}\nfunction mergeProps(slotProps, childProps) {\n const overrideProps = { ...childProps };\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args) => {\n childPropValue(...args);\n slotPropValue(...args);\n };\n } else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n } else if (propName === \"style\") {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === \"className\") {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(\" \");\n }\n }\n return { ...slotProps, ...overrideProps };\n}\nfunction getElementRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nvar Root = Slot;\nexport {\n Root,\n Slot,\n Slottable\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/primitive/src/Primitive.tsx\nimport * as React from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { Slot } from \"@radix-ui/react-slot\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NODES = [\n \"a\",\n \"button\",\n \"div\",\n \"form\",\n \"h2\",\n \"h3\",\n \"img\",\n \"input\",\n \"label\",\n \"li\",\n \"nav\",\n \"ol\",\n \"p\",\n \"span\",\n \"svg\",\n \"ul\"\n];\nvar Primitive = NODES.reduce((primitive, node) => {\n const Node = React.forwardRef((props, forwardedRef) => {\n const { asChild, ...primitiveProps } = props;\n const Comp = asChild ? Slot : node;\n if (typeof window !== \"undefined\") {\n window[Symbol.for(\"radix-ui\")] = true;\n }\n return /* @__PURE__ */ jsx(Comp, { ...primitiveProps, ref: forwardedRef });\n });\n Node.displayName = `Primitive.${node}`;\n return { ...primitive, [node]: Node };\n}, {});\nfunction dispatchDiscreteCustomEvent(target, event) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\nvar Root = Primitive;\nexport {\n Primitive,\n Root,\n dispatchDiscreteCustomEvent\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-callback-ref/src/useCallbackRef.tsx\nimport * as React from \"react\";\nfunction useCallbackRef(callback) {\n const callbackRef = React.useRef(callback);\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n return React.useMemo(() => (...args) => callbackRef.current?.(...args), []);\n}\nexport {\n useCallbackRef\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/dismissable-layer/src/DismissableLayer.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { Primitive, dispatchDiscreteCustomEvent } from \"@radix-ui/react-primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nimport { useEscapeKeydown } from \"@radix-ui/react-use-escape-keydown\";\nimport { jsx } from \"react/jsx-runtime\";\nvar DISMISSABLE_LAYER_NAME = \"DismissableLayer\";\nvar CONTEXT_UPDATE = \"dismissableLayer.update\";\nvar POINTER_DOWN_OUTSIDE = \"dismissableLayer.pointerDownOutside\";\nvar FOCUS_OUTSIDE = \"dismissableLayer.focusOutside\";\nvar originalBodyPointerEvents;\nvar DismissableLayerContext = React.createContext({\n layers: /* @__PURE__ */ new Set(),\n layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),\n branches: /* @__PURE__ */ new Set()\n});\nvar DismissableLayer = React.forwardRef(\n (props, forwardedRef) => {\n const {\n disableOutsidePointerEvents = false,\n onEscapeKeyDown,\n onPointerDownOutside,\n onFocusOutside,\n onInteractOutside,\n onDismiss,\n ...layerProps\n } = props;\n const context = React.useContext(DismissableLayerContext);\n const [node, setNode] = React.useState(null);\n const ownerDocument = node?.ownerDocument ?? globalThis?.document;\n const [, force] = React.useState({});\n const composedRefs = useComposedRefs(forwardedRef, (node2) => setNode(node2));\n const layers = Array.from(context.layers);\n const [highestLayerWithOutsidePointerEventsDisabled] = [...context.layersWithOutsidePointerEventsDisabled].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = layers.indexOf(highestLayerWithOutsidePointerEventsDisabled);\n const index = node ? layers.indexOf(node) : -1;\n const isBodyPointerEventsDisabled = context.layersWithOutsidePointerEventsDisabled.size > 0;\n const isPointerEventsEnabled = index >= highestLayerWithOutsidePointerEventsDisabledIndex;\n const pointerDownOutside = usePointerDownOutside((event) => {\n const target = event.target;\n const isPointerDownOnBranch = [...context.branches].some((branch) => branch.contains(target));\n if (!isPointerEventsEnabled || isPointerDownOnBranch) return;\n onPointerDownOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n const focusOutside = useFocusOutside((event) => {\n const target = event.target;\n const isFocusInBranch = [...context.branches].some((branch) => branch.contains(target));\n if (isFocusInBranch) return;\n onFocusOutside?.(event);\n onInteractOutside?.(event);\n if (!event.defaultPrevented) onDismiss?.();\n }, ownerDocument);\n useEscapeKeydown((event) => {\n const isHighestLayer = index === context.layers.size - 1;\n if (!isHighestLayer) return;\n onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }, ownerDocument);\n React.useEffect(() => {\n if (!node) return;\n if (disableOutsidePointerEvents) {\n if (context.layersWithOutsidePointerEventsDisabled.size === 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = \"none\";\n }\n context.layersWithOutsidePointerEventsDisabled.add(node);\n }\n context.layers.add(node);\n dispatchUpdate();\n return () => {\n if (disableOutsidePointerEvents && context.layersWithOutsidePointerEventsDisabled.size === 1) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n };\n }, [node, ownerDocument, disableOutsidePointerEvents, context]);\n React.useEffect(() => {\n return () => {\n if (!node) return;\n context.layers.delete(node);\n context.layersWithOutsidePointerEventsDisabled.delete(node);\n dispatchUpdate();\n };\n }, [node, context]);\n React.useEffect(() => {\n const handleUpdate = () => force({});\n document.addEventListener(CONTEXT_UPDATE, handleUpdate);\n return () => document.removeEventListener(CONTEXT_UPDATE, handleUpdate);\n }, []);\n return /* @__PURE__ */ jsx(\n Primitive.div,\n {\n ...layerProps,\n ref: composedRefs,\n style: {\n pointerEvents: isBodyPointerEventsDisabled ? isPointerEventsEnabled ? \"auto\" : \"none\" : void 0,\n ...props.style\n },\n onFocusCapture: composeEventHandlers(props.onFocusCapture, focusOutside.onFocusCapture),\n onBlurCapture: composeEventHandlers(props.onBlurCapture, focusOutside.onBlurCapture),\n onPointerDownCapture: composeEventHandlers(\n props.onPointerDownCapture,\n pointerDownOutside.onPointerDownCapture\n )\n }\n );\n }\n);\nDismissableLayer.displayName = DISMISSABLE_LAYER_NAME;\nvar BRANCH_NAME = \"DismissableLayerBranch\";\nvar DismissableLayerBranch = React.forwardRef((props, forwardedRef) => {\n const context = React.useContext(DismissableLayerContext);\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(forwardedRef, ref);\n React.useEffect(() => {\n const node = ref.current;\n if (node) {\n context.branches.add(node);\n return () => {\n context.branches.delete(node);\n };\n }\n }, [context.branches]);\n return /* @__PURE__ */ jsx(Primitive.div, { ...props, ref: composedRefs });\n});\nDismissableLayerBranch.displayName = BRANCH_NAME;\nfunction usePointerDownOutside(onPointerDownOutside, ownerDocument = globalThis?.document) {\n const handlePointerDownOutside = useCallbackRef(onPointerDownOutside);\n const isPointerInsideReactTreeRef = React.useRef(false);\n const handleClickRef = React.useRef(() => {\n });\n React.useEffect(() => {\n const handlePointerDown = (event) => {\n if (event.target && !isPointerInsideReactTreeRef.current) {\n let handleAndDispatchPointerDownOutsideEvent2 = function() {\n handleAndDispatchCustomEvent(\n POINTER_DOWN_OUTSIDE,\n handlePointerDownOutside,\n eventDetail,\n { discrete: true }\n );\n };\n var handleAndDispatchPointerDownOutsideEvent = handleAndDispatchPointerDownOutsideEvent2;\n const eventDetail = { originalEvent: event };\n if (event.pointerType === \"touch\") {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n handleClickRef.current = handleAndDispatchPointerDownOutsideEvent2;\n ownerDocument.addEventListener(\"click\", handleClickRef.current, { once: true });\n } else {\n handleAndDispatchPointerDownOutsideEvent2();\n }\n } else {\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n }\n isPointerInsideReactTreeRef.current = false;\n };\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener(\"pointerdown\", handlePointerDown);\n }, 0);\n return () => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener(\"pointerdown\", handlePointerDown);\n ownerDocument.removeEventListener(\"click\", handleClickRef.current);\n };\n }, [ownerDocument, handlePointerDownOutside]);\n return {\n // ensures we check React component tree (not just DOM tree)\n onPointerDownCapture: () => isPointerInsideReactTreeRef.current = true\n };\n}\nfunction useFocusOutside(onFocusOutside, ownerDocument = globalThis?.document) {\n const handleFocusOutside = useCallbackRef(onFocusOutside);\n const isFocusInsideReactTreeRef = React.useRef(false);\n React.useEffect(() => {\n const handleFocus = (event) => {\n if (event.target && !isFocusInsideReactTreeRef.current) {\n const eventDetail = { originalEvent: event };\n handleAndDispatchCustomEvent(FOCUS_OUTSIDE, handleFocusOutside, eventDetail, {\n discrete: false\n });\n }\n };\n ownerDocument.addEventListener(\"focusin\", handleFocus);\n return () => ownerDocument.removeEventListener(\"focusin\", handleFocus);\n }, [ownerDocument, handleFocusOutside]);\n return {\n onFocusCapture: () => isFocusInsideReactTreeRef.current = true,\n onBlurCapture: () => isFocusInsideReactTreeRef.current = false\n };\n}\nfunction dispatchUpdate() {\n const event = new CustomEvent(CONTEXT_UPDATE);\n document.dispatchEvent(event);\n}\nfunction handleAndDispatchCustomEvent(name, handler, detail, { discrete }) {\n const target = detail.originalEvent.target;\n const event = new CustomEvent(name, { bubbles: false, cancelable: true, detail });\n if (handler) target.addEventListener(name, handler, { once: true });\n if (discrete) {\n dispatchDiscreteCustomEvent(target, event);\n } else {\n target.dispatchEvent(event);\n }\n}\nvar Root = DismissableLayer;\nvar Branch = DismissableLayerBranch;\nexport {\n Branch,\n DismissableLayer,\n DismissableLayerBranch,\n Root\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-escape-keydown/src/useEscapeKeydown.tsx\nimport * as React from \"react\";\nimport { useCallbackRef } from \"@radix-ui/react-use-callback-ref\";\nfunction useEscapeKeydown(onEscapeKeyDownProp, ownerDocument = globalThis?.document) {\n const onEscapeKeyDown = useCallbackRef(onEscapeKeyDownProp);\n React.useEffect(() => {\n const handleKeyDown = (event) => {\n if (event.key === \"Escape\") {\n onEscapeKeyDown(event);\n }\n };\n ownerDocument.addEventListener(\"keydown\", handleKeyDown, { capture: true });\n return () => ownerDocument.removeEventListener(\"keydown\", handleKeyDown, { capture: true });\n }, [onEscapeKeyDown, ownerDocument]);\n}\nexport {\n useEscapeKeydown\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/use-layout-effect/src/useLayoutEffect.tsx\nimport * as React from \"react\";\nvar useLayoutEffect2 = Boolean(globalThis?.document) ? React.useLayoutEffect : () => {\n};\nexport {\n useLayoutEffect2 as useLayoutEffect\n};\n//# sourceMappingURL=index.mjs.map\n","// packages/react/id/src/id.tsx\nimport * as React from \"react\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useReactId = React[\"useId\".toString()] || (() => void 0);\nvar count = 0;\nfunction useId(deterministicId) {\n const [id, setId] = React.useState(useReactId());\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : \"\");\n}\nexport {\n useId\n};\n//# sourceMappingURL=index.mjs.map\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 ...rects.floating,\n x,\n y\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 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 if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\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$map$so;\n const placement = (_overflowsData$map$so = overflowsData.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$map$so[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 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 overflowAvailableHeight = height - overflow[heightSide];\n const overflowAvailableWidth = width - overflow[widthSide];\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if (isYAxis) {\n const maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\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","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\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, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, 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\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\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 const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\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 + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\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 x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\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 // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.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 let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\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