{"version":3,"file":"hui-DZ3grkaJ.js","sources":["../../../../node_modules/@react-aria/utils/dist/useLayoutEffect.mjs","../../../../node_modules/@react-aria/utils/dist/useEffectEvent.mjs","../../../../node_modules/@react-aria/utils/dist/domHelpers.mjs","../../../../node_modules/@react-aria/utils/dist/platform.mjs","../../../../node_modules/@react-aria/utils/dist/isVirtualEvent.mjs","../../../../node_modules/@react-aria/interactions/dist/utils.mjs","../../../../node_modules/@react-aria/interactions/dist/useFocus.mjs","../../../../node_modules/@react-aria/interactions/dist/useFocusVisible.mjs","../../../../node_modules/@react-aria/interactions/dist/useFocusWithin.mjs","../../../../node_modules/@react-aria/interactions/dist/useHover.mjs","../../../../node_modules/@react-aria/focus/dist/useFocusRing.mjs","../../../../node_modules/@headlessui/react/dist/utils/env.js","../../../../node_modules/@headlessui/react/dist/utils/owner.js","../../../../node_modules/@headlessui/react/dist/utils/micro-task.js","../../../../node_modules/@headlessui/react/dist/utils/disposables.js","../../../../node_modules/@headlessui/react/dist/hooks/use-disposables.js","../../../../node_modules/@headlessui/react/dist/hooks/use-iso-morphic-effect.js","../../../../node_modules/@headlessui/react/dist/hooks/use-latest-value.js","../../../../node_modules/@headlessui/react/dist/hooks/use-event.js","../../../../node_modules/@headlessui/react/dist/hooks/use-active-press.js","../../../../node_modules/@headlessui/react/dist/internal/disabled.js","../../../../node_modules/@headlessui/react/dist/utils/class-names.js","../../../../node_modules/@headlessui/react/dist/utils/match.js","../../../../node_modules/@headlessui/react/dist/utils/render.js","../../../../node_modules/@headlessui/react/dist/components/button/button.js","../../../../node_modules/@headlessui/react/dist/hooks/use-controllable.js","../../../../node_modules/@headlessui/react/dist/hooks/use-default-value.js","../../../../node_modules/@headlessui/react/dist/utils/form.js","../../../../node_modules/@headlessui/react/dist/internal/hidden.js","../../../../node_modules/@headlessui/react/dist/internal/form-fields.js","../../../../node_modules/@headlessui/react/dist/internal/id.js","../../../../node_modules/@headlessui/react/dist/utils/bugs.js","../../../../node_modules/@headlessui/react/dist/hooks/use-sync-refs.js","../../../../node_modules/@headlessui/react/dist/components/description/description.js","../../../../node_modules/@headlessui/react/dist/components/keyboard.js","../../../../node_modules/@headlessui/react/dist/components/label/label.js","../../../../node_modules/@headlessui/react/dist/components/checkbox/checkbox.js","../../../../node_modules/@headlessui/react/dist/internal/close-provider.js","../../../../node_modules/@headlessui/react/dist/components/close-button/close-button.js","../../../../node_modules/@headlessui/react/dist/hooks/use-by-comparator.js","../../../../node_modules/@headlessui/react/dist/hooks/use-element-size.js","../../../../node_modules/@headlessui/react/dist/utils/default-map.js","../../../../node_modules/@headlessui/react/dist/utils/store.js","../../../../node_modules/@headlessui/react/dist/hooks/use-store.js","../../../../node_modules/@headlessui/react/dist/hooks/use-is-top-layer.js","../../../../node_modules/@headlessui/react/dist/hooks/use-inert-others.js","../../../../node_modules/@headlessui/react/dist/hooks/use-on-disappear.js","../../../../node_modules/@headlessui/react/dist/utils/focus-management.js","../../../../node_modules/@headlessui/react/dist/utils/platform.js","../../../../node_modules/@headlessui/react/dist/hooks/use-document-event.js","../../../../node_modules/@headlessui/react/dist/hooks/use-window-event.js","../../../../node_modules/@headlessui/react/dist/hooks/use-outside-click.js","../../../../node_modules/@headlessui/react/dist/hooks/use-owner.js","../../../../node_modules/@headlessui/react/dist/hooks/use-event-listener.js","../../../../node_modules/@headlessui/react/dist/hooks/use-resolve-button-type.js","../../../../node_modules/@headlessui/react/dist/hooks/document-overflow/adjust-scrollbar-padding.js","../../../../node_modules/@headlessui/react/dist/hooks/document-overflow/handle-ios-locking.js","../../../../node_modules/@headlessui/react/dist/hooks/document-overflow/prevent-scroll.js","../../../../node_modules/@headlessui/react/dist/hooks/document-overflow/overflow-store.js","../../../../node_modules/@headlessui/react/dist/hooks/document-overflow/use-document-overflow.js","../../../../node_modules/@headlessui/react/dist/hooks/use-scroll-lock.js","../../../../node_modules/@headlessui/react/dist/utils/once.js","../../../../node_modules/@headlessui/react/dist/hooks/use-flags.js","../../../../node_modules/@headlessui/react/dist/hooks/use-transition.js","../../../../node_modules/@headlessui/react/dist/hooks/use-watch.js","../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../../node_modules/@floating-ui/react/dist/floating-ui.react.utils.mjs","../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../../node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","../../../../node_modules/@floating-ui/react/dist/floating-ui.react.mjs","../../../../node_modules/@headlessui/react/dist/internal/floating.js","../../../../node_modules/@headlessui/react/dist/internal/open-closed.js","../../../../node_modules/@headlessui/react/dist/utils/document-ready.js","../../../../node_modules/@headlessui/react/dist/utils/active-element-history.js","../../../../node_modules/@headlessui/react/dist/hooks/use-on-unmount.js","../../../../node_modules/@headlessui/react/dist/hooks/use-server-handoff-complete.js","../../../../node_modules/@headlessui/react/dist/internal/portal-force-root.js","../../../../node_modules/@headlessui/react/dist/components/portal/portal.js","../../../../node_modules/@headlessui/react/dist/hooks/use-escape.js","../../../../node_modules/@headlessui/react/dist/hooks/use-is-touch-device.js","../../../../node_modules/@headlessui/react/dist/hooks/use-root-containers.js","../../../../node_modules/@headlessui/react/dist/hooks/use-is-mounted.js","../../../../node_modules/@headlessui/react/dist/hooks/use-tab-direction.js","../../../../node_modules/@headlessui/react/dist/components/focus-trap/focus-trap.js","../../../../node_modules/@headlessui/react/dist/components/transition/transition.js","../../../../node_modules/@headlessui/react/dist/components/dialog/dialog.js","../../../../node_modules/@headlessui/react/dist/utils/start-transition.js","../../../../node_modules/@headlessui/react/dist/components/disclosure/disclosure.js","../../../../node_modules/@headlessui/react/dist/components/field/field.js","../../../../node_modules/@headlessui/react/dist/components/popover/popover.js","../../../../node_modules/@headlessui/react/dist/components/radio-group/radio-group.js","../../../../node_modules/@headlessui/react/dist/components/switch/switch.js","../../../../node_modules/@headlessui/react/dist/internal/focus-sentinel.js","../../../../node_modules/@headlessui/react/dist/utils/stable-collection.js","../../../../node_modules/@headlessui/react/dist/components/tabs/tabs.js"],"sourcesContent":["import $HgANd$react from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nconst $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c = typeof document !== 'undefined' ? (0, $HgANd$react).useLayoutEffect : ()=>{};\n\n\nexport {$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c as useLayoutEffect};\n//# sourceMappingURL=useLayoutEffect.module.js.map\n","import {useLayoutEffect as $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c} from \"./useLayoutEffect.mjs\";\nimport {useRef as $lmaYr$useRef, useCallback as $lmaYr$useCallback} from \"react\";\n\n/*\n * Copyright 2023 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nfunction $8ae05eaa5c114e9c$export$7f54fc3180508a52(fn) {\n    const ref = (0, $lmaYr$useRef)(null);\n    (0, $f0a04ccd8dbdd83b$export$e5c5a5f917a5871c)(()=>{\n        ref.current = fn;\n    }, [\n        fn\n    ]);\n    // @ts-ignore\n    return (0, $lmaYr$useCallback)((...args)=>{\n        const f = ref.current;\n        return f === null || f === void 0 ? void 0 : f(...args);\n    }, []);\n}\n\n\nexport {$8ae05eaa5c114e9c$export$7f54fc3180508a52 as useEffectEvent};\n//# sourceMappingURL=useEffectEvent.module.js.map\n","const $431fbd86ca7dc216$export$b204af158042fbac = (el)=>{\n    var _el_ownerDocument;\n    return (_el_ownerDocument = el === null || el === void 0 ? void 0 : el.ownerDocument) !== null && _el_ownerDocument !== void 0 ? _el_ownerDocument : document;\n};\nconst $431fbd86ca7dc216$export$f21a1ffae260145a = (el)=>{\n    if (el && 'window' in el && el.window === el) return el;\n    const doc = $431fbd86ca7dc216$export$b204af158042fbac(el);\n    return doc.defaultView || window;\n};\n\n\nexport {$431fbd86ca7dc216$export$b204af158042fbac as getOwnerDocument, $431fbd86ca7dc216$export$f21a1ffae260145a as getOwnerWindow};\n//# sourceMappingURL=domHelpers.module.js.map\n","/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ function $c87311424ea30a05$var$testUserAgent(re) {\n    var _window_navigator_userAgentData;\n    if (typeof window === 'undefined' || window.navigator == null) return false;\n    return ((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.brands.some((brand)=>re.test(brand.brand))) || re.test(window.navigator.userAgent);\n}\nfunction $c87311424ea30a05$var$testPlatform(re) {\n    var _window_navigator_userAgentData;\n    return typeof window !== 'undefined' && window.navigator != null ? re.test(((_window_navigator_userAgentData = window.navigator['userAgentData']) === null || _window_navigator_userAgentData === void 0 ? void 0 : _window_navigator_userAgentData.platform) || window.navigator.platform) : false;\n}\nfunction $c87311424ea30a05$var$cached(fn) {\n    let res = null;\n    return ()=>{\n        if (res == null) res = fn();\n        return res;\n    };\n}\nconst $c87311424ea30a05$export$9ac100e40613ea10 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^Mac/i);\n});\nconst $c87311424ea30a05$export$186c6964ca17d99 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPhone/i);\n});\nconst $c87311424ea30a05$export$7bef049ce92e4224 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testPlatform(/^iPad/i) || // iPadOS 13 lies and says it's a Mac, but we can distinguish by detecting touch support.\n    $c87311424ea30a05$export$9ac100e40613ea10() && navigator.maxTouchPoints > 1;\n});\nconst $c87311424ea30a05$export$fedb369cb70207f1 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$186c6964ca17d99() || $c87311424ea30a05$export$7bef049ce92e4224();\n});\nconst $c87311424ea30a05$export$e1865c3bedcd822b = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$export$9ac100e40613ea10() || $c87311424ea30a05$export$fedb369cb70207f1();\n});\nconst $c87311424ea30a05$export$78551043582a6a98 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/AppleWebKit/i) && !$c87311424ea30a05$export$6446a186d09e379e();\n});\nconst $c87311424ea30a05$export$6446a186d09e379e = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Chrome/i);\n});\nconst $c87311424ea30a05$export$a11b0059900ceec8 = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Android/i);\n});\nconst $c87311424ea30a05$export$b7d78993b74f766d = $c87311424ea30a05$var$cached(function() {\n    return $c87311424ea30a05$var$testUserAgent(/Firefox/i);\n});\n\n\nexport {$c87311424ea30a05$export$9ac100e40613ea10 as isMac, $c87311424ea30a05$export$186c6964ca17d99 as isIPhone, $c87311424ea30a05$export$7bef049ce92e4224 as isIPad, $c87311424ea30a05$export$fedb369cb70207f1 as isIOS, $c87311424ea30a05$export$e1865c3bedcd822b as isAppleDevice, $c87311424ea30a05$export$78551043582a6a98 as isWebKit, $c87311424ea30a05$export$6446a186d09e379e as isChrome, $c87311424ea30a05$export$a11b0059900ceec8 as isAndroid, $c87311424ea30a05$export$b7d78993b74f766d as isFirefox};\n//# sourceMappingURL=platform.module.js.map\n","import {isAndroid as $c87311424ea30a05$export$a11b0059900ceec8} from \"./platform.mjs\";\n\n/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \nfunction $6a7db85432448f7f$export$60278871457622de(event) {\n    // JAWS/NVDA with Firefox.\n    if (event.mozInputSource === 0 && event.isTrusted) return true;\n    // Android TalkBack's detail value varies depending on the event listener providing the event so we have specific logic here instead\n    // If pointerType is defined, event is from a click listener. For events from mousedown listener, detail === 0 is a sufficient check\n    // to detect TalkBack virtual clicks.\n    if ((0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.pointerType) return event.type === 'click' && event.buttons === 1;\n    return event.detail === 0 && !event.pointerType;\n}\nfunction $6a7db85432448f7f$export$29bf1b5f2c56cf63(event) {\n    // If the pointer size is zero, then we assume it's from a screen reader.\n    // Android TalkBack double tap will sometimes return a event with width and height of 1\n    // and pointerType === 'mouse' so we need to check for a specific combination of event attributes.\n    // Cannot use \"event.pressure === 0\" as the sole check due to Safari pointer events always returning pressure === 0\n    // instead of .5, see https://bugs.webkit.org/show_bug.cgi?id=206216. event.pointerType === 'mouse' is to distingush\n    // Talkback double tap from Windows Firefox touch screen press\n    return !(0, $c87311424ea30a05$export$a11b0059900ceec8)() && event.width === 0 && event.height === 0 || event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse';\n}\n\n\nexport {$6a7db85432448f7f$export$60278871457622de as isVirtualClick, $6a7db85432448f7f$export$29bf1b5f2c56cf63 as isVirtualPointerEvent};\n//# sourceMappingURL=isVirtualEvent.module.js.map\n","import {useRef as $6dfIe$useRef, useCallback as $6dfIe$useCallback} from \"react\";\nimport {useLayoutEffect as $6dfIe$useLayoutEffect, useEffectEvent as $6dfIe$useEffectEvent} from \"@react-aria/utils\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ \n\nclass $8a9cb279dc87e130$export$905e7fc544a71f36 {\n    isDefaultPrevented() {\n        return this.nativeEvent.defaultPrevented;\n    }\n    preventDefault() {\n        this.defaultPrevented = true;\n        this.nativeEvent.preventDefault();\n    }\n    stopPropagation() {\n        this.nativeEvent.stopPropagation();\n        this.isPropagationStopped = ()=>true;\n    }\n    isPropagationStopped() {\n        return false;\n    }\n    persist() {}\n    constructor(type, nativeEvent){\n        this.nativeEvent = nativeEvent;\n        this.target = nativeEvent.target;\n        this.currentTarget = nativeEvent.currentTarget;\n        this.relatedTarget = nativeEvent.relatedTarget;\n        this.bubbles = nativeEvent.bubbles;\n        this.cancelable = nativeEvent.cancelable;\n        this.defaultPrevented = nativeEvent.defaultPrevented;\n        this.eventPhase = nativeEvent.eventPhase;\n        this.isTrusted = nativeEvent.isTrusted;\n        this.timeStamp = nativeEvent.timeStamp;\n        this.type = type;\n    }\n}\nfunction $8a9cb279dc87e130$export$715c682d09d639cc(onBlur) {\n    let stateRef = (0, $6dfIe$useRef)({\n        isFocused: false,\n        observer: null\n    });\n    // Clean up MutationObserver on unmount. See below.\n    (0, $6dfIe$useLayoutEffect)(()=>{\n        const state = stateRef.current;\n        return ()=>{\n            if (state.observer) {\n                state.observer.disconnect();\n                state.observer = null;\n            }\n        };\n    }, []);\n    let dispatchBlur = (0, $6dfIe$useEffectEvent)((e)=>{\n        onBlur === null || onBlur === void 0 ? void 0 : onBlur(e);\n    });\n    // This function is called during a React onFocus event.\n    return (0, $6dfIe$useCallback)((e)=>{\n        // React does not fire onBlur when an element is disabled. https://github.com/facebook/react/issues/9142\n        // Most browsers fire a native focusout event in this case, except for Firefox. In that case, we use a\n        // MutationObserver to watch for the disabled attribute, and dispatch these events ourselves.\n        // For browsers that do, focusout fires before the MutationObserver, so onBlur should not fire twice.\n        if (e.target instanceof HTMLButtonElement || e.target instanceof HTMLInputElement || e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLSelectElement) {\n            stateRef.current.isFocused = true;\n            let target = e.target;\n            let onBlurHandler = (e)=>{\n                stateRef.current.isFocused = false;\n                if (target.disabled) // For backward compatibility, dispatch a (fake) React synthetic event.\n                dispatchBlur(new $8a9cb279dc87e130$export$905e7fc544a71f36('blur', e));\n                // We no longer need the MutationObserver once the target is blurred.\n                if (stateRef.current.observer) {\n                    stateRef.current.observer.disconnect();\n                    stateRef.current.observer = null;\n                }\n            };\n            target.addEventListener('focusout', onBlurHandler, {\n                once: true\n            });\n            stateRef.current.observer = new MutationObserver(()=>{\n                if (stateRef.current.isFocused && target.disabled) {\n                    var _stateRef_current_observer;\n                    (_stateRef_current_observer = stateRef.current.observer) === null || _stateRef_current_observer === void 0 ? void 0 : _stateRef_current_observer.disconnect();\n                    let relatedTargetEl = target === document.activeElement ? null : document.activeElement;\n                    target.dispatchEvent(new FocusEvent('blur', {\n                        relatedTarget: relatedTargetEl\n                    }));\n                    target.dispatchEvent(new FocusEvent('focusout', {\n                        bubbles: true,\n                        relatedTarget: relatedTargetEl\n                    }));\n                }\n            });\n            stateRef.current.observer.observe(target, {\n                attributes: true,\n                attributeFilter: [\n                    'disabled'\n                ]\n            });\n        }\n    }, [\n        dispatchBlur\n    ]);\n}\n\n\nexport {$8a9cb279dc87e130$export$905e7fc544a71f36 as SyntheticFocusEvent, $8a9cb279dc87e130$export$715c682d09d639cc as useSyntheticBlurEvent};\n//# sourceMappingURL=utils.module.js.map\n","import {useSyntheticBlurEvent as $8a9cb279dc87e130$export$715c682d09d639cc} from \"./utils.mjs\";\nimport {useCallback as $hf0lj$useCallback} from \"react\";\nimport {getOwnerDocument as $hf0lj$getOwnerDocument} from \"@react-aria/utils\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nfunction $a1ea59d68270f0dd$export$f8168d8dd8fd66e6(props) {\n    let { isDisabled: isDisabled, onFocus: onFocusProp, onBlur: onBlurProp, onFocusChange: onFocusChange } = props;\n    const onBlur = (0, $hf0lj$useCallback)((e)=>{\n        if (e.target === e.currentTarget) {\n            if (onBlurProp) onBlurProp(e);\n            if (onFocusChange) onFocusChange(false);\n            return true;\n        }\n    }, [\n        onBlurProp,\n        onFocusChange\n    ]);\n    const onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    const onFocus = (0, $hf0lj$useCallback)((e)=>{\n        // Double check that document.activeElement actually matches e.target in case a previously chained\n        // focus handler already moved focus somewhere else.\n        const ownerDocument = (0, $hf0lj$getOwnerDocument)(e.target);\n        if (e.target === e.currentTarget && ownerDocument.activeElement === e.target) {\n            if (onFocusProp) onFocusProp(e);\n            if (onFocusChange) onFocusChange(true);\n            onSyntheticFocus(e);\n        }\n    }, [\n        onFocusChange,\n        onFocusProp,\n        onSyntheticFocus\n    ]);\n    return {\n        focusProps: {\n            onFocus: !isDisabled && (onFocusProp || onFocusChange || onBlurProp) ? onFocus : undefined,\n            onBlur: !isDisabled && (onBlurProp || onFocusChange) ? onBlur : undefined\n        }\n    };\n}\n\n\nexport {$a1ea59d68270f0dd$export$f8168d8dd8fd66e6 as useFocus};\n//# sourceMappingURL=useFocus.module.js.map\n","import {isMac as $28AnR$isMac, isVirtualClick as $28AnR$isVirtualClick, getOwnerWindow as $28AnR$getOwnerWindow, getOwnerDocument as $28AnR$getOwnerDocument} from \"@react-aria/utils\";\nimport {useState as $28AnR$useState, useEffect as $28AnR$useEffect} from \"react\";\nimport {useIsSSR as $28AnR$useIsSSR} from \"@react-aria/ssr\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\n\nlet $507fabe10e71c6fb$var$currentModality = null;\nlet $507fabe10e71c6fb$var$changeHandlers = new Set();\nlet $507fabe10e71c6fb$export$d90243b58daecda7 = new Map(); // We use a map here to support setting event listeners across multiple document objects.\nlet $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\nlet $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n// Only Tab or Esc keys will make focus visible on text input elements\nconst $507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS = {\n    Tab: true,\n    Escape: true\n};\nfunction $507fabe10e71c6fb$var$triggerChangeHandlers(modality, e) {\n    for (let handler of $507fabe10e71c6fb$var$changeHandlers)handler(modality, e);\n}\n/**\n * Helper function to determine if a KeyboardEvent is unmodified and could make keyboard focus styles visible.\n */ function $507fabe10e71c6fb$var$isValidKey(e) {\n    // Control and Shift keys trigger when navigating back to the tab with keyboard.\n    return !(e.metaKey || !(0, $28AnR$isMac)() && e.altKey || e.ctrlKey || e.key === 'Control' || e.key === 'Shift' || e.key === 'Meta');\n}\nfunction $507fabe10e71c6fb$var$handleKeyboardEvent(e) {\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n    if ($507fabe10e71c6fb$var$isValidKey(e)) {\n        $507fabe10e71c6fb$var$currentModality = 'keyboard';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('keyboard', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handlePointerEvent(e) {\n    $507fabe10e71c6fb$var$currentModality = 'pointer';\n    if (e.type === 'mousedown' || e.type === 'pointerdown') {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$triggerChangeHandlers('pointer', e);\n    }\n}\nfunction $507fabe10e71c6fb$var$handleClickEvent(e) {\n    if ((0, $28AnR$isVirtualClick)(e)) {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n    }\n}\nfunction $507fabe10e71c6fb$var$handleFocusEvent(e) {\n    // Firefox fires two extra focus events when the user first clicks into an iframe:\n    // first on the window, then on the document. We ignore these events so they don't\n    // cause keyboard focus rings to appear.\n    if (e.target === window || e.target === document) return;\n    // If a focus event occurs without a preceding keyboard or pointer event, switch to virtual modality.\n    // This occurs, for example, when navigating a form with the next/previous buttons on iOS.\n    if (!$507fabe10e71c6fb$var$hasEventBeforeFocus && !$507fabe10e71c6fb$var$hasBlurredWindowRecently) {\n        $507fabe10e71c6fb$var$currentModality = 'virtual';\n        $507fabe10e71c6fb$var$triggerChangeHandlers('virtual', e);\n    }\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = false;\n}\nfunction $507fabe10e71c6fb$var$handleWindowBlur() {\n    // When the window is blurred, reset state. This is necessary when tabbing out of the window,\n    // for example, since a subsequent focus event won't be fired.\n    $507fabe10e71c6fb$var$hasEventBeforeFocus = false;\n    $507fabe10e71c6fb$var$hasBlurredWindowRecently = true;\n}\n/**\n * Setup global event listeners to control when keyboard focus style should be visible.\n */ function $507fabe10e71c6fb$var$setupGlobalFocusEvents(element) {\n    if (typeof window === 'undefined' || $507fabe10e71c6fb$export$d90243b58daecda7.get((0, $28AnR$getOwnerWindow)(element))) return;\n    const windowObject = (0, $28AnR$getOwnerWindow)(element);\n    const documentObject = (0, $28AnR$getOwnerDocument)(element);\n    // Programmatic focus() calls shouldn't affect the current input modality.\n    // However, we need to detect other cases when a focus event occurs without\n    // a preceding user event (e.g. screen reader focus). Overriding the focus\n    // method on HTMLElement.prototype is a bit hacky, but works.\n    let focus = windowObject.HTMLElement.prototype.focus;\n    windowObject.HTMLElement.prototype.focus = function() {\n        $507fabe10e71c6fb$var$hasEventBeforeFocus = true;\n        focus.apply(this, arguments);\n    };\n    documentObject.addEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.addEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    // Register focus events on the window so they are sure to happen\n    // before React's event listeners (registered on the document).\n    windowObject.addEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.addEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.addEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else {\n        documentObject.addEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.addEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    // Add unmount handler\n    windowObject.addEventListener('beforeunload', ()=>{\n        $507fabe10e71c6fb$var$tearDownWindowFocusTracking(element);\n    }, {\n        once: true\n    });\n    $507fabe10e71c6fb$export$d90243b58daecda7.set(windowObject, {\n        focus: focus\n    });\n}\nconst $507fabe10e71c6fb$var$tearDownWindowFocusTracking = (element, loadListener)=>{\n    const windowObject = (0, $28AnR$getOwnerWindow)(element);\n    const documentObject = (0, $28AnR$getOwnerDocument)(element);\n    if (loadListener) documentObject.removeEventListener('DOMContentLoaded', loadListener);\n    if (!$507fabe10e71c6fb$export$d90243b58daecda7.has(windowObject)) return;\n    windowObject.HTMLElement.prototype.focus = $507fabe10e71c6fb$export$d90243b58daecda7.get(windowObject).focus;\n    documentObject.removeEventListener('keydown', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('keyup', $507fabe10e71c6fb$var$handleKeyboardEvent, true);\n    documentObject.removeEventListener('click', $507fabe10e71c6fb$var$handleClickEvent, true);\n    windowObject.removeEventListener('focus', $507fabe10e71c6fb$var$handleFocusEvent, true);\n    windowObject.removeEventListener('blur', $507fabe10e71c6fb$var$handleWindowBlur, false);\n    if (typeof PointerEvent !== 'undefined') {\n        documentObject.removeEventListener('pointerdown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointermove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('pointerup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    } else {\n        documentObject.removeEventListener('mousedown', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mousemove', $507fabe10e71c6fb$var$handlePointerEvent, true);\n        documentObject.removeEventListener('mouseup', $507fabe10e71c6fb$var$handlePointerEvent, true);\n    }\n    $507fabe10e71c6fb$export$d90243b58daecda7.delete(windowObject);\n};\nfunction $507fabe10e71c6fb$export$2f1888112f558a7d(element) {\n    const documentObject = (0, $28AnR$getOwnerDocument)(element);\n    let loadListener;\n    if (documentObject.readyState !== 'loading') $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n    else {\n        loadListener = ()=>{\n            $507fabe10e71c6fb$var$setupGlobalFocusEvents(element);\n        };\n        documentObject.addEventListener('DOMContentLoaded', loadListener);\n    }\n    return ()=>$507fabe10e71c6fb$var$tearDownWindowFocusTracking(element, loadListener);\n}\n// Server-side rendering does not have the document object defined\n// eslint-disable-next-line no-restricted-globals\nif (typeof document !== 'undefined') $507fabe10e71c6fb$export$2f1888112f558a7d();\nfunction $507fabe10e71c6fb$export$b9b3dfddab17db27() {\n    return $507fabe10e71c6fb$var$currentModality !== 'pointer';\n}\nfunction $507fabe10e71c6fb$export$630ff653c5ada6a9() {\n    return $507fabe10e71c6fb$var$currentModality;\n}\nfunction $507fabe10e71c6fb$export$8397ddfc504fdb9a(modality) {\n    $507fabe10e71c6fb$var$currentModality = modality;\n    $507fabe10e71c6fb$var$triggerChangeHandlers(modality, null);\n}\nfunction $507fabe10e71c6fb$export$98e20ec92f614cfe() {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    let [modality, setModality] = (0, $28AnR$useState)($507fabe10e71c6fb$var$currentModality);\n    (0, $28AnR$useEffect)(()=>{\n        let handler = ()=>{\n            setModality($507fabe10e71c6fb$var$currentModality);\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    }, []);\n    return (0, $28AnR$useIsSSR)() ? null : modality;\n}\nconst $507fabe10e71c6fb$var$nonTextInputTypes = new Set([\n    'checkbox',\n    'radio',\n    'range',\n    'color',\n    'file',\n    'image',\n    'button',\n    'submit',\n    'reset'\n]);\n/**\n * If this is attached to text input component, return if the event is a focus event (Tab/Escape keys pressed) so that\n * focus visible style can be properly set.\n */ function $507fabe10e71c6fb$var$isKeyboardFocusEvent(isTextInput, modality, e) {\n    var _e_target;\n    const IHTMLInputElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLInputElement : HTMLInputElement;\n    const IHTMLTextAreaElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLTextAreaElement : HTMLTextAreaElement;\n    const IHTMLElement = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).HTMLElement : HTMLElement;\n    const IKeyboardEvent = typeof window !== 'undefined' ? (0, $28AnR$getOwnerWindow)(e === null || e === void 0 ? void 0 : e.target).KeyboardEvent : KeyboardEvent;\n    isTextInput = isTextInput || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLInputElement && !$507fabe10e71c6fb$var$nonTextInputTypes.has(e === null || e === void 0 ? void 0 : (_e_target = e.target) === null || _e_target === void 0 ? void 0 : _e_target.type) || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLTextAreaElement || (e === null || e === void 0 ? void 0 : e.target) instanceof IHTMLElement && (e === null || e === void 0 ? void 0 : e.target.isContentEditable);\n    return !(isTextInput && modality === 'keyboard' && e instanceof IKeyboardEvent && !$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]);\n}\nfunction $507fabe10e71c6fb$export$ffd9e5021c1fb2d6(props = {}) {\n    let { isTextInput: isTextInput, autoFocus: autoFocus } = props;\n    let [isFocusVisibleState, setFocusVisible] = (0, $28AnR$useState)(autoFocus || $507fabe10e71c6fb$export$b9b3dfddab17db27());\n    $507fabe10e71c6fb$export$ec71b4b83ac08ec3((isFocusVisible)=>{\n        setFocusVisible(isFocusVisible);\n    }, [\n        isTextInput\n    ], {\n        isTextInput: isTextInput\n    });\n    return {\n        isFocusVisible: isFocusVisibleState\n    };\n}\nfunction $507fabe10e71c6fb$export$ec71b4b83ac08ec3(fn, deps, opts) {\n    $507fabe10e71c6fb$var$setupGlobalFocusEvents();\n    (0, $28AnR$useEffect)(()=>{\n        let handler = (modality, e)=>{\n            if (!$507fabe10e71c6fb$var$isKeyboardFocusEvent(!!(opts === null || opts === void 0 ? void 0 : opts.isTextInput), modality, e)) return;\n            fn($507fabe10e71c6fb$export$b9b3dfddab17db27());\n        };\n        $507fabe10e71c6fb$var$changeHandlers.add(handler);\n        return ()=>{\n            $507fabe10e71c6fb$var$changeHandlers.delete(handler);\n        };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, deps);\n}\n\n\nexport {$507fabe10e71c6fb$export$d90243b58daecda7 as hasSetupGlobalListeners, $507fabe10e71c6fb$export$2f1888112f558a7d as addWindowFocusTracking, $507fabe10e71c6fb$export$b9b3dfddab17db27 as isFocusVisible, $507fabe10e71c6fb$export$630ff653c5ada6a9 as getInteractionModality, $507fabe10e71c6fb$export$8397ddfc504fdb9a as setInteractionModality, $507fabe10e71c6fb$export$98e20ec92f614cfe as useInteractionModality, $507fabe10e71c6fb$export$ffd9e5021c1fb2d6 as useFocusVisible, $507fabe10e71c6fb$export$ec71b4b83ac08ec3 as useFocusVisibleListener};\n//# sourceMappingURL=useFocusVisible.module.js.map\n","import {useSyntheticBlurEvent as $8a9cb279dc87e130$export$715c682d09d639cc} from \"./utils.mjs\";\nimport {useRef as $3b9Q0$useRef, useCallback as $3b9Q0$useCallback} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n\nfunction $9ab94262bd0047c7$export$420e68273165f4ec(props) {\n    let { isDisabled: isDisabled, onBlurWithin: onBlurWithin, onFocusWithin: onFocusWithin, onFocusWithinChange: onFocusWithinChange } = props;\n    let state = (0, $3b9Q0$useRef)({\n        isFocusWithin: false\n    });\n    let onBlur = (0, $3b9Q0$useCallback)((e)=>{\n        // We don't want to trigger onBlurWithin and then immediately onFocusWithin again\n        // when moving focus inside the element. Only trigger if the currentTarget doesn't\n        // include the relatedTarget (where focus is moving).\n        if (state.current.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {\n            state.current.isFocusWithin = false;\n            if (onBlurWithin) onBlurWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(false);\n        }\n    }, [\n        onBlurWithin,\n        onFocusWithinChange,\n        state\n    ]);\n    let onSyntheticFocus = (0, $8a9cb279dc87e130$export$715c682d09d639cc)(onBlur);\n    let onFocus = (0, $3b9Q0$useCallback)((e)=>{\n        // Double check that document.activeElement actually matches e.target in case a previously chained\n        // focus handler already moved focus somewhere else.\n        if (!state.current.isFocusWithin && document.activeElement === e.target) {\n            if (onFocusWithin) onFocusWithin(e);\n            if (onFocusWithinChange) onFocusWithinChange(true);\n            state.current.isFocusWithin = true;\n            onSyntheticFocus(e);\n        }\n    }, [\n        onFocusWithin,\n        onFocusWithinChange,\n        onSyntheticFocus\n    ]);\n    if (isDisabled) return {\n        focusWithinProps: {\n            // These should not have been null, that would conflict in mergeProps\n            onFocus: undefined,\n            onBlur: undefined\n        }\n    };\n    return {\n        focusWithinProps: {\n            onFocus: onFocus,\n            onBlur: onBlur\n        }\n    };\n}\n\n\nexport {$9ab94262bd0047c7$export$420e68273165f4ec as useFocusWithin};\n//# sourceMappingURL=useFocusWithin.module.js.map\n","import {useState as $AWxnT$useState, useRef as $AWxnT$useRef, useEffect as $AWxnT$useEffect, useMemo as $AWxnT$useMemo} from \"react\";\n\n/*\n * Copyright 2020 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */ // Portions of the code in this file are based on code from react.\n// Original licensing for the following can be found in the\n// NOTICE file in the root directory of this source tree.\n// See https://github.com/facebook/react/tree/cc7c1aece46a6b69b41958d731e0fd27c94bfc6c/packages/react-interactions\n\n// iOS fires onPointerEnter twice: once with pointerType=\"touch\" and again with pointerType=\"mouse\".\n// We want to ignore these emulated events so they do not trigger hover behavior.\n// See https://bugs.webkit.org/show_bug.cgi?id=214609.\nlet $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\nlet $6179b936705e76d3$var$hoverCount = 0;\nfunction $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents() {\n    $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = true;\n    // Clear globalIgnoreEmulatedMouseEvents after a short timeout. iOS fires onPointerEnter\n    // with pointerType=\"mouse\" immediately after onPointerUp and before onFocus. On other\n    // devices that don't have this quirk, we don't want to ignore a mouse hover sometime in\n    // the distant future because a user previously touched the element.\n    setTimeout(()=>{\n        $6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents = false;\n    }, 50);\n}\nfunction $6179b936705e76d3$var$handleGlobalPointerEvent(e) {\n    if (e.pointerType === 'touch') $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents();\n}\nfunction $6179b936705e76d3$var$setupGlobalTouchEvents() {\n    if (typeof document === 'undefined') return;\n    if (typeof PointerEvent !== 'undefined') document.addEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n    else document.addEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    $6179b936705e76d3$var$hoverCount++;\n    return ()=>{\n        $6179b936705e76d3$var$hoverCount--;\n        if ($6179b936705e76d3$var$hoverCount > 0) return;\n        if (typeof PointerEvent !== 'undefined') document.removeEventListener('pointerup', $6179b936705e76d3$var$handleGlobalPointerEvent);\n        else document.removeEventListener('touchend', $6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents);\n    };\n}\nfunction $6179b936705e76d3$export$ae780daf29e6d456(props) {\n    let { onHoverStart: onHoverStart, onHoverChange: onHoverChange, onHoverEnd: onHoverEnd, isDisabled: isDisabled } = props;\n    let [isHovered, setHovered] = (0, $AWxnT$useState)(false);\n    let state = (0, $AWxnT$useRef)({\n        isHovered: false,\n        ignoreEmulatedMouseEvents: false,\n        pointerType: '',\n        target: null\n    }).current;\n    (0, $AWxnT$useEffect)($6179b936705e76d3$var$setupGlobalTouchEvents, []);\n    let { hoverProps: hoverProps, triggerHoverEnd: triggerHoverEnd } = (0, $AWxnT$useMemo)(()=>{\n        let triggerHoverStart = (event, pointerType)=>{\n            state.pointerType = pointerType;\n            if (isDisabled || pointerType === 'touch' || state.isHovered || !event.currentTarget.contains(event.target)) return;\n            state.isHovered = true;\n            let target = event.currentTarget;\n            state.target = target;\n            if (onHoverStart) onHoverStart({\n                type: 'hoverstart',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(true);\n            setHovered(true);\n        };\n        let triggerHoverEnd = (event, pointerType)=>{\n            state.pointerType = '';\n            state.target = null;\n            if (pointerType === 'touch' || !state.isHovered) return;\n            state.isHovered = false;\n            let target = event.currentTarget;\n            if (onHoverEnd) onHoverEnd({\n                type: 'hoverend',\n                target: target,\n                pointerType: pointerType\n            });\n            if (onHoverChange) onHoverChange(false);\n            setHovered(false);\n        };\n        let hoverProps = {};\n        if (typeof PointerEvent !== 'undefined') {\n            hoverProps.onPointerEnter = (e)=>{\n                if ($6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') return;\n                triggerHoverStart(e, e.pointerType);\n            };\n            hoverProps.onPointerLeave = (e)=>{\n                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, e.pointerType);\n            };\n        } else {\n            hoverProps.onTouchStart = ()=>{\n                state.ignoreEmulatedMouseEvents = true;\n            };\n            hoverProps.onMouseEnter = (e)=>{\n                if (!state.ignoreEmulatedMouseEvents && !$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents) triggerHoverStart(e, 'mouse');\n                state.ignoreEmulatedMouseEvents = false;\n            };\n            hoverProps.onMouseLeave = (e)=>{\n                if (!isDisabled && e.currentTarget.contains(e.target)) triggerHoverEnd(e, 'mouse');\n            };\n        }\n        return {\n            hoverProps: hoverProps,\n            triggerHoverEnd: triggerHoverEnd\n        };\n    }, [\n        onHoverStart,\n        onHoverChange,\n        onHoverEnd,\n        isDisabled,\n        state\n    ]);\n    (0, $AWxnT$useEffect)(()=>{\n        // Call the triggerHoverEnd as soon as isDisabled changes to true\n        // Safe to call triggerHoverEnd, it will early return if we aren't currently hovering\n        if (isDisabled) triggerHoverEnd({\n            currentTarget: state.target\n        }, state.pointerType);\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n    }, [\n        isDisabled\n    ]);\n    return {\n        hoverProps: hoverProps,\n        isHovered: isHovered\n    };\n}\n\n\nexport {$6179b936705e76d3$export$ae780daf29e6d456 as useHover};\n//# sourceMappingURL=useHover.module.js.map\n","import {isFocusVisible as $isWE5$isFocusVisible, useFocusVisibleListener as $isWE5$useFocusVisibleListener, useFocus as $isWE5$useFocus, useFocusWithin as $isWE5$useFocusWithin} from \"@react-aria/interactions\";\nimport {useRef as $isWE5$useRef, useState as $isWE5$useState, useCallback as $isWE5$useCallback} from \"react\";\n\n\n\nfunction $f7dceffc5ad7768b$export$4e328f61c538687f(props = {}) {\n    let { autoFocus: autoFocus = false, isTextInput: isTextInput, within: within } = props;\n    let state = (0, $isWE5$useRef)({\n        isFocused: false,\n        isFocusVisible: autoFocus || (0, $isWE5$isFocusVisible)()\n    });\n    let [isFocused, setFocused] = (0, $isWE5$useState)(false);\n    let [isFocusVisibleState, setFocusVisible] = (0, $isWE5$useState)(()=>state.current.isFocused && state.current.isFocusVisible);\n    let updateState = (0, $isWE5$useCallback)(()=>setFocusVisible(state.current.isFocused && state.current.isFocusVisible), []);\n    let onFocusChange = (0, $isWE5$useCallback)((isFocused)=>{\n        state.current.isFocused = isFocused;\n        setFocused(isFocused);\n        updateState();\n    }, [\n        updateState\n    ]);\n    (0, $isWE5$useFocusVisibleListener)((isFocusVisible)=>{\n        state.current.isFocusVisible = isFocusVisible;\n        updateState();\n    }, [], {\n        isTextInput: isTextInput\n    });\n    let { focusProps: focusProps } = (0, $isWE5$useFocus)({\n        isDisabled: within,\n        onFocusChange: onFocusChange\n    });\n    let { focusWithinProps: focusWithinProps } = (0, $isWE5$useFocusWithin)({\n        isDisabled: !within,\n        onFocusWithinChange: onFocusChange\n    });\n    return {\n        isFocused: isFocused,\n        isFocusVisible: isFocusVisibleState,\n        focusProps: within ? focusWithinProps : focusProps\n    };\n}\n\n\nexport {$f7dceffc5ad7768b$export$4e328f61c538687f as useFocusRing};\n//# sourceMappingURL=useFocusRing.module.js.map\n","var i=Object.defineProperty;var d=(t,e,n)=>e in t?i(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var r=(t,e,n)=>(d(t,typeof e!=\"symbol\"?e+\"\":e,n),n);class o{constructor(){r(this,\"current\",this.detect());r(this,\"handoffState\",\"pending\");r(this,\"currentId\",0)}set(e){this.current!==e&&(this.handoffState=\"pending\",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return this.current===\"server\"}get isClient(){return this.current===\"client\"}detect(){return typeof window==\"undefined\"||typeof document==\"undefined\"?\"server\":\"client\"}handoff(){this.handoffState===\"pending\"&&(this.handoffState=\"complete\")}get isHandoffComplete(){return this.handoffState===\"complete\"}}let s=new o;export{s as env};\n","import{env as n}from'./env.js';function u(r){return n.isServer?null:r instanceof Node?r.ownerDocument:r!=null&&r.hasOwnProperty(\"current\")&&r.current instanceof Node?r.current.ownerDocument:document}export{u as getOwnerDocument};\n","function t(e){typeof queueMicrotask==\"function\"?queueMicrotask(e):Promise.resolve().then(e).catch(o=>setTimeout(()=>{throw o}))}export{t as microTask};\n","import{microTask as i}from'./micro-task.js';function o(){let n=[],r={addEventListener(e,t,s,a){return e.addEventListener(t,s,a),r.add(()=>e.removeEventListener(t,s,a))},requestAnimationFrame(...e){let t=requestAnimationFrame(...e);return r.add(()=>cancelAnimationFrame(t))},nextFrame(...e){return r.requestAnimationFrame(()=>r.requestAnimationFrame(...e))},setTimeout(...e){let t=setTimeout(...e);return r.add(()=>clearTimeout(t))},microTask(...e){let t={current:!0};return i(()=>{t.current&&e[0]()}),r.add(()=>{t.current=!1})},style(e,t,s){let a=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:s}),this.add(()=>{Object.assign(e.style,{[t]:a})})},group(e){let t=o();return e(t),this.add(()=>t.dispose())},add(e){return n.includes(e)||n.push(e),()=>{let t=n.indexOf(e);if(t>=0)for(let s of n.splice(t,1))s()}},dispose(){for(let e of n.splice(0))e()}};return r}export{o as disposables};\n","import{useEffect as s,useState as o}from\"react\";import{disposables as t}from'../utils/disposables.js';function p(){let[e]=o(t);return s(()=>()=>e.dispose(),[e]),e}export{p as useDisposables};\n","import{useEffect as f,useLayoutEffect as c}from\"react\";import{env as i}from'../utils/env.js';let n=(e,t)=>{i.isServer?f(e,t):c(e,t)};export{n as useIsoMorphicEffect};\n","import{useRef as t}from\"react\";import{useIsoMorphicEffect as o}from'./use-iso-morphic-effect.js';function s(e){let r=t(e);return o(()=>{r.current=e},[e]),r}export{s as useLatestValue};\n","import a from\"react\";import{useLatestValue as n}from'./use-latest-value.js';let o=function(t){let e=n(t);return a.useCallback((...r)=>e.current(...r),[e])};export{o as useEvent};\n","import{useRef as a,useState as m}from\"react\";import{getOwnerDocument as d}from'../utils/owner.js';import{useDisposables as g}from'./use-disposables.js';import{useEvent as u}from'./use-event.js';function E(e){let t=e.width/2,n=e.height/2;return{top:e.clientY-n,right:e.clientX+t,bottom:e.clientY+n,left:e.clientX-t}}function P(e,t){return!(!e||!t||e.right<t.left||e.left>t.right||e.bottom<t.top||e.top>t.bottom)}function w({disabled:e=!1}={}){let t=a(null),[n,l]=m(!1),r=g(),o=u(()=>{t.current=null,l(!1),r.dispose()}),f=u(s=>{if(r.dispose(),t.current===null){t.current=s.currentTarget,l(!0);{let i=d(s.currentTarget);r.addEventListener(i,\"pointerup\",o,!1),r.addEventListener(i,\"pointermove\",c=>{if(t.current){let p=E(c);l(P(p,t.current.getBoundingClientRect()))}},!1),r.addEventListener(i,\"pointercancel\",o,!1)}}});return{pressed:n,pressProps:e?{}:{onPointerDown:f,onPointerUp:o,onClick:o}}}export{w as useActivePress};\n","import n,{createContext as r,useContext as i}from\"react\";let e=r(void 0);function a(){return i(e)}function l({value:t,children:o}){return n.createElement(e.Provider,{value:t},o)}export{l as DisabledProvider,a as useDisabled};\n","function t(...r){return Array.from(new Set(r.flatMap(n=>typeof n==\"string\"?n.split(\" \"):[]))).filter(Boolean).join(\" \")}export{t as classNames};\n","function u(r,n,...a){if(r in n){let e=n[r];return typeof e==\"function\"?e(...a):e}let t=new Error(`Tried to handle \"${r}\" but there is no handler defined. Only defined handlers are: ${Object.keys(n).map(e=>`\"${e}\"`).join(\", \")}.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,u),t}export{u as match};\n","import{Fragment as R,cloneElement as x,createElement as E,forwardRef as j,isValidElement as S,useCallback as v,useRef as w}from\"react\";import{classNames as P}from'./class-names.js';import{match as k}from'./match.js';var O=(a=>(a[a.None=0]=\"None\",a[a.RenderStrategy=1]=\"RenderStrategy\",a[a.Static=2]=\"Static\",a))(O||{}),M=(e=>(e[e.Unmount=0]=\"Unmount\",e[e.Hidden=1]=\"Hidden\",e))(M||{});function H({ourProps:r,theirProps:n,slot:e,defaultTag:a,features:s,visible:t=!0,name:l,mergeRefs:i}){i=i!=null?i:A;let o=N(n,r);if(t)return b(o,e,a,l,i);let y=s!=null?s:0;if(y&2){let{static:f=!1,...u}=o;if(f)return b(u,e,a,l,i)}if(y&1){let{unmount:f=!0,...u}=o;return k(f?0:1,{[0](){return null},[1](){return b({...u,hidden:!0,style:{display:\"none\"}},e,a,l,i)}})}return b(o,e,a,l,i)}function b(r,n={},e,a,s){let{as:t=e,children:l,refName:i=\"ref\",...o}=h(r,[\"unmount\",\"static\"]),y=r.ref!==void 0?{[i]:r.ref}:{},f=typeof l==\"function\"?l(n):l;\"className\"in o&&o.className&&typeof o.className==\"function\"&&(o.className=o.className(n)),o[\"aria-labelledby\"]&&o[\"aria-labelledby\"]===o.id&&(o[\"aria-labelledby\"]=void 0);let u={};if(n){let d=!1,p=[];for(let[c,T]of Object.entries(n))typeof T==\"boolean\"&&(d=!0),T===!0&&p.push(c.replace(/([A-Z])/g,g=>`-${g.toLowerCase()}`));if(d){u[\"data-headlessui-state\"]=p.join(\" \");for(let c of p)u[`data-${c}`]=\"\"}}if(t===R&&(Object.keys(m(o)).length>0||Object.keys(m(u)).length>0))if(!S(f)||Array.isArray(f)&&f.length>1){if(Object.keys(m(o)).length>0)throw new Error(['Passing props on \"Fragment\"!',\"\",`The current component <${a} /> is rendering a \"Fragment\".`,\"However we need to passthrough the following props:\",Object.keys(m(o)).concat(Object.keys(m(u))).map(d=>`  - ${d}`).join(`\n`),\"\",\"You can apply a few solutions:\",['Add an `as=\"...\"` prop, to ensure that we render an actual element instead of a \"Fragment\".',\"Render a single element as the child so that we can forward the props onto that element.\"].map(d=>`  - ${d}`).join(`\n`)].join(`\n`))}else{let d=f.props,p=d==null?void 0:d.className,c=typeof p==\"function\"?(...F)=>P(p(...F),o.className):P(p,o.className),T=c?{className:c}:{},g=N(f.props,m(h(o,[\"ref\"])));for(let F in u)F in g&&delete u[F];return x(f,Object.assign({},g,u,y,{ref:s(f.ref,y.ref)},T))}return E(t,Object.assign({},h(o,[\"ref\"]),t!==R&&y,t!==R&&u),f)}function U(){let r=w([]),n=v(e=>{for(let a of r.current)a!=null&&(typeof a==\"function\"?a(e):a.current=e)},[]);return(...e)=>{if(!e.every(a=>a==null))return r.current=e,n}}function A(...r){return r.every(n=>n==null)?void 0:n=>{for(let e of r)e!=null&&(typeof e==\"function\"?e(n):e.current=n)}}function N(...r){var a;if(r.length===0)return{};if(r.length===1)return r[0];let n={},e={};for(let s of r)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):n[t]=s[t];if(n.disabled||n[\"aria-disabled\"])for(let s in e)/^(on(?:Click|Pointer|Mouse|Key)(?:Down|Up|Press)?)$/.test(s)&&(e[s]=[t=>{var l;return(l=t==null?void 0:t.preventDefault)==null?void 0:l.call(t)}]);for(let s in e)Object.assign(n,{[s](t,...l){let i=e[s];for(let o of i){if((t instanceof Event||(t==null?void 0:t.nativeEvent)instanceof Event)&&t.defaultPrevented)return;o(t,...l)}}});return n}function D(...r){var a;if(r.length===0)return{};if(r.length===1)return r[0];let n={},e={};for(let s of r)for(let t in s)t.startsWith(\"on\")&&typeof s[t]==\"function\"?((a=e[t])!=null||(e[t]=[]),e[t].push(s[t])):n[t]=s[t];for(let s in e)Object.assign(n,{[s](...t){let l=e[s];for(let i of l)i==null||i(...t)}});return n}function I(r){var n;return Object.assign(j(r),{displayName:(n=r.displayName)!=null?n:r.name})}function m(r){let n=Object.assign({},r);for(let e in n)n[e]===void 0&&delete n[e];return n}function h(r,n=[]){let e=Object.assign({},r);for(let a of n)a in e&&delete e[a];return e}export{O as RenderFeatures,M as RenderStrategy,m as compact,I as forwardRefWithAs,D as mergeProps,H as render,U as useMergeRefsFn};\n","\"use client\";import{useFocusRing as y}from\"@react-aria/focus\";import{useHover as b}from\"@react-aria/interactions\";import{useMemo as P}from\"react\";import{useActivePress as B}from'../../hooks/use-active-press.js';import{useDisabled as c}from'../../internal/disabled.js';import{forwardRefWithAs as A,mergeProps as g,render as _}from'../../utils/render.js';let v=\"button\";function E(a,u){var p;let l=c(),{disabled:e=l||!1,autoFocus:t=!1,...o}=a,{isFocusVisible:r,focusProps:i}=y({autoFocus:t}),{isHovered:s,hoverProps:T}=b({isDisabled:e}),{pressed:n,pressProps:f}=B({disabled:e}),m=g({ref:u,type:(p=o.type)!=null?p:\"button\",disabled:e||void 0,autoFocus:t},i,T,f),d=P(()=>({disabled:e,hover:s,focus:r,active:n,autofocus:t}),[e,s,r,n,t]);return _({ourProps:m,theirProps:o,slot:d,defaultTag:v,name:\"Button\"})}let h=A(E);export{h as Button};\n","import{useRef as o,useState as f}from\"react\";import{useEvent as a}from'./use-event.js';function T(l,r,c){let[i,s]=f(c),e=l!==void 0,t=o(e),u=o(!1),d=o(!1);return e&&!t.current&&!u.current?(u.current=!0,t.current=e,console.error(\"A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.\")):!e&&t.current&&!d.current&&(d.current=!0,t.current=e,console.error(\"A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.\")),[e?l:i,a(n=>(e||s(n),r==null?void 0:r(n)))]}export{T as useControllable};\n","import{useState as u}from\"react\";function l(e){let[t]=u(e);return t}export{l as useDefaultValue};\n","function e(i={},s=null,t=[]){for(let[r,n]of Object.entries(i))o(t,f(s,r),n);return t}function f(i,s){return i?i+\"[\"+s+\"]\":s}function o(i,s,t){if(Array.isArray(t))for(let[r,n]of t.entries())o(i,f(s,r.toString()),n);else t instanceof Date?i.push([s,t.toISOString()]):typeof t==\"boolean\"?i.push([s,t?\"1\":\"0\"]):typeof t==\"string\"?i.push([s,t]):typeof t==\"number\"?i.push([s,`${t}`]):t==null?i.push([s,\"\"]):e(t,s,i)}function p(i){var t,r;let s=(t=i==null?void 0:i.form)!=null?t:i.closest(\"form\");if(s){for(let n of s.elements)if(n!==i&&(n.tagName===\"INPUT\"&&n.type===\"submit\"||n.tagName===\"BUTTON\"&&n.type===\"submit\"||n.nodeName===\"INPUT\"&&n.type===\"image\")){n.click();return}(r=s.requestSubmit)==null||r.call(s)}}export{p as attemptSubmit,e as objectToFormEntries};\n","import{forwardRefWithAs as i,render as p}from'../utils/render.js';let a=\"div\";var s=(e=>(e[e.None=1]=\"None\",e[e.Focusable=2]=\"Focusable\",e[e.Hidden=4]=\"Hidden\",e))(s||{});function l(t,r){var n;let{features:d=1,...e}=t,o={ref:r,\"aria-hidden\":(d&2)===2?!0:(n=e[\"aria-hidden\"])!=null?n:void 0,hidden:(d&4)===4?!0:void 0,style:{position:\"fixed\",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",borderWidth:\"0\",...(d&4)===4&&(d&2)!==2&&{display:\"none\"}}};return p({ourProps:o,theirProps:e,slot:{},defaultTag:a,name:\"Hidden\"})}let T=i(l);export{T as Hidden,s as HiddenFeatures};\n","import o,{createContext as H,useContext as E,useEffect as m,useState as u}from\"react\";import{createPortal as g}from\"react-dom\";import{useDisposables as h}from'../hooks/use-disposables.js';import{objectToFormEntries as x}from'../utils/form.js';import{compact as y}from'../utils/render.js';import{Hidden as l,HiddenFeatures as d}from'./hidden.js';let f=H(null);function W(t){let[e,r]=u(null);return o.createElement(f.Provider,{value:{target:e}},t.children,o.createElement(l,{features:d.Hidden,ref:r}))}function c({children:t}){let e=E(f);if(!e)return o.createElement(o.Fragment,null,t);let{target:r}=e;return r?g(o.createElement(o.Fragment,null,t),r):null}function j({data:t,form:e,disabled:r,onReset:n,overrides:F}){let[i,a]=u(null),p=h();return m(()=>{if(n&&i)return p.addEventListener(i,\"reset\",n)},[i,e,n]),o.createElement(c,null,o.createElement(C,{setForm:a,formId:e}),x(t).map(([s,v])=>o.createElement(l,{features:d.Hidden,...y({key:s,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,form:e,disabled:r,name:s,value:v,...F})})))}function C({setForm:t,formId:e}){return m(()=>{if(e){let r=document.getElementById(e);r&&t(r)}},[t,e]),e?null:o.createElement(l,{features:d.Hidden,as:\"input\",type:\"hidden\",hidden:!0,readOnly:!0,ref:r=>{if(!r)return;let n=r.closest(\"form\");n&&t(n)}})}export{j as FormFields,W as FormFieldsProvider,c as HoistFormFields};\n","import n,{createContext as d,useContext as i}from\"react\";let e=d(void 0);function u(){return i(e)}function f({id:t,children:r}){return n.createElement(e.Provider,{value:t},r)}export{f as IdProvider,u as useProvidedId};\n","function r(n){let e=n.parentElement,l=null;for(;e&&!(e instanceof HTMLFieldSetElement);)e instanceof HTMLLegendElement&&(l=e),e=e.parentElement;let t=(e==null?void 0:e.getAttribute(\"disabled\"))===\"\";return t&&i(l)?!1:t}function i(n){if(!n)return!1;let e=n.previousElementSibling;for(;e!==null;){if(e instanceof HTMLLegendElement)return!1;e=e.previousElementSibling}return!0}export{r as isDisabledReactIssue7711};\n","import{useEffect as l,useRef as i}from\"react\";import{useEvent as r}from'./use-event.js';let u=Symbol();function T(t,n=!0){return Object.assign(t,{[u]:n})}function y(...t){let n=i(t);l(()=>{n.current=t},[t]);let c=r(e=>{for(let o of n.current)o!=null&&(typeof o==\"function\"?o(e):o.current=e)});return t.every(e=>e==null||(e==null?void 0:e[u]))?void 0:c}export{T as optionalRef,y as useSyncRefs};\n","\"use client\";import m,{createContext as T,useContext as u,useMemo as c,useState as P}from\"react\";import{useEvent as g}from'../../hooks/use-event.js';import{useId as x}from'../../hooks/use-id.js';import{useIsoMorphicEffect as y}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as E}from'../../hooks/use-sync-refs.js';import{useDisabled as v}from'../../internal/disabled.js';import{forwardRefWithAs as R,render as I}from'../../utils/render.js';let a=T(null);a.displayName=\"DescriptionContext\";function f(){let r=u(a);if(r===null){let e=new Error(\"You used a <Description /> component, but it is not inside a relevant parent.\");throw Error.captureStackTrace&&Error.captureStackTrace(e,f),e}return r}function G(){var r,e;return(e=(r=u(a))==null?void 0:r.value)!=null?e:void 0}function U(){let[r,e]=P([]);return[r.length>0?r.join(\" \"):void 0,c(()=>function(t){let i=g(n=>(e(s=>[...s,n]),()=>e(s=>{let o=s.slice(),p=o.indexOf(n);return p!==-1&&o.splice(p,1),o}))),l=c(()=>({register:i,slot:t.slot,name:t.name,props:t.props,value:t.value}),[i,t.slot,t.name,t.props,t.value]);return m.createElement(a.Provider,{value:l},t.children)},[e])]}let S=\"p\";function C(r,e){let d=x(),t=v(),{id:i=`headlessui-description-${d}`,...l}=r,n=f(),s=E(e);y(()=>n.register(i),[i,n.register]);let o=t||!1,p=c(()=>({...n.slot,disabled:o}),[n.slot,o]),D={ref:s,...n.props,id:i};return I({ourProps:D,theirProps:l,slot:p,defaultTag:S,name:n.name||\"Description\"})}let _=R(C),w=Object.assign(_,{});export{w as Description,G as useDescribedBy,U as useDescriptions};\n","var o=(r=>(r.Space=\" \",r.Enter=\"Enter\",r.Escape=\"Escape\",r.Backspace=\"Backspace\",r.Delete=\"Delete\",r.ArrowLeft=\"ArrowLeft\",r.ArrowUp=\"ArrowUp\",r.ArrowRight=\"ArrowRight\",r.ArrowDown=\"ArrowDown\",r.Home=\"Home\",r.End=\"End\",r.PageUp=\"PageUp\",r.PageDown=\"PageDown\",r.Tab=\"Tab\",r))(o||{});export{o as Keys};\n","\"use client\";import k,{createContext as D,useContext as h,useMemo as T,useState as R}from\"react\";import{useEvent as v}from'../../hooks/use-event.js';import{useId as _}from'../../hooks/use-id.js';import{useIsoMorphicEffect as A}from'../../hooks/use-iso-morphic-effect.js';import{useSyncRefs as B}from'../../hooks/use-sync-refs.js';import{useDisabled as F}from'../../internal/disabled.js';import{useProvidedId as S}from'../../internal/id.js';import{forwardRefWithAs as M,render as H}from'../../utils/render.js';let c=D(null);c.displayName=\"LabelContext\";function P(){let r=h(c);if(r===null){let l=new Error(\"You used a <Label /> component, but it is not inside a relevant parent.\");throw Error.captureStackTrace&&Error.captureStackTrace(l,P),l}return r}function I(r){var a,e,o;let l=(e=(a=h(c))==null?void 0:a.value)!=null?e:void 0;return((o=r==null?void 0:r.length)!=null?o:0)>0?[l,...r].filter(Boolean).join(\" \"):l}function z({inherit:r=!1}={}){let l=I(),[a,e]=R([]),o=r?[l,...a].filter(Boolean):a;return[o.length>0?o.join(\" \"):void 0,T(()=>function(t){let s=v(i=>(e(p=>[...p,i]),()=>e(p=>{let u=p.slice(),d=u.indexOf(i);return d!==-1&&u.splice(d,1),u}))),m=T(()=>({register:s,slot:t.slot,name:t.name,props:t.props,value:t.value}),[s,t.slot,t.name,t.props,t.value]);return k.createElement(c.Provider,{value:m},t.children)},[e])]}let N=\"label\";function G(r,l){var y;let a=_(),e=P(),o=S(),g=F(),{id:t=`headlessui-label-${a}`,htmlFor:s=o!=null?o:(y=e.props)==null?void 0:y.htmlFor,passive:m=!1,...i}=r,p=B(l);A(()=>e.register(t),[t,e.register]);let u=v(L=>{let b=L.currentTarget;if(b instanceof HTMLLabelElement&&L.preventDefault(),e.props&&\"onClick\"in e.props&&typeof e.props.onClick==\"function\"&&e.props.onClick(L),b instanceof HTMLLabelElement){let n=document.getElementById(b.htmlFor);if(n){let E=n.getAttribute(\"disabled\");if(E===\"true\"||E===\"\")return;let x=n.getAttribute(\"aria-disabled\");if(x===\"true\"||x===\"\")return;(n instanceof HTMLInputElement&&(n.type===\"radio\"||n.type===\"checkbox\")||n.role===\"radio\"||n.role===\"checkbox\"||n.role===\"switch\")&&n.click(),n.focus({preventScroll:!0})}}}),d=g||!1,C=T(()=>({...e.slot,disabled:d}),[e.slot,d]),f={ref:p,...e.props,id:t,htmlFor:s,onClick:u};return m&&(\"onClick\"in f&&(delete f.htmlFor,delete f.onClick),\"onClick\"in i&&delete i.onClick),H({ourProps:f,theirProps:i,slot:C,defaultTag:s?N:\"div\",name:e.name||\"Label\"})}let U=M(G),K=Object.assign(U,{});export{K as Label,P as useLabelContext,I as useLabelledBy,z as useLabels};\n","\"use client\";import{useFocusRing as S}from\"@react-aria/focus\";import{useHover as W}from\"@react-aria/interactions\";import i,{useCallback as N,useMemo as V,useState as w}from\"react\";import{useActivePress as J}from'../../hooks/use-active-press.js';import{useControllable as $}from'../../hooks/use-controllable.js';import{useDefaultValue as j}from'../../hooks/use-default-value.js';import{useDisposables as q}from'../../hooks/use-disposables.js';import{useEvent as l}from'../../hooks/use-event.js';import{useId as z}from'../../hooks/use-id.js';import{useDisabled as Q}from'../../internal/disabled.js';import{FormFields as Y}from'../../internal/form-fields.js';import{useProvidedId as Z}from'../../internal/id.js';import{isDisabledReactIssue7711 as ee}from'../../utils/bugs.js';import{attemptSubmit as oe}from'../../utils/form.js';import{forwardRefWithAs as te,mergeProps as re,render as ae}from'../../utils/render.js';import{useDescribedBy as ne}from'../description/description.js';import{Keys as y}from'../keyboard.js';import{useLabelledBy as le}from'../label/label.js';let se=\"span\";function ie(T,h){let C=z(),k=Z(),x=Q(),{id:g=k||`headlessui-checkbox-${C}`,disabled:e=x||!1,autoFocus:s=!1,checked:E,defaultChecked:v,onChange:P,name:d,value:D,form:R,indeterminate:n=!1,...A}=T,r=j(v),[a,t]=$(E,P,r!=null?r:!1),F=le(),K=ne(),_=q(),[p,c]=w(!1),u=l(()=>{c(!0),t==null||t(!a),_.nextFrame(()=>{c(!1)})}),H=l(o=>{if(ee(o.currentTarget))return o.preventDefault();o.preventDefault(),u()}),B=l(o=>{o.key===y.Space?(o.preventDefault(),u()):o.key===y.Enter&&oe(o.currentTarget)}),L=l(o=>o.preventDefault()),{isFocusVisible:m,focusProps:I}=S({autoFocus:s}),{isHovered:f,hoverProps:M}=W({isDisabled:e}),{pressed:b,pressProps:U}=J({disabled:e}),O=re({ref:h,id:g,role:\"checkbox\",\"aria-checked\":n?\"mixed\":a?\"true\":\"false\",\"aria-labelledby\":F,\"aria-describedby\":K,\"aria-disabled\":e?!0:void 0,indeterminate:n?\"true\":void 0,tabIndex:e?void 0:0,onKeyUp:e?void 0:B,onKeyPress:e?void 0:L,onClick:e?void 0:H},I,M,U),X=V(()=>({checked:a,disabled:e,hover:f,focus:m,active:b,indeterminate:n,changing:p,autofocus:s}),[a,n,e,f,m,b,p,s]),G=N(()=>{if(r!==void 0)return t==null?void 0:t(r)},[t,r]);return i.createElement(i.Fragment,null,d!=null&&i.createElement(Y,{disabled:e,data:{[d]:D||\"on\"},overrides:{type:\"checkbox\",checked:a},form:R,onReset:G}),ae({ourProps:O,theirProps:A,slot:X,defaultTag:se,name:\"Checkbox\"}))}let Re=te(ie);export{Re as Checkbox};\n","import r,{createContext as n,useContext as i}from\"react\";let e=n(()=>{});function l(){return i(e)}function u({value:o,children:t}){return r.createElement(e.Provider,{value:o},t)}export{u as CloseProvider,l as useClose};\n","\"use client\";import n from\"react\";import{useClose as T}from'../../internal/close-provider.js';import{forwardRefWithAs as p,mergeProps as r}from'../../utils/render.js';import{Button as s}from'../button/button.js';let i=\"button\";function l(t,e){let o=T();return n.createElement(s,{ref:e,...r({onClick:o},t)})}let y=p(l);export{y as CloseButton};\n","import{useCallback as n}from\"react\";function l(e,r){return e!==null&&r!==null&&typeof e==\"object\"&&typeof r==\"object\"&&\"id\"in e&&\"id\"in r?e.id===r.id:e===r}function u(e=l){return n((r,t)=>{if(typeof e==\"string\"){let o=e;return(r==null?void 0:r[o])===(t==null?void 0:t[o])}return e(r,t)},[e])}export{u as useByComparator};\n","import{useMemo as o,useReducer as c}from\"react\";import{useIsoMorphicEffect as h}from'./use-iso-morphic-effect.js';function s(e){if(e===null)return{width:0,height:0};let{width:n,height:t}=e.getBoundingClientRect();return{width:n,height:t}}function f(e,n=!1){let t=e===null?null:\"current\"in e?e.current:e,[l,u]=c(()=>({}),{}),r=o(()=>s(t),[t,l]);return h(()=>{if(!t)return;let i=new ResizeObserver(u);return i.observe(t),()=>{i.disconnect()}},[t]),n?{width:`${r.width}px`,height:`${r.height}px`}:r}export{f as useElementSize};\n","class a extends Map{constructor(t){super();this.factory=t}get(t){let e=super.get(t);return e===void 0&&(e=this.factory(t),this.set(t,e)),e}}export{a as DefaultMap};\n","function a(o,r){let t=o(),n=new Set;return{getSnapshot(){return t},subscribe(e){return n.add(e),()=>n.delete(e)},dispatch(e,...s){let i=r[e].call(t,...s);i&&(t=i,n.forEach(c=>c()))}}}export{a as createStore};\n","import{useSyncExternalStore as e}from\"react\";function o(t){return e(t.subscribe,t.getSnapshot,t.getSnapshot)}export{o as useStore};\n","import{useId as n}from\"react\";import{DefaultMap as f}from'../utils/default-map.js';import{createStore as u}from'../utils/store.js';import{useIsoMorphicEffect as c}from'./use-iso-morphic-effect.js';import{useStore as l}from'./use-store.js';let p=new f(()=>u(()=>[],{ADD(r){return this.includes(r)?this:[...this,r]},REMOVE(r){let e=this.indexOf(r);if(e===-1)return this;let t=this.slice();return t.splice(e,1),t}}));function x(r,e){let t=p.get(e),i=n(),h=l(t);if(c(()=>{if(r)return t.dispatch(\"ADD\",i),()=>t.dispatch(\"REMOVE\",i)},[t,r]),!r)return!1;let s=h.indexOf(i),o=h.length;return s===-1&&(s=o,o+=1),s===o-1}export{x as useIsTopLayer};\n","import{disposables as M}from'../utils/disposables.js';import{getOwnerDocument as b}from'../utils/owner.js';import{useIsTopLayer as L}from'./use-is-top-layer.js';import{useIsoMorphicEffect as T}from'./use-iso-morphic-effect.js';let f=new Map,u=new Map;function h(t){var e;let r=(e=u.get(t))!=null?e:0;return u.set(t,r+1),r!==0?()=>m(t):(f.set(t,{\"aria-hidden\":t.getAttribute(\"aria-hidden\"),inert:t.inert}),t.setAttribute(\"aria-hidden\",\"true\"),t.inert=!0,()=>m(t))}function m(t){var i;let r=(i=u.get(t))!=null?i:1;if(r===1?u.delete(t):u.set(t,r-1),r!==1)return;let e=f.get(t);e&&(e[\"aria-hidden\"]===null?t.removeAttribute(\"aria-hidden\"):t.setAttribute(\"aria-hidden\",e[\"aria-hidden\"]),t.inert=e.inert,f.delete(t))}function y(t,{allowed:r,disallowed:e}={}){let i=L(t,\"inert-others\");T(()=>{var d,c;if(!i)return;let a=M();for(let n of(d=e==null?void 0:e())!=null?d:[])n&&a.add(h(n));let s=(c=r==null?void 0:r())!=null?c:[];for(let n of s){if(!n)continue;let l=b(n);if(!l)continue;let o=n.parentElement;for(;o&&o!==l.body;){for(let p of o.children)s.some(E=>p.contains(E))||a.add(h(p));o=o.parentElement}}return a.dispose},[i,r,e])}export{y as useInertOthers};\n","import{useEffect as o}from\"react\";import{disposables as u}from'../utils/disposables.js';import{useLatestValue as c}from'./use-latest-value.js';function m(s,n,l){let i=c(t=>{let e=t.getBoundingClientRect();e.x===0&&e.y===0&&e.width===0&&e.height===0&&l()});o(()=>{if(!s)return;let t=n===null?null:n instanceof HTMLElement?n:n.current;if(!t)return;let e=u();if(typeof ResizeObserver!=\"undefined\"){let r=new ResizeObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}if(typeof IntersectionObserver!=\"undefined\"){let r=new IntersectionObserver(()=>i.current(t));r.observe(t),e.add(()=>r.disconnect())}return()=>e.dispose()},[n,i,s])}export{m as useOnDisappear};\n","import{disposables as N}from'./disposables.js';import{match as L}from'./match.js';import{getOwnerDocument as E}from'./owner.js';let f=[\"[contentEditable=true]\",\"[tabindex]\",\"a[href]\",\"area[href]\",\"button:not([disabled])\",\"iframe\",\"input:not([disabled])\",\"select:not([disabled])\",\"textarea:not([disabled])\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\"),p=[\"[data-autofocus]\"].map(e=>`${e}:not([tabindex='-1'])`).join(\",\");var F=(n=>(n[n.First=1]=\"First\",n[n.Previous=2]=\"Previous\",n[n.Next=4]=\"Next\",n[n.Last=8]=\"Last\",n[n.WrapAround=16]=\"WrapAround\",n[n.NoScroll=32]=\"NoScroll\",n[n.AutoFocus=64]=\"AutoFocus\",n))(F||{}),T=(o=>(o[o.Error=0]=\"Error\",o[o.Overflow=1]=\"Overflow\",o[o.Success=2]=\"Success\",o[o.Underflow=3]=\"Underflow\",o))(T||{}),y=(t=>(t[t.Previous=-1]=\"Previous\",t[t.Next=1]=\"Next\",t))(y||{});function b(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(f)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}function S(e=document.body){return e==null?[]:Array.from(e.querySelectorAll(p)).sort((r,t)=>Math.sign((r.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var h=(t=>(t[t.Strict=0]=\"Strict\",t[t.Loose=1]=\"Loose\",t))(h||{});function A(e,r=0){var t;return e===((t=E(e))==null?void 0:t.body)?!1:L(r,{[0](){return e.matches(f)},[1](){let u=e;for(;u!==null;){if(u.matches(f))return!0;u=u.parentElement}return!1}})}function G(e){let r=E(e);N().nextFrame(()=>{r&&!A(r.activeElement,0)&&I(e)})}var H=(t=>(t[t.Keyboard=0]=\"Keyboard\",t[t.Mouse=1]=\"Mouse\",t))(H||{});typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"keydown\",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0),document.addEventListener(\"click\",e=>{e.detail===1?delete document.documentElement.dataset.headlessuiFocusVisible:e.detail===0&&(document.documentElement.dataset.headlessuiFocusVisible=\"\")},!0));function I(e){e==null||e.focus({preventScroll:!0})}let w=[\"textarea\",\"input\"].join(\",\");function O(e){var r,t;return(t=(r=e==null?void 0:e.matches)==null?void 0:r.call(e,w))!=null?t:!1}function _(e,r=t=>t){return e.slice().sort((t,u)=>{let o=r(t),c=r(u);if(o===null||c===null)return 0;let l=o.compareDocumentPosition(c);return l&Node.DOCUMENT_POSITION_FOLLOWING?-1:l&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function j(e,r){return P(b(),r,{relativeTo:e})}function P(e,r,{sorted:t=!0,relativeTo:u=null,skipElements:o=[]}={}){let c=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,l=Array.isArray(e)?t?_(e):e:r&64?S(e):b(e);o.length>0&&l.length>1&&(l=l.filter(s=>!o.some(a=>a!=null&&\"current\"in a?(a==null?void 0:a.current)===s:a===s))),u=u!=null?u:c.activeElement;let n=(()=>{if(r&5)return 1;if(r&10)return-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),x=(()=>{if(r&1)return 0;if(r&2)return Math.max(0,l.indexOf(u))-1;if(r&4)return Math.max(0,l.indexOf(u))+1;if(r&8)return l.length-1;throw new Error(\"Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last\")})(),M=r&32?{preventScroll:!0}:{},m=0,d=l.length,i;do{if(m>=d||m+d<=0)return 0;let s=x+m;if(r&16)s=(s+d)%d;else{if(s<0)return 3;if(s>=d)return 1}i=l[s],i==null||i.focus(M),m+=n}while(i!==c.activeElement);return r&6&&O(i)&&i.select(),2}export{F as Focus,T as FocusResult,h as FocusableMode,I as focusElement,j as focusFrom,P as focusIn,S as getAutoFocusableElements,b as getFocusableElements,A as isFocusableElement,G as restoreFocusIfNecessary,_ as sortByDomNode};\n","function t(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function i(){return/Android/gi.test(window.navigator.userAgent)}function n(){return t()||i()}export{i as isAndroid,t as isIOS,n as isMobile};\n","import{useEffect as c}from\"react\";import{useLatestValue as a}from'./use-latest-value.js';function i(t,e,o,n){let u=a(o);c(()=>{if(!t)return;function r(m){u.current(m)}return document.addEventListener(e,r,n),()=>document.removeEventListener(e,r,n)},[t,e,n])}export{i as useDocumentEvent};\n","import{useEffect as a}from\"react\";import{useLatestValue as f}from'./use-latest-value.js';function s(t,e,o,n){let i=f(o);a(()=>{if(!t)return;function r(d){i.current(d)}return window.addEventListener(e,r,n),()=>window.removeEventListener(e,r,n)},[t,e,n])}export{s as useWindowEvent};\n","import{useCallback as h,useRef as m}from\"react\";import{FocusableMode as M,isFocusableElement as b}from'../utils/focus-management.js';import{isMobile as y}from'../utils/platform.js';import{useDocumentEvent as c}from'./use-document-event.js';import{useIsTopLayer as L}from'./use-is-top-layer.js';import{useLatestValue as g}from'./use-latest-value.js';import{useWindowEvent as H}from'./use-window-event.js';const d=30;function F(E,p,C){let u=L(E,\"outside-click\"),f=g(C),s=h(function(e,o){if(e.defaultPrevented)return;let r=o(e);if(r===null||!r.getRootNode().contains(r)||!r.isConnected)return;let T=function i(n){return typeof n==\"function\"?i(n()):Array.isArray(n)||n instanceof Set?n:[n]}(p);for(let i of T){if(i===null)continue;let n=i instanceof HTMLElement?i:i.current;if(n!=null&&n.contains(r)||e.composed&&e.composedPath().includes(n))return}return!b(r,M.Loose)&&r.tabIndex!==-1&&e.preventDefault(),f.current(e,r)},[f]),l=m(null);c(u,\"pointerdown\",t=>{var e,o;l.current=((o=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:o[0])||t.target},!0),c(u,\"mousedown\",t=>{var e,o;l.current=((o=(e=t.composedPath)==null?void 0:e.call(t))==null?void 0:o[0])||t.target},!0),c(u,\"click\",t=>{y()||l.current&&(s(t,()=>l.current),l.current=null)},!0);let a=m({x:0,y:0});c(u,\"touchstart\",t=>{a.current.x=t.touches[0].clientX,a.current.y=t.touches[0].clientY},!0),c(u,\"touchend\",t=>{let e={x:t.changedTouches[0].clientX,y:t.changedTouches[0].clientY};if(!(Math.abs(e.x-a.current.x)>=d||Math.abs(e.y-a.current.y)>=d))return s(t,()=>t.target instanceof HTMLElement?t.target:null)},!0),H(u,\"blur\",t=>s(t,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null),!0)}export{F as useOutsideClick};\n","import{useMemo as t}from\"react\";import{getOwnerDocument as o}from'../utils/owner.js';function n(...e){return t(()=>o(...e),[...e])}export{n as useOwnerDocument};\n","import{useEffect as d}from\"react\";import{useLatestValue as s}from'./use-latest-value.js';function E(n,e,a,t){let i=s(a);d(()=>{n=n!=null?n:window;function r(o){i.current(o)}return n.addEventListener(e,r,t),()=>n.removeEventListener(e,r,t)},[n,e,t])}export{E as useEventListener};\n","import{useState as o}from\"react\";import{useIsoMorphicEffect as r}from'./use-iso-morphic-effect.js';function i(t){var n;if(t.type)return t.type;let e=(n=t.as)!=null?n:\"button\";if(typeof e==\"string\"&&e.toLowerCase()===\"button\")return\"button\"}function T(t,e){let[n,u]=o(()=>i(t));return r(()=>{u(i(t))},[t.type,t.as]),r(()=>{n||e.current&&e.current instanceof HTMLButtonElement&&!e.current.hasAttribute(\"type\")&&u(\"button\")},[n,e]),n}export{T as useResolveButtonType};\n","function d(){let r;return{before({doc:e}){var l;let o=e.documentElement,t=(l=e.defaultView)!=null?l:window;r=Math.max(0,t.innerWidth-o.clientWidth)},after({doc:e,d:o}){let t=e.documentElement,l=Math.max(0,t.clientWidth-t.offsetWidth),n=Math.max(0,r-l);o.style(t,\"paddingRight\",`${n}px`)}}}export{d as adjustScrollbarPadding};\n","import{disposables as m}from'../../utils/disposables.js';import{isIOS as u}from'../../utils/platform.js';function d(){return u()?{before({doc:r,d:n,meta:c}){function o(a){return c.containers.flatMap(l=>l()).some(l=>l.contains(a))}n.microTask(()=>{var s;if(window.getComputedStyle(r.documentElement).scrollBehavior!==\"auto\"){let t=m();t.style(r.documentElement,\"scrollBehavior\",\"auto\"),n.add(()=>n.microTask(()=>t.dispose()))}let a=(s=window.scrollY)!=null?s:window.pageYOffset,l=null;n.addEventListener(r,\"click\",t=>{if(t.target instanceof HTMLElement)try{let e=t.target.closest(\"a\");if(!e)return;let{hash:f}=new URL(e.href),i=r.querySelector(f);i&&!o(i)&&(l=i)}catch{}},!0),n.addEventListener(r,\"touchstart\",t=>{if(t.target instanceof HTMLElement)if(o(t.target)){let e=t.target;for(;e.parentElement&&o(e.parentElement);)e=e.parentElement;n.style(e,\"overscrollBehavior\",\"contain\")}else n.style(t.target,\"touchAction\",\"none\")}),n.addEventListener(r,\"touchmove\",t=>{if(t.target instanceof HTMLElement){if(t.target.tagName===\"INPUT\")return;if(o(t.target)){let e=t.target;for(;e.parentElement&&e.dataset.headlessuiPortal!==\"\"&&!(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth);)e=e.parentElement;e.dataset.headlessuiPortal===\"\"&&t.preventDefault()}else t.preventDefault()}},{passive:!1}),n.add(()=>{var e;let t=(e=window.scrollY)!=null?e:window.pageYOffset;a!==t&&window.scrollTo(0,a),l&&l.isConnected&&(l.scrollIntoView({block:\"nearest\"}),l=null)})})}}:{}}export{d as handleIOSLocking};\n","function r(){return{before({doc:e,d:o}){o.style(e.documentElement,\"overflow\",\"hidden\")}}}export{r as preventScroll};\n","import{disposables as s}from'../../utils/disposables.js';import{createStore as i}from'../../utils/store.js';import{adjustScrollbarPadding as l}from'./adjust-scrollbar-padding.js';import{handleIOSLocking as d}from'./handle-ios-locking.js';import{preventScroll as p}from'./prevent-scroll.js';function m(e){let n={};for(let t of e)Object.assign(n,t(n));return n}let a=i(()=>new Map,{PUSH(e,n){var o;let t=(o=this.get(e))!=null?o:{doc:e,count:0,d:s(),meta:new Set};return t.count++,t.meta.add(n),this.set(e,t),this},POP(e,n){let t=this.get(e);return t&&(t.count--,t.meta.delete(n)),this},SCROLL_PREVENT({doc:e,d:n,meta:t}){let o={doc:e,d:n,meta:m(t)},c=[d(),l(),p()];c.forEach(({before:r})=>r==null?void 0:r(o)),c.forEach(({after:r})=>r==null?void 0:r(o))},SCROLL_ALLOW({d:e}){e.dispose()},TEARDOWN({doc:e}){this.delete(e)}});a.subscribe(()=>{let e=a.getSnapshot(),n=new Map;for(let[t]of e)n.set(t,t.documentElement.style.overflow);for(let t of e.values()){let o=n.get(t.doc)===\"hidden\",c=t.count!==0;(c&&!o||!c&&o)&&a.dispatch(t.count>0?\"SCROLL_PREVENT\":\"SCROLL_ALLOW\",t),t.count===0&&a.dispatch(\"TEARDOWN\",t)}});export{a as overflows};\n","import{useStore as s}from'../../hooks/use-store.js';import{useIsoMorphicEffect as u}from'../use-iso-morphic-effect.js';import{overflows as t}from'./overflow-store.js';function a(r,e,n=()=>({containers:[]})){let f=s(t),o=e?f.get(e):void 0,i=o?o.count>0:!1;return u(()=>{if(!(!e||!r))return t.dispatch(\"PUSH\",e,n),()=>t.dispatch(\"POP\",e,n)},[r,e]),i}export{a as useDocumentOverflowLockedEffect};\n","import{useDocumentOverflowLockedEffect as l}from'./document-overflow/use-document-overflow.js';import{useIsTopLayer as m}from'./use-is-top-layer.js';function f(e,c,n=()=>[document.body]){let r=m(e,\"scroll-lock\");l(r,c,t=>{var o;return{containers:[...(o=t.containers)!=null?o:[],n]}})}export{f as useScrollLock};\n","function l(r){let e={called:!1};return(...t)=>{if(!e.called)return e.called=!0,r(...t)}}export{l as once};\n","import{useCallback as r,useState as b}from\"react\";function c(u=0){let[t,l]=b(u),g=r(e=>l(e),[t]),s=r(e=>l(a=>a|e),[t]),m=r(e=>(t&e)===e,[t]),n=r(e=>l(a=>a&~e),[l]),F=r(e=>l(a=>a^e),[l]);return{flags:t,setFlag:g,addFlag:s,hasFlag:m,removeFlag:n,toggleFlag:F}}export{c as useFlags};\n","import{useRef as b,useState as S}from\"react\";import{disposables as E}from'../utils/disposables.js';import{once as g}from'../utils/once.js';import{useDisposables as L}from'./use-disposables.js';import{useFlags as y}from'./use-flags.js';import{useIsoMorphicEffect as C}from'./use-iso-morphic-effect.js';var D=(i=>(i[i.None=0]=\"None\",i[i.Closed=1]=\"Closed\",i[i.Enter=2]=\"Enter\",i[i.Leave=4]=\"Leave\",i))(D||{});function A(e){let a={};for(let t in e)e[t]===!0&&(a[`data-${t}`]=\"\");return a}function V(e,a,t,r){let[i,u]=S(t),{hasFlag:d,addFlag:f,removeFlag:s}=y(e&&i?3:0),l=b(!1),n=b(!1),o=L();return C(function p(){var T;if(!e)return;t&&u(!0);let c=a.current;return c?((T=r==null?void 0:r.start)==null||T.call(r,t),M(c,{inFlight:l,prepare(){n.current?n.current=!1:n.current=l.current,l.current=!0,!n.current&&(t?(f(3),s(4)):(f(4),s(2)))},run(){n.current?t?(s(3),f(4)):(s(4),f(3)):t?s(1):f(1)},done(){var m;n.current&&typeof c.getAnimations==\"function\"&&c.getAnimations().length>0||(l.current=!1,s(7),t||u(!1),(m=r==null?void 0:r.end)==null||m.call(r,t))}})):t?(f(3),o.nextFrame(()=>p())):void 0},[e,t,a,o]),e?[i,{closed:d(1),enter:d(2),leave:d(4),transition:d(2)||d(4)}]:[t,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function M(e,{prepare:a,run:t,done:r,inFlight:i}){let u=E();return R(e,{prepare:a,inFlight:i}),u.nextFrame(()=>{u.add(F(e,r)),t()}),u.dispose}function F(e,a){let t=g(a),r=E();if(!e)return r.dispose;let{transitionDuration:i,transitionDelay:u}=getComputedStyle(e),[d,f]=[i,u].map(l=>{let[n=0]=l.split(\",\").filter(Boolean).map(o=>o.includes(\"ms\")?parseFloat(o):parseFloat(o)*1e3).sort((o,p)=>p-o);return n}),s=d+f;if(s!==0){let l=r.group(n=>{let o=n.setTimeout(()=>{t(),n.dispose()},s);n.addEventListener(e,\"transitionrun\",p=>{p.target===p.currentTarget&&(o(),n.addEventListener(e,\"transitioncancel\",c=>{c.target===c.currentTarget&&(t(),l())}))})});r.addEventListener(e,\"transitionend\",n=>{n.target===n.currentTarget&&(t(),r.dispose())})}else t();return r.dispose}function R(e,{inFlight:a,prepare:t}){if(a!=null&&a.current){t();return}let r=e.style.transition;e.style.transition=\"none\",t(),e.offsetHeight,e.style.transition=r}export{A as transitionDataAttributes,V as useTransition};\n","import{useEffect as f,useRef as s}from\"react\";import{useEvent as i}from'./use-event.js';function m(u,t){let e=s([]),r=i(u);f(()=>{let o=[...e.current];for(let[a,l]of t.entries())if(e.current[a]!==l){let n=r(t,o);return e.current=t,n}},[r,...t])}export{m as useWatch};\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 { isShadowRoot, isHTMLElement } from '@floating-ui/utils/dom';\n\nfunction activeElement(doc) {\n  let activeElement = doc.activeElement;\n  while (((_activeElement = activeElement) == null || (_activeElement = _activeElement.shadowRoot) == null ? void 0 : _activeElement.activeElement) != null) {\n    var _activeElement;\n    activeElement = activeElement.shadowRoot.activeElement;\n  }\n  return activeElement;\n}\nfunction contains(parent, child) {\n  if (!parent || !child) {\n    return false;\n  }\n  const rootNode = child.getRootNode == null ? void 0 : child.getRootNode();\n\n  // First, attempt with faster native method\n  if (parent.contains(child)) {\n    return true;\n  }\n\n  // then fallback to custom implementation with Shadow DOM support\n  if (rootNode && isShadowRoot(rootNode)) {\n    let next = child;\n    while (next) {\n      if (parent === next) {\n        return true;\n      }\n      // @ts-ignore\n      next = next.parentNode || next.host;\n    }\n  }\n\n  // Give up, the result is false\n  return false;\n}\n// Avoid Chrome DevTools blue warning.\nfunction getPlatform() {\n  const uaData = navigator.userAgentData;\n  if (uaData != null && uaData.platform) {\n    return uaData.platform;\n  }\n  return navigator.platform;\n}\nfunction getUserAgent() {\n  const uaData = navigator.userAgentData;\n  if (uaData && Array.isArray(uaData.brands)) {\n    return uaData.brands.map(_ref => {\n      let {\n        brand,\n        version\n      } = _ref;\n      return brand + \"/\" + version;\n    }).join(' ');\n  }\n  return navigator.userAgent;\n}\n\n// License: https://github.com/adobe/react-spectrum/blob/b35d5c02fe900badccd0cf1a8f23bb593419f238/packages/@react-aria/utils/src/isVirtualEvent.ts\nfunction isVirtualClick(event) {\n  // FIXME: Firefox is now emitting a deprecation warning for `mozInputSource`.\n  // Try to find a workaround for this. `react-aria` source still has the check.\n  if (event.mozInputSource === 0 && event.isTrusted) {\n    return true;\n  }\n  if (isAndroid() && event.pointerType) {\n    return event.type === 'click' && event.buttons === 1;\n  }\n  return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n  if (isJSDOM()) return false;\n  return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'mouse' ||\n  // iOS VoiceOver returns 0.333• for width/height.\n  event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === 'touch';\n}\nfunction isSafari() {\n  // Chrome DevTools does not complain about navigator.vendor\n  return /apple/i.test(navigator.vendor);\n}\nfunction isAndroid() {\n  const re = /android/i;\n  return re.test(getPlatform()) || re.test(getUserAgent());\n}\nfunction isMac() {\n  return getPlatform().toLowerCase().startsWith('mac') && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n  return getUserAgent().includes('jsdom/');\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n  // On some Linux machines with Chromium, mouse inputs return a `pointerType`\n  // of \"pen\": https://github.com/floating-ui/floating-ui/issues/2015\n  const values = ['mouse', 'pen'];\n  if (!strict) {\n    values.push('', undefined);\n  }\n  return values.includes(pointerType);\n}\nfunction isReactEvent(event) {\n  return 'nativeEvent' in event;\n}\nfunction isRootElement(element) {\n  return element.matches('html,body');\n}\nfunction getDocument(node) {\n  return (node == null ? void 0 : node.ownerDocument) || document;\n}\nfunction isEventTargetWithin(event, node) {\n  if (node == null) {\n    return false;\n  }\n  if ('composedPath' in event) {\n    return event.composedPath().includes(node);\n  }\n\n  // TS thinks `event` is of type never as it assumes all browsers support composedPath, but browsers without shadow dom don't\n  const e = event;\n  return e.target != null && node.contains(e.target);\n}\nfunction getTarget(event) {\n  if ('composedPath' in event) {\n    return event.composedPath()[0];\n  }\n\n  // TS thinks `event` is of type never as it assumes all browsers support\n  // `composedPath()`, but browsers without shadow DOM don't.\n  return event.target;\n}\nconst TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),\" + \"[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n  return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction stopEvent(event) {\n  event.preventDefault();\n  event.stopPropagation();\n}\nfunction isTypeableCombobox(element) {\n  if (!element) return false;\n  return element.getAttribute('role') === 'combobox' && isTypeableElement(element);\n}\n\nexport { TYPEABLE_SELECTOR, activeElement, contains, getDocument, getPlatform, getTarget, getUserAgent, isAndroid, isEventTargetWithin, isJSDOM, isMac, isMouseLikePointerType, isReactEvent, isRootElement, isSafari, isTypeableCombobox, isTypeableElement, isVirtualClick, isVirtualPointerEvent, stopEvent };\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: rawValue.mainAxis || 0,\n    crossAxis: rawValue.crossAxis || 0,\n    alignmentAxis: rawValue.alignmentAxis\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          enabled: {\n            [mainAxis]: checkMainAxis,\n            [crossAxis]: checkCrossAxis\n          }\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      var _state$middlewareData, _state$middlewareData2;\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 ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n        availableWidth = maximumClippingWidth;\n      }\n      if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n        availableHeight = 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, 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 <html> 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 <body> 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 `<html>` and `<body>` 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 <body> 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 <html> element as the offsetParent if it's non-static,\n  // while Chrome and Safari return the <body> element. The <body> element must\n  // be used to perform the correct calculations even if the <html> 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 <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  refresh(true);\n  return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === 'function',\n    layoutShift = typeof IntersectionObserver === 'function',\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n  ancestors.forEach(ancestor => {\n    ancestorScroll && ancestor.addEventListener('scroll', update, {\n      passive: true\n    });\n    ancestorResize && ancestor.addEventListener('resize', update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver(_ref => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n        // Prevent update loops when using the `size` middleware.\n        // https://github.com/floating-ui/floating-ui/issues/1740\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          var _resizeObserver;\n          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    resizeObserver.observe(floating);\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  update();\n  return () => {\n    var _resizeObserver2;\n    ancestors.forEach(ancestor => {\n      ancestorScroll && ancestor.removeEventListener('scroll', update);\n      ancestorResize && ancestor.removeEventListener('resize', update);\n    });\n    cleanupIo == null || cleanupIo();\n    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\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 */\nconst detectOverflow = detectOverflow$1;\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 = offset$1;\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 = autoPlacement$1;\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 = shift$1;\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 = flip$1;\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 = size$1;\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 = hide$1;\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 = arrow$1;\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 = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n  // This caches the expensive `getClippingElementAncestors` function so that\n  // multiple lifecycle resets re-use the same result. It only lives for a\n  // single call. If other functions become expensive, we can add them as well.\n  const cache = new Map();\n  const mergedOptions = {\n    platform,\n    ...options\n  };\n  const platformWithCache = {\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return computePosition$1(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { computePosition, arrow as arrow$2, offset as offset$1, shift as shift$1, limitShift as limitShift$1, flip as flip$1, size as size$1, autoPlacement as autoPlacement$1, hide as hide$1, inline as inline$1 } from '@floating-ui/dom';\nexport { autoUpdate, computePosition, detectOverflow, getOverflowAncestors, platform } from '@floating-ui/dom';\nimport * as React from 'react';\nimport { useLayoutEffect, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\n// Fork of `fast-deep-equal` that only does the comparisons we need and compares\n// functions\nfunction deepEqual(a, b) {\n  if (a === b) {\n    return true;\n  }\n  if (typeof a !== typeof b) {\n    return false;\n  }\n  if (typeof a === 'function' && a.toString() === b.toString()) {\n    return true;\n  }\n  let length;\n  let i;\n  let keys;\n  if (a && b && typeof a === 'object') {\n    if (Array.isArray(a)) {\n      length = a.length;\n      if (length !== b.length) return false;\n      for (i = length; i-- !== 0;) {\n        if (!deepEqual(a[i], b[i])) {\n          return false;\n        }\n      }\n      return true;\n    }\n    keys = Object.keys(a);\n    length = keys.length;\n    if (length !== Object.keys(b).length) {\n      return false;\n    }\n    for (i = length; i-- !== 0;) {\n      if (!{}.hasOwnProperty.call(b, keys[i])) {\n        return false;\n      }\n    }\n    for (i = length; i-- !== 0;) {\n      const key = keys[i];\n      if (key === '_owner' && a.$$typeof) {\n        continue;\n      }\n      if (!deepEqual(a[key], b[key])) {\n        return false;\n      }\n    }\n    return true;\n  }\n  return a !== a && b !== b;\n}\n\nfunction getDPR(element) {\n  if (typeof window === 'undefined') {\n    return 1;\n  }\n  const win = element.ownerDocument.defaultView || window;\n  return win.devicePixelRatio || 1;\n}\n\nfunction roundByDPR(element, value) {\n  const dpr = getDPR(element);\n  return Math.round(value * dpr) / dpr;\n}\n\nfunction useLatestRef(value) {\n  const ref = React.useRef(value);\n  index(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n\n/**\n * Provides data to position a floating element.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform,\n    elements: {\n      reference: externalReference,\n      floating: externalFloating\n    } = {},\n    transform = true,\n    whileElementsMounted,\n    open\n  } = options;\n  const [data, setData] = React.useState({\n    x: 0,\n    y: 0,\n    strategy,\n    placement,\n    middlewareData: {},\n    isPositioned: false\n  });\n  const [latestMiddleware, setLatestMiddleware] = React.useState(middleware);\n  if (!deepEqual(latestMiddleware, middleware)) {\n    setLatestMiddleware(middleware);\n  }\n  const [_reference, _setReference] = React.useState(null);\n  const [_floating, _setFloating] = React.useState(null);\n  const setReference = React.useCallback(node => {\n    if (node !== referenceRef.current) {\n      referenceRef.current = node;\n      _setReference(node);\n    }\n  }, []);\n  const setFloating = React.useCallback(node => {\n    if (node !== floatingRef.current) {\n      floatingRef.current = node;\n      _setFloating(node);\n    }\n  }, []);\n  const referenceEl = externalReference || _reference;\n  const floatingEl = externalFloating || _floating;\n  const referenceRef = React.useRef(null);\n  const floatingRef = React.useRef(null);\n  const dataRef = React.useRef(data);\n  const hasWhileElementsMounted = whileElementsMounted != null;\n  const whileElementsMountedRef = useLatestRef(whileElementsMounted);\n  const platformRef = useLatestRef(platform);\n  const openRef = useLatestRef(open);\n  const update = React.useCallback(() => {\n    if (!referenceRef.current || !floatingRef.current) {\n      return;\n    }\n    const config = {\n      placement,\n      strategy,\n      middleware: latestMiddleware\n    };\n    if (platformRef.current) {\n      config.platform = platformRef.current;\n    }\n    computePosition(referenceRef.current, floatingRef.current, config).then(data => {\n      const fullData = {\n        ...data,\n        // The floating element's position may be recomputed while it's closed\n        // but still mounted (such as when transitioning out). To ensure\n        // `isPositioned` will be `false` initially on the next open, avoid\n        // setting it to `true` when `open === false` (must be specified).\n        isPositioned: openRef.current !== false\n      };\n      if (isMountedRef.current && !deepEqual(dataRef.current, fullData)) {\n        dataRef.current = fullData;\n        ReactDOM.flushSync(() => {\n          setData(fullData);\n        });\n      }\n    });\n  }, [latestMiddleware, placement, strategy, platformRef, openRef]);\n  index(() => {\n    if (open === false && dataRef.current.isPositioned) {\n      dataRef.current.isPositioned = false;\n      setData(data => ({\n        ...data,\n        isPositioned: false\n      }));\n    }\n  }, [open]);\n  const isMountedRef = React.useRef(false);\n  index(() => {\n    isMountedRef.current = true;\n    return () => {\n      isMountedRef.current = false;\n    };\n  }, []);\n  index(() => {\n    if (referenceEl) referenceRef.current = referenceEl;\n    if (floatingEl) floatingRef.current = floatingEl;\n    if (referenceEl && floatingEl) {\n      if (whileElementsMountedRef.current) {\n        return whileElementsMountedRef.current(referenceEl, floatingEl, update);\n      }\n      update();\n    }\n  }, [referenceEl, floatingEl, update, whileElementsMountedRef, hasWhileElementsMounted]);\n  const refs = React.useMemo(() => ({\n    reference: referenceRef,\n    floating: floatingRef,\n    setReference,\n    setFloating\n  }), [setReference, setFloating]);\n  const elements = React.useMemo(() => ({\n    reference: referenceEl,\n    floating: floatingEl\n  }), [referenceEl, floatingEl]);\n  const floatingStyles = React.useMemo(() => {\n    const initialStyles = {\n      position: strategy,\n      left: 0,\n      top: 0\n    };\n    if (!elements.floating) {\n      return initialStyles;\n    }\n    const x = roundByDPR(elements.floating, data.x);\n    const y = roundByDPR(elements.floating, data.y);\n    if (transform) {\n      return {\n        ...initialStyles,\n        transform: \"translate(\" + x + \"px, \" + y + \"px)\",\n        ...(getDPR(elements.floating) >= 1.5 && {\n          willChange: 'transform'\n        })\n      };\n    }\n    return {\n      position: strategy,\n      left: x,\n      top: y\n    };\n  }, [strategy, transform, elements.floating, data.x, data.y]);\n  return React.useMemo(() => ({\n    ...data,\n    update,\n    refs,\n    elements,\n    floatingStyles\n  }), [data, update, refs, elements, floatingStyles]);\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 * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow$1 = options => {\n  function isRef(value) {\n    return {}.hasOwnProperty.call(value, 'current');\n  }\n  return {\n    name: 'arrow',\n    options,\n    fn(state) {\n      const {\n        element,\n        padding\n      } = typeof options === 'function' ? options(state) : options;\n      if (element && isRef(element)) {\n        if (element.current != null) {\n          return arrow$2({\n            element: element.current,\n            padding\n          }).fn(state);\n        }\n        return {};\n      }\n      if (element) {\n        return arrow$2({\n          element,\n          padding\n        }).fn(state);\n      }\n      return {};\n    }\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 = (options, deps) => ({\n  ...offset$1(options),\n  options: [options, deps]\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 = (options, deps) => ({\n  ...shift$1(options),\n  options: [options, deps]\n});\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = (options, deps) => ({\n  ...limitShift$1(options),\n  options: [options, deps]\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 = (options, deps) => ({\n  ...flip$1(options),\n  options: [options, deps]\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 = (options, deps) => ({\n  ...size$1(options),\n  options: [options, deps]\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 = (options, deps) => ({\n  ...autoPlacement$1(options),\n  options: [options, deps]\n});\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 = (options, deps) => ({\n  ...hide$1(options),\n  options: [options, deps]\n});\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 = (options, deps) => ({\n  ...inline$1(options),\n  options: [options, deps]\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 * This wraps the core `arrow` middleware to allow React refs as the element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = (options, deps) => ({\n  ...arrow$1(options),\n  options: [options, deps]\n});\n\nexport { arrow, autoPlacement, flip, hide, inline, limitShift, offset, shift, size, useFloating };\n","import * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { stopEvent, getDocument, isMouseLikePointerType, contains, activeElement, isSafari, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, getTarget, getPlatform, isTypeableElement, isReactEvent, isRootElement, isEventTargetWithin, isMac, getUserAgent } from '@floating-ui/react/utils';\nimport { floor, evaluate, max, min, round } from '@floating-ui/utils';\nimport { getComputedStyle, isElement, getNodeName, isHTMLElement, getWindow, isLastTraversableNode, getParentNode, isWebKit } from '@floating-ui/utils/dom';\nimport { tabbable, isTabbable } from 'tabbable';\nimport * as ReactDOM from 'react-dom';\nimport { getOverflowAncestors, useFloating as useFloating$1, offset, detectOverflow } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/react-utils#usemergerefs\n */\nfunction useMergeRefs(refs) {\n  return React.useMemo(() => {\n    if (refs.every(ref => ref == null)) {\n      return null;\n    }\n    return value => {\n      refs.forEach(ref => {\n        if (typeof ref === 'function') {\n          ref(value);\n        } else if (ref != null) {\n          ref.current = value;\n        }\n      });\n    };\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, refs);\n}\n\n// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\nconst SafeReact = {\n  ...React\n};\n\nconst useInsertionEffect = SafeReact.useInsertionEffect;\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n  const ref = React.useRef(() => {\n    if (process.env.NODE_ENV !== \"production\") {\n      throw new Error('Cannot call an event handler while rendering.');\n    }\n  });\n  useSafeInsertionEffect(() => {\n    ref.current = callback;\n  });\n  return React.useCallback(function () {\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    return ref.current == null ? void 0 : ref.current(...args);\n  }, []);\n}\n\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n  return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n  return index < 0 || index >= listRef.current.length;\n}\nfunction getMinIndex(listRef, disabledIndices) {\n  return findNonDisabledIndex(listRef, {\n    disabledIndices\n  });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n  return findNonDisabledIndex(listRef, {\n    decrement: true,\n    startingIndex: listRef.current.length,\n    disabledIndices\n  });\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n  let {\n    startingIndex = -1,\n    decrement = false,\n    disabledIndices,\n    amount = 1\n  } = _temp === void 0 ? {} : _temp;\n  const list = listRef.current;\n  let index = startingIndex;\n  do {\n    index += decrement ? -amount : amount;\n  } while (index >= 0 && index <= list.length - 1 && isDisabled(list, index, disabledIndices));\n  return index;\n}\nfunction getGridNavigatedIndex(elementsRef, _ref) {\n  let {\n    event,\n    orientation,\n    loop,\n    rtl,\n    cols,\n    disabledIndices,\n    minIndex,\n    maxIndex,\n    prevIndex,\n    stopEvent: stop = false\n  } = _ref;\n  let nextIndex = prevIndex;\n  if (event.key === ARROW_UP) {\n    stop && stopEvent(event);\n    if (prevIndex === -1) {\n      nextIndex = maxIndex;\n    } else {\n      nextIndex = findNonDisabledIndex(elementsRef, {\n        startingIndex: nextIndex,\n        amount: cols,\n        decrement: true,\n        disabledIndices\n      });\n      if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {\n        const col = prevIndex % cols;\n        const maxCol = maxIndex % cols;\n        const offset = maxIndex - (maxCol - col);\n        if (maxCol === col) {\n          nextIndex = maxIndex;\n        } else {\n          nextIndex = maxCol > col ? offset : offset - cols;\n        }\n      }\n    }\n    if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n      nextIndex = prevIndex;\n    }\n  }\n  if (event.key === ARROW_DOWN) {\n    stop && stopEvent(event);\n    if (prevIndex === -1) {\n      nextIndex = minIndex;\n    } else {\n      nextIndex = findNonDisabledIndex(elementsRef, {\n        startingIndex: prevIndex,\n        amount: cols,\n        disabledIndices\n      });\n      if (loop && prevIndex + cols > maxIndex) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex % cols - cols,\n          amount: cols,\n          disabledIndices\n        });\n      }\n    }\n    if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n      nextIndex = prevIndex;\n    }\n  }\n\n  // Remains on the same row/column.\n  if (orientation === 'both') {\n    const prevRow = floor(prevIndex / cols);\n    if (event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT)) {\n      stop && stopEvent(event);\n      if (prevIndex % cols !== cols - 1) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex,\n          disabledIndices\n        });\n        if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n          nextIndex = findNonDisabledIndex(elementsRef, {\n            startingIndex: prevIndex - prevIndex % cols - 1,\n            disabledIndices\n          });\n        }\n      } else if (loop) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex - prevIndex % cols - 1,\n          disabledIndices\n        });\n      }\n      if (isDifferentRow(nextIndex, cols, prevRow)) {\n        nextIndex = prevIndex;\n      }\n    }\n    if (event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT)) {\n      stop && stopEvent(event);\n      if (prevIndex % cols !== 0) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex,\n          decrement: true,\n          disabledIndices\n        });\n        if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n          nextIndex = findNonDisabledIndex(elementsRef, {\n            startingIndex: prevIndex + (cols - prevIndex % cols),\n            decrement: true,\n            disabledIndices\n          });\n        }\n      } else if (loop) {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex + (cols - prevIndex % cols),\n          decrement: true,\n          disabledIndices\n        });\n      }\n      if (isDifferentRow(nextIndex, cols, prevRow)) {\n        nextIndex = prevIndex;\n      }\n    }\n    const lastRow = floor(maxIndex / cols) === prevRow;\n    if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n      if (loop && lastRow) {\n        nextIndex = event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT) ? maxIndex : findNonDisabledIndex(elementsRef, {\n          startingIndex: prevIndex - prevIndex % cols - 1,\n          disabledIndices\n        });\n      } else {\n        nextIndex = prevIndex;\n      }\n    }\n  }\n  return nextIndex;\n}\n\n/** For each cell index, gets the item index that occupies that cell */\nfunction buildCellMap(sizes, cols, dense) {\n  const cellMap = [];\n  let startIndex = 0;\n  sizes.forEach((_ref2, index) => {\n    let {\n      width,\n      height\n    } = _ref2;\n    if (width > cols) {\n      if (process.env.NODE_ENV !== \"production\") {\n        throw new Error(\"[Floating UI]: Invalid grid - item width at index \" + index + \" is greater than grid columns\");\n      }\n    }\n    let itemPlaced = false;\n    if (dense) {\n      startIndex = 0;\n    }\n    while (!itemPlaced) {\n      const targetCells = [];\n      for (let i = 0; i < width; i++) {\n        for (let j = 0; j < height; j++) {\n          targetCells.push(startIndex + i + j * cols);\n        }\n      }\n      if (startIndex % cols + width <= cols && targetCells.every(cell => cellMap[cell] == null)) {\n        targetCells.forEach(cell => {\n          cellMap[cell] = index;\n        });\n        itemPlaced = true;\n      } else {\n        startIndex++;\n      }\n    }\n  });\n\n  // convert into a non-sparse array\n  return [...cellMap];\n}\n\n/** Gets cell index of an item's corner or -1 when index is -1. */\nfunction getCellIndexOfCorner(index, sizes, cellMap, cols, corner) {\n  if (index === -1) return -1;\n  const firstCellIndex = cellMap.indexOf(index);\n  const sizeItem = sizes[index];\n  switch (corner) {\n    case 'tl':\n      return firstCellIndex;\n    case 'tr':\n      if (!sizeItem) {\n        return firstCellIndex;\n      }\n      return firstCellIndex + sizeItem.width - 1;\n    case 'bl':\n      if (!sizeItem) {\n        return firstCellIndex;\n      }\n      return firstCellIndex + (sizeItem.height - 1) * cols;\n    case 'br':\n      return cellMap.lastIndexOf(index);\n  }\n}\n\n/** Gets all cell indices that correspond to the specified indices */\nfunction getCellIndices(indices, cellMap) {\n  return cellMap.flatMap((index, cellIndex) => indices.includes(index) ? [cellIndex] : []);\n}\nfunction isDisabled(list, index, disabledIndices) {\n  if (disabledIndices) {\n    return disabledIndices.includes(index);\n  }\n  const element = list[index];\n  return element == null || element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true';\n}\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction sortByDocumentPosition(a, b) {\n  const position = a.compareDocumentPosition(b);\n  if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n    return -1;\n  }\n  if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n    return 1;\n  }\n  return 0;\n}\nfunction areMapsEqual(map1, map2) {\n  if (map1.size !== map2.size) {\n    return false;\n  }\n  for (const [key, value] of map1.entries()) {\n    if (value !== map2.get(key)) {\n      return false;\n    }\n  }\n  return true;\n}\nconst FloatingListContext = /*#__PURE__*/React.createContext({\n  register: () => {},\n  unregister: () => {},\n  map: /*#__PURE__*/new Map(),\n  elementsRef: {\n    current: []\n  }\n});\n/**\n * Provides context for a list of items within the floating element.\n * @see https://floating-ui.com/docs/FloatingList\n */\nfunction FloatingList(props) {\n  const {\n    children,\n    elementsRef,\n    labelsRef\n  } = props;\n  const [map, setMap] = React.useState(() => new Map());\n  const register = React.useCallback(node => {\n    setMap(prevMap => new Map(prevMap).set(node, null));\n  }, []);\n  const unregister = React.useCallback(node => {\n    setMap(prevMap => {\n      const map = new Map(prevMap);\n      map.delete(node);\n      return map;\n    });\n  }, []);\n  index(() => {\n    const newMap = new Map(map);\n    const nodes = Array.from(newMap.keys()).sort(sortByDocumentPosition);\n    nodes.forEach((node, index) => {\n      newMap.set(node, index);\n    });\n    if (!areMapsEqual(map, newMap)) {\n      setMap(newMap);\n    }\n  }, [map]);\n  return /*#__PURE__*/React.createElement(FloatingListContext.Provider, {\n    value: React.useMemo(() => ({\n      register,\n      unregister,\n      map,\n      elementsRef,\n      labelsRef\n    }), [register, unregister, map, elementsRef, labelsRef])\n  }, children);\n}\n/**\n * Used to register a list item and its index (DOM position) in the\n * `FloatingList`.\n * @see https://floating-ui.com/docs/FloatingList#uselistitem\n */\nfunction useListItem(props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    label\n  } = props;\n  const {\n    register,\n    unregister,\n    map,\n    elementsRef,\n    labelsRef\n  } = React.useContext(FloatingListContext);\n  const [index$1, setIndex] = React.useState(null);\n  const componentRef = React.useRef(null);\n  const ref = React.useCallback(node => {\n    componentRef.current = node;\n    if (index$1 !== null) {\n      elementsRef.current[index$1] = node;\n      if (labelsRef) {\n        var _node$textContent;\n        const isLabelDefined = label !== undefined;\n        labelsRef.current[index$1] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null;\n      }\n    }\n  }, [index$1, elementsRef, labelsRef, label]);\n  index(() => {\n    const node = componentRef.current;\n    if (node) {\n      register(node);\n      return () => {\n        unregister(node);\n      };\n    }\n  }, [register, unregister]);\n  index(() => {\n    const index = componentRef.current ? map.get(componentRef.current) : null;\n    if (index != null) {\n      setIndex(index);\n    }\n  }, [map]);\n  return React.useMemo(() => ({\n    ref,\n    index: index$1 == null ? -1 : index$1\n  }), [index$1, ref]);\n}\n\nfunction renderJsx(render, computedProps) {\n  if (typeof render === 'function') {\n    return render(computedProps);\n  }\n  if (render) {\n    return /*#__PURE__*/React.cloneElement(render, computedProps);\n  }\n  return /*#__PURE__*/React.createElement(\"div\", computedProps);\n}\nconst CompositeContext = /*#__PURE__*/React.createContext({\n  activeIndex: 0,\n  onNavigate: () => {}\n});\nconst horizontalKeys = [ARROW_LEFT, ARROW_RIGHT];\nconst verticalKeys = [ARROW_UP, ARROW_DOWN];\nconst allKeys = [...horizontalKeys, ...verticalKeys];\n\n/**\n * Creates a single tab stop whose items are navigated by arrow keys, which\n * provides list navigation outside of floating element contexts.\n *\n * This is useful to enable navigation of a list of items that aren’t part of a\n * floating element. A menubar is an example of a composite, with each reference\n * element being an item.\n * @see https://floating-ui.com/docs/Composite\n */\nconst Composite = /*#__PURE__*/React.forwardRef(function Composite(props, forwardedRef) {\n  const {\n    render,\n    orientation = 'both',\n    loop = true,\n    rtl = false,\n    cols = 1,\n    disabledIndices,\n    activeIndex: externalActiveIndex,\n    onNavigate: externalSetActiveIndex,\n    itemSizes,\n    dense = false,\n    ...domProps\n  } = props;\n  const [internalActiveIndex, internalSetActiveIndex] = React.useState(0);\n  const activeIndex = externalActiveIndex != null ? externalActiveIndex : internalActiveIndex;\n  const onNavigate = useEffectEvent(externalSetActiveIndex != null ? externalSetActiveIndex : internalSetActiveIndex);\n  const elementsRef = React.useRef([]);\n  const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n  const contextValue = React.useMemo(() => ({\n    activeIndex,\n    onNavigate\n  }), [activeIndex, onNavigate]);\n  const isGrid = cols > 1;\n  function handleKeyDown(event) {\n    if (!allKeys.includes(event.key)) return;\n    let nextIndex = activeIndex;\n    const minIndex = getMinIndex(elementsRef, disabledIndices);\n    const maxIndex = getMaxIndex(elementsRef, disabledIndices);\n    const horizontalEndKey = rtl ? ARROW_LEFT : ARROW_RIGHT;\n    const horizontalStartKey = rtl ? ARROW_RIGHT : ARROW_LEFT;\n    if (isGrid) {\n      const sizes = itemSizes || Array.from({\n        length: elementsRef.current.length\n      }, () => ({\n        width: 1,\n        height: 1\n      }));\n      // To calculate movements on the grid, we use hypothetical cell indices\n      // as if every item was 1x1, then convert back to real indices.\n      const cellMap = buildCellMap(sizes, cols, dense);\n      const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(elementsRef.current, index, disabledIndices));\n      // last enabled index\n      const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(elementsRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);\n      const maybeNextIndex = cellMap[getGridNavigatedIndex({\n        current: cellMap.map(itemIndex => itemIndex ? elementsRef.current[itemIndex] : null)\n      }, {\n        event,\n        orientation,\n        loop,\n        rtl,\n        cols,\n        // treat undefined (empty grid spaces) as disabled indices so we\n        // don't end up in them\n        disabledIndices: getCellIndices([...(disabledIndices || elementsRef.current.map((_, index) => isDisabled(elementsRef.current, index) ? index : undefined)), undefined], cellMap),\n        minIndex: minGridIndex,\n        maxIndex: maxGridIndex,\n        prevIndex: getCellIndexOfCorner(activeIndex > maxIndex ? minIndex : activeIndex, sizes, cellMap, cols,\n        // use a corner matching the edge closest to the direction we're\n        // moving in so we don't end up in the same item. Prefer\n        // top/left over bottom/right.\n        event.key === ARROW_DOWN ? 'bl' : event.key === horizontalEndKey ? 'tr' : 'tl')\n      })];\n      if (maybeNextIndex != null) {\n        nextIndex = maybeNextIndex;\n      }\n    }\n    const toEndKeys = {\n      horizontal: [horizontalEndKey],\n      vertical: [ARROW_DOWN],\n      both: [horizontalEndKey, ARROW_DOWN]\n    }[orientation];\n    const toStartKeys = {\n      horizontal: [horizontalStartKey],\n      vertical: [ARROW_UP],\n      both: [horizontalStartKey, ARROW_UP]\n    }[orientation];\n    const preventedKeys = isGrid ? allKeys : {\n      horizontal: horizontalKeys,\n      vertical: verticalKeys,\n      both: allKeys\n    }[orientation];\n    if (nextIndex === activeIndex && [...toEndKeys, ...toStartKeys].includes(event.key)) {\n      if (loop && nextIndex === maxIndex && toEndKeys.includes(event.key)) {\n        nextIndex = minIndex;\n      } else if (loop && nextIndex === minIndex && toStartKeys.includes(event.key)) {\n        nextIndex = maxIndex;\n      } else {\n        nextIndex = findNonDisabledIndex(elementsRef, {\n          startingIndex: nextIndex,\n          decrement: toStartKeys.includes(event.key),\n          disabledIndices\n        });\n      }\n    }\n    if (nextIndex !== activeIndex && !isIndexOutOfBounds(elementsRef, nextIndex)) {\n      var _elementsRef$current$;\n      event.stopPropagation();\n      if (preventedKeys.includes(event.key)) {\n        event.preventDefault();\n      }\n      onNavigate(nextIndex);\n      (_elementsRef$current$ = elementsRef.current[nextIndex]) == null || _elementsRef$current$.focus();\n    }\n  }\n  const computedProps = {\n    ...domProps,\n    ...renderElementProps,\n    ref: forwardedRef,\n    'aria-orientation': orientation === 'both' ? undefined : orientation,\n    onKeyDown(e) {\n      domProps.onKeyDown == null || domProps.onKeyDown(e);\n      renderElementProps.onKeyDown == null || renderElementProps.onKeyDown(e);\n      handleKeyDown(e);\n    }\n  };\n  return /*#__PURE__*/React.createElement(CompositeContext.Provider, {\n    value: contextValue\n  }, /*#__PURE__*/React.createElement(FloatingList, {\n    elementsRef: elementsRef\n  }, renderJsx(render, computedProps)));\n});\n/**\n * @see https://floating-ui.com/docs/Composite\n */\nconst CompositeItem = /*#__PURE__*/React.forwardRef(function CompositeItem(props, forwardedRef) {\n  const {\n    render,\n    ...domProps\n  } = props;\n  const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n  const {\n    activeIndex,\n    onNavigate\n  } = React.useContext(CompositeContext);\n  const {\n    ref,\n    index\n  } = useListItem();\n  const mergedRef = useMergeRefs([ref, forwardedRef, renderElementProps.ref]);\n  const isActive = activeIndex === index;\n  const computedProps = {\n    ...domProps,\n    ...renderElementProps,\n    ref: mergedRef,\n    tabIndex: isActive ? 0 : -1,\n    'data-active': isActive ? '' : undefined,\n    onFocus(e) {\n      domProps.onFocus == null || domProps.onFocus(e);\n      renderElementProps.onFocus == null || renderElementProps.onFocus(e);\n      onNavigate(index);\n    }\n  };\n  return renderJsx(render, computedProps);\n});\n\nfunction _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => // Ensure the id is unique with multiple independent versions of Floating UI\n// on <React 18\n\"floating-ui-\" + Math.random().toString(36).slice(2, 6) + count++;\nfunction useFloatingId() {\n  const [id, setId] = React.useState(() => serverHandoffComplete ? genId() : undefined);\n  index(() => {\n    if (id == null) {\n      setId(genId());\n    }\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n  React.useEffect(() => {\n    serverHandoffComplete = true;\n  }, []);\n  return id;\n}\nconst useReactId = SafeReact.useId;\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/react-utils#useid\n */\nconst useId = useReactId || useFloatingId;\n\nlet devMessageSet;\nif (process.env.NODE_ENV !== \"production\") {\n  devMessageSet = /*#__PURE__*/new Set();\n}\nfunction warn() {\n  var _devMessageSet;\n  for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) {\n    messages[_key] = arguments[_key];\n  }\n  const message = \"Floating UI: \" + messages.join(' ');\n  if (!((_devMessageSet = devMessageSet) != null && _devMessageSet.has(message))) {\n    var _devMessageSet2;\n    (_devMessageSet2 = devMessageSet) == null || _devMessageSet2.add(message);\n    console.warn(message);\n  }\n}\nfunction error() {\n  var _devMessageSet3;\n  for (var _len2 = arguments.length, messages = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n    messages[_key2] = arguments[_key2];\n  }\n  const message = \"Floating UI: \" + messages.join(' ');\n  if (!((_devMessageSet3 = devMessageSet) != null && _devMessageSet3.has(message))) {\n    var _devMessageSet4;\n    (_devMessageSet4 = devMessageSet) == null || _devMessageSet4.add(message);\n    console.error(message);\n  }\n}\n\n/**\n * Renders a pointing arrow triangle.\n * @see https://floating-ui.com/docs/FloatingArrow\n */\nconst FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(props, ref) {\n  const {\n    context: {\n      placement,\n      elements: {\n        floating\n      },\n      middlewareData: {\n        arrow,\n        shift\n      }\n    },\n    width = 14,\n    height = 7,\n    tipRadius = 0,\n    strokeWidth = 0,\n    staticOffset,\n    stroke,\n    d,\n    style: {\n      transform,\n      ...restStyle\n    } = {},\n    ...rest\n  } = props;\n  if (process.env.NODE_ENV !== \"production\") {\n    if (!ref) {\n      warn('The `ref` prop is required for `FloatingArrow`.');\n    }\n  }\n  const clipPathId = useId();\n  const [isRTL, setIsRTL] = React.useState(false);\n\n  // https://github.com/floating-ui/floating-ui/issues/2932\n  index(() => {\n    if (!floating) return;\n    const isRTL = getComputedStyle(floating).direction === 'rtl';\n    if (isRTL) {\n      setIsRTL(true);\n    }\n  }, [floating]);\n  if (!floating) {\n    return null;\n  }\n  const [side, alignment] = placement.split('-');\n  const isVerticalSide = side === 'top' || side === 'bottom';\n  let computedStaticOffset = staticOffset;\n  if (isVerticalSide && shift != null && shift.x || !isVerticalSide && shift != null && shift.y) {\n    computedStaticOffset = null;\n  }\n\n  // Strokes must be double the border width, this ensures the stroke's width\n  // works as you'd expect.\n  const computedStrokeWidth = strokeWidth * 2;\n  const halfStrokeWidth = computedStrokeWidth / 2;\n  const svgX = width / 2 * (tipRadius / -8 + 1);\n  const svgY = height / 2 * tipRadius / 4;\n  const isCustomShape = !!d;\n  const yOffsetProp = computedStaticOffset && alignment === 'end' ? 'bottom' : 'top';\n  let xOffsetProp = computedStaticOffset && alignment === 'end' ? 'right' : 'left';\n  if (computedStaticOffset && isRTL) {\n    xOffsetProp = alignment === 'end' ? 'left' : 'right';\n  }\n  const arrowX = (arrow == null ? void 0 : arrow.x) != null ? computedStaticOffset || arrow.x : '';\n  const arrowY = (arrow == null ? void 0 : arrow.y) != null ? computedStaticOffset || arrow.y : '';\n  const dValue = d || 'M0,0' + (\" H\" + width) + (\" L\" + (width - svgX) + \",\" + (height - svgY)) + (\" Q\" + width / 2 + \",\" + height + \" \" + svgX + \",\" + (height - svgY)) + ' Z';\n  const rotation = {\n    top: isCustomShape ? 'rotate(180deg)' : '',\n    left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)',\n    bottom: isCustomShape ? '' : 'rotate(180deg)',\n    right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)'\n  }[side];\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n    \"aria-hidden\": true,\n    ref: ref,\n    width: isCustomShape ? width : width + computedStrokeWidth,\n    height: width,\n    viewBox: \"0 0 \" + width + \" \" + (height > width ? height : width),\n    style: {\n      position: 'absolute',\n      pointerEvents: 'none',\n      [xOffsetProp]: arrowX,\n      [yOffsetProp]: arrowY,\n      [side]: isVerticalSide || isCustomShape ? '100%' : \"calc(100% - \" + computedStrokeWidth / 2 + \"px)\",\n      transform: [rotation, transform].filter(t => !!t).join(' '),\n      ...restStyle\n    }\n  }), computedStrokeWidth > 0 && /*#__PURE__*/React.createElement(\"path\", {\n    clipPath: \"url(#\" + clipPathId + \")\",\n    fill: \"none\",\n    stroke: stroke\n    // Account for the stroke on the fill path rendered below.\n    ,\n    strokeWidth: computedStrokeWidth + (d ? 0 : 1),\n    d: dValue\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    stroke: computedStrokeWidth && !d ? rest.fill : 'none',\n    d: dValue\n  }), /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: clipPathId\n  }, /*#__PURE__*/React.createElement(\"rect\", {\n    x: -halfStrokeWidth,\n    y: halfStrokeWidth * (isCustomShape ? -1 : 1),\n    width: width + computedStrokeWidth,\n    height: width\n  })));\n});\n\nfunction createPubSub() {\n  const map = new Map();\n  return {\n    emit(event, data) {\n      var _map$get;\n      (_map$get = map.get(event)) == null || _map$get.forEach(handler => handler(data));\n    },\n    on(event, listener) {\n      map.set(event, [...(map.get(event) || []), listener]);\n    },\n    off(event, listener) {\n      var _map$get2;\n      map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter(l => l !== listener)) || []);\n    }\n  };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the parent node id for nested floating elements, if available.\n * Returns `null` for top-level floating elements.\n */\nconst useFloatingParentNodeId = () => {\n  var _React$useContext;\n  return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\n\n/**\n * Returns the nearest floating tree context, if available.\n */\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the `FloatingTree`, returning its id.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction useFloatingNodeId(customParentId) {\n  const id = useId();\n  const tree = useFloatingTree();\n  const reactParentId = useFloatingParentNodeId();\n  const parentId = customParentId || reactParentId;\n  index(() => {\n    const node = {\n      id,\n      parentId\n    };\n    tree == null || tree.addNode(node);\n    return () => {\n      tree == null || tree.removeNode(node);\n    };\n  }, [tree, id, parentId]);\n  return id;\n}\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingNode(props) {\n  const {\n    children,\n    id\n  } = props;\n  const parentId = useFloatingParentNodeId();\n  return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n    value: React.useMemo(() => ({\n      id,\n      parentId\n    }), [id, parentId])\n  }, children);\n}\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM.\n * This is not necessary in all cases, except when there must be explicit communication between parent and child floating elements. It is necessary for:\n * - The `bubbles` option in the `useDismiss()` Hook\n * - Nested virtual list navigation\n * - Nested floating elements that each open on hover\n * - Custom communication between parent and child floating elements\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingTree(props) {\n  const {\n    children\n  } = props;\n  const nodesRef = React.useRef([]);\n  const addNode = React.useCallback(node => {\n    nodesRef.current = [...nodesRef.current, node];\n  }, []);\n  const removeNode = React.useCallback(node => {\n    nodesRef.current = nodesRef.current.filter(n => n !== node);\n  }, []);\n  const events = React.useState(() => createPubSub())[0];\n  return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n    value: React.useMemo(() => ({\n      nodesRef,\n      addNode,\n      removeNode,\n      events\n    }), [addNode, removeNode, events])\n  }, children);\n}\n\nfunction createAttribute(name) {\n  return \"data-floating-ui-\" + name;\n}\n\nfunction useLatestRef(value) {\n  const ref = useRef(value);\n  index(() => {\n    ref.current = value;\n  });\n  return ref;\n}\n\nconst safePolygonIdentifier = /*#__PURE__*/createAttribute('safe-polygon');\nfunction getDelay(value, prop, pointerType) {\n  if (pointerType && !isMouseLikePointerType(pointerType)) {\n    return 0;\n  }\n  if (typeof value === 'number') {\n    return value;\n  }\n  return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nfunction useHover(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    dataRef,\n    events,\n    elements\n  } = context;\n  const {\n    enabled = true,\n    delay = 0,\n    handleClose = null,\n    mouseOnly = false,\n    restMs = 0,\n    move = true\n  } = props;\n  const tree = useFloatingTree();\n  const parentId = useFloatingParentNodeId();\n  const handleCloseRef = useLatestRef(handleClose);\n  const delayRef = useLatestRef(delay);\n  const openRef = useLatestRef(open);\n  const pointerTypeRef = React.useRef();\n  const timeoutRef = React.useRef(-1);\n  const handlerRef = React.useRef();\n  const restTimeoutRef = React.useRef(-1);\n  const blockMouseMoveRef = React.useRef(true);\n  const performedPointerEventsMutationRef = React.useRef(false);\n  const unbindMouseMoveRef = React.useRef(() => {});\n  const restTimeoutPendingRef = React.useRef(false);\n  const isHoverOpen = React.useCallback(() => {\n    var _dataRef$current$open;\n    const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n    return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n  }, [dataRef]);\n\n  // When closing before opening, clear the delay timeouts to cancel it\n  // from showing.\n  React.useEffect(() => {\n    if (!enabled) return;\n    function onOpenChange(_ref) {\n      let {\n        open\n      } = _ref;\n      if (!open) {\n        clearTimeout(timeoutRef.current);\n        clearTimeout(restTimeoutRef.current);\n        blockMouseMoveRef.current = true;\n        restTimeoutPendingRef.current = false;\n      }\n    }\n    events.on('openchange', onOpenChange);\n    return () => {\n      events.off('openchange', onOpenChange);\n    };\n  }, [enabled, events]);\n  React.useEffect(() => {\n    if (!enabled) return;\n    if (!handleCloseRef.current) return;\n    if (!open) return;\n    function onLeave(event) {\n      if (isHoverOpen()) {\n        onOpenChange(false, event, 'hover');\n      }\n    }\n    const html = getDocument(elements.floating).documentElement;\n    html.addEventListener('mouseleave', onLeave);\n    return () => {\n      html.removeEventListener('mouseleave', onLeave);\n    };\n  }, [elements.floating, open, onOpenChange, enabled, handleCloseRef, isHoverOpen]);\n  const closeWithDelay = React.useCallback(function (event, runElseBranch, reason) {\n    if (runElseBranch === void 0) {\n      runElseBranch = true;\n    }\n    if (reason === void 0) {\n      reason = 'hover';\n    }\n    const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n    if (closeDelay && !handlerRef.current) {\n      clearTimeout(timeoutRef.current);\n      timeoutRef.current = window.setTimeout(() => onOpenChange(false, event, reason), closeDelay);\n    } else if (runElseBranch) {\n      clearTimeout(timeoutRef.current);\n      onOpenChange(false, event, reason);\n    }\n  }, [delayRef, onOpenChange]);\n  const cleanupMouseMoveHandler = useEffectEvent(() => {\n    unbindMouseMoveRef.current();\n    handlerRef.current = undefined;\n  });\n  const clearPointerEvents = useEffectEvent(() => {\n    if (performedPointerEventsMutationRef.current) {\n      const body = getDocument(elements.floating).body;\n      body.style.pointerEvents = '';\n      body.removeAttribute(safePolygonIdentifier);\n      performedPointerEventsMutationRef.current = false;\n    }\n  });\n  const isClickLikeOpenEvent = useEffectEvent(() => {\n    return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n  });\n\n  // Registering the mouse events on the reference directly to bypass React's\n  // delegation system. If the cursor was on a disabled element and then entered\n  // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n  React.useEffect(() => {\n    if (!enabled) return;\n    function onMouseEnter(event) {\n      clearTimeout(timeoutRef.current);\n      blockMouseMoveRef.current = false;\n      if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && !getDelay(delayRef.current, 'open')) {\n        return;\n      }\n      const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n      if (openDelay) {\n        timeoutRef.current = window.setTimeout(() => {\n          if (!openRef.current) {\n            onOpenChange(true, event, 'hover');\n          }\n        }, openDelay);\n      } else if (!open) {\n        onOpenChange(true, event, 'hover');\n      }\n    }\n    function onMouseLeave(event) {\n      if (isClickLikeOpenEvent()) return;\n      unbindMouseMoveRef.current();\n      const doc = getDocument(elements.floating);\n      clearTimeout(restTimeoutRef.current);\n      restTimeoutPendingRef.current = false;\n      if (handleCloseRef.current && dataRef.current.floatingContext) {\n        // Prevent clearing `onScrollMouseLeave` timeout.\n        if (!open) {\n          clearTimeout(timeoutRef.current);\n        }\n        handlerRef.current = handleCloseRef.current({\n          ...dataRef.current.floatingContext,\n          tree,\n          x: event.clientX,\n          y: event.clientY,\n          onClose() {\n            clearPointerEvents();\n            cleanupMouseMoveHandler();\n            if (!isClickLikeOpenEvent()) {\n              closeWithDelay(event, true, 'safe-polygon');\n            }\n          }\n        });\n        const handler = handlerRef.current;\n        doc.addEventListener('mousemove', handler);\n        unbindMouseMoveRef.current = () => {\n          doc.removeEventListener('mousemove', handler);\n        };\n        return;\n      }\n\n      // Allow interactivity without `safePolygon` on touch devices. With a\n      // pointer, a short close delay is an alternative, so it should work\n      // consistently.\n      const shouldClose = pointerTypeRef.current === 'touch' ? !contains(elements.floating, event.relatedTarget) : true;\n      if (shouldClose) {\n        closeWithDelay(event);\n      }\n    }\n\n    // Ensure the floating element closes after scrolling even if the pointer\n    // did not move.\n    // https://github.com/floating-ui/floating-ui/discussions/1692\n    function onScrollMouseLeave(event) {\n      if (isClickLikeOpenEvent()) return;\n      if (!dataRef.current.floatingContext) return;\n      handleCloseRef.current == null || handleCloseRef.current({\n        ...dataRef.current.floatingContext,\n        tree,\n        x: event.clientX,\n        y: event.clientY,\n        onClose() {\n          clearPointerEvents();\n          cleanupMouseMoveHandler();\n          if (!isClickLikeOpenEvent()) {\n            closeWithDelay(event);\n          }\n        }\n      })(event);\n    }\n    if (isElement(elements.domReference)) {\n      var _elements$floating;\n      const ref = elements.domReference;\n      open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n      (_elements$floating = elements.floating) == null || _elements$floating.addEventListener('mouseleave', onScrollMouseLeave);\n      move && ref.addEventListener('mousemove', onMouseEnter, {\n        once: true\n      });\n      ref.addEventListener('mouseenter', onMouseEnter);\n      ref.addEventListener('mouseleave', onMouseLeave);\n      return () => {\n        var _elements$floating2;\n        open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n        (_elements$floating2 = elements.floating) == null || _elements$floating2.removeEventListener('mouseleave', onScrollMouseLeave);\n        move && ref.removeEventListener('mousemove', onMouseEnter);\n        ref.removeEventListener('mouseenter', onMouseEnter);\n        ref.removeEventListener('mouseleave', onMouseLeave);\n      };\n    }\n  }, [elements, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, openRef, tree, delayRef, handleCloseRef, dataRef, isClickLikeOpenEvent]);\n\n  // Block pointer-events of every element other than the reference and floating\n  // while the floating element is open and has a `handleClose` handler. Also\n  // handles nested floating elements.\n  // https://github.com/floating-ui/floating-ui/issues/1722\n  index(() => {\n    var _handleCloseRef$curre;\n    if (!enabled) return;\n    if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n      performedPointerEventsMutationRef.current = true;\n      const floatingEl = elements.floating;\n      if (isElement(elements.domReference) && floatingEl) {\n        var _tree$nodesRef$curren;\n        const body = getDocument(elements.floating).body;\n        body.setAttribute(safePolygonIdentifier, '');\n        const ref = elements.domReference;\n        const parentFloating = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren.elements.floating;\n        if (parentFloating) {\n          parentFloating.style.pointerEvents = '';\n        }\n        body.style.pointerEvents = 'none';\n        ref.style.pointerEvents = 'auto';\n        floatingEl.style.pointerEvents = 'auto';\n        return () => {\n          body.style.pointerEvents = '';\n          ref.style.pointerEvents = '';\n          floatingEl.style.pointerEvents = '';\n        };\n      }\n    }\n  }, [enabled, open, parentId, elements, tree, handleCloseRef, isHoverOpen]);\n  index(() => {\n    if (!open) {\n      pointerTypeRef.current = undefined;\n      restTimeoutPendingRef.current = false;\n      cleanupMouseMoveHandler();\n      clearPointerEvents();\n    }\n  }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n  React.useEffect(() => {\n    return () => {\n      cleanupMouseMoveHandler();\n      clearTimeout(timeoutRef.current);\n      clearTimeout(restTimeoutRef.current);\n      clearPointerEvents();\n    };\n  }, [enabled, elements.domReference, cleanupMouseMoveHandler, clearPointerEvents]);\n  const reference = React.useMemo(() => {\n    function setPointerRef(event) {\n      pointerTypeRef.current = event.pointerType;\n    }\n    return {\n      onPointerDown: setPointerRef,\n      onPointerEnter: setPointerRef,\n      onMouseMove(event) {\n        const {\n          nativeEvent\n        } = event;\n        function handleMouseMove() {\n          if (!blockMouseMoveRef.current && !openRef.current) {\n            onOpenChange(true, nativeEvent, 'hover');\n          }\n        }\n        if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current)) {\n          return;\n        }\n        if (open || restMs === 0) {\n          return;\n        }\n\n        // Ignore insignificant movements to account for tremors.\n        if (restTimeoutPendingRef.current && event.movementX ** 2 + event.movementY ** 2 < 2) {\n          return;\n        }\n        clearTimeout(restTimeoutRef.current);\n        if (pointerTypeRef.current === 'touch') {\n          handleMouseMove();\n        } else {\n          restTimeoutPendingRef.current = true;\n          restTimeoutRef.current = window.setTimeout(handleMouseMove, restMs);\n        }\n      }\n    };\n  }, [mouseOnly, onOpenChange, open, openRef, restMs]);\n  const floating = React.useMemo(() => ({\n    onMouseEnter() {\n      clearTimeout(timeoutRef.current);\n    },\n    onMouseLeave(event) {\n      if (!isClickLikeOpenEvent()) {\n        closeWithDelay(event.nativeEvent, false);\n      }\n    }\n  }), [closeWithDelay, isClickLikeOpenEvent]);\n  return React.useMemo(() => enabled ? {\n    reference,\n    floating\n  } : {}, [enabled, reference, floating]);\n}\n\nconst NOOP = () => {};\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n  delay: 0,\n  initialDelay: 0,\n  timeoutMs: 0,\n  currentId: null,\n  setCurrentId: NOOP,\n  setState: NOOP,\n  isInstantPhase: false\n});\n\n/**\n * @deprecated\n * Use the return value of `useDelayGroup()` instead.\n */\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction FloatingDelayGroup(props) {\n  const {\n    children,\n    delay,\n    timeoutMs = 0\n  } = props;\n  const [state, setState] = React.useReducer((prev, next) => ({\n    ...prev,\n    ...next\n  }), {\n    delay,\n    timeoutMs,\n    initialDelay: delay,\n    currentId: null,\n    isInstantPhase: false\n  });\n  const initialCurrentIdRef = React.useRef(null);\n  const setCurrentId = React.useCallback(currentId => {\n    setState({\n      currentId\n    });\n  }, []);\n  index(() => {\n    if (state.currentId) {\n      if (initialCurrentIdRef.current === null) {\n        initialCurrentIdRef.current = state.currentId;\n      } else if (!state.isInstantPhase) {\n        setState({\n          isInstantPhase: true\n        });\n      }\n    } else {\n      if (state.isInstantPhase) {\n        setState({\n          isInstantPhase: false\n        });\n      }\n      initialCurrentIdRef.current = null;\n    }\n  }, [state.currentId, state.isInstantPhase]);\n  return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n    value: React.useMemo(() => ({\n      ...state,\n      setState,\n      setCurrentId\n    }), [state, setCurrentId])\n  }, children);\n}\n/**\n * Enables grouping when called inside a component that's a child of a\n * `FloatingDelayGroup`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction useDelayGroup(context, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    floatingId\n  } = context;\n  const {\n    id: optionId,\n    enabled = true\n  } = options;\n  const id = optionId != null ? optionId : floatingId;\n  const groupContext = useDelayGroupContext();\n  const {\n    currentId,\n    setCurrentId,\n    initialDelay,\n    setState,\n    timeoutMs\n  } = groupContext;\n  index(() => {\n    if (!enabled) return;\n    if (!currentId) return;\n    setState({\n      delay: {\n        open: 1,\n        close: getDelay(initialDelay, 'close')\n      }\n    });\n    if (currentId !== id) {\n      onOpenChange(false);\n    }\n  }, [enabled, id, onOpenChange, setState, currentId, initialDelay]);\n  index(() => {\n    function unset() {\n      onOpenChange(false);\n      setState({\n        delay: initialDelay,\n        currentId: null\n      });\n    }\n    if (!enabled) return;\n    if (!currentId) return;\n    if (!open && currentId === id) {\n      if (timeoutMs) {\n        const timeout = window.setTimeout(unset, timeoutMs);\n        return () => {\n          clearTimeout(timeout);\n        };\n      }\n      unset();\n    }\n  }, [enabled, open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n  index(() => {\n    if (!enabled) return;\n    if (setCurrentId === NOOP || !open) return;\n    setCurrentId(id);\n  }, [enabled, open, setCurrentId, id]);\n  return groupContext;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    preventScroll = false,\n    cancelPrevious = true,\n    sync = false\n  } = options;\n  cancelPrevious && cancelAnimationFrame(rafId);\n  const exec = () => el == null ? void 0 : el.focus({\n    preventScroll\n  });\n  if (sync) {\n    exec();\n  } else {\n    rafId = requestAnimationFrame(exec);\n  }\n}\n\nfunction getAncestors(nodes, id) {\n  var _nodes$find;\n  let allAncestors = [];\n  let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n  while (currentParentId) {\n    const currentNode = nodes.find(node => node.id === currentParentId);\n    currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n    if (currentNode) {\n      allAncestors = allAncestors.concat(currentNode);\n    }\n  }\n  return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n  let allChildren = nodes.filter(node => {\n    var _node$context;\n    return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n  });\n  let currentChildren = allChildren;\n  while (currentChildren.length) {\n    currentChildren = nodes.filter(node => {\n      var _currentChildren;\n      return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n        var _node$context2;\n        return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n      });\n    });\n    allChildren = allChildren.concat(currentChildren);\n  }\n  return allChildren;\n}\nfunction getDeepestNode(nodes, id) {\n  let deepestNodeId;\n  let maxDepth = -1;\n  function findDeepest(nodeId, depth) {\n    if (depth > maxDepth) {\n      deepestNodeId = nodeId;\n      maxDepth = depth;\n    }\n    const children = getChildren(nodes, nodeId);\n    children.forEach(child => {\n      findDeepest(child.id, depth + 1);\n    });\n  }\n  findDeepest(id, 0);\n  return nodes.find(node => node.id === deepestNodeId);\n}\n\n// Modified to add conditional `aria-hidden` support:\n// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\nlet counterMap = /*#__PURE__*/new WeakMap();\nlet uncontrolledElementsSet = /*#__PURE__*/new WeakSet();\nlet markerMap = {};\nlet lockCount$1 = 0;\nconst supportsInert = () => typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;\nconst unwrapHost = node => node && (node.host || unwrapHost(node.parentNode));\nconst correctElements = (parent, targets) => targets.map(target => {\n  if (parent.contains(target)) {\n    return target;\n  }\n  const correctedTarget = unwrapHost(target);\n  if (parent.contains(correctedTarget)) {\n    return correctedTarget;\n  }\n  return null;\n}).filter(x => x != null);\nfunction applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert) {\n  const markerName = 'data-floating-ui-inert';\n  const controlAttribute = inert ? 'inert' : ariaHidden ? 'aria-hidden' : null;\n  const avoidElements = correctElements(body, uncorrectedAvoidElements);\n  const elementsToKeep = new Set();\n  const elementsToStop = new Set(avoidElements);\n  const hiddenElements = [];\n  if (!markerMap[markerName]) {\n    markerMap[markerName] = new WeakMap();\n  }\n  const markerCounter = markerMap[markerName];\n  avoidElements.forEach(keep);\n  deep(body);\n  elementsToKeep.clear();\n  function keep(el) {\n    if (!el || elementsToKeep.has(el)) {\n      return;\n    }\n    elementsToKeep.add(el);\n    el.parentNode && keep(el.parentNode);\n  }\n  function deep(parent) {\n    if (!parent || elementsToStop.has(parent)) {\n      return;\n    }\n    [].forEach.call(parent.children, node => {\n      if (getNodeName(node) === 'script') return;\n      if (elementsToKeep.has(node)) {\n        deep(node);\n      } else {\n        const attr = controlAttribute ? node.getAttribute(controlAttribute) : null;\n        const alreadyHidden = attr !== null && attr !== 'false';\n        const counterValue = (counterMap.get(node) || 0) + 1;\n        const markerValue = (markerCounter.get(node) || 0) + 1;\n        counterMap.set(node, counterValue);\n        markerCounter.set(node, markerValue);\n        hiddenElements.push(node);\n        if (counterValue === 1 && alreadyHidden) {\n          uncontrolledElementsSet.add(node);\n        }\n        if (markerValue === 1) {\n          node.setAttribute(markerName, '');\n        }\n        if (!alreadyHidden && controlAttribute) {\n          node.setAttribute(controlAttribute, 'true');\n        }\n      }\n    });\n  }\n  lockCount$1++;\n  return () => {\n    hiddenElements.forEach(element => {\n      const counterValue = (counterMap.get(element) || 0) - 1;\n      const markerValue = (markerCounter.get(element) || 0) - 1;\n      counterMap.set(element, counterValue);\n      markerCounter.set(element, markerValue);\n      if (!counterValue) {\n        if (!uncontrolledElementsSet.has(element) && controlAttribute) {\n          element.removeAttribute(controlAttribute);\n        }\n        uncontrolledElementsSet.delete(element);\n      }\n      if (!markerValue) {\n        element.removeAttribute(markerName);\n      }\n    });\n    lockCount$1--;\n    if (!lockCount$1) {\n      counterMap = new WeakMap();\n      counterMap = new WeakMap();\n      uncontrolledElementsSet = new WeakSet();\n      markerMap = {};\n    }\n  };\n}\nfunction markOthers(avoidElements, ariaHidden, inert) {\n  if (ariaHidden === void 0) {\n    ariaHidden = false;\n  }\n  if (inert === void 0) {\n    inert = false;\n  }\n  const body = getDocument(avoidElements[0]).body;\n  return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll('[aria-live]'))), body, ariaHidden, inert);\n}\n\nconst getTabbableOptions = () => ({\n  getShadowRoot: true,\n  displayCheck:\n  // JSDOM does not support the `tabbable` library. To solve this we can\n  // check if `ResizeObserver` is a real function (not polyfilled), which\n  // determines if the current environment is JSDOM-like.\n  typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n  const allTabbable = tabbable(container, getTabbableOptions());\n  if (direction === 'prev') {\n    allTabbable.reverse();\n  }\n  const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));\n  const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n  return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n  return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n  return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n  const containerElement = container || event.currentTarget;\n  const relatedTarget = event.relatedTarget;\n  return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n  const tabbableElements = tabbable(container, getTabbableOptions());\n  tabbableElements.forEach(element => {\n    element.dataset.tabindex = element.getAttribute('tabindex') || '';\n    element.setAttribute('tabindex', '-1');\n  });\n}\nfunction enableFocusInside(container) {\n  const elements = container.querySelectorAll('[data-tabindex]');\n  elements.forEach(element => {\n    const tabindex = element.dataset.tabindex;\n    delete element.dataset.tabindex;\n    if (tabindex) {\n      element.setAttribute('tabindex', tabindex);\n    } else {\n      element.removeAttribute('tabindex');\n    }\n  });\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n  border: 0,\n  clip: 'rect(0 0 0 0)',\n  height: '1px',\n  margin: '-1px',\n  overflow: 'hidden',\n  padding: 0,\n  position: 'fixed',\n  whiteSpace: 'nowrap',\n  width: '1px',\n  top: 0,\n  left: 0\n};\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n  if (event.key === 'Tab') {\n    event.target;\n    clearTimeout(timeoutId);\n  }\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n  const [role, setRole] = React.useState();\n  index(() => {\n    if (isSafari()) {\n      // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n      // on VoiceOver does trigger the onFocus event, so we can use the focus\n      // trap element. On Safari, only buttons trigger the onFocus event.\n      // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n      // button role.\n      setRole('button');\n    }\n    document.addEventListener('keydown', setActiveElementOnTab);\n    return () => {\n      document.removeEventListener('keydown', setActiveElementOnTab);\n    };\n  }, []);\n  const restProps = {\n    ref,\n    tabIndex: 0,\n    // Role is only for VoiceOver\n    role,\n    'aria-hidden': role ? undefined : true,\n    [createAttribute('focus-guard')]: '',\n    style: HIDDEN_STYLES\n  };\n  return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, restProps));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nconst attr = /*#__PURE__*/createAttribute('portal');\n/**\n * @see https://floating-ui.com/docs/FloatingPortal#usefloatingportalnode\n */\nfunction useFloatingPortalNode(props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    id,\n    root\n  } = props;\n  const uniqueId = useId();\n  const portalContext = usePortalContext();\n  const [portalNode, setPortalNode] = React.useState(null);\n  const portalNodeRef = React.useRef(null);\n  index(() => {\n    return () => {\n      portalNode == null || portalNode.remove();\n      // Allow the subsequent layout effects to create a new node on updates.\n      // The portal node will still be cleaned up on unmount.\n      // https://github.com/floating-ui/floating-ui/issues/2454\n      queueMicrotask(() => {\n        portalNodeRef.current = null;\n      });\n    };\n  }, [portalNode]);\n  index(() => {\n    // Wait for the uniqueId to be generated before creating the portal node in\n    // React <18 (using `useFloatingId` instead of the native `useId`).\n    // https://github.com/floating-ui/floating-ui/issues/2778\n    if (!uniqueId) return;\n    if (portalNodeRef.current) return;\n    const existingIdRoot = id ? document.getElementById(id) : null;\n    if (!existingIdRoot) return;\n    const subRoot = document.createElement('div');\n    subRoot.id = uniqueId;\n    subRoot.setAttribute(attr, '');\n    existingIdRoot.appendChild(subRoot);\n    portalNodeRef.current = subRoot;\n    setPortalNode(subRoot);\n  }, [id, uniqueId]);\n  index(() => {\n    // Wait for the root to exist before creating the portal node. The root must\n    // be stored in state, not a ref, for this to work reactively.\n    if (root === null) return;\n    if (!uniqueId) return;\n    if (portalNodeRef.current) return;\n    let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n    if (container && !isElement(container)) container = container.current;\n    container = container || document.body;\n    let idWrapper = null;\n    if (id) {\n      idWrapper = document.createElement('div');\n      idWrapper.id = id;\n      container.appendChild(idWrapper);\n    }\n    const subRoot = document.createElement('div');\n    subRoot.id = uniqueId;\n    subRoot.setAttribute(attr, '');\n    container = idWrapper || container;\n    container.appendChild(subRoot);\n    portalNodeRef.current = subRoot;\n    setPortalNode(subRoot);\n  }, [id, root, uniqueId, portalContext]);\n  return portalNode;\n}\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * This is necessary to ensure the floating element can appear outside any\n * potential parent containers that cause clipping (such as `overflow: hidden`),\n * while retaining its location in the React tree.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nfunction FloatingPortal(props) {\n  const {\n    children,\n    id,\n    root,\n    preserveTabOrder = true\n  } = props;\n  const portalNode = useFloatingPortalNode({\n    id,\n    root\n  });\n  const [focusManagerState, setFocusManagerState] = React.useState(null);\n  const beforeOutsideRef = React.useRef(null);\n  const afterOutsideRef = React.useRef(null);\n  const beforeInsideRef = React.useRef(null);\n  const afterInsideRef = React.useRef(null);\n  const modal = focusManagerState == null ? void 0 : focusManagerState.modal;\n  const open = focusManagerState == null ? void 0 : focusManagerState.open;\n  const shouldRenderGuards =\n  // The FocusManager and therefore floating element are currently open/\n  // rendered.\n  !!focusManagerState &&\n  // Guards are only for non-modal focus management.\n  !focusManagerState.modal &&\n  // Don't render if unmount is transitioning.\n  focusManagerState.open && preserveTabOrder && !!(root || portalNode);\n\n  // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n  React.useEffect(() => {\n    if (!portalNode || !preserveTabOrder || modal) {\n      return;\n    }\n\n    // Make sure elements inside the portal element are tabbable only when the\n    // portal has already been focused, either by tabbing into a focus trap\n    // element outside or using the mouse.\n    function onFocus(event) {\n      if (portalNode && isOutsideEvent(event)) {\n        const focusing = event.type === 'focusin';\n        const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n        manageFocus(portalNode);\n      }\n    }\n    // Listen to the event on the capture phase so they run before the focus\n    // trap elements onFocus prop is called.\n    portalNode.addEventListener('focusin', onFocus, true);\n    portalNode.addEventListener('focusout', onFocus, true);\n    return () => {\n      portalNode.removeEventListener('focusin', onFocus, true);\n      portalNode.removeEventListener('focusout', onFocus, true);\n    };\n  }, [portalNode, preserveTabOrder, modal]);\n  React.useEffect(() => {\n    if (!portalNode) return;\n    if (open) return;\n    enableFocusInside(portalNode);\n  }, [open, portalNode]);\n  return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n    value: React.useMemo(() => ({\n      preserveTabOrder,\n      beforeOutsideRef,\n      afterOutsideRef,\n      beforeInsideRef,\n      afterInsideRef,\n      portalNode,\n      setFocusManagerState\n    }), [preserveTabOrder, portalNode])\n  }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"outside\",\n    ref: beforeOutsideRef,\n    onFocus: event => {\n      if (isOutsideEvent(event, portalNode)) {\n        var _beforeInsideRef$curr;\n        (_beforeInsideRef$curr = beforeInsideRef.current) == null || _beforeInsideRef$curr.focus();\n      } else {\n        const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n        prevTabbable == null || prevTabbable.focus();\n      }\n    }\n  }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n    \"aria-owns\": portalNode.id,\n    style: HIDDEN_STYLES\n  }), portalNode && /*#__PURE__*/ReactDOM.createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"outside\",\n    ref: afterOutsideRef,\n    onFocus: event => {\n      if (isOutsideEvent(event, portalNode)) {\n        var _afterInsideRef$curre;\n        (_afterInsideRef$curre = afterInsideRef.current) == null || _afterInsideRef$curre.focus();\n      } else {\n        const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n        nextTabbable == null || nextTabbable.focus();\n        (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent, 'focus-out'));\n      }\n    }\n  }));\n}\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst FOCUSABLE_ATTRIBUTE = 'data-floating-ui-focusable';\nfunction getFloatingFocusElement(floatingElement) {\n  if (!floatingElement) {\n    return null;\n  }\n  // Try to find the element that has `{...getFloatingProps()}` spread on it.\n  // This indicates the floating element is acting as a positioning wrapper, and\n  // so focus should be managed on the child element with the event handlers and\n  // aria props.\n  return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(\"[\" + FOCUSABLE_ATTRIBUTE + \"]\") || floatingElement;\n}\n\nconst LIST_LIMIT = 20;\nlet previouslyFocusedElements = [];\nfunction addPreviouslyFocusedElement(element) {\n  previouslyFocusedElements = previouslyFocusedElements.filter(el => el.isConnected);\n  let tabbableEl = element;\n  if (!tabbableEl || getNodeName(tabbableEl) === 'body') return;\n  if (!isTabbable(tabbableEl, getTabbableOptions())) {\n    const tabbableChild = tabbable(tabbableEl, getTabbableOptions())[0];\n    if (tabbableChild) {\n      tabbableEl = tabbableChild;\n    }\n  }\n  previouslyFocusedElements.push(tabbableEl);\n  if (previouslyFocusedElements.length > LIST_LIMIT) {\n    previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT);\n  }\n}\nfunction getPreviouslyFocusedElement() {\n  return previouslyFocusedElements.slice().reverse().find(el => el.isConnected);\n}\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n  return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n    type: \"button\",\n    ref: ref,\n    tabIndex: -1,\n    style: HIDDEN_STYLES\n  }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(props) {\n  const {\n    context,\n    children,\n    disabled = false,\n    order = ['content'],\n    guards: _guards = true,\n    initialFocus = 0,\n    returnFocus = true,\n    restoreFocus = false,\n    modal = true,\n    visuallyHiddenDismiss = false,\n    closeOnFocusOut = true\n  } = props;\n  const {\n    open,\n    refs,\n    nodeId,\n    onOpenChange,\n    events,\n    dataRef,\n    floatingId,\n    elements: {\n      domReference,\n      floating\n    }\n  } = context;\n  const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n  // If the reference is a combobox and is typeable (e.g. input/textarea),\n  // there are different focus semantics. The guards should not be rendered, but\n  // aria-hidden should be applied to all nodes still. Further, the visually\n  // hidden dismiss button should only appear at the end of the list, not the\n  // start.\n  const isUntrappedTypeableCombobox = isTypeableCombobox(domReference) && ignoreInitialFocus;\n\n  // Force the guards to be rendered if the `inert` attribute is not supported.\n  const guards = supportsInert() ? _guards : true;\n  const orderRef = useLatestRef(order);\n  const initialFocusRef = useLatestRef(initialFocus);\n  const returnFocusRef = useLatestRef(returnFocus);\n  const tree = useFloatingTree();\n  const portalContext = usePortalContext();\n  const startDismissButtonRef = React.useRef(null);\n  const endDismissButtonRef = React.useRef(null);\n  const preventReturnFocusRef = React.useRef(false);\n  const isPointerDownRef = React.useRef(false);\n  const tabbableIndexRef = React.useRef(-1);\n  const isInsidePortal = portalContext != null;\n  const floatingFocusElement = getFloatingFocusElement(floating);\n  const getTabbableContent = useEffectEvent(function (container) {\n    if (container === void 0) {\n      container = floatingFocusElement;\n    }\n    return container ? tabbable(container, getTabbableOptions()) : [];\n  });\n  const getTabbableElements = useEffectEvent(container => {\n    const content = getTabbableContent(container);\n    return orderRef.current.map(type => {\n      if (domReference && type === 'reference') {\n        return domReference;\n      }\n      if (floatingFocusElement && type === 'floating') {\n        return floatingFocusElement;\n      }\n      return content;\n    }).filter(Boolean).flat();\n  });\n  React.useEffect(() => {\n    if (disabled) return;\n    if (!modal) return;\n    function onKeyDown(event) {\n      if (event.key === 'Tab') {\n        // The focus guards have nothing to focus, so we need to stop the event.\n        if (contains(floatingFocusElement, activeElement(getDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n          stopEvent(event);\n        }\n        const els = getTabbableElements();\n        const target = getTarget(event);\n        if (orderRef.current[0] === 'reference' && target === domReference) {\n          stopEvent(event);\n          if (event.shiftKey) {\n            enqueueFocus(els[els.length - 1]);\n          } else {\n            enqueueFocus(els[1]);\n          }\n        }\n        if (orderRef.current[1] === 'floating' && target === floatingFocusElement && event.shiftKey) {\n          stopEvent(event);\n          enqueueFocus(els[0]);\n        }\n      }\n    }\n    const doc = getDocument(floatingFocusElement);\n    doc.addEventListener('keydown', onKeyDown);\n    return () => {\n      doc.removeEventListener('keydown', onKeyDown);\n    };\n  }, [disabled, domReference, floatingFocusElement, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);\n  React.useEffect(() => {\n    if (disabled) return;\n    if (!floating) return;\n    function handleFocusIn(event) {\n      const target = getTarget(event);\n      const tabbableContent = getTabbableContent();\n      const tabbableIndex = tabbableContent.indexOf(target);\n      if (tabbableIndex !== -1) {\n        tabbableIndexRef.current = tabbableIndex;\n      }\n    }\n    floating.addEventListener('focusin', handleFocusIn);\n    return () => {\n      floating.removeEventListener('focusin', handleFocusIn);\n    };\n  }, [disabled, floating, getTabbableContent]);\n  React.useEffect(() => {\n    if (disabled) return;\n    if (!closeOnFocusOut) return;\n\n    // In Safari, buttons lose focus when pressing them.\n    function handlePointerDown() {\n      isPointerDownRef.current = true;\n      setTimeout(() => {\n        isPointerDownRef.current = false;\n      });\n    }\n    function handleFocusOutside(event) {\n      const relatedTarget = event.relatedTarget;\n      queueMicrotask(() => {\n        const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute('focus-guard')) || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n          var _node$context, _node$context2;\n          return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n        }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n          var _node$context3, _node$context4;\n          return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n        })));\n\n        // Restore focus to the previous tabbable element index to prevent\n        // focus from being lost outside the floating tree.\n        if (restoreFocus && movedToUnrelatedNode && activeElement(getDocument(floatingFocusElement)) === getDocument(floatingFocusElement).body) {\n          // Let `FloatingPortal` effect knows that focus is still inside the\n          // floating tree.\n          if (isHTMLElement(floatingFocusElement)) {\n            floatingFocusElement.focus();\n          }\n          const prevTabbableIndex = tabbableIndexRef.current;\n          const tabbableContent = getTabbableContent();\n          const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;\n          if (isHTMLElement(nodeToFocus)) {\n            nodeToFocus.focus();\n          }\n        }\n\n        // Focus did not move inside the floating tree, and there are no tabbable\n        // portal guards to handle closing.\n        if ((isUntrappedTypeableCombobox ? true : !modal) && relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n        // Fix React 18 Strict Mode returnFocus due to double rendering.\n        relatedTarget !== getPreviouslyFocusedElement()) {\n          preventReturnFocusRef.current = true;\n          onOpenChange(false, event, 'focus-out');\n        }\n      });\n    }\n    if (floating && isHTMLElement(domReference)) {\n      domReference.addEventListener('focusout', handleFocusOutside);\n      domReference.addEventListener('pointerdown', handlePointerDown);\n      floating.addEventListener('focusout', handleFocusOutside);\n      return () => {\n        domReference.removeEventListener('focusout', handleFocusOutside);\n        domReference.removeEventListener('pointerdown', handlePointerDown);\n        floating.removeEventListener('focusout', handleFocusOutside);\n      };\n    }\n  }, [disabled, domReference, floating, floatingFocusElement, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox]);\n  React.useEffect(() => {\n    var _portalContext$portal;\n    if (disabled) return;\n\n    // Don't hide portals nested within the parent portal.\n    const portalNodes = Array.from((portalContext == null || (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll(\"[\" + createAttribute('portal') + \"]\")) || []);\n    if (floating) {\n      const insideElements = [floating, ...portalNodes, startDismissButtonRef.current, endDismissButtonRef.current, orderRef.current.includes('reference') || isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null);\n      const cleanup = modal || isUntrappedTypeableCombobox ? markOthers(insideElements, guards, !guards) : markOthers(insideElements);\n      return () => {\n        cleanup();\n      };\n    }\n  }, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards]);\n  index(() => {\n    if (disabled || !isHTMLElement(floatingFocusElement)) return;\n    const doc = getDocument(floatingFocusElement);\n    const previouslyFocusedElement = activeElement(doc);\n\n    // Wait for any layout effect state setters to execute to set `tabIndex`.\n    queueMicrotask(() => {\n      const focusableElements = getTabbableElements(floatingFocusElement);\n      const initialFocusValue = initialFocusRef.current;\n      const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floatingFocusElement;\n      const focusAlreadyInsideFloatingEl = contains(floatingFocusElement, previouslyFocusedElement);\n      if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n        enqueueFocus(elToFocus, {\n          preventScroll: elToFocus === floatingFocusElement\n        });\n      }\n    });\n  }, [disabled, open, floatingFocusElement, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n  index(() => {\n    if (disabled || !floatingFocusElement) return;\n    let preventReturnFocusScroll = false;\n    const doc = getDocument(floatingFocusElement);\n    const previouslyFocusedElement = activeElement(doc);\n    const contextData = dataRef.current;\n    let openEvent = contextData.openEvent;\n    addPreviouslyFocusedElement(previouslyFocusedElement);\n\n    // Dismissing via outside press should always ignore `returnFocus` to\n    // prevent unwanted scrolling.\n    function onOpenChange(_ref) {\n      let {\n        open,\n        reason,\n        event,\n        nested\n      } = _ref;\n      if (open) {\n        openEvent = event;\n      }\n      if (reason === 'escape-key' && refs.domReference.current) {\n        addPreviouslyFocusedElement(refs.domReference.current);\n      }\n      if (reason === 'hover' && event.type === 'mouseleave') {\n        preventReturnFocusRef.current = true;\n      }\n      if (reason !== 'outside-press') return;\n      if (nested) {\n        preventReturnFocusRef.current = false;\n        preventReturnFocusScroll = true;\n      } else {\n        preventReturnFocusRef.current = !(isVirtualClick(event) || isVirtualPointerEvent(event));\n      }\n    }\n    events.on('openchange', onOpenChange);\n    const fallbackEl = doc.createElement('span');\n    fallbackEl.setAttribute('tabindex', '-1');\n    fallbackEl.setAttribute('aria-hidden', 'true');\n    Object.assign(fallbackEl.style, HIDDEN_STYLES);\n    if (isInsidePortal && domReference) {\n      domReference.insertAdjacentElement('afterend', fallbackEl);\n    }\n    function getReturnElement() {\n      if (typeof returnFocusRef.current === 'boolean') {\n        return getPreviouslyFocusedElement() || fallbackEl;\n      }\n      return returnFocusRef.current.current || fallbackEl;\n    }\n    return () => {\n      events.off('openchange', onOpenChange);\n      const activeEl = activeElement(doc);\n      const isFocusInsideFloatingTree = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n        var _node$context5;\n        return contains((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl);\n      });\n      const shouldFocusReference = isFocusInsideFloatingTree || openEvent && ['click', 'mousedown'].includes(openEvent.type);\n      if (shouldFocusReference && refs.domReference.current) {\n        addPreviouslyFocusedElement(refs.domReference.current);\n      }\n      const returnElement = getReturnElement();\n      queueMicrotask(() => {\n        if (\n        // eslint-disable-next-line react-hooks/exhaustive-deps\n        returnFocusRef.current && !preventReturnFocusRef.current && isHTMLElement(returnElement) && (\n        // If the focus moved somewhere else after mount, avoid returning focus\n        // since it likely entered a different element which should be\n        // respected: https://github.com/floating-ui/floating-ui/issues/2607\n        returnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)) {\n          returnElement.focus({\n            preventScroll: preventReturnFocusScroll\n          });\n        }\n        fallbackEl.remove();\n      });\n    };\n  }, [disabled, floating, floatingFocusElement, returnFocusRef, dataRef, refs, events, tree, nodeId, isInsidePortal, domReference]);\n  React.useEffect(() => {\n    // The `returnFocus` cleanup behavior is inside a microtask; ensure we\n    // wait for it to complete before resetting the flag.\n    queueMicrotask(() => {\n      preventReturnFocusRef.current = false;\n    });\n  }, [disabled]);\n\n  // Synchronize the `context` & `modal` value to the FloatingPortal context.\n  // It will decide whether or not it needs to render its own guards.\n  index(() => {\n    if (disabled) return;\n    if (!portalContext) return;\n    portalContext.setFocusManagerState({\n      modal,\n      closeOnFocusOut,\n      open,\n      onOpenChange,\n      refs\n    });\n    return () => {\n      portalContext.setFocusManagerState(null);\n    };\n  }, [disabled, portalContext, modal, open, onOpenChange, refs, closeOnFocusOut]);\n  index(() => {\n    if (disabled) return;\n    if (!floatingFocusElement) return;\n    if (typeof MutationObserver !== 'function') return;\n    if (ignoreInitialFocus) return;\n    const handleMutation = () => {\n      const tabIndex = floatingFocusElement.getAttribute('tabindex');\n      const tabbableContent = getTabbableContent();\n      const activeEl = activeElement(getDocument(floating));\n      const tabbableIndex = tabbableContent.indexOf(activeEl);\n      if (tabbableIndex !== -1) {\n        tabbableIndexRef.current = tabbableIndex;\n      }\n      if (orderRef.current.includes('floating') || activeEl !== refs.domReference.current && tabbableContent.length === 0) {\n        if (tabIndex !== '0') {\n          floatingFocusElement.setAttribute('tabindex', '0');\n        }\n      } else if (tabIndex !== '-1') {\n        floatingFocusElement.setAttribute('tabindex', '-1');\n      }\n    };\n    handleMutation();\n    const observer = new MutationObserver(handleMutation);\n    observer.observe(floatingFocusElement, {\n      childList: true,\n      subtree: true,\n      attributes: true\n    });\n    return () => {\n      observer.disconnect();\n    };\n  }, [disabled, floating, floatingFocusElement, refs, orderRef, getTabbableContent, ignoreInitialFocus]);\n  function renderDismissButton(location) {\n    if (disabled || !visuallyHiddenDismiss || !modal) {\n      return null;\n    }\n    return /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n      ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n      onClick: event => onOpenChange(false, event.nativeEvent)\n    }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss');\n  }\n  const shouldRenderGuards = !disabled && guards && (modal ? !isUntrappedTypeableCombobox : true) && (isInsidePortal || modal);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"inside\",\n    ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n    onFocus: event => {\n      if (modal) {\n        const els = getTabbableElements();\n        enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n      } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n        preventReturnFocusRef.current = false;\n        if (isOutsideEvent(event, portalContext.portalNode)) {\n          const nextTabbable = getNextTabbable() || domReference;\n          nextTabbable == null || nextTabbable.focus();\n        } else {\n          var _portalContext$before;\n          (_portalContext$before = portalContext.beforeOutsideRef.current) == null || _portalContext$before.focus();\n        }\n      }\n    }\n  }), !isUntrappedTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n    \"data-type\": \"inside\",\n    ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n    onFocus: event => {\n      if (modal) {\n        enqueueFocus(getTabbableElements()[0]);\n      } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n        if (closeOnFocusOut) {\n          preventReturnFocusRef.current = true;\n        }\n        if (isOutsideEvent(event, portalContext.portalNode)) {\n          const prevTabbable = getPreviousTabbable() || domReference;\n          prevTabbable == null || prevTabbable.focus();\n        } else {\n          var _portalContext$afterO;\n          (_portalContext$afterO = portalContext.afterOutsideRef.current) == null || _portalContext$afterO.focus();\n        }\n      }\n    }\n  }));\n}\n\nlet lockCount = 0;\nfunction enableScrollLock() {\n  const isIOS = /iP(hone|ad|od)|iOS/.test(getPlatform());\n  const bodyStyle = document.body.style;\n  // RTL <body> scrollbar\n  const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n  const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n  const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n  const scrollX = bodyStyle.left ? parseFloat(bodyStyle.left) : window.scrollX;\n  const scrollY = bodyStyle.top ? parseFloat(bodyStyle.top) : window.scrollY;\n  bodyStyle.overflow = 'hidden';\n  if (scrollbarWidth) {\n    bodyStyle[paddingProp] = scrollbarWidth + \"px\";\n  }\n\n  // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n  // technique has fewer side effects.\n  if (isIOS) {\n    var _window$visualViewpor, _window$visualViewpor2;\n    // iOS 12 does not support `visualViewport`.\n    const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n    const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n    Object.assign(bodyStyle, {\n      position: 'fixed',\n      top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n      left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n      right: '0'\n    });\n  }\n  return () => {\n    Object.assign(bodyStyle, {\n      overflow: '',\n      [paddingProp]: ''\n    });\n    if (isIOS) {\n      Object.assign(bodyStyle, {\n        position: '',\n        top: '',\n        left: '',\n        right: ''\n      });\n      window.scrollTo(scrollX, scrollY);\n    }\n  };\n}\nlet cleanup = () => {};\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `<div>`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(props, ref) {\n  const {\n    lockScroll = false,\n    ...rest\n  } = props;\n  index(() => {\n    if (!lockScroll) return;\n    lockCount++;\n    if (lockCount === 1) {\n      cleanup = enableScrollLock();\n    }\n    return () => {\n      lockCount--;\n      if (lockCount === 0) {\n        cleanup();\n      }\n    };\n  }, [lockScroll]);\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    ref: ref\n  }, rest, {\n    style: {\n      position: 'fixed',\n      overflow: 'auto',\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0,\n      ...rest.style\n    }\n  }));\n});\n\nfunction isButtonTarget(event) {\n  return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n  return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nfunction useClick(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    dataRef,\n    elements: {\n      domReference\n    }\n  } = context;\n  const {\n    enabled = true,\n    event: eventOption = 'click',\n    toggle = true,\n    ignoreMouse = false,\n    keyboardHandlers = true,\n    stickIfOpen = true\n  } = props;\n  const pointerTypeRef = React.useRef();\n  const didKeyDownRef = React.useRef(false);\n  const reference = React.useMemo(() => ({\n    onPointerDown(event) {\n      pointerTypeRef.current = event.pointerType;\n    },\n    onMouseDown(event) {\n      const pointerType = pointerTypeRef.current;\n\n      // Ignore all buttons except for the \"main\" button.\n      // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n      if (event.button !== 0) return;\n      if (eventOption === 'click') return;\n      if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n      if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n        onOpenChange(false, event.nativeEvent, 'click');\n      } else {\n        // Prevent stealing focus from the floating element\n        event.preventDefault();\n        onOpenChange(true, event.nativeEvent, 'click');\n      }\n    },\n    onClick(event) {\n      const pointerType = pointerTypeRef.current;\n      if (eventOption === 'mousedown' && pointerTypeRef.current) {\n        pointerTypeRef.current = undefined;\n        return;\n      }\n      if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n      if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === 'click' : true)) {\n        onOpenChange(false, event.nativeEvent, 'click');\n      } else {\n        onOpenChange(true, event.nativeEvent, 'click');\n      }\n    },\n    onKeyDown(event) {\n      pointerTypeRef.current = undefined;\n      if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n        return;\n      }\n      if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n        // Prevent scrolling\n        event.preventDefault();\n        didKeyDownRef.current = true;\n      }\n      if (event.key === 'Enter') {\n        if (open && toggle) {\n          onOpenChange(false, event.nativeEvent, 'click');\n        } else {\n          onOpenChange(true, event.nativeEvent, 'click');\n        }\n      }\n    },\n    onKeyUp(event) {\n      if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n        return;\n      }\n      if (event.key === ' ' && didKeyDownRef.current) {\n        didKeyDownRef.current = false;\n        if (open && toggle) {\n          onOpenChange(false, event.nativeEvent, 'click');\n        } else {\n          onOpenChange(true, event.nativeEvent, 'click');\n        }\n      }\n    }\n  }), [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);\n  return React.useMemo(() => enabled ? {\n    reference\n  } : {}, [enabled, reference]);\n}\n\nfunction createVirtualElement(domElement, data) {\n  let offsetX = null;\n  let offsetY = null;\n  let isAutoUpdateEvent = false;\n  return {\n    contextElement: domElement || undefined,\n    getBoundingClientRect() {\n      var _data$dataRef$current;\n      const domRect = (domElement == null ? void 0 : domElement.getBoundingClientRect()) || {\n        width: 0,\n        height: 0,\n        x: 0,\n        y: 0\n      };\n      const isXAxis = data.axis === 'x' || data.axis === 'both';\n      const isYAxis = data.axis === 'y' || data.axis === 'both';\n      const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch';\n      let width = domRect.width;\n      let height = domRect.height;\n      let x = domRect.x;\n      let y = domRect.y;\n      if (offsetX == null && data.x && isXAxis) {\n        offsetX = domRect.x - data.x;\n      }\n      if (offsetY == null && data.y && isYAxis) {\n        offsetY = domRect.y - data.y;\n      }\n      x -= offsetX || 0;\n      y -= offsetY || 0;\n      width = 0;\n      height = 0;\n      if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {\n        width = data.axis === 'y' ? domRect.width : 0;\n        height = data.axis === 'x' ? domRect.height : 0;\n        x = isXAxis && data.x != null ? data.x : x;\n        y = isYAxis && data.y != null ? data.y : y;\n      } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {\n        height = data.axis === 'x' ? domRect.height : height;\n        width = data.axis === 'y' ? domRect.width : width;\n      }\n      isAutoUpdateEvent = true;\n      return {\n        width,\n        height,\n        x,\n        y,\n        top: y,\n        right: x + width,\n        bottom: y + height,\n        left: x\n      };\n    }\n  };\n}\nfunction isMouseBasedEvent(event) {\n  return event != null && event.clientX != null;\n}\n/**\n * Positions the floating element relative to a client point (in the viewport),\n * such as the mouse position. By default, it follows the mouse cursor.\n * @see https://floating-ui.com/docs/useClientPoint\n */\nfunction useClientPoint(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    dataRef,\n    elements: {\n      floating,\n      domReference\n    },\n    refs\n  } = context;\n  const {\n    enabled = true,\n    axis = 'both',\n    x = null,\n    y = null\n  } = props;\n  const initialRef = React.useRef(false);\n  const cleanupListenerRef = React.useRef(null);\n  const [pointerType, setPointerType] = React.useState();\n  const [reactive, setReactive] = React.useState([]);\n  const setReference = useEffectEvent((x, y) => {\n    if (initialRef.current) return;\n\n    // Prevent setting if the open event was not a mouse-like one\n    // (e.g. focus to open, then hover over the reference element).\n    // Only apply if the event exists.\n    if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {\n      return;\n    }\n    refs.setPositionReference(createVirtualElement(domReference, {\n      x,\n      y,\n      axis,\n      dataRef,\n      pointerType\n    }));\n  });\n  const handleReferenceEnterOrMove = useEffectEvent(event => {\n    if (x != null || y != null) return;\n    if (!open) {\n      setReference(event.clientX, event.clientY);\n    } else if (!cleanupListenerRef.current) {\n      // If there's no cleanup, there's no listener, but we want to ensure\n      // we add the listener if the cursor landed on the floating element and\n      // then back on the reference (i.e. it's interactive).\n      setReactive([]);\n    }\n  });\n\n  // If the pointer is a mouse-like pointer, we want to continue following the\n  // mouse even if the floating element is transitioning out. On touch\n  // devices, this is undesirable because the floating element will move to\n  // the dismissal touch point.\n  const openCheck = isMouseLikePointerType(pointerType) ? floating : open;\n  const addListener = React.useCallback(() => {\n    // Explicitly specified `x`/`y` coordinates shouldn't add a listener.\n    if (!openCheck || !enabled || x != null || y != null) return;\n    const win = getWindow(floating);\n    function handleMouseMove(event) {\n      const target = getTarget(event);\n      if (!contains(floating, target)) {\n        setReference(event.clientX, event.clientY);\n      } else {\n        win.removeEventListener('mousemove', handleMouseMove);\n        cleanupListenerRef.current = null;\n      }\n    }\n    if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {\n      win.addEventListener('mousemove', handleMouseMove);\n      const cleanup = () => {\n        win.removeEventListener('mousemove', handleMouseMove);\n        cleanupListenerRef.current = null;\n      };\n      cleanupListenerRef.current = cleanup;\n      return cleanup;\n    }\n    refs.setPositionReference(domReference);\n  }, [openCheck, enabled, x, y, floating, dataRef, refs, domReference, setReference]);\n  React.useEffect(() => {\n    return addListener();\n  }, [addListener, reactive]);\n  React.useEffect(() => {\n    if (enabled && !floating) {\n      initialRef.current = false;\n    }\n  }, [enabled, floating]);\n  React.useEffect(() => {\n    if (!enabled && open) {\n      initialRef.current = true;\n    }\n  }, [enabled, open]);\n  index(() => {\n    if (enabled && (x != null || y != null)) {\n      initialRef.current = false;\n      setReference(x, y);\n    }\n  }, [enabled, x, y, setReference]);\n  const reference = React.useMemo(() => {\n    function setPointerTypeRef(_ref) {\n      let {\n        pointerType\n      } = _ref;\n      setPointerType(pointerType);\n    }\n    return {\n      onPointerDown: setPointerTypeRef,\n      onPointerEnter: setPointerTypeRef,\n      onMouseMove: handleReferenceEnterOrMove,\n      onMouseEnter: handleReferenceEnterOrMove\n    };\n  }, [handleReferenceEnterOrMove]);\n  return React.useMemo(() => enabled ? {\n    reference\n  } : {}, [enabled, reference]);\n}\n\nconst bubbleHandlerKeys = {\n  pointerdown: 'onPointerDown',\n  mousedown: 'onMouseDown',\n  click: 'onClick'\n};\nconst captureHandlerKeys = {\n  pointerdown: 'onPointerDownCapture',\n  mousedown: 'onMouseDownCapture',\n  click: 'onClickCapture'\n};\nconst normalizeProp = normalizable => {\n  var _normalizable$escapeK, _normalizable$outside;\n  return {\n    escapeKey: typeof normalizable === 'boolean' ? normalizable : (_normalizable$escapeK = normalizable == null ? void 0 : normalizable.escapeKey) != null ? _normalizable$escapeK : false,\n    outsidePress: typeof normalizable === 'boolean' ? normalizable : (_normalizable$outside = normalizable == null ? void 0 : normalizable.outsidePress) != null ? _normalizable$outside : true\n  };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nfunction useDismiss(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    elements,\n    dataRef\n  } = context;\n  const {\n    enabled = true,\n    escapeKey = true,\n    outsidePress: unstable_outsidePress = true,\n    outsidePressEvent = 'pointerdown',\n    referencePress = false,\n    referencePressEvent = 'pointerdown',\n    ancestorScroll = false,\n    bubbles,\n    capture\n  } = props;\n  const tree = useFloatingTree();\n  const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n  const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n  const insideReactTreeRef = React.useRef(false);\n  const endedOrStartedInsideRef = React.useRef(false);\n  const {\n    escapeKey: escapeKeyBubbles,\n    outsidePress: outsidePressBubbles\n  } = normalizeProp(bubbles);\n  const {\n    escapeKey: escapeKeyCapture,\n    outsidePress: outsidePressCapture\n  } = normalizeProp(capture);\n  const isComposingRef = React.useRef(false);\n  const closeOnEscapeKeyDown = useEffectEvent(event => {\n    var _dataRef$current$floa;\n    if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n      return;\n    }\n\n    // Wait until IME is settled. Pressing `Escape` while composing should\n    // close the compose menu, but not the floating element.\n    if (isComposingRef.current) {\n      return;\n    }\n    const nodeId = (_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.nodeId;\n    const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n    if (!escapeKeyBubbles) {\n      event.stopPropagation();\n      if (children.length > 0) {\n        let shouldDismiss = true;\n        children.forEach(child => {\n          var _child$context;\n          if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n            shouldDismiss = false;\n            return;\n          }\n        });\n        if (!shouldDismiss) {\n          return;\n        }\n      }\n    }\n    onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event, 'escape-key');\n  });\n  const closeOnEscapeKeyDownCapture = useEffectEvent(event => {\n    var _getTarget2;\n    const callback = () => {\n      var _getTarget;\n      closeOnEscapeKeyDown(event);\n      (_getTarget = getTarget(event)) == null || _getTarget.removeEventListener('keydown', callback);\n    };\n    (_getTarget2 = getTarget(event)) == null || _getTarget2.addEventListener('keydown', callback);\n  });\n  const closeOnPressOutside = useEffectEvent(event => {\n    var _dataRef$current$floa2;\n    // Given developers can stop the propagation of the synthetic event,\n    // we can only be confident with a positive value.\n    const insideReactTree = insideReactTreeRef.current;\n    insideReactTreeRef.current = false;\n\n    // When click outside is lazy (`click` event), handle dragging.\n    // Don't close if:\n    // - The click started inside the floating element.\n    // - The click ended inside the floating element.\n    const endedOrStartedInside = endedOrStartedInsideRef.current;\n    endedOrStartedInsideRef.current = false;\n    if (outsidePressEvent === 'click' && endedOrStartedInside) {\n      return;\n    }\n    if (insideReactTree) {\n      return;\n    }\n    if (typeof outsidePress === 'function' && !outsidePress(event)) {\n      return;\n    }\n    const target = getTarget(event);\n    const inertSelector = \"[\" + createAttribute('inert') + \"]\";\n    const markers = getDocument(elements.floating).querySelectorAll(inertSelector);\n    let targetRootAncestor = isElement(target) ? target : null;\n    while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {\n      const nextParent = getParentNode(targetRootAncestor);\n      if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {\n        break;\n      }\n      targetRootAncestor = nextParent;\n    }\n\n    // Check if the click occurred on a third-party element injected after the\n    // floating element rendered.\n    if (markers.length && isElement(target) && !isRootElement(target) &&\n    // Clicked on a direct ancestor (e.g. FloatingOverlay).\n    !contains(target, elements.floating) &&\n    // If the target root element contains none of the markers, then the\n    // element was injected after the floating element rendered.\n    Array.from(markers).every(marker => !contains(targetRootAncestor, marker))) {\n      return;\n    }\n\n    // Check if the click occurred on the scrollbar\n    if (isHTMLElement(target) && floating) {\n      // In Firefox, `target.scrollWidth > target.clientWidth` for inline\n      // elements.\n      const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n      const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n      let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n      // In some browsers it is possible to change the <body> (or window)\n      // scrollbar to the left side, but is very rare and is difficult to\n      // check for. Plus, for modal dialogs with backdrops, it is more\n      // important that the backdrop is checked but not so much the window.\n      if (canScrollY) {\n        const isRTL = getComputedStyle(target).direction === 'rtl';\n        if (isRTL) {\n          xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n        }\n      }\n      if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n        return;\n      }\n    }\n    const nodeId = (_dataRef$current$floa2 = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa2.nodeId;\n    const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n      var _node$context;\n      return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n    });\n    if (isEventTargetWithin(event, elements.floating) || isEventTargetWithin(event, elements.domReference) || targetIsInsideChildren) {\n      return;\n    }\n    const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n    if (children.length > 0) {\n      let shouldDismiss = true;\n      children.forEach(child => {\n        var _child$context2;\n        if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n          shouldDismiss = false;\n          return;\n        }\n      });\n      if (!shouldDismiss) {\n        return;\n      }\n    }\n    onOpenChange(false, event, 'outside-press');\n  });\n  const closeOnPressOutsideCapture = useEffectEvent(event => {\n    var _getTarget4;\n    const callback = () => {\n      var _getTarget3;\n      closeOnPressOutside(event);\n      (_getTarget3 = getTarget(event)) == null || _getTarget3.removeEventListener(outsidePressEvent, callback);\n    };\n    (_getTarget4 = getTarget(event)) == null || _getTarget4.addEventListener(outsidePressEvent, callback);\n  });\n  React.useEffect(() => {\n    if (!open || !enabled) {\n      return;\n    }\n    dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n    dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n    let compositionTimeout = -1;\n    function onScroll(event) {\n      onOpenChange(false, event, 'ancestor-scroll');\n    }\n    function handleCompositionStart() {\n      window.clearTimeout(compositionTimeout);\n      isComposingRef.current = true;\n    }\n    function handleCompositionEnd() {\n      // Safari fires `compositionend` before `keydown`, so we need to wait\n      // until the next tick to set `isComposing` to `false`.\n      // https://bugs.webkit.org/show_bug.cgi?id=165004\n      compositionTimeout = window.setTimeout(() => {\n        isComposingRef.current = false;\n      },\n      // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.\n      // Only apply to WebKit for the test to remain 0ms.\n      isWebKit() ? 5 : 0);\n    }\n    const doc = getDocument(elements.floating);\n    if (escapeKey) {\n      doc.addEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n      doc.addEventListener('compositionstart', handleCompositionStart);\n      doc.addEventListener('compositionend', handleCompositionEnd);\n    }\n    outsidePress && doc.addEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n    let ancestors = [];\n    if (ancestorScroll) {\n      if (isElement(elements.domReference)) {\n        ancestors = getOverflowAncestors(elements.domReference);\n      }\n      if (isElement(elements.floating)) {\n        ancestors = ancestors.concat(getOverflowAncestors(elements.floating));\n      }\n      if (!isElement(elements.reference) && elements.reference && elements.reference.contextElement) {\n        ancestors = ancestors.concat(getOverflowAncestors(elements.reference.contextElement));\n      }\n    }\n\n    // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n    ancestors = ancestors.filter(ancestor => {\n      var _doc$defaultView;\n      return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n    });\n    ancestors.forEach(ancestor => {\n      ancestor.addEventListener('scroll', onScroll, {\n        passive: true\n      });\n    });\n    return () => {\n      if (escapeKey) {\n        doc.removeEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n        doc.removeEventListener('compositionstart', handleCompositionStart);\n        doc.removeEventListener('compositionend', handleCompositionEnd);\n      }\n      outsidePress && doc.removeEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n      ancestors.forEach(ancestor => {\n        ancestor.removeEventListener('scroll', onScroll);\n      });\n      window.clearTimeout(compositionTimeout);\n    };\n  }, [dataRef, elements, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, escapeKeyCapture, closeOnEscapeKeyDownCapture, closeOnPressOutside, outsidePressCapture, closeOnPressOutsideCapture]);\n  React.useEffect(() => {\n    insideReactTreeRef.current = false;\n  }, [outsidePress, outsidePressEvent]);\n  const reference = React.useMemo(() => ({\n    onKeyDown: closeOnEscapeKeyDown,\n    [bubbleHandlerKeys[referencePressEvent]]: event => {\n      if (referencePress) {\n        onOpenChange(false, event.nativeEvent, 'reference-press');\n      }\n    }\n  }), [closeOnEscapeKeyDown, onOpenChange, referencePress, referencePressEvent]);\n  const floating = React.useMemo(() => ({\n    onKeyDown: closeOnEscapeKeyDown,\n    onMouseDown() {\n      endedOrStartedInsideRef.current = true;\n    },\n    onMouseUp() {\n      endedOrStartedInsideRef.current = true;\n    },\n    [captureHandlerKeys[outsidePressEvent]]: () => {\n      insideReactTreeRef.current = true;\n    }\n  }), [closeOnEscapeKeyDown, outsidePressEvent]);\n  return React.useMemo(() => enabled ? {\n    reference,\n    floating\n  } : {}, [enabled, reference, floating]);\n}\n\nfunction useFloatingRootContext(options) {\n  const {\n    open = false,\n    onOpenChange: onOpenChangeProp,\n    elements: elementsProp\n  } = options;\n  const floatingId = useId();\n  const dataRef = React.useRef({});\n  const [events] = React.useState(() => createPubSub());\n  const nested = useFloatingParentNodeId() != null;\n  if (process.env.NODE_ENV !== \"production\") {\n    const optionDomReference = elementsProp.reference;\n    if (optionDomReference && !isElement(optionDomReference)) {\n      error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `refs.setPositionReference()`', 'instead.');\n    }\n  }\n  const [positionReference, setPositionReference] = React.useState(elementsProp.reference);\n  const onOpenChange = useEffectEvent((open, event, reason) => {\n    dataRef.current.openEvent = open ? event : undefined;\n    events.emit('openchange', {\n      open,\n      event,\n      reason,\n      nested\n    });\n    onOpenChangeProp == null || onOpenChangeProp(open, event, reason);\n  });\n  const refs = React.useMemo(() => ({\n    setPositionReference\n  }), []);\n  const elements = React.useMemo(() => ({\n    reference: positionReference || elementsProp.reference || null,\n    floating: elementsProp.floating || null,\n    domReference: elementsProp.reference\n  }), [positionReference, elementsProp.reference, elementsProp.floating]);\n  return React.useMemo(() => ({\n    dataRef,\n    open,\n    onOpenChange,\n    elements,\n    events,\n    floatingId,\n    refs\n  }), [open, onOpenChange, elements, events, floatingId, refs]);\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    nodeId\n  } = options;\n  const internalRootContext = useFloatingRootContext({\n    ...options,\n    elements: {\n      reference: null,\n      floating: null,\n      ...options.elements\n    }\n  });\n  const rootContext = options.rootContext || internalRootContext;\n  const computedElements = rootContext.elements;\n  const [_domReference, setDomReference] = React.useState(null);\n  const [positionReference, _setPositionReference] = React.useState(null);\n  const optionDomReference = computedElements == null ? void 0 : computedElements.domReference;\n  const domReference = optionDomReference || _domReference;\n  const domReferenceRef = React.useRef(null);\n  const tree = useFloatingTree();\n  index(() => {\n    if (domReference) {\n      domReferenceRef.current = domReference;\n    }\n  }, [domReference]);\n  const position = useFloating$1({\n    ...options,\n    elements: {\n      ...computedElements,\n      ...(positionReference && {\n        reference: positionReference\n      })\n    }\n  });\n  const setPositionReference = React.useCallback(node => {\n    const computedPositionReference = isElement(node) ? {\n      getBoundingClientRect: () => node.getBoundingClientRect(),\n      contextElement: node\n    } : node;\n    // Store the positionReference in state if the DOM reference is specified externally via the\n    // `elements.reference` option. This ensures that it won't be overridden on future renders.\n    _setPositionReference(computedPositionReference);\n    position.refs.setReference(computedPositionReference);\n  }, [position.refs]);\n  const setReference = React.useCallback(node => {\n    if (isElement(node) || node === null) {\n      domReferenceRef.current = node;\n      setDomReference(node);\n    }\n\n    // Backwards-compatibility for passing a virtual element to `reference`\n    // after it has set the DOM reference.\n    if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n    // Don't allow setting virtual elements using the old technique back to\n    // `null` to support `positionReference` + an unstable `reference`\n    // callback ref.\n    node !== null && !isElement(node)) {\n      position.refs.setReference(node);\n    }\n  }, [position.refs]);\n  const refs = React.useMemo(() => ({\n    ...position.refs,\n    setReference,\n    setPositionReference,\n    domReference: domReferenceRef\n  }), [position.refs, setReference, setPositionReference]);\n  const elements = React.useMemo(() => ({\n    ...position.elements,\n    domReference: domReference\n  }), [position.elements, domReference]);\n  const context = React.useMemo(() => ({\n    ...position,\n    ...rootContext,\n    refs,\n    elements,\n    nodeId\n  }), [position, refs, elements, nodeId, rootContext]);\n  index(() => {\n    rootContext.dataRef.current.floatingContext = context;\n    const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n    if (node) {\n      node.context = context;\n    }\n  });\n  return React.useMemo(() => ({\n    ...position,\n    context,\n    refs,\n    elements\n  }), [position, refs, elements, context]);\n}\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nfunction useFocus(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    onOpenChange,\n    events,\n    dataRef,\n    elements\n  } = context;\n  const {\n    enabled = true,\n    visibleOnly = true\n  } = props;\n  const blockFocusRef = React.useRef(false);\n  const timeoutRef = React.useRef();\n  const keyboardModalityRef = React.useRef(true);\n  React.useEffect(() => {\n    if (!enabled) return;\n    const win = getWindow(elements.domReference);\n\n    // If the reference was focused and the user left the tab/window, and the\n    // floating element was not open, the focus should be blocked when they\n    // return to the tab/window.\n    function onBlur() {\n      if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {\n        blockFocusRef.current = true;\n      }\n    }\n    function onKeyDown() {\n      keyboardModalityRef.current = true;\n    }\n    win.addEventListener('blur', onBlur);\n    win.addEventListener('keydown', onKeyDown, true);\n    return () => {\n      win.removeEventListener('blur', onBlur);\n      win.removeEventListener('keydown', onKeyDown, true);\n    };\n  }, [elements.domReference, open, enabled]);\n  React.useEffect(() => {\n    if (!enabled) return;\n    function onOpenChange(_ref) {\n      let {\n        reason\n      } = _ref;\n      if (reason === 'reference-press' || reason === 'escape-key') {\n        blockFocusRef.current = true;\n      }\n    }\n    events.on('openchange', onOpenChange);\n    return () => {\n      events.off('openchange', onOpenChange);\n    };\n  }, [events, enabled]);\n  React.useEffect(() => {\n    return () => {\n      clearTimeout(timeoutRef.current);\n    };\n  }, []);\n  const reference = React.useMemo(() => ({\n    onPointerDown(event) {\n      if (isVirtualPointerEvent(event.nativeEvent)) return;\n      keyboardModalityRef.current = false;\n    },\n    onMouseLeave() {\n      blockFocusRef.current = false;\n    },\n    onFocus(event) {\n      if (blockFocusRef.current) return;\n      const target = getTarget(event.nativeEvent);\n      if (visibleOnly && isElement(target)) {\n        try {\n          // Mac Safari unreliably matches `:focus-visible` on the reference\n          // if focus was outside the page initially - use the fallback\n          // instead.\n          if (isSafari() && isMac()) throw Error();\n          if (!target.matches(':focus-visible')) return;\n        } catch (e) {\n          // Old browsers will throw an error when using `:focus-visible`.\n          if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n            return;\n          }\n        }\n      }\n      onOpenChange(true, event.nativeEvent, 'focus');\n    },\n    onBlur(event) {\n      blockFocusRef.current = false;\n      const relatedTarget = event.relatedTarget;\n      const nativeEvent = event.nativeEvent;\n\n      // Hit the non-modal focus management portal guard. Focus will be\n      // moved into the floating element immediately after.\n      const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute('focus-guard')) && relatedTarget.getAttribute('data-type') === 'outside';\n\n      // Wait for the window blur listener to fire.\n      timeoutRef.current = window.setTimeout(() => {\n        var _dataRef$current$floa;\n        const activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);\n\n        // Focus left the page, keep it open.\n        if (!relatedTarget && activeEl === elements.domReference) return;\n\n        // When focusing the reference element (e.g. regular click), then\n        // clicking into the floating element, prevent it from hiding.\n        // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n        // We can not rely on relatedTarget to point to the correct element\n        // as it will only point to the shadow host of the newly focused element\n        // and not the element that actually has received focus if it is located\n        // inside a shadow root.\n        if (contains((_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.refs.floating.current, activeEl) || contains(elements.domReference, activeEl) || movedToFocusGuard) {\n          return;\n        }\n        onOpenChange(false, nativeEvent, 'focus');\n      });\n    }\n  }), [dataRef, elements.domReference, onOpenChange, visibleOnly]);\n  return React.useMemo(() => enabled ? {\n    reference\n  } : {}, [enabled, reference]);\n}\n\nconst ACTIVE_KEY = 'active';\nconst SELECTED_KEY = 'selected';\nfunction mergeProps(userProps, propsList, elementKey) {\n  const map = new Map();\n  const isItem = elementKey === 'item';\n  let domUserProps = userProps;\n  if (isItem && userProps) {\n    const {\n      [ACTIVE_KEY]: _,\n      [SELECTED_KEY]: __,\n      ...validProps\n    } = userProps;\n    domUserProps = validProps;\n  }\n  return {\n    ...(elementKey === 'floating' && {\n      tabIndex: -1,\n      [FOCUSABLE_ATTRIBUTE]: ''\n    }),\n    ...domUserProps,\n    ...propsList.map(value => {\n      const propsOrGetProps = value ? value[elementKey] : null;\n      if (typeof propsOrGetProps === 'function') {\n        return userProps ? propsOrGetProps(userProps) : null;\n      }\n      return propsOrGetProps;\n    }).concat(userProps).reduce((acc, props) => {\n      if (!props) {\n        return acc;\n      }\n      Object.entries(props).forEach(_ref => {\n        let [key, value] = _ref;\n        if (isItem && [ACTIVE_KEY, SELECTED_KEY].includes(key)) {\n          return;\n        }\n        if (key.indexOf('on') === 0) {\n          if (!map.has(key)) {\n            map.set(key, []);\n          }\n          if (typeof value === 'function') {\n            var _map$get;\n            (_map$get = map.get(key)) == null || _map$get.push(value);\n            acc[key] = function () {\n              var _map$get2;\n              for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n                args[_key] = arguments[_key];\n              }\n              return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined);\n            };\n          }\n        } else {\n          acc[key] = value;\n        }\n      });\n      return acc;\n    }, {})\n  };\n}\n/**\n * Merges an array of interaction hooks' props into prop getters, allowing\n * event handler functions to be composed together without overwriting one\n * another.\n * @see https://floating-ui.com/docs/useInteractions\n */\nfunction useInteractions(propsList) {\n  if (propsList === void 0) {\n    propsList = [];\n  }\n  const referenceDeps = propsList.map(key => key == null ? void 0 : key.reference);\n  const floatingDeps = propsList.map(key => key == null ? void 0 : key.floating);\n  const itemDeps = propsList.map(key => key == null ? void 0 : key.item);\n  const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  referenceDeps);\n  const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  floatingDeps);\n  const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n  // eslint-disable-next-line react-hooks/exhaustive-deps\n  itemDeps);\n  return React.useMemo(() => ({\n    getReferenceProps,\n    getFloatingProps,\n    getItemProps\n  }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\nlet isPreventScrollSupported = false;\nfunction doSwitch(orientation, vertical, horizontal) {\n  switch (orientation) {\n    case 'vertical':\n      return vertical;\n    case 'horizontal':\n      return horizontal;\n    default:\n      return vertical || horizontal;\n  }\n}\nfunction isMainOrientationKey(key, orientation) {\n  const vertical = key === ARROW_UP || key === ARROW_DOWN;\n  const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n  return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n  const vertical = key === ARROW_DOWN;\n  const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n  return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key === ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n  const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n  const horizontal = key === ARROW_DOWN;\n  return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n  const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n  const horizontal = key === ARROW_UP;\n  return doSwitch(orientation, vertical, horizontal);\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nfunction useListNavigation(context, props) {\n  const {\n    open,\n    onOpenChange,\n    elements\n  } = context;\n  const {\n    listRef,\n    activeIndex,\n    onNavigate: unstable_onNavigate = () => {},\n    enabled = true,\n    selectedIndex = null,\n    allowEscape = false,\n    loop = false,\n    nested = false,\n    rtl = false,\n    virtual = false,\n    focusItemOnOpen = 'auto',\n    focusItemOnHover = true,\n    openOnArrowKeyDown = true,\n    disabledIndices = undefined,\n    orientation = 'vertical',\n    cols = 1,\n    scrollItemIntoView = true,\n    virtualItemRef,\n    itemSizes,\n    dense = false\n  } = props;\n  if (process.env.NODE_ENV !== \"production\") {\n    if (allowEscape) {\n      if (!loop) {\n        warn('`useListNavigation` looping must be enabled to allow escaping.');\n      }\n      if (!virtual) {\n        warn('`useListNavigation` must be virtual to allow escaping.');\n      }\n    }\n    if (orientation === 'vertical' && cols > 1) {\n      warn('In grid list navigation mode (`cols` > 1), the `orientation` should', 'be either \"horizontal\" or \"both\".');\n    }\n  }\n  const floatingFocusElement = getFloatingFocusElement(elements.floating);\n  const floatingFocusElementRef = useLatestRef(floatingFocusElement);\n  const parentId = useFloatingParentNodeId();\n  const tree = useFloatingTree();\n  const onNavigate = useEffectEvent(unstable_onNavigate);\n  const typeableComboboxReference = isTypeableCombobox(elements.domReference);\n  const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n  const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n  const keyRef = React.useRef(null);\n  const isPointerModalityRef = React.useRef(true);\n  const previousOnNavigateRef = React.useRef(onNavigate);\n  const previousMountedRef = React.useRef(!!elements.floating);\n  const previousOpenRef = React.useRef(open);\n  const forceSyncFocus = React.useRef(false);\n  const forceScrollIntoViewRef = React.useRef(false);\n  const disabledIndicesRef = useLatestRef(disabledIndices);\n  const latestOpenRef = useLatestRef(open);\n  const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n  const selectedIndexRef = useLatestRef(selectedIndex);\n  const [activeId, setActiveId] = React.useState();\n  const [virtualId, setVirtualId] = React.useState();\n  const focusItem = useEffectEvent(function (listRef, indexRef, forceScrollIntoView) {\n    if (forceScrollIntoView === void 0) {\n      forceScrollIntoView = false;\n    }\n    function runFocus(item) {\n      if (virtual) {\n        setActiveId(item.id);\n        tree == null || tree.events.emit('virtualfocus', item);\n        if (virtualItemRef) {\n          virtualItemRef.current = item;\n        }\n      } else {\n        enqueueFocus(item, {\n          preventScroll: true,\n          // Mac Safari does not move the virtual cursor unless the focus call\n          // is sync. However, for the very first focus call, we need to wait\n          // for the position to be ready in order to prevent unwanted\n          // scrolling. This means the virtual cursor will not move to the first\n          // item when first opening the floating element, but will on\n          // subsequent calls. `preventScroll` is supported in modern Safari,\n          // so we can use that instead.\n          // iOS Safari must be async or the first item will not be focused.\n          sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n        });\n      }\n    }\n    const initialItem = listRef.current[indexRef.current];\n    if (initialItem) {\n      runFocus(initialItem);\n    }\n    requestAnimationFrame(() => {\n      const waitedItem = listRef.current[indexRef.current] || initialItem;\n      if (!waitedItem) return;\n      if (!initialItem) {\n        runFocus(waitedItem);\n      }\n      const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n      const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n      if (shouldScrollIntoView) {\n        // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n        // by all browsers.\n        waitedItem.scrollIntoView == null || waitedItem.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n          block: 'nearest',\n          inline: 'nearest'\n        } : scrollIntoViewOptions);\n      }\n    });\n  });\n  index(() => {\n    document.createElement('div').focus({\n      get preventScroll() {\n        isPreventScrollSupported = true;\n        return false;\n      }\n    });\n  }, []);\n\n  // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n  // element. Also, reset `activeIndex` upon closing the floating element.\n  index(() => {\n    if (!enabled) return;\n    if (open && elements.floating) {\n      if (focusItemOnOpenRef.current && selectedIndex != null) {\n        // Regardless of the pointer modality, we want to ensure the selected\n        // item comes into view when the floating element is opened.\n        forceScrollIntoViewRef.current = true;\n        indexRef.current = selectedIndex;\n        onNavigate(selectedIndex);\n      }\n    } else if (previousMountedRef.current) {\n      // Since the user can specify `onNavigate` conditionally\n      // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n      // we store and call the previous function.\n      indexRef.current = -1;\n      previousOnNavigateRef.current(null);\n    }\n  }, [enabled, open, elements.floating, selectedIndex, onNavigate]);\n\n  // Sync `activeIndex` to be the focused item while the floating element is\n  // open.\n  index(() => {\n    if (!enabled) return;\n    if (open && elements.floating) {\n      if (activeIndex == null) {\n        forceSyncFocus.current = false;\n        if (selectedIndexRef.current != null) {\n          return;\n        }\n\n        // Reset while the floating element was open (e.g. the list changed).\n        if (previousMountedRef.current) {\n          indexRef.current = -1;\n          focusItem(listRef, indexRef);\n        }\n\n        // Initial sync.\n        if ((!previousOpenRef.current || !previousMountedRef.current) && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n          let runs = 0;\n          const waitForListPopulated = () => {\n            if (listRef.current[0] == null) {\n              // Avoid letting the browser paint if possible on the first try,\n              // otherwise use rAF. Don't try more than twice, since something\n              // is wrong otherwise.\n              if (runs < 2) {\n                const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n                scheduler(waitForListPopulated);\n              }\n              runs++;\n            } else {\n              indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n              keyRef.current = null;\n              onNavigate(indexRef.current);\n            }\n          };\n          waitForListPopulated();\n        }\n      } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n        indexRef.current = activeIndex;\n        focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n        forceScrollIntoViewRef.current = false;\n      }\n    }\n  }, [enabled, open, elements.floating, activeIndex, selectedIndexRef, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n  // Ensure the parent floating element has focus when a nested child closes\n  // to allow arrow key navigation to work after the pointer leaves the child.\n  index(() => {\n    var _nodes$find;\n    if (!enabled || elements.floating || !tree || virtual || !previousMountedRef.current) {\n      return;\n    }\n    const nodes = tree.nodesRef.current;\n    const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null || (_nodes$find = _nodes$find.context) == null ? void 0 : _nodes$find.elements.floating;\n    const activeEl = activeElement(getDocument(elements.floating));\n    const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));\n    if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {\n      parent.focus({\n        preventScroll: true\n      });\n    }\n  }, [enabled, elements.floating, tree, parentId, virtual]);\n  index(() => {\n    if (!enabled) return;\n    if (!tree) return;\n    if (!virtual) return;\n    if (parentId) return;\n    function handleVirtualFocus(item) {\n      setVirtualId(item.id);\n      if (virtualItemRef) {\n        virtualItemRef.current = item;\n      }\n    }\n    tree.events.on('virtualfocus', handleVirtualFocus);\n    return () => {\n      tree.events.off('virtualfocus', handleVirtualFocus);\n    };\n  }, [enabled, tree, virtual, parentId, virtualItemRef]);\n  index(() => {\n    previousOnNavigateRef.current = onNavigate;\n    previousMountedRef.current = !!elements.floating;\n  });\n  index(() => {\n    if (!open) {\n      keyRef.current = null;\n    }\n  }, [open]);\n  index(() => {\n    previousOpenRef.current = open;\n  }, [open]);\n  const hasActiveIndex = activeIndex != null;\n  const item = React.useMemo(() => {\n    function syncCurrentTarget(currentTarget) {\n      if (!open) return;\n      const index = listRef.current.indexOf(currentTarget);\n      if (index !== -1) {\n        onNavigate(index);\n      }\n    }\n    const props = {\n      onFocus(_ref) {\n        let {\n          currentTarget\n        } = _ref;\n        syncCurrentTarget(currentTarget);\n      },\n      onClick: _ref2 => {\n        let {\n          currentTarget\n        } = _ref2;\n        return currentTarget.focus({\n          preventScroll: true\n        });\n      },\n      // Safari\n      ...(focusItemOnHover && {\n        onMouseMove(_ref3) {\n          let {\n            currentTarget\n          } = _ref3;\n          syncCurrentTarget(currentTarget);\n        },\n        onPointerLeave(_ref4) {\n          let {\n            pointerType\n          } = _ref4;\n          if (!isPointerModalityRef.current || pointerType === 'touch') {\n            return;\n          }\n          indexRef.current = -1;\n          focusItem(listRef, indexRef);\n          onNavigate(null);\n          if (!virtual) {\n            enqueueFocus(floatingFocusElementRef.current, {\n              preventScroll: true\n            });\n          }\n        }\n      })\n    };\n    return props;\n  }, [open, floatingFocusElementRef, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n  const commonOnKeyDown = useEffectEvent(event => {\n    isPointerModalityRef.current = false;\n    forceSyncFocus.current = true;\n\n    // When composing a character, Chrome fires ArrowDown twice. Firefox/Safari\n    // don't appear to suffer from this. `event.isComposing` is avoided due to\n    // Safari not supporting it properly (although it's not needed in the first\n    // place for Safari, just avoiding any possible issues).\n    if (event.which === 229) {\n      return;\n    }\n\n    // If the floating element is animating out, ignore navigation. Otherwise,\n    // the `activeIndex` gets set to 0 despite not being open so the next time\n    // the user ArrowDowns, the first item won't be focused.\n    if (!latestOpenRef.current && event.currentTarget === floatingFocusElementRef.current) {\n      return;\n    }\n    if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n      stopEvent(event);\n      onOpenChange(false, event.nativeEvent, 'list-navigation');\n      if (isHTMLElement(elements.domReference)) {\n        if (virtual) {\n          tree == null || tree.events.emit('virtualfocus', elements.domReference);\n        } else {\n          elements.domReference.focus();\n        }\n      }\n      return;\n    }\n    const currentIndex = indexRef.current;\n    const minIndex = getMinIndex(listRef, disabledIndices);\n    const maxIndex = getMaxIndex(listRef, disabledIndices);\n    if (!typeableComboboxReference) {\n      if (event.key === 'Home') {\n        stopEvent(event);\n        indexRef.current = minIndex;\n        onNavigate(indexRef.current);\n      }\n      if (event.key === 'End') {\n        stopEvent(event);\n        indexRef.current = maxIndex;\n        onNavigate(indexRef.current);\n      }\n    }\n\n    // Grid navigation.\n    if (cols > 1) {\n      const sizes = itemSizes || Array.from({\n        length: listRef.current.length\n      }, () => ({\n        width: 1,\n        height: 1\n      }));\n      // To calculate movements on the grid, we use hypothetical cell indices\n      // as if every item was 1x1, then convert back to real indices.\n      const cellMap = buildCellMap(sizes, cols, dense);\n      const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(listRef.current, index, disabledIndices));\n      // last enabled index\n      const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(listRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);\n      const index = cellMap[getGridNavigatedIndex({\n        current: cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null)\n      }, {\n        event,\n        orientation,\n        loop,\n        rtl,\n        cols,\n        // treat undefined (empty grid spaces) as disabled indices so we\n        // don't end up in them\n        disabledIndices: getCellIndices([...(disabledIndices || listRef.current.map((_, index) => isDisabled(listRef.current, index) ? index : undefined)), undefined], cellMap),\n        minIndex: minGridIndex,\n        maxIndex: maxGridIndex,\n        prevIndex: getCellIndexOfCorner(indexRef.current > maxIndex ? minIndex : indexRef.current, sizes, cellMap, cols,\n        // use a corner matching the edge closest to the direction\n        // we're moving in so we don't end up in the same item. Prefer\n        // top/left over bottom/right.\n        event.key === ARROW_DOWN ? 'bl' : event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT) ? 'tr' : 'tl'),\n        stopEvent: true\n      })];\n      if (index != null) {\n        indexRef.current = index;\n        onNavigate(indexRef.current);\n      }\n      if (orientation === 'both') {\n        return;\n      }\n    }\n    if (isMainOrientationKey(event.key, orientation)) {\n      stopEvent(event);\n\n      // Reset the index if no item is focused.\n      if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n        indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n        onNavigate(indexRef.current);\n        return;\n      }\n      if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n        if (loop) {\n          indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            disabledIndices\n          });\n        } else {\n          indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            disabledIndices\n          }));\n        }\n      } else {\n        if (loop) {\n          indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            decrement: true,\n            disabledIndices\n          });\n        } else {\n          indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n            startingIndex: currentIndex,\n            decrement: true,\n            disabledIndices\n          }));\n        }\n      }\n      if (isIndexOutOfBounds(listRef, indexRef.current)) {\n        onNavigate(null);\n      } else {\n        onNavigate(indexRef.current);\n      }\n    }\n  });\n  const ariaActiveDescendantProp = React.useMemo(() => {\n    return virtual && open && hasActiveIndex && {\n      'aria-activedescendant': virtualId || activeId\n    };\n  }, [virtual, open, hasActiveIndex, virtualId, activeId]);\n  const floating = React.useMemo(() => {\n    return {\n      'aria-orientation': orientation === 'both' ? undefined : orientation,\n      ...(!isTypeableCombobox(elements.domReference) && ariaActiveDescendantProp),\n      onKeyDown: commonOnKeyDown,\n      onPointerMove() {\n        isPointerModalityRef.current = true;\n      }\n    };\n  }, [ariaActiveDescendantProp, commonOnKeyDown, elements.domReference, orientation]);\n  const reference = React.useMemo(() => {\n    function checkVirtualMouse(event) {\n      if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n        focusItemOnOpenRef.current = true;\n      }\n    }\n    function checkVirtualPointer(event) {\n      // `pointerdown` fires first, reset the state then perform the checks.\n      focusItemOnOpenRef.current = focusItemOnOpen;\n      if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n        focusItemOnOpenRef.current = true;\n      }\n    }\n    return {\n      ...ariaActiveDescendantProp,\n      onKeyDown(event) {\n        isPointerModalityRef.current = false;\n        const isArrowKey = event.key.startsWith('Arrow');\n        const isHomeOrEndKey = ['Home', 'End'].includes(event.key);\n        const isMoveKey = isArrowKey || isHomeOrEndKey;\n        const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n        const isCrossCloseKey = isCrossOrientationCloseKey(event.key, orientation, rtl);\n        const isMainKey = isMainOrientationKey(event.key, orientation);\n        const isNavigationKey = (nested ? isCrossOpenKey : isMainKey) || event.key === 'Enter' || event.key.trim() === '';\n        if (virtual && open) {\n          const rootNode = tree == null ? void 0 : tree.nodesRef.current.find(node => node.parentId == null);\n          const deepestNode = tree && rootNode ? getDeepestNode(tree.nodesRef.current, rootNode.id) : null;\n          if (isMoveKey && deepestNode && virtualItemRef) {\n            const eventObject = new KeyboardEvent('keydown', {\n              key: event.key,\n              bubbles: true\n            });\n            if (isCrossOpenKey || isCrossCloseKey) {\n              var _deepestNode$context, _deepestNode$context2;\n              const isCurrentTarget = ((_deepestNode$context = deepestNode.context) == null ? void 0 : _deepestNode$context.elements.domReference) === event.currentTarget;\n              const dispatchItem = isCrossCloseKey && !isCurrentTarget ? (_deepestNode$context2 = deepestNode.context) == null ? void 0 : _deepestNode$context2.elements.domReference : isCrossOpenKey ? listRef.current.find(item => (item == null ? void 0 : item.id) === activeId) : null;\n              if (dispatchItem) {\n                stopEvent(event);\n                dispatchItem.dispatchEvent(eventObject);\n                setVirtualId(undefined);\n              }\n            }\n            if ((isMainKey || isHomeOrEndKey) && deepestNode.context) {\n              if (deepestNode.context.open && deepestNode.parentId && event.currentTarget !== deepestNode.context.elements.domReference) {\n                var _deepestNode$context$;\n                stopEvent(event);\n                (_deepestNode$context$ = deepestNode.context.elements.domReference) == null || _deepestNode$context$.dispatchEvent(eventObject);\n                return;\n              }\n            }\n          }\n          return commonOnKeyDown(event);\n        }\n\n        // If a floating element should not open on arrow key down, avoid\n        // setting `activeIndex` while it's closed.\n        if (!open && !openOnArrowKeyDown && isArrowKey) {\n          return;\n        }\n        if (isNavigationKey) {\n          keyRef.current = nested && isMainKey ? null : event.key;\n        }\n        if (nested) {\n          if (isCrossOpenKey) {\n            stopEvent(event);\n            if (open) {\n              indexRef.current = getMinIndex(listRef, disabledIndicesRef.current);\n              onNavigate(indexRef.current);\n            } else {\n              onOpenChange(true, event.nativeEvent, 'list-navigation');\n            }\n          }\n          return;\n        }\n        if (isMainKey) {\n          if (selectedIndex != null) {\n            indexRef.current = selectedIndex;\n          }\n          stopEvent(event);\n          if (!open && openOnArrowKeyDown) {\n            onOpenChange(true, event.nativeEvent, 'list-navigation');\n          } else {\n            commonOnKeyDown(event);\n          }\n          if (open) {\n            onNavigate(indexRef.current);\n          }\n        }\n      },\n      onFocus() {\n        if (open && !virtual) {\n          onNavigate(null);\n        }\n      },\n      onPointerDown: checkVirtualPointer,\n      onMouseDown: checkVirtualMouse,\n      onClick: checkVirtualMouse\n    };\n  }, [activeId, ariaActiveDescendantProp, commonOnKeyDown, disabledIndicesRef, focusItemOnOpen, listRef, nested, onNavigate, onOpenChange, open, openOnArrowKeyDown, orientation, rtl, selectedIndex, tree, virtual, virtualItemRef]);\n  return React.useMemo(() => enabled ? {\n    reference,\n    floating,\n    item\n  } : {}, [enabled, reference, floating, item]);\n}\n\nconst componentRoleToAriaRoleMap = /*#__PURE__*/new Map([['select', 'listbox'], ['combobox', 'listbox'], ['label', false]]);\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nfunction useRole(context, props) {\n  var _componentRoleToAriaR;\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    floatingId\n  } = context;\n  const {\n    enabled = true,\n    role = 'dialog'\n  } = props;\n  const ariaRole = (_componentRoleToAriaR = componentRoleToAriaRoleMap.get(role)) != null ? _componentRoleToAriaR : role;\n  const referenceId = useId();\n  const parentId = useFloatingParentNodeId();\n  const isNested = parentId != null;\n  const reference = React.useMemo(() => {\n    if (ariaRole === 'tooltip' || role === 'label') {\n      return {\n        [\"aria-\" + (role === 'label' ? 'labelledby' : 'describedby')]: open ? floatingId : undefined\n      };\n    }\n    return {\n      'aria-expanded': open ? 'true' : 'false',\n      'aria-haspopup': ariaRole === 'alertdialog' ? 'dialog' : ariaRole,\n      'aria-controls': open ? floatingId : undefined,\n      ...(ariaRole === 'listbox' && {\n        role: 'combobox'\n      }),\n      ...(ariaRole === 'menu' && {\n        id: referenceId\n      }),\n      ...(ariaRole === 'menu' && isNested && {\n        role: 'menuitem'\n      }),\n      ...(role === 'select' && {\n        'aria-autocomplete': 'none'\n      }),\n      ...(role === 'combobox' && {\n        'aria-autocomplete': 'list'\n      })\n    };\n  }, [ariaRole, floatingId, isNested, open, referenceId, role]);\n  const floating = React.useMemo(() => {\n    const floatingProps = {\n      id: floatingId,\n      ...(ariaRole && {\n        role: ariaRole\n      })\n    };\n    if (ariaRole === 'tooltip' || role === 'label') {\n      return floatingProps;\n    }\n    return {\n      ...floatingProps,\n      ...(ariaRole === 'menu' && {\n        'aria-labelledby': referenceId\n      })\n    };\n  }, [ariaRole, floatingId, referenceId, role]);\n  const item = React.useCallback(_ref => {\n    let {\n      active,\n      selected\n    } = _ref;\n    const commonProps = {\n      role: 'option',\n      ...(active && {\n        id: floatingId + \"-option\"\n      })\n    };\n\n    // For `menu`, we are unable to tell if the item is a `menuitemradio`\n    // or `menuitemcheckbox`. For backwards-compatibility reasons, also\n    // avoid defaulting to `menuitem` as it may overwrite custom role props.\n    switch (role) {\n      case 'select':\n        return {\n          ...commonProps,\n          'aria-selected': active && selected\n        };\n      case 'combobox':\n        {\n          return {\n            ...commonProps,\n            ...(active && {\n              'aria-selected': true\n            })\n          };\n        }\n    }\n    return {};\n  }, [floatingId, role]);\n  return React.useMemo(() => enabled ? {\n    reference,\n    floating,\n    item\n  } : {}, [enabled, reference, floating, item]);\n}\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction execWithArgsOrReturn(valueOrFn, args) {\n  return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn;\n}\nfunction useDelayUnmount(open, durationMs) {\n  const [isMounted, setIsMounted] = React.useState(open);\n  if (open && !isMounted) {\n    setIsMounted(true);\n  }\n  React.useEffect(() => {\n    if (!open && isMounted) {\n      const timeout = setTimeout(() => setIsMounted(false), durationMs);\n      return () => clearTimeout(timeout);\n    }\n  }, [open, isMounted, durationMs]);\n  return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    open,\n    elements: {\n      floating\n    }\n  } = context;\n  const {\n    duration = 250\n  } = props;\n  const isNumberDuration = typeof duration === 'number';\n  const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n  const [status, setStatus] = React.useState('unmounted');\n  const isMounted = useDelayUnmount(open, closeDuration);\n  if (!isMounted && status === 'close') {\n    setStatus('unmounted');\n  }\n  index(() => {\n    if (!floating) return;\n    if (open) {\n      setStatus('initial');\n      const frame = requestAnimationFrame(() => {\n        setStatus('open');\n      });\n      return () => {\n        cancelAnimationFrame(frame);\n      };\n    }\n    setStatus('close');\n  }, [open, floating]);\n  return {\n    isMounted,\n    status\n  };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, props) {\n  if (props === void 0) {\n    props = {};\n  }\n  const {\n    initial: unstable_initial = {\n      opacity: 0\n    },\n    open: unstable_open,\n    close: unstable_close,\n    common: unstable_common,\n    duration = 250\n  } = props;\n  const placement = context.placement;\n  const side = placement.split('-')[0];\n  const fnArgs = React.useMemo(() => ({\n    side,\n    placement\n  }), [side, placement]);\n  const isNumberDuration = typeof duration === 'number';\n  const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n  const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n  const [styles, setStyles] = React.useState(() => ({\n    ...execWithArgsOrReturn(unstable_common, fnArgs),\n    ...execWithArgsOrReturn(unstable_initial, fnArgs)\n  }));\n  const {\n    isMounted,\n    status\n  } = useTransitionStatus(context, {\n    duration\n  });\n  const initialRef = useLatestRef(unstable_initial);\n  const openRef = useLatestRef(unstable_open);\n  const closeRef = useLatestRef(unstable_close);\n  const commonRef = useLatestRef(unstable_common);\n  index(() => {\n    const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs);\n    const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs);\n    const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs);\n    const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => {\n      acc[key] = '';\n      return acc;\n    }, {});\n    if (status === 'initial') {\n      setStyles(styles => ({\n        transitionProperty: styles.transitionProperty,\n        ...commonStyles,\n        ...initialStyles\n      }));\n    }\n    if (status === 'open') {\n      setStyles({\n        transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n        transitionDuration: openDuration + \"ms\",\n        ...commonStyles,\n        ...openStyles\n      });\n    }\n    if (status === 'close') {\n      const styles = closeStyles || initialStyles;\n      setStyles({\n        transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n        transitionDuration: closeDuration + \"ms\",\n        ...commonStyles,\n        ...styles\n      });\n    }\n  }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]);\n  return {\n    isMounted,\n    styles\n  };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nfunction useTypeahead(context, props) {\n  var _ref;\n  const {\n    open,\n    dataRef\n  } = context;\n  const {\n    listRef,\n    activeIndex,\n    onMatch: unstable_onMatch,\n    onTypingChange: unstable_onTypingChange,\n    enabled = true,\n    findMatch = null,\n    resetMs = 750,\n    ignoreKeys = [],\n    selectedIndex = null\n  } = props;\n  const timeoutIdRef = React.useRef();\n  const stringRef = React.useRef('');\n  const prevIndexRef = React.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n  const matchIndexRef = React.useRef(null);\n  const onMatch = useEffectEvent(unstable_onMatch);\n  const onTypingChange = useEffectEvent(unstable_onTypingChange);\n  const findMatchRef = useLatestRef(findMatch);\n  const ignoreKeysRef = useLatestRef(ignoreKeys);\n  index(() => {\n    if (open) {\n      clearTimeout(timeoutIdRef.current);\n      matchIndexRef.current = null;\n      stringRef.current = '';\n    }\n  }, [open]);\n  index(() => {\n    // Sync arrow key navigation but not typeahead navigation.\n    if (open && stringRef.current === '') {\n      var _ref2;\n      prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n    }\n  }, [open, selectedIndex, activeIndex]);\n  const setTypingChange = useEffectEvent(value => {\n    if (value) {\n      if (!dataRef.current.typing) {\n        dataRef.current.typing = value;\n        onTypingChange(value);\n      }\n    } else {\n      if (dataRef.current.typing) {\n        dataRef.current.typing = value;\n        onTypingChange(value);\n      }\n    }\n  });\n  const onKeyDown = useEffectEvent(event => {\n    function getMatchingIndex(list, orderedList, string) {\n      const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n      return str ? list.indexOf(str) : -1;\n    }\n    const listContent = listRef.current;\n    if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n      if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n        setTypingChange(false);\n      } else if (event.key === ' ') {\n        stopEvent(event);\n      }\n    }\n    if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n    // Character key.\n    event.key.length !== 1 ||\n    // Modifier key.\n    event.ctrlKey || event.metaKey || event.altKey) {\n      return;\n    }\n    if (open && event.key !== ' ') {\n      stopEvent(event);\n      setTypingChange(true);\n    }\n\n    // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n    // allow it in this case, too.\n    const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n      var _text$, _text$2;\n      return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n    });\n\n    // Allows the user to cycle through items that start with the same letter\n    // in rapid succession.\n    if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n      stringRef.current = '';\n      prevIndexRef.current = matchIndexRef.current;\n    }\n    stringRef.current += event.key;\n    clearTimeout(timeoutIdRef.current);\n    timeoutIdRef.current = setTimeout(() => {\n      stringRef.current = '';\n      prevIndexRef.current = matchIndexRef.current;\n      setTypingChange(false);\n    }, resetMs);\n    const prevIndex = prevIndexRef.current;\n    const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n    if (index !== -1) {\n      onMatch(index);\n      matchIndexRef.current = index;\n    } else if (event.key !== ' ') {\n      stringRef.current = '';\n      setTypingChange(false);\n    }\n  });\n  const reference = React.useMemo(() => ({\n    onKeyDown\n  }), [onKeyDown]);\n  const floating = React.useMemo(() => {\n    return {\n      onKeyDown,\n      onKeyUp(event) {\n        if (event.key === ' ') {\n          setTypingChange(false);\n        }\n      }\n    };\n  }, [onKeyDown, setTypingChange]);\n  return React.useMemo(() => enabled ? {\n    reference,\n    floating\n  } : {}, [enabled, reference, floating]);\n}\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n  return {\n    ...state,\n    rects: {\n      ...state.rects,\n      floating: {\n        ...state.rects.floating,\n        height\n      }\n    }\n  };\n}\n/**\n * Positions the floating element such that an inner element inside of it is\n * anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n  name: 'inner',\n  options: props,\n  async fn(state) {\n    const {\n      listRef,\n      overflowRef,\n      onFallbackChange,\n      offset: innerOffset = 0,\n      index = 0,\n      minItemsVisible = 4,\n      referenceOverflowThreshold = 0,\n      scrollRef,\n      ...detectOverflowOptions\n    } = evaluate(props, state);\n    const {\n      rects,\n      elements: {\n        floating\n      }\n    } = state;\n    const item = listRef.current[index];\n    const scrollEl = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n\n    // Valid combinations:\n    // 1. Floating element is the scrollRef and has a border (default)\n    // 2. Floating element is not the scrollRef, floating element has a border\n    // 3. Floating element is not the scrollRef, scrollRef has a border\n    // Floating > {...getFloatingProps()} wrapper > scrollRef > items is not\n    // allowed as VoiceOver doesn't work.\n    const clientTop = floating.clientTop || scrollEl.clientTop;\n    const floatingIsBordered = floating.clientTop !== 0;\n    const scrollElIsBordered = scrollEl.clientTop !== 0;\n    const floatingIsScrollEl = floating === scrollEl;\n    if (process.env.NODE_ENV !== \"production\") {\n      if (!state.placement.startsWith('bottom')) {\n        warn('`placement` side must be \"bottom\" when using the `inner`', 'middleware.');\n      }\n    }\n    if (!item) {\n      return {};\n    }\n    const nextArgs = {\n      ...state,\n      ...(await offset(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n    };\n    const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);\n    const refOverflow = await detectOverflow(nextArgs, {\n      ...detectOverflowOptions,\n      elementContext: 'reference'\n    });\n    const diffY = max(0, overflow.top);\n    const nextY = nextArgs.y + diffY;\n    const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n    const rounder = isScrollable ? v => v : round;\n    const maxHeight = rounder(max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - max(0, overflow.bottom)));\n    scrollEl.style.maxHeight = maxHeight + \"px\";\n    scrollEl.scrollTop = diffY;\n\n    // There is not enough space, fallback to standard anchored positioning\n    if (onFallbackChange) {\n      const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * min(minItemsVisible, listRef.current.length) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;\n      ReactDOM.flushSync(() => onFallbackChange(shouldFallback));\n    }\n    if (overflowRef) {\n      overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n        ...nextArgs,\n        y: nextY\n      }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);\n    }\n    return {\n      y: nextY\n    };\n  }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nfunction useInnerOffset(context, props) {\n  const {\n    open,\n    elements\n  } = context;\n  const {\n    enabled = true,\n    overflowRef,\n    scrollRef,\n    onChange: unstable_onChange\n  } = props;\n  const onChange = useEffectEvent(unstable_onChange);\n  const controlledScrollingRef = React.useRef(false);\n  const prevScrollTopRef = React.useRef(null);\n  const initialOverflowRef = React.useRef(null);\n  React.useEffect(() => {\n    if (!enabled) return;\n    function onWheel(e) {\n      if (e.ctrlKey || !el || overflowRef.current == null) {\n        return;\n      }\n      const dY = e.deltaY;\n      const isAtTop = overflowRef.current.top >= -0.5;\n      const isAtBottom = overflowRef.current.bottom >= -0.5;\n      const remainingScroll = el.scrollHeight - el.clientHeight;\n      const sign = dY < 0 ? -1 : 1;\n      const method = dY < 0 ? 'max' : 'min';\n      if (el.scrollHeight <= el.clientHeight) {\n        return;\n      }\n      if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n        e.preventDefault();\n        ReactDOM.flushSync(() => {\n          onChange(d => d + Math[method](dY, remainingScroll * sign));\n        });\n      } else if (/firefox/i.test(getUserAgent())) {\n        // Needed to propagate scrolling during momentum scrolling phase once\n        // it gets limited by the boundary. UX improvement, not critical.\n        el.scrollTop += dY;\n      }\n    }\n    const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n    if (open && el) {\n      el.addEventListener('wheel', onWheel);\n\n      // Wait for the position to be ready.\n      requestAnimationFrame(() => {\n        prevScrollTopRef.current = el.scrollTop;\n        if (overflowRef.current != null) {\n          initialOverflowRef.current = {\n            ...overflowRef.current\n          };\n        }\n      });\n      return () => {\n        prevScrollTopRef.current = null;\n        initialOverflowRef.current = null;\n        el.removeEventListener('wheel', onWheel);\n      };\n    }\n  }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n  const floating = React.useMemo(() => ({\n    onKeyDown() {\n      controlledScrollingRef.current = true;\n    },\n    onWheel() {\n      controlledScrollingRef.current = false;\n    },\n    onPointerMove() {\n      controlledScrollingRef.current = false;\n    },\n    onScroll() {\n      const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n      if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n        return;\n      }\n      if (prevScrollTopRef.current !== null) {\n        const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n        if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n          ReactDOM.flushSync(() => onChange(d => d + scrollDiff));\n        }\n      }\n\n      // [Firefox] Wait for the height change to have been applied.\n      requestAnimationFrame(() => {\n        prevScrollTopRef.current = el.scrollTop;\n      });\n    }\n  }), [elements.floating, onChange, overflowRef, scrollRef]);\n  return React.useMemo(() => enabled ? {\n    floating\n  } : {}, [enabled, floating]);\n}\n\nfunction isPointInPolygon(point, polygon) {\n  const [x, y] = point;\n  let isInside = false;\n  const length = polygon.length;\n  for (let i = 0, j = length - 1; i < length; j = i++) {\n    const [xi, yi] = polygon[i] || [0, 0];\n    const [xj, yj] = polygon[j] || [0, 0];\n    const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n    if (intersect) {\n      isInside = !isInside;\n    }\n  }\n  return isInside;\n}\nfunction isInside(point, rect) {\n  return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n/**\n * Generates a safe polygon area that the user can traverse without closing the\n * floating element once leaving the reference element.\n * @see https://floating-ui.com/docs/useHover#safepolygon\n */\nfunction safePolygon(options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    buffer = 0.5,\n    blockPointerEvents = false,\n    requireIntent = true\n  } = options;\n  let timeoutId;\n  let hasLanded = false;\n  let lastX = null;\n  let lastY = null;\n  let lastCursorTime = performance.now();\n  function getCursorSpeed(x, y) {\n    const currentTime = performance.now();\n    const elapsedTime = currentTime - lastCursorTime;\n    if (lastX === null || lastY === null || elapsedTime === 0) {\n      lastX = x;\n      lastY = y;\n      lastCursorTime = currentTime;\n      return null;\n    }\n    const deltaX = x - lastX;\n    const deltaY = y - lastY;\n    const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n    const speed = distance / elapsedTime; // px / ms\n\n    lastX = x;\n    lastY = y;\n    lastCursorTime = currentTime;\n    return speed;\n  }\n  const fn = _ref => {\n    let {\n      x,\n      y,\n      placement,\n      elements,\n      onClose,\n      nodeId,\n      tree\n    } = _ref;\n    return function onMouseMove(event) {\n      function close() {\n        clearTimeout(timeoutId);\n        onClose();\n      }\n      clearTimeout(timeoutId);\n      if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n        return;\n      }\n      const {\n        clientX,\n        clientY\n      } = event;\n      const clientPoint = [clientX, clientY];\n      const target = getTarget(event);\n      const isLeave = event.type === 'mouseleave';\n      const isOverFloatingEl = contains(elements.floating, target);\n      const isOverReferenceEl = contains(elements.domReference, target);\n      const refRect = elements.domReference.getBoundingClientRect();\n      const rect = elements.floating.getBoundingClientRect();\n      const side = placement.split('-')[0];\n      const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n      const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n      const isOverReferenceRect = isInside(clientPoint, refRect);\n      const isFloatingWider = rect.width > refRect.width;\n      const isFloatingTaller = rect.height > refRect.height;\n      const left = (isFloatingWider ? refRect : rect).left;\n      const right = (isFloatingWider ? refRect : rect).right;\n      const top = (isFloatingTaller ? refRect : rect).top;\n      const bottom = (isFloatingTaller ? refRect : rect).bottom;\n      if (isOverFloatingEl) {\n        hasLanded = true;\n        if (!isLeave) {\n          return;\n        }\n      }\n      if (isOverReferenceEl) {\n        hasLanded = false;\n      }\n      if (isOverReferenceEl && !isLeave) {\n        hasLanded = true;\n        return;\n      }\n\n      // Prevent overlapping floating element from being stuck in an open-close\n      // loop: https://github.com/floating-ui/floating-ui/issues/1910\n      if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n        return;\n      }\n\n      // If any nested child is open, abort.\n      if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n        let {\n          context\n        } = _ref2;\n        return context == null ? void 0 : context.open;\n      })) {\n        return;\n      }\n\n      // If the pointer is leaving from the opposite side, the \"buffer\" logic\n      // creates a point where the floating element remains open, but should be\n      // ignored.\n      // A constant of 1 handles floating point rounding errors.\n      if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n        return close();\n      }\n\n      // Ignore when the cursor is within the rectangular trough between the\n      // two elements. Since the triangle is created from the cursor point,\n      // which can start beyond the ref element's edge, traversing back and\n      // forth from the ref to the floating element can cause it to close. This\n      // ensures it always remains open in that case.\n      let rectPoly = [];\n      switch (side) {\n        case 'top':\n          rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n          break;\n        case 'bottom':\n          rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n          break;\n        case 'left':\n          rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n          break;\n        case 'right':\n          rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n          break;\n      }\n      function getPolygon(_ref3) {\n        let [x, y] = _ref3;\n        switch (side) {\n          case 'top':\n            {\n              const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n              const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n              const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n              return [cursorPointOne, cursorPointTwo, ...commonPoints];\n            }\n          case 'bottom':\n            {\n              const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n              const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n              const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n              return [cursorPointOne, cursorPointTwo, ...commonPoints];\n            }\n          case 'left':\n            {\n              const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n              return [...commonPoints, cursorPointOne, cursorPointTwo];\n            }\n          case 'right':\n            {\n              const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n              const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n              return [cursorPointOne, cursorPointTwo, ...commonPoints];\n            }\n        }\n      }\n      if (isPointInPolygon([clientX, clientY], rectPoly)) {\n        return;\n      }\n      if (hasLanded && !isOverReferenceRect) {\n        return close();\n      }\n      if (!isLeave && requireIntent) {\n        const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n        const cursorSpeedThreshold = 0.1;\n        if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n          return close();\n        }\n      }\n      if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n        close();\n      } else if (!hasLanded && requireIntent) {\n        timeoutId = window.setTimeout(close, 40);\n      }\n    };\n  };\n  fn.__options = {\n    blockPointerEvents\n  };\n  return fn;\n}\n\nexport { Composite, CompositeItem, FloatingArrow, FloatingDelayGroup, FloatingFocusManager, FloatingList, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useClientPoint, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingRootContext, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListItem, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n","import{autoUpdate as Z,flip as ee,inner as te,offset as ne,shift as le,size as re,useFloating as oe,useInnerOffset as ie,useInteractions as se}from\"@floating-ui/react\";import*as j from\"react\";import{createContext as _,useCallback as ae,useContext as R,useMemo as v,useRef as ue,useState as E}from\"react\";import{useDisposables as fe}from'../hooks/use-disposables.js';import{useEvent as z}from'../hooks/use-event.js';import{useIsoMorphicEffect as A}from'../hooks/use-iso-morphic-effect.js';let y=_({styles:void 0,setReference:()=>{},setFloating:()=>{},getReferenceProps:()=>({}),getFloatingProps:()=>({}),slot:{}});y.displayName=\"FloatingContext\";let S=_(null);S.displayName=\"PlacementContext\";function xe(e){return v(()=>e?typeof e==\"string\"?{to:e}:e:null,[e])}function ye(){return R(y).setReference}function Fe(){return R(y).getReferenceProps}function be(){let{getFloatingProps:e,slot:t}=R(y);return ae((...n)=>Object.assign({},e(...n),{\"data-anchor\":t.anchor}),[e,t])}function Re(e=null){e===!1&&(e=null),typeof e==\"string\"&&(e={to:e});let t=R(S),n=v(()=>e,[JSON.stringify(e,typeof HTMLElement!=\"undefined\"?(a,r)=>r instanceof HTMLElement?r.outerHTML:r:void 0)]);A(()=>{t==null||t(n!=null?n:null)},[t,n]);let l=R(y);return v(()=>[l.setFloating,e?l.styles:{}],[l.setFloating,e,l.styles])}let q=4;function ve({children:e,enabled:t=!0}){let[n,l]=E(null),[a,r]=E(0),c=ue(null),[u,i]=E(null);pe(u);let o=t&&n!==null&&u!==null,{to:F=\"bottom\",gap:C=0,offset:M=0,padding:p=0,inner:P}=ce(n,u),[s,f=\"center\"]=F.split(\" \");A(()=>{o&&r(0)},[o]);let{refs:b,floatingStyles:$,context:g}=oe({open:o,placement:s===\"selection\"?f===\"center\"?\"bottom\":`bottom-${f}`:f===\"center\"?`${s}`:`${s}-${f}`,strategy:\"absolute\",transform:!1,middleware:[ne({mainAxis:s===\"selection\"?0:C,crossAxis:M}),le({padding:p}),s!==\"selection\"&&ee({padding:p}),s===\"selection\"&&P?te({...P,padding:p,overflowRef:c,offset:a,minItemsVisible:q,referenceOverflowThreshold:p,onFallbackChange(h){var W,k;if(!h)return;let d=g.elements.floating;if(!d)return;let T=parseFloat(getComputedStyle(d).scrollPaddingBottom)||0,w=Math.min(q,d.childElementCount),B=0,O=0;for(let m of(k=(W=g.elements.floating)==null?void 0:W.childNodes)!=null?k:[])if(m instanceof HTMLElement){let x=m.offsetTop,N=x+m.clientHeight+T,H=d.scrollTop,U=H+d.clientHeight;if(x>=H&&N<=U)w--;else{O=Math.max(0,Math.min(N,U)-Math.max(x,H)),B=m.clientHeight;break}}w>=1&&r(m=>{let x=B*w-O+T;return m>=x?m:x})}}):null,re({padding:p,apply({availableWidth:h,availableHeight:d,elements:T}){Object.assign(T.floating.style,{overflow:\"auto\",maxWidth:`${h}px`,maxHeight:`min(var(--anchor-max-height, 100vh), ${d}px)`})}})].filter(Boolean),whileElementsMounted:Z}),[I=s,V=f]=g.placement.split(\"-\");s===\"selection\"&&(I=\"selection\");let G=v(()=>({anchor:[I,V].filter(Boolean).join(\" \")}),[I,V]),K=ie(g,{overflowRef:c,onChange:r}),{getReferenceProps:Q,getFloatingProps:X}=se([K]),Y=z(h=>{i(h),b.setFloating(h)});return j.createElement(S.Provider,{value:l},j.createElement(y.Provider,{value:{setFloating:Y,setReference:b.setReference,styles:$,getReferenceProps:Q,getFloatingProps:X,slot:G}},e))}function pe(e){A(()=>{if(!e)return;let t=new MutationObserver(()=>{let n=e.style.maxHeight;parseFloat(n)!==parseInt(n)&&(e.style.maxHeight=`${Math.ceil(parseFloat(n))}px`)});return t.observe(e,{attributes:!0,attributeFilter:[\"style\"]}),()=>{t.disconnect()}},[e])}function ce(e,t){var r,c,u;let n=L((r=e==null?void 0:e.gap)!=null?r:\"var(--anchor-gap, 0)\",t),l=L((c=e==null?void 0:e.offset)!=null?c:\"var(--anchor-offset, 0)\",t),a=L((u=e==null?void 0:e.padding)!=null?u:\"var(--anchor-padding, 0)\",t);return{...e,gap:n,offset:l,padding:a}}function L(e,t,n=void 0){let l=fe(),a=z((i,o)=>{if(i==null)return[n,null];if(typeof i==\"number\")return[i,null];if(typeof i==\"string\"){if(!o)return[n,null];let F=J(i,o);return[F,C=>{let M=D(i);{let p=M.map(P=>window.getComputedStyle(o).getPropertyValue(P));l.requestAnimationFrame(function P(){l.nextFrame(P);let s=!1;for(let[b,$]of M.entries()){let g=window.getComputedStyle(o).getPropertyValue($);if(p[b]!==g){p[b]=g,s=!0;break}}if(!s)return;let f=J(i,o);F!==f&&(C(f),F=f)})}return l.dispose}]}return[n,null]}),r=v(()=>a(e,t)[0],[e,t]),[c=r,u]=E();return A(()=>{let[i,o]=a(e,t);if(u(i),!!o)return o(u)},[e,t]),c}function D(e){let t=/var\\((.*)\\)/.exec(e);if(t){let n=t[1].indexOf(\",\");if(n===-1)return[t[1]];let l=t[1].slice(0,n).trim(),a=t[1].slice(n+1).trim();return a?[l,...D(a)]:[l]}return[]}function J(e,t){let n=document.createElement(\"div\");t.appendChild(n),n.style.setProperty(\"margin-top\",\"0px\",\"important\"),n.style.setProperty(\"margin-top\",e,\"important\");let l=parseFloat(window.getComputedStyle(n).marginTop)||0;return t.removeChild(n),l}export{ve as FloatingProvider,Re as useFloatingPanel,be as useFloatingPanelProps,ye as useFloatingReference,Fe as useFloatingReferenceProps,xe as useResolvedAnchor};\n","import r,{createContext as l,useContext as d}from\"react\";let n=l(null);n.displayName=\"OpenClosedContext\";var i=(e=>(e[e.Open=1]=\"Open\",e[e.Closed=2]=\"Closed\",e[e.Closing=4]=\"Closing\",e[e.Opening=8]=\"Opening\",e))(i||{});function u(){return d(n)}function c({value:o,children:t}){return r.createElement(n.Provider,{value:o},t)}function s({children:o}){return r.createElement(n.Provider,{value:null},o)}export{c as OpenClosedProvider,s as ResetOpenClosedProvider,i as State,u as useOpenClosed};\n","function t(n){function e(){document.readyState!==\"loading\"&&(n(),document.removeEventListener(\"DOMContentLoaded\",e))}typeof window!=\"undefined\"&&typeof document!=\"undefined\"&&(document.addEventListener(\"DOMContentLoaded\",e),e())}export{t as onDocumentReady};\n","import{onDocumentReady as d}from'./document-ready.js';let t=[];d(()=>{function e(n){n.target instanceof HTMLElement&&n.target!==document.body&&t[0]!==n.target&&(t.unshift(n.target),t=t.filter(r=>r!=null&&r.isConnected),t.splice(10))}window.addEventListener(\"click\",e,{capture:!0}),window.addEventListener(\"mousedown\",e,{capture:!0}),window.addEventListener(\"focus\",e,{capture:!0}),document.body.addEventListener(\"click\",e,{capture:!0}),document.body.addEventListener(\"mousedown\",e,{capture:!0}),document.body.addEventListener(\"focus\",e,{capture:!0})});export{t as history};\n","import{useEffect as u,useRef as n}from\"react\";import{microTask as o}from'../utils/micro-task.js';import{useEvent as f}from'./use-event.js';function c(t){let r=f(t),e=n(!1);u(()=>(e.current=!1,()=>{e.current=!0,o(()=>{e.current&&r()})}),[r])}export{c as useOnUnmount};\n","import*as t from\"react\";import{env as f}from'../utils/env.js';function s(){let r=typeof document==\"undefined\";return\"useSyncExternalStore\"in t?(o=>o.useSyncExternalStore)(t)(()=>()=>{},()=>!1,()=>!r):!1}function l(){let r=s(),[e,n]=t.useState(f.isHandoffComplete);return e&&f.isHandoffComplete===!1&&n(!1),t.useEffect(()=>{e!==!0&&n(!0)},[e]),t.useEffect(()=>f.handoff(),[]),r?!1:e}export{l as useServerHandoffComplete};\n","import t,{createContext as r,useContext as c}from\"react\";let e=r(!1);function a(){return c(e)}function l(o){return t.createElement(e.Provider,{value:o.force},o.children)}export{l as ForcePortalRoot,a as usePortalRoot};\n","\"use client\";import f,{Fragment as g,createContext as E,useContext as T,useEffect as R,useMemo as c,useRef as A,useState as G}from\"react\";import{createPortal as H}from\"react-dom\";import{useEvent as L}from'../../hooks/use-event.js';import{useIsoMorphicEffect as x}from'../../hooks/use-iso-morphic-effect.js';import{useOnUnmount as O}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as _}from'../../hooks/use-owner.js';import{useServerHandoffComplete as h}from'../../hooks/use-server-handoff-complete.js';import{optionalRef as F,useSyncRefs as P}from'../../hooks/use-sync-refs.js';import{usePortalRoot as U}from'../../internal/portal-force-root.js';import{env as C}from'../../utils/env.js';import{forwardRefWithAs as m,render as d}from'../../utils/render.js';function D(p){let r=U(),l=T(v),e=_(p),[o,n]=G(()=>{var t;if(!r&&l!==null)return(t=l.current)!=null?t:null;if(C.isServer)return null;let u=e==null?void 0:e.getElementById(\"headlessui-portal-root\");if(u)return u;if(e===null)return null;let a=e.createElement(\"div\");return a.setAttribute(\"id\",\"headlessui-portal-root\"),e.body.appendChild(a)});return R(()=>{o!==null&&(e!=null&&e.body.contains(o)||e==null||e.body.appendChild(o))},[o,e]),R(()=>{r||l!==null&&n(l.current)},[l,n,r]),o}let M=g,N=m(function(r,l){let e=r,o=A(null),n=P(F(i=>{o.current=i}),l),u=_(o),a=D(o),[t]=G(()=>{var i;return C.isServer?null:(i=u==null?void 0:u.createElement(\"div\"))!=null?i:null}),s=T(y),b=h();return x(()=>{!a||!t||a.contains(t)||(t.setAttribute(\"data-headlessui-portal\",\"\"),a.appendChild(t))},[a,t]),x(()=>{if(t&&s)return s.register(t)},[s,t]),O(()=>{var i;!a||!t||(t instanceof Node&&a.contains(t)&&a.removeChild(t),a.childNodes.length<=0&&((i=a.parentElement)==null||i.removeChild(a)))}),b?!a||!t?null:H(d({ourProps:{ref:n},theirProps:e,slot:{},defaultTag:M,name:\"Portal\"}),t):null});function S(p,r){let l=P(r),{enabled:e=!0,...o}=p;return e?f.createElement(N,{...o,ref:l}):d({ourProps:{ref:l},theirProps:o,slot:{},defaultTag:M,name:\"Portal\"})}let j=g,v=E(null);function W(p,r){let{target:l,...e}=p,n={ref:P(r)};return f.createElement(v.Provider,{value:l},d({ourProps:n,theirProps:e,defaultTag:j,name:\"Popover.Group\"}))}let y=E(null);function ee(){let p=T(y),r=A([]),l=L(n=>(r.current.push(n),p&&p.register(n),()=>e(n))),e=L(n=>{let u=r.current.indexOf(n);u!==-1&&r.current.splice(u,1),p&&p.unregister(n)}),o=c(()=>({register:l,unregister:e,portals:r}),[l,e,r]);return[r,c(()=>function({children:u}){return f.createElement(y.Provider,{value:o},u)},[o])]}let I=m(S),J=m(W),te=Object.assign(I,{Group:J});export{te as Portal,J as PortalGroup,ee as useNestedPortals};\n","import{Keys as u}from'../components/keyboard.js';import{useEventListener as i}from'./use-event-listener.js';import{useIsTopLayer as f}from'./use-is-top-layer.js';function a(o,r=typeof document!=\"undefined\"?document.defaultView:null,t){let n=f(o,\"escape\");i(r,\"keydown\",e=>{n&&(e.defaultPrevented||e.key===u.Escape&&t(e))})}export{a as useEscape};\n","import{useState as i}from\"react\";import{useIsoMorphicEffect as s}from'./use-iso-morphic-effect.js';function f(){var t;let[e]=i(()=>typeof window!=\"undefined\"&&typeof window.matchMedia==\"function\"?window.matchMedia(\"(pointer: coarse)\"):null),[o,c]=i((t=e==null?void 0:e.matches)!=null?t:!1);return s(()=>{if(!e)return;function n(r){c(r.matches)}return e.addEventListener(\"change\",n),()=>e.removeEventListener(\"change\",n)},[e]),o}export{f as useIsTouchDevice};\n","import m,{useMemo as d,useRef as M}from\"react\";import{Hidden as H,HiddenFeatures as T}from'../internal/hidden.js';import{useEvent as E}from'./use-event.js';import{useOwnerDocument as b}from'./use-owner.js';function j({defaultContainers:o=[],portals:r,mainTreeNodeRef:u}={}){var f;let t=M((f=u==null?void 0:u.current)!=null?f:null),l=b(t),c=E(()=>{var i,s,a;let n=[];for(let e of o)e!==null&&(e instanceof HTMLElement?n.push(e):\"current\"in e&&e.current instanceof HTMLElement&&n.push(e.current));if(r!=null&&r.current)for(let e of r.current)n.push(e);for(let e of(i=l==null?void 0:l.querySelectorAll(\"html > *, body > *\"))!=null?i:[])e!==document.body&&e!==document.head&&e instanceof HTMLElement&&e.id!==\"headlessui-portal-root\"&&(e.contains(t.current)||e.contains((a=(s=t.current)==null?void 0:s.getRootNode())==null?void 0:a.host)||n.some(L=>e.contains(L))||n.push(e));return n});return{resolveContainers:c,contains:E(n=>c().some(i=>i.contains(n))),mainTreeNodeRef:t,MainTreeNode:d(()=>function(){return u!=null?null:m.createElement(H,{features:T.Hidden,ref:t})},[t,u])}}function y(){let o=M(null);return{mainTreeNodeRef:o,MainTreeNode:d(()=>function(){return m.createElement(H,{features:T.Hidden,ref:o})},[o])}}export{y as useMainTreeNode,j as useRootContainers};\n","import{useRef as r}from\"react\";import{useIsoMorphicEffect as t}from'./use-iso-morphic-effect.js';function f(){let e=r(!1);return t(()=>(e.current=!0,()=>{e.current=!1}),[]),e}export{f as useIsMounted};\n","import{useRef as o}from\"react\";import{useWindowEvent as t}from'./use-window-event.js';var a=(r=>(r[r.Forwards=0]=\"Forwards\",r[r.Backwards=1]=\"Backwards\",r))(a||{});function u(){let e=o(0);return t(!0,\"keydown\",r=>{r.key===\"Tab\"&&(e.current=r.shiftKey?1:0)},!0),e}export{a as Direction,u as useTabDirection};\n","\"use client\";import L,{useRef as M}from\"react\";import{useDisposables as G}from'../../hooks/use-disposables.js';import{useEvent as A}from'../../hooks/use-event.js';import{useEventListener as W}from'../../hooks/use-event-listener.js';import{useIsMounted as P}from'../../hooks/use-is-mounted.js';import{useIsTopLayer as O}from'../../hooks/use-is-top-layer.js';import{useOnUnmount as K}from'../../hooks/use-on-unmount.js';import{useOwnerDocument as V}from'../../hooks/use-owner.js';import{useServerHandoffComplete as q}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as J}from'../../hooks/use-sync-refs.js';import{Direction as H,useTabDirection as X}from'../../hooks/use-tab-direction.js';import{useWatch as y}from'../../hooks/use-watch.js';import{Hidden as C,HiddenFeatures as _}from'../../internal/hidden.js';import{history as b}from'../../utils/active-element-history.js';import{Focus as T,FocusResult as S,focusElement as p,focusIn as E}from'../../utils/focus-management.js';import{match as h}from'../../utils/match.js';import{microTask as j}from'../../utils/micro-task.js';import{forwardRefWithAs as z,render as Q}from'../../utils/render.js';function U(o){if(!o)return new Set;if(typeof o==\"function\")return new Set(o());let e=new Set;for(let t of o.current)t.current instanceof HTMLElement&&e.add(t.current);return e}let Y=\"div\";var x=(n=>(n[n.None=0]=\"None\",n[n.InitialFocus=1]=\"InitialFocus\",n[n.TabLock=2]=\"TabLock\",n[n.FocusLock=4]=\"FocusLock\",n[n.RestoreFocus=8]=\"RestoreFocus\",n[n.AutoFocus=16]=\"AutoFocus\",n))(x||{});function Z(o,e){let t=M(null),r=J(t,e),{initialFocus:s,initialFocusFallback:a,containers:n,features:u=15,...f}=o;q()||(u=0);let l=V(t);w(u,{ownerDocument:l});let i=ee(u,{ownerDocument:l,container:t,initialFocus:s,initialFocusFallback:a});te(u,{ownerDocument:l,container:t,containers:n,previousActiveElement:i});let R=X(),g=A(c=>{let m=t.current;if(!m)return;(B=>B())(()=>{h(R.current,{[H.Forwards]:()=>{E(m,T.First,{skipElements:[c.relatedTarget,a]})},[H.Backwards]:()=>{E(m,T.Last,{skipElements:[c.relatedTarget,a]})}})})}),v=O(!!(u&2),\"focus-trap#tab-lock\"),N=G(),F=M(!1),k={ref:r,onKeyDown(c){c.key==\"Tab\"&&(F.current=!0,N.requestAnimationFrame(()=>{F.current=!1}))},onBlur(c){if(!(u&4))return;let m=U(n);t.current instanceof HTMLElement&&m.add(t.current);let d=c.relatedTarget;d instanceof HTMLElement&&d.dataset.headlessuiFocusGuard!==\"true\"&&(I(m,d)||(F.current?E(t.current,h(R.current,{[H.Forwards]:()=>T.Next,[H.Backwards]:()=>T.Previous})|T.WrapAround,{relativeTo:c.target}):c.target instanceof HTMLElement&&p(c.target)))}};return L.createElement(L.Fragment,null,v&&L.createElement(C,{as:\"button\",type:\"button\",\"data-headlessui-focus-guard\":!0,onFocus:g,features:_.Focusable}),Q({ourProps:k,theirProps:f,defaultTag:Y,name:\"FocusTrap\"}),v&&L.createElement(C,{as:\"button\",type:\"button\",\"data-headlessui-focus-guard\":!0,onFocus:g,features:_.Focusable}))}let $=z(Z),Fe=Object.assign($,{features:x});function D(o=!0){let e=M(b.slice());return y(([t],[r])=>{r===!0&&t===!1&&j(()=>{e.current.splice(0)}),r===!1&&t===!0&&(e.current=b.slice())},[o,b,e]),A(()=>{var t;return(t=e.current.find(r=>r!=null&&r.isConnected))!=null?t:null})}function w(o,{ownerDocument:e}){let t=!!(o&8),r=D(t);y(()=>{t||(e==null?void 0:e.activeElement)===(e==null?void 0:e.body)&&p(r())},[t]),K(()=>{t&&p(r())})}function ee(o,{ownerDocument:e,container:t,initialFocus:r,initialFocusFallback:s}){let a=M(null),n=O(!!(o&1),\"focus-trap#initial-focus\"),u=P();return y(()=>{if(o===0)return;if(!n){s!=null&&s.current&&p(s.current);return}let f=t.current;f&&j(()=>{if(!u.current)return;let l=e==null?void 0:e.activeElement;if(r!=null&&r.current){if((r==null?void 0:r.current)===l){a.current=l;return}}else if(f.contains(l)){a.current=l;return}if(r!=null&&r.current)p(r.current);else{if(o&16){if(E(f,T.First|T.AutoFocus)!==S.Error)return}else if(E(f,T.First)!==S.Error)return;if(s!=null&&s.current&&(p(s.current),(e==null?void 0:e.activeElement)===s.current))return;console.warn(\"There are no focusable elements inside the <FocusTrap />\")}a.current=e==null?void 0:e.activeElement})},[s,n,o]),a}function te(o,{ownerDocument:e,container:t,containers:r,previousActiveElement:s}){let a=P(),n=!!(o&4);W(e==null?void 0:e.defaultView,\"focus\",u=>{if(!n||!a.current)return;let f=U(r);t.current instanceof HTMLElement&&f.add(t.current);let l=s.current;if(!l)return;let i=u.target;i&&i instanceof HTMLElement?I(f,i)?(s.current=i,p(i)):(u.preventDefault(),u.stopPropagation(),p(l)):p(s.current)},!0)}function I(o,e){for(let t of o)if(t.contains(e))return!0;return!1}export{Fe as FocusTrap,x as FocusTrapFeatures};\n","\"use client\";import d,{Fragment as O,createContext as ee,useContext as W,useEffect as pe,useMemo as te,useRef as v,useState as k}from\"react\";import{useDisposables as Ce}from'../../hooks/use-disposables.js';import{useEvent as b}from'../../hooks/use-event.js';import{useIsMounted as he}from'../../hooks/use-is-mounted.js';import{useIsoMorphicEffect as H}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as ge}from'../../hooks/use-latest-value.js';import{useOnDisappear as ve}from'../../hooks/use-on-disappear.js';import{useServerHandoffComplete as ne}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as ie}from'../../hooks/use-sync-refs.js';import{transitionDataAttributes as be,useTransition as Se}from'../../hooks/use-transition.js';import{OpenClosedProvider as Ee,State as N,useOpenClosed as re}from'../../internal/open-closed.js';import{classNames as ye}from'../../utils/class-names.js';import{match as oe}from'../../utils/match.js';import{RenderFeatures as Re,RenderStrategy as P,compact as Pe,forwardRefWithAs as q,render as se}from'../../utils/render.js';function le(e){var t;return!!(e.enter||e.enterFrom||e.enterTo||e.leave||e.leaveFrom||e.leaveTo)||((t=e.as)!=null?t:ue)!==O||d.Children.count(e.children)===1}let V=ee(null);V.displayName=\"TransitionContext\";var xe=(i=>(i.Visible=\"visible\",i.Hidden=\"hidden\",i))(xe||{});function Ne(){let e=W(V);if(e===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return e}function _e(){let e=W(w);if(e===null)throw new Error(\"A <Transition.Child /> is used but it is missing a parent <Transition /> or <Transition.Root />.\");return e}let w=ee(null);w.displayName=\"NestingContext\";function M(e){return\"children\"in e?M(e.children):e.current.filter(({el:t})=>t.current!==null).filter(({state:t})=>t===\"visible\").length>0}function ae(e,t){let i=ge(e),l=v([]),S=he(),E=Ce(),u=b((s,r=P.Hidden)=>{let n=l.current.findIndex(({el:o})=>o===s);n!==-1&&(oe(r,{[P.Unmount](){l.current.splice(n,1)},[P.Hidden](){l.current[n].state=\"hidden\"}}),E.microTask(()=>{var o;!M(l)&&S.current&&((o=i.current)==null||o.call(i))}))}),y=b(s=>{let r=l.current.find(({el:n})=>n===s);return r?r.state!==\"visible\"&&(r.state=\"visible\"):l.current.push({el:s,state:\"visible\"}),()=>u(s,P.Unmount)}),c=v([]),f=v(Promise.resolve()),p=v({enter:[],leave:[]}),m=b((s,r,n)=>{c.current.splice(0),t&&(t.chains.current[r]=t.chains.current[r].filter(([o])=>o!==s)),t==null||t.chains.current[r].push([s,new Promise(o=>{c.current.push(o)})]),t==null||t.chains.current[r].push([s,new Promise(o=>{Promise.all(p.current[r].map(([R,x])=>x)).then(()=>o())})]),r===\"enter\"?f.current=f.current.then(()=>t==null?void 0:t.wait.current).then(()=>n(r)):n(r)}),C=b((s,r,n)=>{Promise.all(p.current[r].splice(0).map(([o,R])=>R)).then(()=>{var o;(o=c.current.shift())==null||o()}).then(()=>n(r))});return te(()=>({children:l,register:y,unregister:u,onStart:m,onStop:C,wait:f,chains:p}),[y,u,l,m,C,p,f])}let ue=O,Te=Re.RenderStrategy;function De(e,t){var Z,$;let{transition:i=!0,beforeEnter:l,afterEnter:S,beforeLeave:E,afterLeave:u,enter:y,enterFrom:c,enterTo:f,entered:p,leave:m,leaveFrom:C,leaveTo:s,...r}=e,n=v(null),o=le(e),R=ie(...o?[n,t]:t===null?[]:[t]),x=(Z=r.unmount)==null||Z?P.Unmount:P.Hidden,{show:T,appear:h,initial:X}=Ne(),[g,U]=k(T?\"visible\":\"hidden\"),z=_e(),{register:A,unregister:I}=z;H(()=>A(n),[A,n]),H(()=>{if(x===P.Hidden&&n.current){if(T&&g!==\"visible\"){U(\"visible\");return}return oe(g,{[\"hidden\"]:()=>I(n),[\"visible\"]:()=>A(n)})}},[g,n,A,I,T,x]);let j=ne();H(()=>{if(o&&j&&g===\"visible\"&&n.current===null)throw new Error(\"Did you forget to passthrough the `ref` to the actual DOM node?\")},[n,g,j,o]);let fe=X&&!h,K=h&&T&&X,G=v(!1),F=ae(()=>{G.current||(U(\"hidden\"),I(n))},z),Q=b(B=>{G.current=!0;let L=B?\"enter\":\"leave\";F.onStart(n,L,D=>{D===\"enter\"?l==null||l():D===\"leave\"&&(E==null||E())})}),Y=b(B=>{let L=B?\"enter\":\"leave\";G.current=!1,F.onStop(n,L,D=>{D===\"enter\"?S==null||S():D===\"leave\"&&(u==null||u())}),L===\"leave\"&&!M(F)&&(U(\"hidden\"),I(n))});pe(()=>{o&&i||(Q(T),Y(T))},[T,o,i]);let me=(()=>!(!i||!o||!j||fe))(),[,a]=Se(me,n,T,{start:Q,end:Y}),ce=Pe({ref:R,className:(($=ye(r.className,K&&y,K&&c,a.enter&&y,a.enter&&a.closed&&c,a.enter&&!a.closed&&f,a.leave&&m,a.leave&&!a.closed&&C,a.leave&&a.closed&&s,!a.transition&&T&&p))==null?void 0:$.trim())||void 0,...be(a)}),_=0;return g===\"visible\"&&(_|=N.Open),g===\"hidden\"&&(_|=N.Closed),a.enter&&(_|=N.Opening),a.leave&&(_|=N.Closing),d.createElement(w.Provider,{value:F},d.createElement(Ee,{value:_},se({ourProps:ce,theirProps:r,defaultTag:ue,features:Te,visible:g===\"visible\",name:\"Transition.Child\"})))}function He(e,t){let{show:i,appear:l=!1,unmount:S=!0,...E}=e,u=v(null),y=le(e),c=ie(...y?[u,t]:t===null?[]:[t]);ne();let f=re();if(i===void 0&&f!==null&&(i=(f&N.Open)===N.Open),i===void 0)throw new Error(\"A <Transition /> is used but it is missing a `show={true | false}` prop.\");let[p,m]=k(i?\"visible\":\"hidden\"),C=ae(()=>{i||m(\"hidden\")}),[s,r]=k(!0),n=v([i]);H(()=>{s!==!1&&n.current[n.current.length-1]!==i&&(n.current.push(i),r(!1))},[n,i]);let o=te(()=>({show:i,appear:l,initial:s}),[i,l,s]);ve(i,u,()=>m(\"hidden\")),H(()=>{i?m(\"visible\"):!M(C)&&u.current!==null&&m(\"hidden\")},[i,C]);let R={unmount:S},x=b(()=>{var h;s&&r(!1),(h=e.beforeEnter)==null||h.call(e)}),T=b(()=>{var h;s&&r(!1),(h=e.beforeLeave)==null||h.call(e)});return d.createElement(w.Provider,{value:C},d.createElement(V.Provider,{value:o},se({ourProps:{...R,as:O,children:d.createElement(de,{ref:c,...R,...E,beforeEnter:x,beforeLeave:T})},theirProps:{},defaultTag:O,features:Te,visible:p===\"visible\",name:\"Transition\"})))}function Ae(e,t){let i=W(V)!==null,l=re()!==null;return d.createElement(d.Fragment,null,!i&&l?d.createElement(J,{ref:t,...e}):d.createElement(de,{ref:t,...e}))}let J=q(He),de=q(De),Ie=q(Ae),Xe=Object.assign(J,{Child:Ie,Root:J});export{Xe as Transition,Ie as TransitionChild};\n","\"use client\";import n,{Fragment as H,createContext as re,createRef as le,useContext as ae,useEffect as ie,useMemo as y,useReducer as pe,useRef as B}from\"react\";import{useEscape as se}from'../../hooks/use-escape.js';import{useEvent as E}from'../../hooks/use-event.js';import{useId as h}from'../../hooks/use-id.js';import{useInertOthers as de}from'../../hooks/use-inert-others.js';import{useIsTouchDevice as ue}from'../../hooks/use-is-touch-device.js';import{useOnDisappear as Te}from'../../hooks/use-on-disappear.js';import{useOutsideClick as fe}from'../../hooks/use-outside-click.js';import{useOwnerDocument as ge}from'../../hooks/use-owner.js';import{useRootContainers as me}from'../../hooks/use-root-containers.js';import{useScrollLock as ce}from'../../hooks/use-scroll-lock.js';import{useServerHandoffComplete as De}from'../../hooks/use-server-handoff-complete.js';import{useSyncRefs as S}from'../../hooks/use-sync-refs.js';import{CloseProvider as Pe}from'../../internal/close-provider.js';import{HoistFormFields as ye}from'../../internal/form-fields.js';import{ResetOpenClosedProvider as Ee,State as R,useOpenClosed as U}from'../../internal/open-closed.js';import{ForcePortalRoot as N}from'../../internal/portal-force-root.js';import{match as Ae}from'../../utils/match.js';import{RenderFeatures as W,forwardRefWithAs as A,render as v}from'../../utils/render.js';import{Description as $,useDescriptions as _e}from'../description/description.js';import{FocusTrap as Ce,FocusTrapFeatures as _}from'../focus-trap/focus-trap.js';import{Portal as Fe,PortalGroup as be,useNestedPortals as Re}from'../portal/portal.js';import{Transition as ve,TransitionChild as j}from'../transition/transition.js';var xe=(o=>(o[o.Open=0]=\"Open\",o[o.Closed=1]=\"Closed\",o))(xe||{}),Le=(t=>(t[t.SetTitleId=0]=\"SetTitleId\",t))(Le||{});let Oe={[0](e,t){return e.titleId===t.id?e:{...e,titleId:t.id}}},I=re(null);I.displayName=\"DialogContext\";function x(e){let t=ae(I);if(t===null){let o=new Error(`<${e} /> is missing a parent <Dialog /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(o,x),o}return t}function he(e,t){return Ae(t.type,Oe,e,t)}let Y=A(function(t,o){let a=h(),{id:i=`headlessui-dialog-${a}`,open:l,onClose:p,initialFocus:d,role:s=\"dialog\",autoFocus:C=!0,__demoMode:f=!1,...G}=t,L=B(!1);s=function(){return s===\"dialog\"||s===\"alertdialog\"?s:(L.current||(L.current=!0,console.warn(`Invalid role [${s}] passed to <Dialog />. Only \\`dialog\\` and and \\`alertdialog\\` are supported. Using \\`dialog\\` instead.`)),\"dialog\")}();let g=U();l===void 0&&g!==null&&(l=(g&R.Open)===R.Open);let u=B(null),J=S(u,o),F=ge(u),T=l?0:1,[b,K]=pe(he,{titleId:null,descriptionId:null,panelRef:le()}),m=E(()=>p(!1)),k=E(r=>K({type:0,id:r})),c=De()?T===0:!1,[X,V]=Re(),q={get current(){var r;return(r=b.panelRef.current)!=null?r:u.current}},{resolveContainers:O,mainTreeNodeRef:z,MainTreeNode:Q}=me({portals:X,defaultContainers:[q]}),M=g!==null?(g&R.Closing)===R.Closing:!1;de(f||M?!1:c,{allowed:E(()=>{var r,P;return[(P=(r=u.current)==null?void 0:r.closest(\"[data-headlessui-portal]\"))!=null?P:null]}),disallowed:E(()=>{var r,P;return[(P=(r=z.current)==null?void 0:r.closest(\"body > *:not(#headlessui-portal-root)\"))!=null?P:null]})}),fe(c,O,r=>{r.preventDefault(),m()}),se(c,F==null?void 0:F.defaultView,r=>{r.preventDefault(),r.stopPropagation(),document.activeElement&&\"blur\"in document.activeElement&&typeof document.activeElement.blur==\"function\"&&document.activeElement.blur(),m()}),ce(f||M?!1:c,F,O),Te(c,u,m);let[Z,ee]=_e(),te=y(()=>[{dialogState:T,close:m,setTitleId:k},b],[T,b,m,k]),w=y(()=>({open:T===0}),[T]),oe={ref:J,id:i,role:s,tabIndex:-1,\"aria-modal\":f?void 0:T===0?!0:void 0,\"aria-labelledby\":b.titleId,\"aria-describedby\":Z},ne=!ue(),D=_.None;return c&&!f&&(D|=_.RestoreFocus,D|=_.TabLock,C&&(D|=_.AutoFocus),ne&&(D|=_.InitialFocus)),n.createElement(Ee,null,n.createElement(N,{force:!0},n.createElement(Fe,null,n.createElement(I.Provider,{value:te},n.createElement(be,{target:u},n.createElement(N,{force:!1},n.createElement(ee,{slot:w},n.createElement(V,null,n.createElement(Ce,{initialFocus:d,initialFocusFallback:u,containers:O,features:D},n.createElement(Pe,{value:m},v({ourProps:oe,theirProps:G,slot:w,defaultTag:Se,features:Ie,visible:T===0,name:\"Dialog\"})))))))))),n.createElement(ye,null,n.createElement(Q,null)))}),Se=\"div\",Ie=W.RenderStrategy|W.Static;function Ge(e,t){let{transition:o=!1,open:a,...i}=e,l=U(),p=e.hasOwnProperty(\"open\")||l!==null,d=e.hasOwnProperty(\"onClose\");if(!p&&!d)throw new Error(\"You have to provide an `open` and an `onClose` prop to the `Dialog` component.\");if(!p)throw new Error(\"You provided an `onClose` prop to the `Dialog`, but forgot an `open` prop.\");if(!d)throw new Error(\"You provided an `open` prop to the `Dialog`, but forgot an `onClose` prop.\");if(!l&&typeof e.open!=\"boolean\")throw new Error(`You provided an \\`open\\` prop to the \\`Dialog\\`, but the value is not a boolean. Received: ${e.open}`);if(typeof e.onClose!=\"function\")throw new Error(`You provided an \\`onClose\\` prop to the \\`Dialog\\`, but the value is not a function. Received: ${e.onClose}`);return!(l!==null)&&a!==void 0&&!i.static?n.createElement(ve,{show:a,transition:o,unmount:i.unmount},n.createElement(Y,{ref:t,...i})):n.createElement(Y,{ref:t,open:a,...i})}let ke=\"div\";function Me(e,t){let o=h(),{id:a=`headlessui-dialog-panel-${o}`,transition:i=!1,...l}=e,[{dialogState:p},d]=x(\"Dialog.Panel\"),s=S(t,d.panelRef),C=y(()=>({open:p===0}),[p]),f=E(g=>{g.stopPropagation()});return n.createElement(i?j:H,null,v({ourProps:{ref:s,id:a,onClick:f},theirProps:l,slot:C,defaultTag:ke,name:\"Dialog.Panel\"}))}let we=\"div\";function He(e,t){let{transition:o=!1,...a}=e,[{dialogState:i}]=x(\"Dialog.Backdrop\"),l=y(()=>({open:i===0}),[i]);return n.createElement(o?j:H,null,v({ourProps:{ref:t,\"aria-hidden\":!0},theirProps:a,slot:l,defaultTag:we,name:\"Dialog.Backdrop\"}))}let Be=\"h2\";function Ue(e,t){let o=h(),{id:a=`headlessui-dialog-title-${o}`,...i}=e,[{dialogState:l,setTitleId:p}]=x(\"Dialog.Title\"),d=S(t);ie(()=>(p(a),()=>p(null)),[a,p]);let s=y(()=>({open:l===0}),[l]);return v({ourProps:{ref:d,id:a},theirProps:i,slot:s,defaultTag:Be,name:\"Dialog.Title\"})}let Ne=A(Ge),We=A(Me),ct=A(He),$e=A(Ue),Dt=$,Pt=Object.assign(Ne,{Panel:We,Title:$e,Description:$});export{Pt as Dialog,ct as DialogBackdrop,Dt as DialogDescription,We as DialogPanel,$e as DialogTitle};\n","var t;import r from\"react\";let a=(t=r.startTransition)!=null?t:function(i){i()};export{a as startTransition};\n","\"use client\";import{useFocusRing as Q}from\"@react-aria/focus\";import{useHover as Y}from\"@react-aria/interactions\";import m,{Fragment as K,createContext as x,useContext as L,useEffect as j,useMemo as R,useReducer as Z,useRef as A}from\"react\";import{useActivePress as ee}from'../../hooks/use-active-press.js';import{useEvent as C}from'../../hooks/use-event.js';import{useId as W}from'../../hooks/use-id.js';import{useResolveButtonType as te}from'../../hooks/use-resolve-button-type.js';import{optionalRef as ne,useSyncRefs as v}from'../../hooks/use-sync-refs.js';import{transitionDataAttributes as oe,useTransition as re}from'../../hooks/use-transition.js';import{CloseProvider as le}from'../../internal/close-provider.js';import{OpenClosedProvider as se,ResetOpenClosedProvider as ie,State as I,useOpenClosed as ue}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as ae}from'../../utils/bugs.js';import{match as O}from'../../utils/match.js';import{getOwnerDocument as pe}from'../../utils/owner.js';import{RenderFeatures as $,forwardRefWithAs as _,mergeProps as J,render as B,useMergeRefsFn as X}from'../../utils/render.js';import{startTransition as ce}from'../../utils/start-transition.js';import{Keys as b}from'../keyboard.js';var de=(r=>(r[r.Open=0]=\"Open\",r[r.Closed=1]=\"Closed\",r))(de||{}),fe=(t=>(t[t.ToggleDisclosure=0]=\"ToggleDisclosure\",t[t.CloseDisclosure=1]=\"CloseDisclosure\",t[t.SetButtonId=2]=\"SetButtonId\",t[t.SetPanelId=3]=\"SetPanelId\",t[t.LinkPanel=4]=\"LinkPanel\",t[t.UnlinkPanel=5]=\"UnlinkPanel\",t))(fe||{});let Te={[0]:e=>({...e,disclosureState:O(e.disclosureState,{[0]:1,[1]:0})}),[1]:e=>e.disclosureState===1?e:{...e,disclosureState:1},[4](e){return e.linkedPanel===!0?e:{...e,linkedPanel:!0}},[5](e){return e.linkedPanel===!1?e:{...e,linkedPanel:!1}},[2](e,n){return e.buttonId===n.buttonId?e:{...e,buttonId:n.buttonId}},[3](e,n){return e.panelId===n.panelId?e:{...e,panelId:n.panelId}}},M=x(null);M.displayName=\"DisclosureContext\";function F(e){let n=L(M);if(n===null){let r=new Error(`<${e} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,F),r}return n}let k=x(null);k.displayName=\"DisclosureAPIContext\";function V(e){let n=L(k);if(n===null){let r=new Error(`<${e} /> is missing a parent <Disclosure /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(r,V),r}return n}let H=x(null);H.displayName=\"DisclosurePanelContext\";function De(){return L(H)}function Pe(e,n){return O(n.type,Te,e,n)}let ye=K;function me(e,n){let{defaultOpen:r=!1,...c}=e,s=A(null),d=v(n,ne(u=>{s.current=u},e.as===void 0||e.as===K)),t=A(null),o=A(null),l=Z(Pe,{disclosureState:r?0:1,linkedPanel:!1,buttonRef:o,panelRef:t,buttonId:null,panelId:null}),[{disclosureState:f,buttonId:i},T]=l,p=C(u=>{T({type:1});let P=pe(s);if(!P||!i)return;let y=(()=>u?u instanceof HTMLElement?u:u.current instanceof HTMLElement?u.current:P.getElementById(i):P.getElementById(i))();y==null||y.focus()}),E=R(()=>({close:p}),[p]),D=R(()=>({open:f===0,close:p}),[f,p]),g={ref:d};return m.createElement(M.Provider,{value:l},m.createElement(k.Provider,{value:E},m.createElement(le,{value:p},m.createElement(se,{value:O(f,{[0]:I.Open,[1]:I.Closed})},B({ourProps:g,theirProps:c,slot:D,defaultTag:ye,name:\"Disclosure\"})))))}let Ee=\"button\";function ge(e,n){let r=W(),{id:c=`headlessui-disclosure-button-${r}`,disabled:s=!1,autoFocus:d=!1,...t}=e,[o,l]=F(\"Disclosure.Button\"),f=De(),i=f===null?!1:f===o.panelId,T=A(null),p=v(T,n,i?null:o.buttonRef),E=X();j(()=>{if(!i)return l({type:2,buttonId:c}),()=>{l({type:2,buttonId:null})}},[c,l,i]);let D=C(a=>{var S;if(i){if(o.disclosureState===1)return;switch(a.key){case b.Space:case b.Enter:a.preventDefault(),a.stopPropagation(),l({type:0}),(S=o.buttonRef.current)==null||S.focus();break}}else switch(a.key){case b.Space:case b.Enter:a.preventDefault(),a.stopPropagation(),l({type:0});break}}),g=C(a=>{switch(a.key){case b.Space:a.preventDefault();break}}),u=C(a=>{var S;ae(a.currentTarget)||s||(i?(l({type:0}),(S=o.buttonRef.current)==null||S.focus()):l({type:0}))}),{isFocusVisible:P,focusProps:y}=Q({autoFocus:d}),{isHovered:U,hoverProps:h}=Y({isDisabled:s}),{pressed:N,pressProps:w}=ee({disabled:s}),q=R(()=>({open:o.disclosureState===0,hover:U,active:N,disabled:s,focus:P,autofocus:d}),[o,U,N,P,s,d]),G=te(e,T),z=i?J({ref:p,type:G,disabled:s||void 0,autoFocus:d,onKeyDown:D,onClick:u},y,h,w):J({ref:p,id:c,type:G,\"aria-expanded\":o.disclosureState===0,\"aria-controls\":o.linkedPanel?o.panelId:void 0,disabled:s||void 0,autoFocus:d,onKeyDown:D,onKeyUp:g,onClick:u},y,h,w);return B({mergeRefs:E,ourProps:z,theirProps:t,slot:q,defaultTag:Ee,name:\"Disclosure.Button\"})}let Se=\"div\",be=$.RenderStrategy|$.Static;function Re(e,n){let r=W(),{id:c=`headlessui-disclosure-panel-${r}`,transition:s=!1,...d}=e,[t,o]=F(\"Disclosure.Panel\"),{close:l}=V(\"Disclosure.Panel\"),f=X(),i=v(n,t.panelRef,u=>{ce(()=>o({type:u?4:5}))});j(()=>(o({type:3,panelId:c}),()=>{o({type:3,panelId:null})}),[c,o]);let T=ue(),[p,E]=re(s,t.panelRef,T!==null?(T&I.Open)===I.Open:t.disclosureState===0),D=R(()=>({open:t.disclosureState===0,close:l}),[t.disclosureState,l]),g={ref:i,id:c,...oe(E)};return m.createElement(ie,null,m.createElement(H.Provider,{value:t.panelId},B({mergeRefs:f,ourProps:g,theirProps:d,slot:D,defaultTag:Se,features:be,visible:p,name:\"Disclosure.Panel\"})))}let Ae=_(me),Ce=_(ge),Ie=_(Re),We=Object.assign(Ae,{Button:Ce,Panel:Ie});export{We as Disclosure,Ce as DisclosureButton,Ie as DisclosurePanel};\n","\"use client\";import r,{useMemo as F}from\"react\";import{useId as T}from'../../hooks/use-id.js';import{DisabledProvider as f,useDisabled as P}from'../../internal/disabled.js';import{FormFieldsProvider as y}from'../../internal/form-fields.js';import{IdProvider as u}from'../../internal/id.js';import{forwardRefWithAs as D,render as v}from'../../utils/render.js';import{useDescriptions as b}from'../description/description.js';import{useLabels as E}from'../label/label.js';let A=\"div\";function L(d,l){let t=`headlessui-control-${T()}`,[s,p]=E(),[n,a]=b(),m=P(),{disabled:e=m||!1,...o}=d,i=F(()=>({disabled:e}),[e]);return r.createElement(f,{value:e},r.createElement(p,{value:s},r.createElement(a,{value:n},r.createElement(u,{id:t},v({ourProps:{ref:l,disabled:e||void 0,\"aria-disabled\":e||void 0},theirProps:{...o,children:r.createElement(y,null,typeof o.children==\"function\"?o.children(i):o.children)},slot:i,defaultTag:A,name:\"Field\"})))))}let H=D(L);export{H as Field};\n","\"use client\";import{useFocusRing as xe}from\"@react-aria/focus\";import{useHover as Oe}from\"@react-aria/interactions\";import E,{createContext as ee,createRef as ue,useContext as te,useEffect as oe,useMemo as L,useReducer as Le,useRef as X,useState as ge}from\"react\";import{useActivePress as Ie}from'../../hooks/use-active-press.js';import{useElementSize as De}from'../../hooks/use-element-size.js';import{useEvent as A}from'../../hooks/use-event.js';import{useEventListener as he}from'../../hooks/use-event-listener.js';import{useId as re}from'../../hooks/use-id.js';import{useIsoMorphicEffect as ke}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as Se}from'../../hooks/use-latest-value.js';import{useOnDisappear as Ge}from'../../hooks/use-on-disappear.js';import{useOutsideClick as He}from'../../hooks/use-outside-click.js';import{useOwnerDocument as ie}from'../../hooks/use-owner.js';import{useResolveButtonType as Ne}from'../../hooks/use-resolve-button-type.js';import{useMainTreeNode as Ue,useRootContainers as we}from'../../hooks/use-root-containers.js';import{useScrollLock as Ke}from'../../hooks/use-scroll-lock.js';import{optionalRef as We,useSyncRefs as q}from'../../hooks/use-sync-refs.js';import{Direction as G,useTabDirection as Ae}from'../../hooks/use-tab-direction.js';import{transitionDataAttributes as Re,useTransition as Ce}from'../../hooks/use-transition.js';import{CloseProvider as je}from'../../internal/close-provider.js';import{FloatingProvider as Ve,useFloatingPanel as $e,useFloatingPanelProps as Je,useFloatingReference as Xe,useResolvedAnchor as qe}from'../../internal/floating.js';import{Hidden as de,HiddenFeatures as fe}from'../../internal/hidden.js';import{OpenClosedProvider as ze,ResetOpenClosedProvider as Ye,State as z,useOpenClosed as Be}from'../../internal/open-closed.js';import{isDisabledReactIssue7711 as _e}from'../../utils/bugs.js';import{Focus as H,FocusResult as Pe,FocusableMode as Qe,focusIn as U,getFocusableElements as ce,isFocusableElement as Ze}from'../../utils/focus-management.js';import{match as w}from'../../utils/match.js';import'../../utils/micro-task.js';import{getOwnerDocument as et}from'../../utils/owner.js';import{RenderFeatures as ne,forwardRefWithAs as Y,mergeProps as ve,render as Z,useMergeRefsFn as tt}from'../../utils/render.js';import{Keys as K}from'../keyboard.js';import{Portal as ot,useNestedPortals as rt}from'../portal/portal.js';var nt=(f=>(f[f.Open=0]=\"Open\",f[f.Closed=1]=\"Closed\",f))(nt||{}),lt=(u=>(u[u.TogglePopover=0]=\"TogglePopover\",u[u.ClosePopover=1]=\"ClosePopover\",u[u.SetButton=2]=\"SetButton\",u[u.SetButtonId=3]=\"SetButtonId\",u[u.SetPanel=4]=\"SetPanel\",u[u.SetPanelId=5]=\"SetPanelId\",u))(lt||{});let at={[0]:t=>({...t,popoverState:w(t.popoverState,{[0]:1,[1]:0}),__demoMode:!1}),[1](t){return t.popoverState===1?t:{...t,popoverState:1,__demoMode:!1}},[2](t,a){return t.button===a.button?t:{...t,button:a.button}},[3](t,a){return t.buttonId===a.buttonId?t:{...t,buttonId:a.buttonId}},[4](t,a){return t.panel===a.panel?t:{...t,panel:a.panel}},[5](t,a){return t.panelId===a.panelId?t:{...t,panelId:a.panelId}}},Te=ee(null);Te.displayName=\"PopoverContext\";function le(t){let a=te(Te);if(a===null){let f=new Error(`<${t} /> is missing a parent <Popover /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(f,le),f}return a}let ae=ee(null);ae.displayName=\"PopoverAPIContext\";function me(t){let a=te(ae);if(a===null){let f=new Error(`<${t} /> is missing a parent <Popover /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(f,me),f}return a}let ye=ee(null);ye.displayName=\"PopoverGroupContext\";function Fe(){return te(ye)}let pe=ee(null);pe.displayName=\"PopoverPanelContext\";function pt(){return te(pe)}function st(t,a){return w(a.type,at,t,a)}let ut=\"div\";function it(t,a){var J;let{__demoMode:f=!1,...C}=t,m=X(null),R=q(a,We(e=>{m.current=e})),u=X([]),l=Le(st,{__demoMode:f,popoverState:f?0:1,buttons:u,button:null,buttonId:null,panel:null,panelId:null,beforePanelSentinel:ue(),afterPanelSentinel:ue(),afterButtonSentinel:ue()}),[{popoverState:c,button:P,buttonId:r,panel:i,panelId:B,beforePanelSentinel:y,afterPanelSentinel:I,afterButtonSentinel:d},n]=l,v=ie((J=m.current)!=null?J:P),_=L(()=>{if(!P||!i)return!1;for(let g of document.querySelectorAll(\"body > *\"))if(Number(g==null?void 0:g.contains(P))^Number(g==null?void 0:g.contains(i)))return!0;let e=ce(),s=e.indexOf(P),o=(s+e.length-1)%e.length,p=(s+1)%e.length,S=e[o],b=e[p];return!i.contains(S)&&!i.contains(b)},[P,i]),F=Se(r),x=Se(B),W=L(()=>({buttonId:F,panelId:x,close:()=>n({type:1})}),[F,x,n]),T=Fe(),D=T==null?void 0:T.registerPopover,N=A(()=>{var e;return(e=T==null?void 0:T.isFocusWithinPopoverGroup())!=null?e:(v==null?void 0:v.activeElement)&&((P==null?void 0:P.contains(v.activeElement))||(i==null?void 0:i.contains(v.activeElement)))});oe(()=>D==null?void 0:D(W),[D,W]);let[M,j]=rt(),h=we({mainTreeNodeRef:T==null?void 0:T.mainTreeNodeRef,portals:M,defaultContainers:[P,i]});he(v==null?void 0:v.defaultView,\"focus\",e=>{var s,o,p,S,b,g;e.target!==window&&e.target instanceof HTMLElement&&c===0&&(N()||P&&i&&(h.contains(e.target)||(o=(s=y.current)==null?void 0:s.contains)!=null&&o.call(s,e.target)||(S=(p=I.current)==null?void 0:p.contains)!=null&&S.call(p,e.target)||(g=(b=d.current)==null?void 0:b.contains)!=null&&g.call(b,e.target)||n({type:1})))},!0),He(c===0,h.resolveContainers,(e,s)=>{n({type:1}),Ze(s,Qe.Loose)||(e.preventDefault(),P==null||P.focus())});let O=A(e=>{n({type:1});let s=(()=>e?e instanceof HTMLElement?e:\"current\"in e&&e.current instanceof HTMLElement?e.current:P:P)();s==null||s.focus()}),k=L(()=>({close:O,isPortalled:_}),[O,_]),V=L(()=>({open:c===0,close:O}),[c,O]),$={ref:R};return E.createElement(Ve,null,E.createElement(pe.Provider,{value:null},E.createElement(Te.Provider,{value:l},E.createElement(ae.Provider,{value:k},E.createElement(je,{value:O},E.createElement(ze,{value:w(c,{[0]:z.Open,[1]:z.Closed})},E.createElement(j,null,Z({ourProps:$,theirProps:C,slot:V,defaultTag:ut,name:\"Popover\"}),E.createElement(h.MainTreeNode,null))))))))}let dt=\"button\";function ft(t,a){let f=re(),{id:C=`headlessui-popover-button-${f}`,disabled:m=!1,autoFocus:R=!1,...u}=t,[l,c]=le(\"Popover.Button\"),{isPortalled:P}=me(\"Popover.Button\"),r=X(null),i=`headlessui-focus-sentinel-${re()}`,B=Fe(),y=B==null?void 0:B.closeOthers,d=pt()!==null;oe(()=>{if(!d)return c({type:3,buttonId:C}),()=>{c({type:3,buttonId:null})}},[d,C,c]);let[n]=ge(()=>Symbol()),v=q(r,a,Xe(),d?null:o=>{if(o)l.buttons.current.push(n);else{let p=l.buttons.current.indexOf(n);p!==-1&&l.buttons.current.splice(p,1)}l.buttons.current.length>1&&console.warn(\"You are already using a <Popover.Button /> but only 1 <Popover.Button /> is supported.\"),o&&c({type:2,button:o})}),_=q(r,a),F=ie(r),x=A(o=>{var p,S,b;if(d){if(l.popoverState===1)return;switch(o.key){case K.Space:case K.Enter:o.preventDefault(),(S=(p=o.target).click)==null||S.call(p),c({type:1}),(b=l.button)==null||b.focus();break}}else switch(o.key){case K.Space:case K.Enter:o.preventDefault(),o.stopPropagation(),l.popoverState===1&&(y==null||y(l.buttonId)),c({type:0});break;case K.Escape:if(l.popoverState!==0)return y==null?void 0:y(l.buttonId);if(!r.current||F!=null&&F.activeElement&&!r.current.contains(F.activeElement))return;o.preventDefault(),o.stopPropagation(),c({type:1});break}}),W=A(o=>{d||o.key===K.Space&&o.preventDefault()}),T=A(o=>{var p,S;_e(o.currentTarget)||m||(d?(c({type:1}),(p=l.button)==null||p.focus()):(o.preventDefault(),o.stopPropagation(),l.popoverState===1&&(y==null||y(l.buttonId)),c({type:0}),(S=l.button)==null||S.focus()))}),D=A(o=>{o.preventDefault(),o.stopPropagation()}),{isFocusVisible:N,focusProps:M}=xe({autoFocus:R}),{isHovered:j,hoverProps:h}=Oe({isDisabled:m}),{pressed:Q,pressProps:O}=Ie({disabled:m}),k=l.popoverState===0,V=L(()=>({open:k,active:Q||k,disabled:m,hover:j,focus:N,autofocus:R}),[k,j,N,Q,m,R]),$=Ne(t,r),J=d?ve({ref:_,type:$,onKeyDown:x,onClick:T,disabled:m||void 0,autoFocus:R},M,h,O):ve({ref:v,id:l.buttonId,type:$,\"aria-expanded\":l.popoverState===0,\"aria-controls\":l.panel?l.panelId:void 0,disabled:m||void 0,autoFocus:R,onKeyDown:x,onKeyUp:W,onClick:T,onMouseDown:D},M,h,O),e=Ae(),s=A(()=>{let o=l.panel;if(!o)return;function p(){w(e.current,{[G.Forwards]:()=>U(o,H.First),[G.Backwards]:()=>U(o,H.Last)})===Pe.Error&&U(ce().filter(b=>b.dataset.headlessuiFocusGuard!==\"true\"),w(e.current,{[G.Forwards]:H.Next,[G.Backwards]:H.Previous}),{relativeTo:l.button})}p()});return E.createElement(E.Fragment,null,Z({ourProps:J,theirProps:u,slot:V,defaultTag:dt,name:\"Popover.Button\"}),k&&!d&&P&&E.createElement(de,{id:i,ref:l.afterButtonSentinel,features:fe.Focusable,\"data-headlessui-focus-guard\":!0,as:\"button\",type:\"button\",onFocus:s}))}let Pt=\"div\",ct=ne.RenderStrategy|ne.Static;function Me(t,a){let f=re(),{id:C=`headlessui-popover-backdrop-${f}`,transition:m=!1,...R}=t,[{popoverState:u},l]=le(\"Popover.Backdrop\"),c=X(null),P=q(a,c),r=Be(),[i,B]=Ce(m,c,r!==null?(r&z.Open)===z.Open:u===0),y=A(n=>{if(_e(n.currentTarget))return n.preventDefault();l({type:1})}),I=L(()=>({open:u===0}),[u]),d={ref:P,id:C,\"aria-hidden\":!0,onClick:y,...Re(B)};return Z({ourProps:d,theirProps:R,slot:I,defaultTag:Pt,features:ct,visible:i,name:\"Popover.Backdrop\"})}let vt=\"div\",Tt=ne.RenderStrategy|ne.Static;function mt(t,a){let f=re(),{id:C=`headlessui-popover-panel-${f}`,focus:m=!1,anchor:R,portal:u=!1,modal:l=!1,transition:c=!1,...P}=t,[r,i]=le(\"Popover.Panel\"),{close:B,isPortalled:y}=me(\"Popover.Panel\"),I=`headlessui-focus-sentinel-before-${f}`,d=`headlessui-focus-sentinel-after-${f}`,n=X(null),v=qe(R),[_,F]=$e(v),x=Je();v&&(u=!0);let W=q(n,a,v?_:null,e=>{i({type:4,panel:e})}),T=ie(n),D=tt();ke(()=>(i({type:5,panelId:C}),()=>{i({type:5,panelId:null})}),[C,i]);let N=Be(),[M,j]=Ce(c,n,N!==null?(N&z.Open)===z.Open:r.popoverState===0);Ge(M,r.button,()=>{i({type:1})});let h=r.__demoMode?!1:l&&M;Ke(h,T);let Q=A(e=>{var s;switch(e.key){case K.Escape:if(r.popoverState!==0||!n.current||T!=null&&T.activeElement&&!n.current.contains(T.activeElement))return;e.preventDefault(),e.stopPropagation(),i({type:1}),(s=r.button)==null||s.focus();break}});oe(()=>{var e;t.static||r.popoverState===1&&((e=t.unmount)==null||e)&&i({type:4,panel:null})},[r.popoverState,t.unmount,t.static,i]),oe(()=>{if(r.__demoMode||!m||r.popoverState!==0||!n.current)return;let e=T==null?void 0:T.activeElement;n.current.contains(e)||U(n.current,H.First)},[r.__demoMode,m,n,r.popoverState]);let O=L(()=>({open:r.popoverState===0,close:B}),[r.popoverState,B]),k=ve(v?x():{},{ref:W,id:C,onKeyDown:Q,onBlur:m&&r.popoverState===0?e=>{var o,p,S,b,g;let s=e.relatedTarget;s&&n.current&&((o=n.current)!=null&&o.contains(s)||(i({type:1}),((S=(p=r.beforePanelSentinel.current)==null?void 0:p.contains)!=null&&S.call(p,s)||(g=(b=r.afterPanelSentinel.current)==null?void 0:b.contains)!=null&&g.call(b,s))&&s.focus({preventScroll:!0})))}:void 0,tabIndex:-1,style:{...P.style,...F,\"--button-width\":De(r.button,!0).width},...Re(j)}),V=Ae(),$=A(()=>{let e=n.current;if(!e)return;function s(){w(V.current,{[G.Forwards]:()=>{var p;U(e,H.First)===Pe.Error&&((p=r.afterPanelSentinel.current)==null||p.focus())},[G.Backwards]:()=>{var o;(o=r.button)==null||o.focus({preventScroll:!0})}})}s()}),J=A(()=>{let e=n.current;if(!e)return;function s(){w(V.current,{[G.Forwards]:()=>{var Ee;if(!r.button)return;let o=ce(),p=o.indexOf(r.button),S=o.slice(0,p+1),g=[...o.slice(p+1),...S];for(let se of g.slice())if(se.dataset.headlessuiFocusGuard===\"true\"||(Ee=r.panel)!=null&&Ee.contains(se)){let be=g.indexOf(se);be!==-1&&g.splice(be,1)}U(g,H.First,{sorted:!1})},[G.Backwards]:()=>{var p;U(e,H.Previous)===Pe.Error&&((p=r.button)==null||p.focus())}})}s()});return E.createElement(Ye,null,E.createElement(pe.Provider,{value:C},E.createElement(ae.Provider,{value:{close:B,isPortalled:y}},E.createElement(ot,{enabled:u?t.static||M:!1},M&&y&&E.createElement(de,{id:I,ref:r.beforePanelSentinel,features:fe.Focusable,\"data-headlessui-focus-guard\":!0,as:\"button\",type:\"button\",onFocus:$}),Z({mergeRefs:D,ourProps:k,theirProps:P,slot:O,defaultTag:vt,features:Tt,visible:M,name:\"Popover.Panel\"}),M&&y&&E.createElement(de,{id:d,ref:r.afterPanelSentinel,features:fe.Focusable,\"data-headlessui-focus-guard\":!0,as:\"button\",type:\"button\",onFocus:J})))))}let yt=\"div\";function Et(t,a){let f=X(null),C=q(f,a),[m,R]=ge([]),u=Ue(),l=A(d=>{R(n=>{let v=n.indexOf(d);if(v!==-1){let _=n.slice();return _.splice(v,1),_}return n})}),c=A(d=>(R(n=>[...n,d]),()=>l(d))),P=A(()=>{var v;let d=et(f);if(!d)return!1;let n=d.activeElement;return(v=f.current)!=null&&v.contains(n)?!0:m.some(_=>{var F,x;return((F=d.getElementById(_.buttonId.current))==null?void 0:F.contains(n))||((x=d.getElementById(_.panelId.current))==null?void 0:x.contains(n))})}),r=A(d=>{for(let n of m)n.buttonId.current!==d&&n.close()}),i=L(()=>({registerPopover:c,unregisterPopover:l,isFocusWithinPopoverGroup:P,closeOthers:r,mainTreeNodeRef:u.mainTreeNodeRef}),[c,l,P,r,u.mainTreeNodeRef]),B=L(()=>({}),[]),y=t,I={ref:C};return E.createElement(ye.Provider,{value:i},Z({ourProps:I,theirProps:y,slot:B,defaultTag:yt,name:\"Popover.Group\"}),E.createElement(u.MainTreeNode,null))}let bt=Y(it),gt=Y(ft),St=Y(Me),At=Y(Me),Rt=Y(mt),Ct=Y(Et),no=Object.assign(bt,{Button:gt,Backdrop:At,Overlay:St,Panel:Rt,Group:Ct});export{no as Popover,At as PopoverBackdrop,gt as PopoverButton,Ct as PopoverGroup,St as PopoverOverlay,Rt as PopoverPanel};\n","\"use client\";import{useFocusRing as Q}from\"@react-aria/focus\";import{useHover as Y}from\"@react-aria/interactions\";import G,{createContext as Z,useCallback as ye,useContext as ee,useMemo as x,useReducer as Re,useRef as W}from\"react\";import{useByComparator as be}from'../../hooks/use-by-comparator.js';import{useControllable as ge}from'../../hooks/use-controllable.js';import{useDefaultValue as Oe}from'../../hooks/use-default-value.js';import{useEvent as S}from'../../hooks/use-event.js';import{useId as B}from'../../hooks/use-id.js';import{useIsoMorphicEffect as te}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as oe}from'../../hooks/use-latest-value.js';import{useSyncRefs as V}from'../../hooks/use-sync-refs.js';import{useDisabled as re}from'../../internal/disabled.js';import{FormFields as Pe}from'../../internal/form-fields.js';import{useProvidedId as ve}from'../../internal/id.js';import{isDisabledReactIssue7711 as ie}from'../../utils/bugs.js';import{Focus as w,FocusResult as ne,focusIn as ae,sortByDomNode as De}from'../../utils/focus-management.js';import{attemptSubmit as Ae}from'../../utils/form.js';import{match as _e}from'../../utils/match.js';import{getOwnerDocument as Ee}from'../../utils/owner.js';import{forwardRefWithAs as K,mergeProps as pe,render as $}from'../../utils/render.js';import{Description as Ge,useDescribedBy as xe,useDescriptions as le}from'../description/description.js';import{Keys as F}from'../keyboard.js';import{Label as Ce,useLabelledBy as he,useLabels as se}from'../label/label.js';var Le=(e=>(e[e.RegisterOption=0]=\"RegisterOption\",e[e.UnregisterOption=1]=\"UnregisterOption\",e))(Le||{});let ke={[0](o,t){let e=[...o.options,{id:t.id,element:t.element,propsRef:t.propsRef}];return{...o,options:De(e,a=>a.element.current)}},[1](o,t){let e=o.options.slice(),a=o.options.findIndex(O=>O.id===t.id);return a===-1?o:(e.splice(a,1),{...o,options:e})}},j=Z(null);j.displayName=\"RadioGroupDataContext\";function J(o){let t=ee(j);if(t===null){let e=new Error(`<${o} /> is missing a parent <RadioGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,J),e}return t}let X=Z(null);X.displayName=\"RadioGroupActionsContext\";function z(o){let t=ee(X);if(t===null){let e=new Error(`<${o} /> is missing a parent <RadioGroup /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(e,z),e}return t}function Fe(o,t){return _e(t.type,ke,o,t)}let Ie=\"div\";function Ue(o,t){let e=B(),a=re(),{id:O=`headlessui-radiogroup-${e}`,value:m,form:P,name:i,onChange:f,by:c,disabled:p=a||!1,defaultValue:I,...y}=o,T=be(c),[v,C]=Re(Fe,{options:[]}),n=v.options,[U,h]=se(),[D,L]=le(),A=W(null),M=V(A,t),l=Oe(I),[s,_]=ge(m,f,l),R=x(()=>n.find(r=>!r.propsRef.current.disabled),[n]),b=x(()=>n.some(r=>T(r.propsRef.current.value,s)),[n,s]),d=S(r=>{var u;if(p||T(r,s))return!1;let k=(u=n.find(H=>T(H.propsRef.current.value,r)))==null?void 0:u.propsRef.current;return k!=null&&k.disabled?!1:(_==null||_(r),!0)}),de=S(r=>{let k=A.current;if(!k)return;let u=Ee(k),H=n.filter(g=>g.propsRef.current.disabled===!1).map(g=>g.element.current);switch(r.key){case F.Enter:Ae(r.currentTarget);break;case F.ArrowLeft:case F.ArrowUp:if(r.preventDefault(),r.stopPropagation(),ae(H,w.Previous|w.WrapAround)===ne.Success){let E=n.find(N=>N.element.current===(u==null?void 0:u.activeElement));E&&d(E.propsRef.current.value)}break;case F.ArrowRight:case F.ArrowDown:if(r.preventDefault(),r.stopPropagation(),ae(H,w.Next|w.WrapAround)===ne.Success){let E=n.find(N=>N.element.current===(u==null?void 0:u.activeElement));E&&d(E.propsRef.current.value)}break;case F.Space:{r.preventDefault(),r.stopPropagation();let g=n.find(E=>E.element.current===(u==null?void 0:u.activeElement));g&&d(g.propsRef.current.value)}break}}),q=S(r=>(C({type:0,...r}),()=>C({type:1,id:r.id}))),ue=x(()=>({value:s,firstOption:R,containsCheckedOption:b,disabled:p,compare:T,...v}),[s,R,b,p,T,v]),ce=x(()=>({registerOption:q,change:d}),[q,d]),fe={ref:M,id:O,role:\"radiogroup\",\"aria-labelledby\":U,\"aria-describedby\":D,onKeyDown:de},Te=x(()=>({value:s}),[s]),me=ye(()=>{if(l!==void 0)return d(l)},[d,l]);return G.createElement(L,{name:\"RadioGroup.Description\"},G.createElement(h,{name:\"RadioGroup.Label\"},G.createElement(X.Provider,{value:ce},G.createElement(j.Provider,{value:ue},i!=null&&G.createElement(Pe,{disabled:p,data:{[i]:s||\"on\"},overrides:{type:\"radio\",checked:s!=null},form:P,onReset:me}),$({ourProps:fe,theirProps:y,slot:Te,defaultTag:Ie,name:\"RadioGroup\"})))))}let Me=\"div\";function Se(o,t){var R;let e=J(\"RadioGroup.Option\"),a=z(\"RadioGroup.Option\"),O=B(),{id:m=`headlessui-radiogroup-option-${O}`,value:P,disabled:i=e.disabled||!1,autoFocus:f=!1,...c}=o,p=W(null),I=V(p,t),[y,T]=se(),[v,C]=le(),n=oe({value:P,disabled:i});te(()=>a.registerOption({id:m,element:p,propsRef:n}),[m,a,p,n]);let U=S(b=>{var d;if(ie(b.currentTarget))return b.preventDefault();a.change(P)&&((d=p.current)==null||d.focus())}),h=((R=e.firstOption)==null?void 0:R.id)===m,{isFocusVisible:D,focusProps:L}=Q({autoFocus:f}),{isHovered:A,hoverProps:M}=Y({isDisabled:i}),l=e.compare(e.value,P),s=pe({ref:I,id:m,role:\"radio\",\"aria-checked\":l?\"true\":\"false\",\"aria-labelledby\":y,\"aria-describedby\":v,\"aria-disabled\":i?!0:void 0,tabIndex:(()=>i?-1:l||!e.containsCheckedOption&&h?0:-1)(),onClick:i?void 0:U,autoFocus:f},L,M),_=x(()=>({checked:l,disabled:i,active:D,hover:A,focus:D,autofocus:f}),[l,i,A,D,f]);return G.createElement(C,{name:\"RadioGroup.Description\"},G.createElement(T,{name:\"RadioGroup.Label\"},$({ourProps:s,theirProps:c,slot:_,defaultTag:Me,name:\"RadioGroup.Option\"})))}let He=\"span\";function we(o,t){var R;let e=J(\"Radio\"),a=z(\"Radio\"),O=B(),m=ve(),P=re(),{id:i=m||`headlessui-radio-${O}`,value:f,disabled:c=e.disabled||P||!1,autoFocus:p=!1,...I}=o,y=W(null),T=V(y,t),v=he(),C=xe(),n=oe({value:f,disabled:c});te(()=>a.registerOption({id:i,element:y,propsRef:n}),[i,a,y,n]);let U=S(b=>{var d;if(ie(b.currentTarget))return b.preventDefault();a.change(f)&&((d=y.current)==null||d.focus())}),{isFocusVisible:h,focusProps:D}=Q({autoFocus:p}),{isHovered:L,hoverProps:A}=Y({isDisabled:c}),M=((R=e.firstOption)==null?void 0:R.id)===i,l=e.compare(e.value,f),s=pe({ref:T,id:i,role:\"radio\",\"aria-checked\":l?\"true\":\"false\",\"aria-labelledby\":v,\"aria-describedby\":C,\"aria-disabled\":c?!0:void 0,tabIndex:(()=>c?-1:l||!e.containsCheckedOption&&M?0:-1)(),autoFocus:p,onClick:c?void 0:U},D,A),_=x(()=>({checked:l,disabled:c,hover:L,focus:h,autofocus:p}),[l,c,L,h,p]);return $({ourProps:s,theirProps:I,slot:_,defaultTag:He,name:\"Radio\"})}let Ne=K(Ue),We=K(Se),Be=K(we),Ve=Ce,Ke=Ge,Tt=Object.assign(Ne,{Option:We,Radio:Be,Label:Ve,Description:Ke});export{Be as Radio,Tt as RadioGroup,Ke as RadioGroupDescription,Ve as RadioGroupLabel,We as RadioGroupOption};\n","\"use client\";import{useFocusRing as $}from\"@react-aria/focus\";import{useHover as q}from\"@react-aria/interactions\";import i,{Fragment as z,createContext as Q,useCallback as Y,useContext as Z,useMemo as L,useRef as ee,useState as G}from\"react\";import{useActivePress as te}from'../../hooks/use-active-press.js';import{useControllable as oe}from'../../hooks/use-controllable.js';import{useDefaultValue as re}from'../../hooks/use-default-value.js';import{useDisposables as ne}from'../../hooks/use-disposables.js';import{useEvent as m}from'../../hooks/use-event.js';import{useId as le}from'../../hooks/use-id.js';import{useResolveButtonType as ie}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as ae}from'../../hooks/use-sync-refs.js';import{useDisabled as se}from'../../internal/disabled.js';import{FormFields as pe}from'../../internal/form-fields.js';import{useProvidedId as ce}from'../../internal/id.js';import{isDisabledReactIssue7711 as ue}from'../../utils/bugs.js';import{attemptSubmit as de}from'../../utils/form.js';import{forwardRefWithAs as me,mergeProps as fe,render as R}from'../../utils/render.js';import{Description as be,useDescribedBy as he,useDescriptions as Te}from'../description/description.js';import{Keys as A}from'../keyboard.js';import{Label as ye,useLabelledBy as Se,useLabels as we}from'../label/label.js';let S=Q(null);S.displayName=\"GroupContext\";let _e=z;function Pe(n){var a;let[o,p]=G(null),[f,b]=we(),[h,t]=Te(),c=L(()=>({switch:o,setSwitch:p}),[o,p]),T={},y=n;return i.createElement(t,{name:\"Switch.Description\",value:h},i.createElement(b,{name:\"Switch.Label\",value:f,props:{htmlFor:(a=c.switch)==null?void 0:a.id,onClick(u){o&&(u.currentTarget instanceof HTMLLabelElement&&u.preventDefault(),o.click(),o.focus({preventScroll:!0}))}}},i.createElement(S.Provider,{value:c},R({ourProps:T,theirProps:y,slot:{},defaultTag:_e,name:\"Switch.Group\"}))))}let Ee=\"button\";function De(n,o){var C;let p=le(),f=ce(),b=se(),{id:h=f||`headlessui-switch-${p}`,disabled:t=b||!1,checked:c,defaultChecked:T,onChange:y,name:a,value:u,form:F,autoFocus:d=!1,...k}=n,w=Z(S),_=ee(null),H=ae(_,o,w===null?null:w.setSwitch),l=re(T),[s,r]=oe(c,y,l!=null?l:!1),M=ne(),[P,E]=G(!1),D=m(()=>{E(!0),r==null||r(!s),M.nextFrame(()=>{E(!1)})}),U=m(e=>{if(ue(e.currentTarget))return e.preventDefault();e.preventDefault(),D()}),I=m(e=>{e.key===A.Space?(e.preventDefault(),D()):e.key===A.Enter&&de(e.currentTarget)}),B=m(e=>e.preventDefault()),K=Se(),W=he(),{isFocusVisible:g,focusProps:O}=$({autoFocus:d}),{isHovered:v,hoverProps:N}=q({isDisabled:t}),{pressed:x,pressProps:J}=te({disabled:t}),V=L(()=>({checked:s,disabled:t,hover:v,focus:g,active:x,autofocus:d,changing:P}),[s,v,g,x,t,P,d]),X=fe({id:h,ref:H,role:\"switch\",type:ie(n,_),tabIndex:n.tabIndex===-1?0:(C=n.tabIndex)!=null?C:0,\"aria-checked\":s,\"aria-labelledby\":K,\"aria-describedby\":W,disabled:t||void 0,autoFocus:d,onClick:U,onKeyUp:I,onKeyPress:B},O,N,J),j=Y(()=>{if(l!==void 0)return r==null?void 0:r(l)},[r,l]);return i.createElement(i.Fragment,null,a!=null&&i.createElement(pe,{disabled:t,data:{[a]:u||\"on\"},overrides:{type:\"checkbox\",checked:s},form:F,onReset:j}),R({ourProps:X,theirProps:k,slot:V,defaultTag:Ee,name:\"Switch\"}))}let ge=me(De),ve=Pe,xe=ye,Ce=be,qe=Object.assign(ge,{Group:ve,Label:xe,Description:Ce});export{qe as Switch,Ce as SwitchDescription,ve as SwitchGroup,xe as SwitchLabel};\n","import s,{useState as c}from\"react\";import{useIsMounted as m}from'../hooks/use-is-mounted.js';import{Hidden as f,HiddenFeatures as l}from'./hidden.js';function b({onFocus:n}){let[r,o]=c(!0),u=m();return r?s.createElement(f,{as:\"button\",type:\"button\",features:l.Focusable,onFocus:a=>{a.preventDefault();let e,i=50;function t(){if(i--<=0){e&&cancelAnimationFrame(e);return}if(n()){if(cancelAnimationFrame(e),!u.current)return;o(!1);return}e=requestAnimationFrame(t)}e=requestAnimationFrame(t)}}):null}export{b as FocusSentinel};\n","import*as l from\"react\";const s=l.createContext(null);function a(){return{groups:new Map,get(o,e){var i;let t=this.groups.get(o);t||(t=new Map,this.groups.set(o,t));let n=(i=t.get(e))!=null?i:0;t.set(e,n+1);let r=Array.from(t.keys()).indexOf(e);function u(){let c=t.get(e);c>1?t.set(e,c-1):t.delete(e)}return[r,u]}}}function f({children:o}){let e=l.useRef(a());return l.createElement(s.Provider,{value:e},o)}function C(o){let e=l.useContext(s);if(!e)throw new Error(\"You must wrap your component in a <StableCollection>\");let t=l.useId(),[n,r]=e.current.get(o,t);return l.useEffect(()=>r,[]),n}export{f as StableCollection,C as useStableCollectionIndex};\n","\"use client\";import{useFocusRing as te}from\"@react-aria/focus\";import{useHover as de}from\"@react-aria/interactions\";import G,{createContext as re,useContext as ne,useMemo as D,useReducer as ce,useRef as q}from\"react\";import{useActivePress as fe}from'../../hooks/use-active-press.js';import{useEvent as S}from'../../hooks/use-event.js';import{useId as ae}from'../../hooks/use-id.js';import{useIsoMorphicEffect as W}from'../../hooks/use-iso-morphic-effect.js';import{useLatestValue as j}from'../../hooks/use-latest-value.js';import{useResolveButtonType as be}from'../../hooks/use-resolve-button-type.js';import{useSyncRefs as U}from'../../hooks/use-sync-refs.js';import{FocusSentinel as me}from'../../internal/focus-sentinel.js';import{Hidden as Pe}from'../../internal/hidden.js';import{Focus as P,FocusResult as K,focusIn as v,sortByDomNode as H}from'../../utils/focus-management.js';import{match as w}from'../../utils/match.js';import{microTask as ye}from'../../utils/micro-task.js';import{getOwnerDocument as xe}from'../../utils/owner.js';import{RenderFeatures as oe,forwardRefWithAs as O,mergeProps as le,render as N}from'../../utils/render.js';import{StableCollection as ge,useStableCollectionIndex as se}from'../../utils/stable-collection.js';import{Keys as y}from'../keyboard.js';var Ae=(t=>(t[t.Forwards=0]=\"Forwards\",t[t.Backwards=1]=\"Backwards\",t))(Ae||{}),Ee=(o=>(o[o.Less=-1]=\"Less\",o[o.Equal=0]=\"Equal\",o[o.Greater=1]=\"Greater\",o))(Ee||{}),Re=(n=>(n[n.SetSelectedIndex=0]=\"SetSelectedIndex\",n[n.RegisterTab=1]=\"RegisterTab\",n[n.UnregisterTab=2]=\"UnregisterTab\",n[n.RegisterPanel=3]=\"RegisterPanel\",n[n.UnregisterPanel=4]=\"UnregisterPanel\",n))(Re||{});let Le={[0](e,r){var c;let t=H(e.tabs,T=>T.current),o=H(e.panels,T=>T.current),a=t.filter(T=>{var d;return!((d=T.current)!=null&&d.hasAttribute(\"disabled\"))}),n={...e,tabs:t,panels:o};if(r.index<0||r.index>t.length-1){let T=w(Math.sign(r.index-e.selectedIndex),{[-1]:()=>1,[0]:()=>w(Math.sign(r.index),{[-1]:()=>0,[0]:()=>0,[1]:()=>1}),[1]:()=>0});if(a.length===0)return n;let d=w(T,{[0]:()=>t.indexOf(a[0]),[1]:()=>t.indexOf(a[a.length-1])});return{...n,selectedIndex:d===-1?e.selectedIndex:d}}let u=t.slice(0,r.index),x=[...t.slice(r.index),...u].find(T=>a.includes(T));if(!x)return n;let f=(c=t.indexOf(x))!=null?c:e.selectedIndex;return f===-1&&(f=e.selectedIndex),{...n,selectedIndex:f}},[1](e,r){if(e.tabs.includes(r.tab))return e;let t=e.tabs[e.selectedIndex],o=H([...e.tabs,r.tab],n=>n.current),a=e.selectedIndex;return e.info.current.isControlled||(a=o.indexOf(t),a===-1&&(a=e.selectedIndex)),{...e,tabs:o,selectedIndex:a}},[2](e,r){return{...e,tabs:e.tabs.filter(t=>t!==r.tab)}},[3](e,r){return e.panels.includes(r.panel)?e:{...e,panels:H([...e.panels,r.panel],t=>t.current)}},[4](e,r){return{...e,panels:e.panels.filter(t=>t!==r.panel)}}},z=re(null);z.displayName=\"TabsDataContext\";function C(e){let r=ne(z);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,C),t}return r}let V=re(null);V.displayName=\"TabsActionsContext\";function Q(e){let r=ne(V);if(r===null){let t=new Error(`<${e} /> is missing a parent <Tab.Group /> component.`);throw Error.captureStackTrace&&Error.captureStackTrace(t,Q),t}return r}function _e(e,r){return w(r.type,Le,e,r)}let De=\"div\";function Se(e,r){let{defaultIndex:t=0,vertical:o=!1,manual:a=!1,onChange:n,selectedIndex:u=null,..._}=e;const x=o?\"vertical\":\"horizontal\",f=a?\"manual\":\"auto\";let c=u!==null,T=j({isControlled:c}),d=U(r),[i,s]=ce(_e,{info:T,selectedIndex:u!=null?u:t,tabs:[],panels:[]}),F=D(()=>({selectedIndex:i.selectedIndex}),[i.selectedIndex]),M=j(n||(()=>{})),b=j(i.tabs),m=D(()=>({orientation:x,activation:f,...i}),[x,f,i]),E=S(p=>(s({type:1,tab:p}),()=>s({type:2,tab:p}))),I=S(p=>(s({type:3,panel:p}),()=>s({type:4,panel:p}))),g=S(p=>{R.current!==p&&M.current(p),c||s({type:0,index:p})}),R=j(c?e.selectedIndex:i.selectedIndex),J=D(()=>({registerTab:E,registerPanel:I,change:g}),[]);W(()=>{s({type:0,index:u!=null?u:t})},[u]),W(()=>{if(R.current===void 0||i.tabs.length<=0)return;let p=H(i.tabs,L=>L.current);p.some((L,B)=>i.tabs[B]!==L)&&g(p.indexOf(i.tabs[R.current]))});let k={ref:d};return G.createElement(ge,null,G.createElement(V.Provider,{value:J},G.createElement(z.Provider,{value:m},m.tabs.length<=0&&G.createElement(me,{onFocus:()=>{var p,h;for(let L of b.current)if(((p=L.current)==null?void 0:p.tabIndex)===0)return(h=L.current)==null||h.focus(),!0;return!1}}),N({ourProps:k,theirProps:_,slot:F,defaultTag:De,name:\"Tabs\"}))))}let Fe=\"div\";function Ie(e,r){let{orientation:t,selectedIndex:o}=C(\"Tab.List\"),a=U(r),n=D(()=>({selectedIndex:o}),[o]);return N({ourProps:{ref:a,role:\"tablist\",\"aria-orientation\":t},theirProps:e,slot:n,defaultTag:Fe,name:\"Tabs.List\"})}let he=\"button\";function ve(e,r){var Y,Z;let t=ae(),{id:o=`headlessui-tabs-tab-${t}`,disabled:a=!1,autoFocus:n=!1,...u}=e,{orientation:_,activation:x,selectedIndex:f,tabs:c,panels:T}=C(\"Tab\"),d=Q(\"Tab\"),i=C(\"Tab\"),s=q(null),F=U(s,r);W(()=>d.registerTab(s),[d,s]);let M=se(\"tabs\"),b=c.indexOf(s);b===-1&&(b=M);let m=b===f,E=S(l=>{var X;let A=l();if(A===K.Success&&x===\"auto\"){let $=(X=xe(s))==null?void 0:X.activeElement,ee=i.tabs.findIndex(Te=>Te.current===$);ee!==-1&&d.change(ee)}return A}),I=S(l=>{let A=c.map($=>$.current).filter(Boolean);if(l.key===y.Space||l.key===y.Enter){l.preventDefault(),l.stopPropagation(),d.change(b);return}switch(l.key){case y.Home:case y.PageUp:return l.preventDefault(),l.stopPropagation(),E(()=>v(A,P.First));case y.End:case y.PageDown:return l.preventDefault(),l.stopPropagation(),E(()=>v(A,P.Last))}if(E(()=>w(_,{vertical(){return l.key===y.ArrowUp?v(A,P.Previous|P.WrapAround):l.key===y.ArrowDown?v(A,P.Next|P.WrapAround):K.Error},horizontal(){return l.key===y.ArrowLeft?v(A,P.Previous|P.WrapAround):l.key===y.ArrowRight?v(A,P.Next|P.WrapAround):K.Error}}))===K.Success)return l.preventDefault()}),g=q(!1),R=S(()=>{var l;g.current||(g.current=!0,(l=s.current)==null||l.focus({preventScroll:!0}),d.change(b),ye(()=>{g.current=!1}))}),J=S(l=>{l.preventDefault()}),{isFocusVisible:k,focusProps:p}=te({autoFocus:n}),{isHovered:h,hoverProps:L}=de({isDisabled:a}),{pressed:B,pressProps:ie}=fe({disabled:a}),pe=D(()=>({selected:m,hover:h,active:B,focus:k,autofocus:n,disabled:a}),[m,h,k,B,n,a]),ue=le({ref:F,onKeyDown:I,onMouseDown:J,onClick:R,id:o,role:\"tab\",type:be(e,s),\"aria-controls\":(Z=(Y=T[b])==null?void 0:Y.current)==null?void 0:Z.id,\"aria-selected\":m,tabIndex:m?0:-1,disabled:a||void 0,autoFocus:n},p,L,ie);return N({ourProps:ue,theirProps:u,slot:pe,defaultTag:he,name:\"Tabs.Tab\"})}let Ce=\"div\";function Me(e,r){let{selectedIndex:t}=C(\"Tab.Panels\"),o=U(r),a=D(()=>({selectedIndex:t}),[t]);return N({ourProps:{ref:o},theirProps:e,slot:a,defaultTag:Ce,name:\"Tabs.Panels\"})}let Ge=\"div\",Ue=oe.RenderStrategy|oe.Static;function He(e,r){var E,I,g,R;let t=ae(),{id:o=`headlessui-tabs-panel-${t}`,tabIndex:a=0,...n}=e,{selectedIndex:u,tabs:_,panels:x}=C(\"Tab.Panel\"),f=Q(\"Tab.Panel\"),c=q(null),T=U(c,r);W(()=>f.registerPanel(c),[f,c]);let d=se(\"panels\"),i=x.indexOf(c);i===-1&&(i=d);let s=i===u,{isFocusVisible:F,focusProps:M}=te(),b=D(()=>({selected:s,focus:F}),[s,F]),m=le({ref:T,id:o,role:\"tabpanel\",\"aria-labelledby\":(I=(E=_[i])==null?void 0:E.current)==null?void 0:I.id,tabIndex:s?a:-1},M);return!s&&((g=n.unmount)==null||g)&&!((R=n.static)!=null&&R)?G.createElement(Pe,{as:\"span\",\"aria-hidden\":\"true\",...m}):N({ourProps:m,theirProps:n,slot:b,defaultTag:Ge,features:Ue,visible:s,name:\"Tabs.Panel\"})}let we=O(ve),Oe=O(Se),Ne=O(Ie),ke=O(Me),Be=O(He),st=Object.assign(we,{Group:Oe,List:Ne,Panels:ke,Panel:Be});export{st as Tab,Oe as TabGroup,Ne as TabList,Be as TabPanel,ke as TabPanels};\n"],"names":["$f0a04ccd8dbdd83b$export$e5c5a5f917a5871c","$HgANd$react","$8ae05eaa5c114e9c$export$7f54fc3180508a52","fn","ref","$lmaYr$useRef","$lmaYr$useCallback","args","f","$431fbd86ca7dc216$export$b204af158042fbac","el","_el_ownerDocument","$431fbd86ca7dc216$export$f21a1ffae260145a","$c87311424ea30a05$var$testUserAgent","re","_window_navigator_userAgentData","brand","$c87311424ea30a05$var$testPlatform","$c87311424ea30a05$var$cached","res","$c87311424ea30a05$export$9ac100e40613ea10","$c87311424ea30a05$export$a11b0059900ceec8","$6a7db85432448f7f$export$60278871457622de","event","$8a9cb279dc87e130$export$905e7fc544a71f36","type","nativeEvent","$8a9cb279dc87e130$export$715c682d09d639cc","onBlur","stateRef","$6dfIe$useRef","$6dfIe$useLayoutEffect","state","dispatchBlur","$6dfIe$useEffectEvent","e","$6dfIe$useCallback","target","onBlurHandler","_stateRef_current_observer","relatedTargetEl","$a1ea59d68270f0dd$export$f8168d8dd8fd66e6","props","isDisabled","onFocusProp","onBlurProp","onFocusChange","$hf0lj$useCallback","onSyntheticFocus","onFocus","ownerDocument","$hf0lj$getOwnerDocument","$507fabe10e71c6fb$var$currentModality","$507fabe10e71c6fb$var$changeHandlers","$507fabe10e71c6fb$export$d90243b58daecda7","$507fabe10e71c6fb$var$hasEventBeforeFocus","$507fabe10e71c6fb$var$hasBlurredWindowRecently","$507fabe10e71c6fb$var$FOCUS_VISIBLE_INPUT_KEYS","$507fabe10e71c6fb$var$triggerChangeHandlers","modality","handler","$507fabe10e71c6fb$var$isValidKey","$28AnR$isMac","$507fabe10e71c6fb$var$handleKeyboardEvent","$507fabe10e71c6fb$var$handlePointerEvent","$507fabe10e71c6fb$var$handleClickEvent","$28AnR$isVirtualClick","$507fabe10e71c6fb$var$handleFocusEvent","$507fabe10e71c6fb$var$handleWindowBlur","$507fabe10e71c6fb$var$setupGlobalFocusEvents","element","$28AnR$getOwnerWindow","windowObject","documentObject","$28AnR$getOwnerDocument","focus","$507fabe10e71c6fb$var$tearDownWindowFocusTracking","loadListener","$507fabe10e71c6fb$export$2f1888112f558a7d","$507fabe10e71c6fb$export$b9b3dfddab17db27","$507fabe10e71c6fb$var$nonTextInputTypes","$507fabe10e71c6fb$var$isKeyboardFocusEvent","isTextInput","_e_target","IHTMLInputElement","IHTMLTextAreaElement","IHTMLElement","IKeyboardEvent","$507fabe10e71c6fb$export$ec71b4b83ac08ec3","deps","opts","$28AnR$useEffect","$9ab94262bd0047c7$export$420e68273165f4ec","onBlurWithin","onFocusWithin","onFocusWithinChange","$3b9Q0$useRef","$3b9Q0$useCallback","$6179b936705e76d3$var$globalIgnoreEmulatedMouseEvents","$6179b936705e76d3$var$hoverCount","$6179b936705e76d3$var$setGlobalIgnoreEmulatedMouseEvents","$6179b936705e76d3$var$handleGlobalPointerEvent","$6179b936705e76d3$var$setupGlobalTouchEvents","$6179b936705e76d3$export$ae780daf29e6d456","onHoverStart","onHoverChange","onHoverEnd","isHovered","setHovered","$AWxnT$useState","$AWxnT$useRef","$AWxnT$useEffect","hoverProps","triggerHoverEnd","$AWxnT$useMemo","triggerHoverStart","pointerType","$f7dceffc5ad7768b$export$4e328f61c538687f","autoFocus","within","$isWE5$useRef","$isWE5$isFocusVisible","isFocused","setFocused","$isWE5$useState","isFocusVisibleState","setFocusVisible","updateState","$isWE5$useCallback","$isWE5$useFocusVisibleListener","isFocusVisible","focusProps","$isWE5$useFocus","focusWithinProps","$isWE5$useFocusWithin","i","d","t","r","o$5","s","o","u","n","a","p","c","E","P","w","l","m","g","O","M","H","A","N","b","y","k","h","T","R","S","F","x","U","v","D","I","j","B","_","W","C","G","z","L","K","se","ie","Z","Q","$","le","ne","q","ee","oe","J","X","V","Y","ae","Re","te","hasWindow","getNodeName","node","isNode","getWindow","_node$ownerDocument","getDocumentElement","_ref","value","isElement","isHTMLElement","isShadowRoot","isOverflowElement","overflow","overflowX","overflowY","display","getComputedStyle","isTableElement","isTopLayer","selector","isContainingBlock","elementOrCss","webkit","isWebKit","css","getContainingBlock","currentNode","getParentNode","isLastTraversableNode","getNodeScroll","result","getNearestOverflowAncestor","parentNode","getOverflowAncestors","list","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","win","frameElement","getFrameElement","getUserAgent","uaData","version","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","length","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","side","isStart","lr","rl","tb","bt","getOppositeAxisPlacements","flipAlignment","direction","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","width","height","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","name","nextX","nextY","data","reset","detectOverflow","options","_await$platform$isEle","elements","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflows","overflowsData","sides","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","acc","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","size","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","ignoreScrollbarX","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","offsets","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","getViewportRect","visualViewport","visualViewportBased","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cache","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","observeMove","onMove","io","timeoutId","root","cleanup","_io","refresh","skip","threshold","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","entries","ratio","autoUpdate","update","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","detectOverflow$1","offset$1","shift$1","flip$1","size$1","arrow$1","mergedOptions","platformWithCache","computePosition$1","index","useLayoutEffect","useEffect","deepEqual","keys","key","getDPR","roundByDPR","dpr","useLatestRef","React.useRef","useFloating","externalReference","externalFloating","transform","whileElementsMounted","open","setData","React.useState","latestMiddleware","setLatestMiddleware","_reference","_setReference","_floating","_setFloating","setReference","React.useCallback","referenceRef","setFloating","floatingRef","floatingEl","dataRef","hasWhileElementsMounted","whileElementsMountedRef","platformRef","openRef","fullData","isMountedRef","ReactDOM.flushSync","refs","React.useMemo","floatingStyles","initialStyles","SafeReact","React","useInsertionEffect","useSafeInsertionEffect","useEffectEvent","callback","_len","_key","serverHandoffComplete","count","genId","useFloatingId","id","setId","React.useEffect","useReactId","useId","createPubSub","map","_map$get","listener","_map$get2","FloatingNodeContext","React.createContext","FloatingTreeContext","useFloatingParentNodeId","_React$useContext","React.useContext","useFloatingTree","FOCUSABLE_ATTRIBUTE","useFloatingRootContext","onOpenChangeProp","elementsProp","floatingId","events","nested","positionReference","setPositionReference","onOpenChange","reason","nodeId","internalRootContext","rootContext","computedElements","_domReference","setDomReference","_setPositionReference","domReference","domReferenceRef","tree","position","useFloating$1","computedPositionReference","context","ACTIVE_KEY","SELECTED_KEY","mergeProps","userProps","propsList","elementKey","isItem","domUserProps","__","validProps","propsOrGetProps","val","useInteractions","referenceDeps","floatingDeps","itemDeps","getReferenceProps","getFloatingProps","getItemProps","getArgsWithCustomFloatingHeight","inner","listRef","overflowRef","onFallbackChange","innerOffset","minItemsVisible","referenceOverflowThreshold","scrollRef","item","scrollEl","clientTop","floatingIsBordered","scrollElIsBordered","floatingIsScrollEl","nextArgs","refOverflow","diffY","maxHeight","useInnerOffset","enabled","unstable_onChange","onChange","controlledScrollingRef","prevScrollTopRef","initialOverflowRef","onWheel","dY","isAtTop","isAtBottom","remainingScroll","sign","method","scrollDiff","xe","ye","be","ve","ue","pe","ce","j.createElement","fe","t.useState","t.useEffect","Fe","Ne","_e","ge","he","Ce","Te","De","me","Se","Pe","Ee","He","de","Ae","Ie","Xe","Le","Oe","Ge","ke","Me","we","Be","Ue","We","ct","$e","Pt","nt","lt","at","pt","st","ut","it","rt","Ze","Qe","Ve","je","ze","dt","ft","vt","Tt","mt","qe","Je","tt","Ke","Ye","ot","yt","Et","et","gt","St","At","Rt","Ct","no","l.createContext","l.useRef","l.createElement","l.useContext","l.useId","l.useEffect"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96]}