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 }\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\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 [side, alignment] = placement.split('-');\n const isCustomShape = !!d;\n const isVerticalSide = side === 'top' || side === 'bottom';\n const yOffsetProp = staticOffset && alignment === 'end' ? 'bottom' : 'top';\n let xOffsetProp = staticOffset && alignment === 'end' ? 'right' : 'left';\n if (staticOffset && isRTL) {\n xOffsetProp = alignment === 'end' ? 'left' : 'right';\n }\n const arrowX = (arrow == null ? void 0 : arrow.x) != null ? staticOffset || arrow.x : '';\n const arrowY = (arrow == null ? void 0 : arrow.y) != null ? staticOffset || 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 != null ? transform : ''),\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 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 }\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\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 isClickLikeOpenEvent() {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n }\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 {\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 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 closeWithDelay(event, true, 'safe-polygon');\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 closeWithDelay(event);\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]);\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 const body = getDocument(elements.floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n body.style.pointerEvents = 'none';\n performedPointerEventsMutationRef.current = true;\n const floatingEl = elements.floating;\n if (isElement(elements.domReference) && floatingEl) {\n var _tree$nodesRef$curren;\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 ref.style.pointerEvents = 'auto';\n floatingEl.style.pointerEvents = 'auto';\n return () => {\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 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 clearTimeout(restTimeoutRef.current);\n if (pointerTypeRef.current === 'touch') {\n handleMouseMove();\n } else {\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 closeWithDelay(event.nativeEvent, false);\n }\n }), [closeWithDelay]);\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 } = 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 (!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 }, [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 (!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 }, [open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n index(() => {\n if (setCurrentId === NOOP || !open) return;\n setCurrentId(id);\n }, [open, setCurrentId, id]);\n return groupContext;\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 = 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++;\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--;\n if (!lockCount) {\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}\nfunction getClosestTabbableElement(tabbableElements, element, floating) {\n const elementIndex = tabbableElements.indexOf(element);\n function traverseTabbableElements(next) {\n const attr = createAttribute('focus-guard');\n let index = elementIndex + (next ? 1 : 0);\n let currentElement = tabbableElements[index];\n while (currentElement && (!currentElement.isConnected || currentElement.hasAttribute(attr) || contains(floating, currentElement))) {\n if (next) {\n index++;\n } else {\n index--;\n }\n currentElement = tabbableElements[index];\n }\n return currentElement;\n }\n\n // First, try to find the next tabbable element\n const next = traverseTabbableElements(true);\n if (next) {\n return next;\n }\n\n // If we can't find a next tabbable element, try to find the previous one\n return traverseTabbableElements(false);\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 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 = null,\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 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 || focusManagerState != null && focusManagerState.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, focusManagerState == null ? void 0 : focusManagerState.modal]);\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));\n }\n }\n }));\n}\nconst usePortalContext = () => React.useContext(PortalContext);\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 firstElementChild = floating == null ? void 0 : floating.firstElementChild;\n // If the floating element is acting as a positioning wrapper rather than the\n // element that receives aria props, use it as the focus root instead.\n const floatingFocusNode = (firstElementChild == null ? void 0 : firstElementChild.id) === floatingId ? firstElementChild : floating;\n const getTabbableContent = useEffectEvent(function (container) {\n if (container === void 0) {\n container = floatingFocusNode;\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 (floatingFocusNode && type === 'floating') {\n return floatingFocusNode;\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(floatingFocusNode, activeElement(getDocument(floatingFocusNode))) && 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 === floatingFocusNode && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floatingFocusNode);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [disabled, domReference, floatingFocusNode, 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(floatingFocusNode)) === getDocument(floatingFocusNode).body) {\n // Let `FloatingPortal` effect knows that focus is still inside the\n // floating tree.\n if (isHTMLElement(floatingFocusNode)) {\n floatingFocusNode == null || floatingFocusNode.focus();\n }\n const prevTabbableIndex = tabbableIndexRef.current;\n const tabbableContent = getTabbableContent();\n const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusNode;\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);\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, floatingFocusNode, 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(floatingFocusNode)) return;\n const doc = getDocument(floatingFocusNode);\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(floatingFocusNode);\n const initialFocusValue = initialFocusRef.current;\n const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floatingFocusNode;\n const focusAlreadyInsideFloatingEl = contains(floatingFocusNode, previouslyFocusedElement);\n if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floatingFocusNode\n });\n }\n });\n }, [disabled, open, floatingFocusNode, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n index(() => {\n if (disabled || !floatingFocusNode) return;\n let preventReturnFocusScroll = false;\n const doc = getDocument(floatingFocusNode);\n const previouslyFocusedElement = activeElement(doc);\n const contextData = dataRef.current;\n let openEvent = contextData.openEvent;\n const domReference = refs.domReference.current;\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 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 returnContextElement = domReference || previouslyFocusedElement;\n const tabbableElements = tabbable(getDocument(returnContextElement).body, getTabbableOptions());\n\n // Wait for the return element to get potentially disconnected before\n // checking.\n queueMicrotask(() => {\n let returnElement = getPreviouslyFocusedElement();\n if (!returnElement && isHTMLElement(returnContextElement) && floating) {\n returnElement = getClosestTabbableElement(tabbableElements, returnContextElement, floating);\n }\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 });\n };\n }, [disabled, floating, floatingFocusNode, returnFocusRef, dataRef, refs, events, tree, nodeId]);\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 (!floatingFocusNode) return;\n if (typeof MutationObserver !== 'function') return;\n if (ignoreInitialFocus) return;\n const handleMutation = () => {\n const tabIndex = floatingFocusNode.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 floatingFocusNode.setAttribute('tabindex', '0');\n }\n } else if (tabIndex !== '-1') {\n floatingFocusNode.setAttribute('tabindex', '-1');\n }\n };\n handleMutation();\n const observer = new MutationObserver(handleMutation);\n observer.observe(floatingFocusNode, {\n childList: true,\n subtree: true,\n attributes: true\n });\n return () => {\n observer.disconnect();\n };\n }, [disabled, floating, floatingFocusNode, 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\nconst activeLocks = /*#__PURE__*/new Set();\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 ``, 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 const lockId = useId();\n index(() => {\n if (!lockScroll) return;\n activeLocks.add(lockId);\n const isIOS = /iP(hone|ad|od)|iOS/.test(getPlatform());\n const bodyStyle = document.body.style;\n // RTL 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 activeLocks.delete(lockId);\n if (activeLocks.size === 0) {\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 };\n }, [lockId, 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 } = 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 ? 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 ? 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, 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 closeOnEscapeKeyDown = useEffectEvent(event => {\n var _dataRef$current$floa;\n if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\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 (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 function onScroll(event) {\n onOpenChange(false, event, 'ancestor-scroll');\n }\n const doc = getDocument(elements.floating);\n escapeKey && doc.addEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\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 escapeKey && doc.removeEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n outsidePress && doc.removeEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\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.reference;\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 }),\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 parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEffectEvent(unstable_onNavigate);\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 floatingRef = useLatestRef(elements.floating);\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(floatingRef.current, {\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, floatingRef, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n const commonOnKeyDown = useEffectEvent(event => {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\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 === floatingRef.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) && !virtual) {\n elements.domReference.focus();\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\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 // 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 indexRef.current = cellMap[getGridNavigatedIndex({\n current: cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null)\n }, {\n event,\n orientation,\n loop,\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 === ARROW_RIGHT ? 'tr' : 'tl'),\n stopEvent: true\n })]; // navigated cell will never be nullish\n\n onNavigate(indexRef.current);\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.indexOf('Arrow') === 0;\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 (isArrowKey && 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 && 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 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 el = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, el.scrollHeight), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = Math.max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const maxHeight = Math.max(0, el.scrollHeight - diffY - Math.max(0, overflow.bottom));\n el.style.maxHeight = maxHeight + \"px\";\n el.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n if (el.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current.length - 1) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold) {\n ReactDOM.flushSync(() => onFallbackChange(true));\n } else {\n ReactDOM.flushSync(() => onFallbackChange(false));\n }\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, el.offsetHeight), 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"],"names":["hasWindow","getNodeName","node","isNode","getWindow","_node$ownerDocument","getDocumentElement","_ref","value","isElement","isHTMLElement","isShadowRoot","isOverflowElement","element","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","activeElement","doc","_activeElement","contains","parent","child","rootNode","next","getPlatform","uaData","getUserAgent","brand","version","isVirtualClick","event","isAndroid","isVirtualPointerEvent","isJSDOM","isSafari","re","isMac","isMouseLikePointerType","pointerType","strict","values","isReactEvent","isRootElement","getDocument","isEventTargetWithin","e","getTarget","TYPEABLE_SELECTOR","isTypeableElement","stopEvent","isTypeableCombobox","sides","alignments","placements","acc","side","min","max","round","floor","createCoords","v","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","isStart","lr","rl","tb","bt","getOppositeAxisPlacements","flipAlignment","direction","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","x","y","width","height","computeCoordsFromPlacement","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","i","name","fn","nextX","nextY","data","reset","detectOverflow","state","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","getPlacementList","autoAlignment","allowedPlacements","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","detectOverflowOptions","placements$1","currentIndex","currentPlacement","alignmentSides","currentOverflows","allOverflows","nextPlacement","placementsSortedByMostSpace","d","a","b","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","_overflowsData$filter2","currentSideAxis","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","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","el","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","root","cleanup","_io","refresh","skip","threshold","elementRectForRootMargin","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","offset$1","autoPlacement$1","shift$1","flip$1","arrow$1","mergedOptions","platformWithCache","computePosition$1","index","useLayoutEffect","useEffect","deepEqual","keys","key","getDPR","roundByDPR","dpr","useLatestRef","ref","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","isRef","arrow$2","deps","useMergeRefs","SafeReact","React","useInsertionEffect","useSafeInsertionEffect","useEffectEvent","callback","_len","args","_key","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","isDifferentRow","cols","prevRow","isIndexOutOfBounds","listRef","getMinIndex","disabledIndices","findNonDisabledIndex","getMaxIndex","_temp","startingIndex","decrement","amount","isDisabled","getGridNavigatedIndex","elementsRef","orientation","loop","minIndex","maxIndex","prevIndex","stop","col","maxCol","lastRow","buildCellMap","sizes","dense","cellMap","startIndex","_ref2","itemPlaced","targetCells","j","cell","getCellIndexOfCorner","corner","firstCellIndex","sizeItem","getCellIndices","indices","cellIndex","rafId","enqueueFocus","preventScroll","cancelPrevious","sync","exec","sortByDocumentPosition","position","areMapsEqual","map1","map2","FloatingListContext","FloatingList","props","children","labelsRef","map","setMap","register","prevMap","unregister","newMap","React.createElement","useListItem","label","React.useContext","index$1","setIndex","componentRef","_node$textContent","isLabelDefined","_extends","target","source","serverHandoffComplete","count","genId","useFloatingId","id","setId","React.useEffect","useReactId","useId","createPubSub","_map$get","handler","listener","_map$get2","l","FloatingNodeContext","React.createContext","FloatingTreeContext","useFloatingParentNodeId","_React$useContext","useFloatingTree","createAttribute","useRef","safePolygonIdentifier","getDelay","prop","useHover","context","onOpenChange","events","enabled","delay","handleClose","mouseOnly","restMs","move","tree","parentId","handleCloseRef","delayRef","pointerTypeRef","timeoutRef","handlerRef","restTimeoutRef","blockMouseMoveRef","performedPointerEventsMutationRef","unbindMouseMoveRef","isHoverOpen","_dataRef$current$open","type","onLeave","closeWithDelay","runElseBranch","reason","closeDelay","cleanupMouseMoveHandler","clearPointerEvents","isClickLikeOpenEvent","onMouseEnter","openDelay","onMouseLeave","onScrollMouseLeave","_elements$floating","_elements$floating2","_handleCloseRef$curre","_tree$nodesRef$curren","parentFloating","setPointerRef","nativeEvent","handleMouseMove","getAncestors","nodes","_nodes$find","allAncestors","currentParentId","getChildren","allChildren","_node$context","currentChildren","_currentChildren","n","_node$context2","getDeepestNode","deepestNodeId","maxDepth","findDeepest","nodeId","depth","counterMap","uncontrolledElementsSet","markerMap","lockCount","supportsInert","unwrapHost","correctElements","targets","correctedTarget","applyAttributeToOthers","uncorrectedAvoidElements","ariaHidden","inert","markerName","controlAttribute","avoidElements","elementsToKeep","elementsToStop","hiddenElements","markerCounter","keep","deep","attr","alreadyHidden","counterValue","markerValue","markOthers","getTabbableOptions","getTabbableIn","container","allTabbable","tabbable","activeIndex","getNextTabbable","getPreviousTabbable","isOutsideEvent","containerElement","relatedTarget","disableFocusInside","enableFocusInside","tabindex","getClosestTabbableElement","tabbableElements","elementIndex","traverseTabbableElements","currentElement","HIDDEN_STYLES","setActiveElementOnTab","FocusGuard","React.forwardRef","role","setRole","restProps","PortalContext","useFloatingPortalNode","uniqueId","portalContext","usePortalContext","portalNode","setPortalNode","portalNodeRef","existingIdRoot","subRoot","idWrapper","FloatingPortal","preserveTabOrder","focusManagerState","setFocusManagerState","beforeOutsideRef","afterOutsideRef","beforeInsideRef","afterInsideRef","shouldRenderGuards","onFocus","_beforeInsideRef$curr","prevTabbable","ReactDOM.createPortal","_afterInsideRef$curre","nextTabbable","LIST_LIMIT","previouslyFocusedElements","addPreviouslyFocusedElement","tabbableEl","isTabbable","tabbableChild","getPreviouslyFocusedElement","VisuallyHiddenDismiss","FloatingFocusManager","disabled","order","_guards","initialFocus","returnFocus","restoreFocus","modal","visuallyHiddenDismiss","closeOnFocusOut","floatingId","domReference","ignoreInitialFocus","isUntrappedTypeableCombobox","guards","orderRef","initialFocusRef","returnFocusRef","startDismissButtonRef","endDismissButtonRef","preventReturnFocusRef","isPointerDownRef","tabbableIndexRef","isInsidePortal","firstElementChild","floatingFocusNode","getTabbableContent","getTabbableElements","content","onKeyDown","els","handleFocusIn","tabbableIndex","handlePointerDown","handleFocusOutside","movedToUnrelatedNode","_node$context3","_node$context4","prevTabbableIndex","tabbableContent","nodeToFocus","_portalContext$portal","portalNodes","insideElements","previouslyFocusedElement","focusableElements","initialFocusValue","elToFocus","focusAlreadyInsideFloatingEl","preventReturnFocusScroll","openEvent","nested","activeEl","isFocusInsideFloatingTree","_node$context5","returnContextElement","returnElement","handleMutation","tabIndex","observer","renderDismissButton","location","React.Fragment","_portalContext$before","_portalContext$afterO","activeLocks","FloatingOverlay","lockScroll","rest","lockId","isIOS","bodyStyle","paddingProp","scrollbarWidth","scrollX","scrollY","_window$visualViewpor","_window$visualViewpor2","offsetLeft","offsetTop","isButtonTarget","isSpaceIgnored","useClick","eventOption","toggle","ignoreMouse","keyboardHandlers","didKeyDownRef","bubbleHandlerKeys","captureHandlerKeys","normalizeProp","normalizable","_normalizable$escapeK","_normalizable$outside","useDismiss","escapeKey","unstable_outsidePress","outsidePressEvent","referencePress","referencePressEvent","bubbles","capture","outsidePressFn","outsidePress","insideReactTreeRef","endedOrStartedInsideRef","escapeKeyBubbles","outsidePressBubbles","escapeKeyCapture","outsidePressCapture","closeOnEscapeKeyDown","_dataRef$current$floa","shouldDismiss","_child$context","closeOnEscapeKeyDownCapture","_getTarget2","_getTarget","closeOnPressOutside","_dataRef$current$floa2","insideReactTree","endedOrStartedInside","inertSelector","markers","targetRootAncestor","nextParent","marker","canScrollX","canScrollY","xCond","targetIsInsideChildren","_child$context2","closeOnPressOutsideCapture","_getTarget4","_getTarget3","onScroll","_doc$defaultView","useFloatingRootContext","onOpenChangeProp","elementsProp","positionReference","setPositionReference","internalRootContext","rootContext","computedElements","_domReference","setDomReference","_setPositionReference","domReferenceRef","useFloating$1","computedPositionReference","useFocus","visibleOnly","blockFocusRef","keyboardModalityRef","onBlur","movedToFocusGuard","ACTIVE_KEY","SELECTED_KEY","mergeProps","userProps","propsList","elementKey","isItem","domUserProps","_","__","validProps","propsOrGetProps","val","useInteractions","referenceDeps","floatingDeps","itemDeps","getReferenceProps","getFloatingProps","getItemProps","isPreventScrollSupported","doSwitch","vertical","horizontal","isMainOrientationKey","isMainOrientationToEndKey","isCrossOrientationOpenKey","isCrossOrientationCloseKey","useListNavigation","unstable_onNavigate","selectedIndex","allowEscape","virtual","focusItemOnOpen","focusItemOnHover","openOnArrowKeyDown","scrollItemIntoView","virtualItemRef","itemSizes","onNavigate","focusItemOnOpenRef","indexRef","keyRef","isPointerModalityRef","previousOnNavigateRef","previousMountedRef","previousOpenRef","forceSyncFocus","forceScrollIntoViewRef","disabledIndicesRef","latestOpenRef","scrollItemIntoViewRef","selectedIndexRef","activeId","setActiveId","virtualId","setVirtualId","focusItem","forceScrollIntoView","runFocus","item","initialItem","waitedItem","scrollIntoViewOptions","runs","waitForListPopulated","treeContainsActiveEl","handleVirtualFocus","hasActiveIndex","syncCurrentTarget","currentTarget","_ref3","_ref4","commonOnKeyDown","minGridIndex","maxGridIndex","foundIndex","itemIndex","ariaActiveDescendantProp","checkVirtualMouse","checkVirtualPointer","isArrowKey","isCrossOpenKey","isCrossCloseKey","isMainKey","isNavigationKey","deepestNode","eventObject","_deepestNode$context","_deepestNode$context2","isCurrentTarget","dispatchItem","_deepestNode$context$","componentRoleToAriaRoleMap","useRole","_componentRoleToAriaR","ariaRole","referenceId","isNested","floatingProps","active","selected","commonProps","useTypeahead","unstable_onMatch","unstable_onTypingChange","findMatch","resetMs","ignoreKeys","timeoutIdRef","stringRef","prevIndexRef","matchIndexRef","onMatch","onTypingChange","findMatchRef","ignoreKeysRef","setTypingChange","getMatchingIndex","orderedList","string","str","text","listContent","_text$","_text$2","isPointInPolygon","point","polygon","isInside","xi","yi","xj","yj","safePolygon","buffer","blockPointerEvents","requireIntent","hasLanded","lastX","lastY","lastCursorTime","getCursorSpeed","currentTime","elapsedTime","deltaX","deltaY","speed","onClose","close","clientX","clientY","clientPoint","isLeave","isOverFloatingEl","isOverReferenceEl","refRect","cursorLeaveFromRight","cursorLeaveFromBottom","isOverReferenceRect","isFloatingWider","isFloatingTaller","right","bottom","rectPoly","getPolygon","cursorPointOne","cursorPointTwo","commonPoints","cursorSpeed"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}