{"version":3,"file":"static/chunks/19935397-5dfd3de7968956a9.js","mappings":"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","sources":["webpack://_N_E/./MyStichtingOpenComponents/node_modules/.pnpm/@floating-ui+react@0.26.28_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@floating-ui/react/dist/floating-ui.react.esm.js"],"sourcesContent":["import * as React from 'react';\nimport { useLayoutEffect, useEffect, useRef } from 'react';\nimport { stopEvent, getDocument, isMouseLikePointerType, contains, activeElement, isSafari, isTypeableCombobox, isVirtualClick, isVirtualPointerEvent, getTarget, getPlatform, isTypeableElement, isReactEvent, isRootElement, isEventTargetWithin, isMac, getUserAgent } from '@floating-ui/react/utils';\nimport { floor, evaluate, max, min, round } from '@floating-ui/utils';\nimport { getComputedStyle, isElement, getNodeName, isHTMLElement, getWindow, isLastTraversableNode, getParentNode, isWebKit } from '@floating-ui/utils/dom';\nimport { tabbable, isTabbable } from 'tabbable';\nimport * as ReactDOM from 'react-dom';\nimport { getOverflowAncestors, useFloating as useFloating$1, offset, detectOverflow } from '@floating-ui/react-dom';\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, getOverflowAncestors, hide, inline, limitShift, offset, platform, shift, size } from '@floating-ui/react-dom';\n\n/**\n * Merges an array of refs into a single memoized callback ref or `null`.\n * @see https://floating-ui.com/docs/react-utils#usemergerefs\n */\nfunction useMergeRefs(refs) {\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return value => {\n refs.forEach(ref => {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref != null) {\n ref.current = value;\n }\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}\n\n// https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379\nconst SafeReact = {\n ...React\n};\n\nconst useInsertionEffect = SafeReact.useInsertionEffect;\nconst useSafeInsertionEffect = useInsertionEffect || (fn => fn());\nfunction useEffectEvent(callback) {\n const ref = React.useRef(() => {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error('Cannot call an event handler while rendering.');\n }\n });\n useSafeInsertionEffect(() => {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return ref.current == null ? void 0 : ref.current(...args);\n }, []);\n}\n\nconst ARROW_UP = 'ArrowUp';\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_LEFT = 'ArrowLeft';\nconst ARROW_RIGHT = 'ArrowRight';\nfunction isDifferentRow(index, cols, prevRow) {\n return Math.floor(index / cols) !== prevRow;\n}\nfunction isIndexOutOfBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\nfunction getMinIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxIndex(listRef, disabledIndices) {\n return findNonDisabledIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction findNonDisabledIndex(listRef, _temp) {\n let {\n startingIndex = -1,\n decrement = false,\n disabledIndices,\n amount = 1\n } = _temp === void 0 ? {} : _temp;\n const list = listRef.current;\n let index = startingIndex;\n do {\n index += decrement ? -amount : amount;\n } while (index >= 0 && index <= list.length - 1 && isDisabled(list, index, disabledIndices));\n return index;\n}\nfunction getGridNavigatedIndex(elementsRef, _ref) {\n let {\n event,\n orientation,\n loop,\n rtl,\n cols,\n disabledIndices,\n minIndex,\n maxIndex,\n prevIndex,\n stopEvent: stop = false\n } = _ref;\n let nextIndex = prevIndex;\n if (event.key === ARROW_UP) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: nextIndex,\n amount: cols,\n decrement: true,\n disabledIndices\n });\n if (loop && (prevIndex - cols < minIndex || nextIndex < 0)) {\n const col = prevIndex % cols;\n const maxCol = maxIndex % cols;\n const offset = maxIndex - (maxCol - col);\n if (maxCol === col) {\n nextIndex = maxIndex;\n } else {\n nextIndex = maxCol > col ? offset : offset - cols;\n }\n }\n }\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === ARROW_DOWN) {\n stop && stopEvent(event);\n if (prevIndex === -1) {\n nextIndex = minIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n amount: cols,\n disabledIndices\n });\n if (loop && prevIndex + cols > maxIndex) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex % cols - cols,\n amount: cols,\n disabledIndices\n });\n }\n }\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n nextIndex = prevIndex;\n }\n }\n\n // Remains on the same row/column.\n if (orientation === 'both') {\n const prevRow = floor(prevIndex / cols);\n if (event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT)) {\n stop && stopEvent(event);\n if (prevIndex % cols !== cols - 1) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n disabledIndices\n });\n if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n }\n if (isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n if (event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT)) {\n stop && stopEvent(event);\n if (prevIndex % cols !== 0) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex,\n decrement: true,\n disabledIndices\n });\n if (loop && isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n } else if (loop) {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex + (cols - prevIndex % cols),\n decrement: true,\n disabledIndices\n });\n }\n if (isDifferentRow(nextIndex, cols, prevRow)) {\n nextIndex = prevIndex;\n }\n }\n const lastRow = floor(maxIndex / cols) === prevRow;\n if (isIndexOutOfBounds(elementsRef, nextIndex)) {\n if (loop && lastRow) {\n nextIndex = event.key === (rtl ? ARROW_RIGHT : ARROW_LEFT) ? maxIndex : findNonDisabledIndex(elementsRef, {\n startingIndex: prevIndex - prevIndex % cols - 1,\n disabledIndices\n });\n } else {\n nextIndex = prevIndex;\n }\n }\n }\n return nextIndex;\n}\n\n/** For each cell index, gets the item index that occupies that cell */\nfunction buildCellMap(sizes, cols, dense) {\n const cellMap = [];\n let startIndex = 0;\n sizes.forEach((_ref2, index) => {\n let {\n width,\n height\n } = _ref2;\n if (width > cols) {\n if (process.env.NODE_ENV !== \"production\") {\n throw new Error(\"[Floating UI]: Invalid grid - item width at index \" + index + \" is greater than grid columns\");\n }\n }\n let itemPlaced = false;\n if (dense) {\n startIndex = 0;\n }\n while (!itemPlaced) {\n const targetCells = [];\n for (let i = 0; i < width; i++) {\n for (let j = 0; j < height; j++) {\n targetCells.push(startIndex + i + j * cols);\n }\n }\n if (startIndex % cols + width <= cols && targetCells.every(cell => cellMap[cell] == null)) {\n targetCells.forEach(cell => {\n cellMap[cell] = index;\n });\n itemPlaced = true;\n } else {\n startIndex++;\n }\n }\n });\n\n // convert into a non-sparse array\n return [...cellMap];\n}\n\n/** Gets cell index of an item's corner or -1 when index is -1. */\nfunction getCellIndexOfCorner(index, sizes, cellMap, cols, corner) {\n if (index === -1) return -1;\n const firstCellIndex = cellMap.indexOf(index);\n const sizeItem = sizes[index];\n switch (corner) {\n case 'tl':\n return firstCellIndex;\n case 'tr':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + sizeItem.width - 1;\n case 'bl':\n if (!sizeItem) {\n return firstCellIndex;\n }\n return firstCellIndex + (sizeItem.height - 1) * cols;\n case 'br':\n return cellMap.lastIndexOf(index);\n }\n}\n\n/** Gets all cell indices that correspond to the specified indices */\nfunction getCellIndices(indices, cellMap) {\n return cellMap.flatMap((index, cellIndex) => indices.includes(index) ? [cellIndex] : []);\n}\nfunction isDisabled(list, index, disabledIndices) {\n if (disabledIndices) {\n return disabledIndices.includes(index);\n }\n const element = list[index];\n return element == null || element.hasAttribute('disabled') || element.getAttribute('aria-disabled') === 'true';\n}\n\nvar index = typeof document !== 'undefined' ? useLayoutEffect : useEffect;\n\nfunction sortByDocumentPosition(a, b) {\n const position = a.compareDocumentPosition(b);\n if (position & Node.DOCUMENT_POSITION_FOLLOWING || position & Node.DOCUMENT_POSITION_CONTAINED_BY) {\n return -1;\n }\n if (position & Node.DOCUMENT_POSITION_PRECEDING || position & Node.DOCUMENT_POSITION_CONTAINS) {\n return 1;\n }\n return 0;\n}\nfunction areMapsEqual(map1, map2) {\n if (map1.size !== map2.size) {\n return false;\n }\n for (const [key, value] of map1.entries()) {\n if (value !== map2.get(key)) {\n return false;\n }\n }\n return true;\n}\nconst FloatingListContext = /*#__PURE__*/React.createContext({\n register: () => {},\n unregister: () => {},\n map: /*#__PURE__*/new Map(),\n elementsRef: {\n current: []\n }\n});\n/**\n * Provides context for a list of items within the floating element.\n * @see https://floating-ui.com/docs/FloatingList\n */\nfunction FloatingList(props) {\n const {\n children,\n elementsRef,\n labelsRef\n } = props;\n const [map, setMap] = React.useState(() => new Map());\n const register = React.useCallback(node => {\n setMap(prevMap => new Map(prevMap).set(node, null));\n }, []);\n const unregister = React.useCallback(node => {\n setMap(prevMap => {\n const map = new Map(prevMap);\n map.delete(node);\n return map;\n });\n }, []);\n index(() => {\n const newMap = new Map(map);\n const nodes = Array.from(newMap.keys()).sort(sortByDocumentPosition);\n nodes.forEach((node, index) => {\n newMap.set(node, index);\n });\n if (!areMapsEqual(map, newMap)) {\n setMap(newMap);\n }\n }, [map]);\n return /*#__PURE__*/React.createElement(FloatingListContext.Provider, {\n value: React.useMemo(() => ({\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n }), [register, unregister, map, elementsRef, labelsRef])\n }, children);\n}\n/**\n * Used to register a list item and its index (DOM position) in the\n * `FloatingList`.\n * @see https://floating-ui.com/docs/FloatingList#uselistitem\n */\nfunction useListItem(props) {\n if (props === void 0) {\n props = {};\n }\n const {\n label\n } = props;\n const {\n register,\n unregister,\n map,\n elementsRef,\n labelsRef\n } = React.useContext(FloatingListContext);\n const [index$1, setIndex] = React.useState(null);\n const componentRef = React.useRef(null);\n const ref = React.useCallback(node => {\n componentRef.current = node;\n if (index$1 !== null) {\n elementsRef.current[index$1] = node;\n if (labelsRef) {\n var _node$textContent;\n const isLabelDefined = label !== undefined;\n labelsRef.current[index$1] = isLabelDefined ? label : (_node$textContent = node == null ? void 0 : node.textContent) != null ? _node$textContent : null;\n }\n }\n }, [index$1, elementsRef, labelsRef, label]);\n index(() => {\n const node = componentRef.current;\n if (node) {\n register(node);\n return () => {\n unregister(node);\n };\n }\n }, [register, unregister]);\n index(() => {\n const index = componentRef.current ? map.get(componentRef.current) : null;\n if (index != null) {\n setIndex(index);\n }\n }, [map]);\n return React.useMemo(() => ({\n ref,\n index: index$1 == null ? -1 : index$1\n }), [index$1, ref]);\n}\n\nfunction renderJsx(render, computedProps) {\n if (typeof render === 'function') {\n return render(computedProps);\n }\n if (render) {\n return /*#__PURE__*/React.cloneElement(render, computedProps);\n }\n return /*#__PURE__*/React.createElement(\"div\", computedProps);\n}\nconst CompositeContext = /*#__PURE__*/React.createContext({\n activeIndex: 0,\n onNavigate: () => {}\n});\nconst horizontalKeys = [ARROW_LEFT, ARROW_RIGHT];\nconst verticalKeys = [ARROW_UP, ARROW_DOWN];\nconst allKeys = [...horizontalKeys, ...verticalKeys];\n\n/**\n * Creates a single tab stop whose items are navigated by arrow keys, which\n * provides list navigation outside of floating element contexts.\n *\n * This is useful to enable navigation of a list of items that aren’t part of a\n * floating element. A menubar is an example of a composite, with each reference\n * element being an item.\n * @see https://floating-ui.com/docs/Composite\n */\nconst Composite = /*#__PURE__*/React.forwardRef(function Composite(props, forwardedRef) {\n const {\n render,\n orientation = 'both',\n loop = true,\n rtl = false,\n cols = 1,\n disabledIndices,\n activeIndex: externalActiveIndex,\n onNavigate: externalSetActiveIndex,\n itemSizes,\n dense = false,\n ...domProps\n } = props;\n const [internalActiveIndex, internalSetActiveIndex] = React.useState(0);\n const activeIndex = externalActiveIndex != null ? externalActiveIndex : internalActiveIndex;\n const onNavigate = useEffectEvent(externalSetActiveIndex != null ? externalSetActiveIndex : internalSetActiveIndex);\n const elementsRef = React.useRef([]);\n const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n const contextValue = React.useMemo(() => ({\n activeIndex,\n onNavigate\n }), [activeIndex, onNavigate]);\n const isGrid = cols > 1;\n function handleKeyDown(event) {\n if (!allKeys.includes(event.key)) return;\n let nextIndex = activeIndex;\n const minIndex = getMinIndex(elementsRef, disabledIndices);\n const maxIndex = getMaxIndex(elementsRef, disabledIndices);\n const horizontalEndKey = rtl ? ARROW_LEFT : ARROW_RIGHT;\n const horizontalStartKey = rtl ? ARROW_RIGHT : ARROW_LEFT;\n if (isGrid) {\n const sizes = itemSizes || Array.from({\n length: elementsRef.current.length\n }, () => ({\n width: 1,\n height: 1\n }));\n // To calculate movements on the grid, we use hypothetical cell indices\n // as if every item was 1x1, then convert back to real indices.\n const cellMap = buildCellMap(sizes, cols, dense);\n const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(elementsRef.current, index, disabledIndices));\n // last enabled index\n const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(elementsRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);\n const maybeNextIndex = cellMap[getGridNavigatedIndex({\n current: cellMap.map(itemIndex => itemIndex ? elementsRef.current[itemIndex] : null)\n }, {\n event,\n orientation,\n loop,\n rtl,\n cols,\n // treat undefined (empty grid spaces) as disabled indices so we\n // don't end up in them\n disabledIndices: getCellIndices([...(disabledIndices || elementsRef.current.map((_, index) => isDisabled(elementsRef.current, index) ? index : undefined)), undefined], cellMap),\n minIndex: minGridIndex,\n maxIndex: maxGridIndex,\n prevIndex: getCellIndexOfCorner(activeIndex > maxIndex ? minIndex : activeIndex, sizes, cellMap, cols,\n // use a corner matching the edge closest to the direction we're\n // moving in so we don't end up in the same item. Prefer\n // top/left over bottom/right.\n event.key === ARROW_DOWN ? 'bl' : event.key === horizontalEndKey ? 'tr' : 'tl')\n })];\n if (maybeNextIndex != null) {\n nextIndex = maybeNextIndex;\n }\n }\n const toEndKeys = {\n horizontal: [horizontalEndKey],\n vertical: [ARROW_DOWN],\n both: [horizontalEndKey, ARROW_DOWN]\n }[orientation];\n const toStartKeys = {\n horizontal: [horizontalStartKey],\n vertical: [ARROW_UP],\n both: [horizontalStartKey, ARROW_UP]\n }[orientation];\n const preventedKeys = isGrid ? allKeys : {\n horizontal: horizontalKeys,\n vertical: verticalKeys,\n both: allKeys\n }[orientation];\n if (nextIndex === activeIndex && [...toEndKeys, ...toStartKeys].includes(event.key)) {\n if (loop && nextIndex === maxIndex && toEndKeys.includes(event.key)) {\n nextIndex = minIndex;\n } else if (loop && nextIndex === minIndex && toStartKeys.includes(event.key)) {\n nextIndex = maxIndex;\n } else {\n nextIndex = findNonDisabledIndex(elementsRef, {\n startingIndex: nextIndex,\n decrement: toStartKeys.includes(event.key),\n disabledIndices\n });\n }\n }\n if (nextIndex !== activeIndex && !isIndexOutOfBounds(elementsRef, nextIndex)) {\n var _elementsRef$current$;\n event.stopPropagation();\n if (preventedKeys.includes(event.key)) {\n event.preventDefault();\n }\n onNavigate(nextIndex);\n (_elementsRef$current$ = elementsRef.current[nextIndex]) == null || _elementsRef$current$.focus();\n }\n }\n const computedProps = {\n ...domProps,\n ...renderElementProps,\n ref: forwardedRef,\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n onKeyDown(e) {\n domProps.onKeyDown == null || domProps.onKeyDown(e);\n renderElementProps.onKeyDown == null || renderElementProps.onKeyDown(e);\n handleKeyDown(e);\n }\n };\n return /*#__PURE__*/React.createElement(CompositeContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(FloatingList, {\n elementsRef: elementsRef\n }, renderJsx(render, computedProps)));\n});\n/**\n * @see https://floating-ui.com/docs/Composite\n */\nconst CompositeItem = /*#__PURE__*/React.forwardRef(function CompositeItem(props, forwardedRef) {\n const {\n render,\n ...domProps\n } = props;\n const renderElementProps = render && typeof render !== 'function' ? render.props : {};\n const {\n activeIndex,\n onNavigate\n } = React.useContext(CompositeContext);\n const {\n ref,\n index\n } = useListItem();\n const mergedRef = useMergeRefs([ref, forwardedRef, renderElementProps.ref]);\n const isActive = activeIndex === index;\n const computedProps = {\n ...domProps,\n ...renderElementProps,\n ref: mergedRef,\n tabIndex: isActive ? 0 : -1,\n 'data-active': isActive ? '' : undefined,\n onFocus(e) {\n domProps.onFocus == null || domProps.onFocus(e);\n renderElementProps.onFocus == null || renderElementProps.onFocus(e);\n onNavigate(index);\n }\n };\n return renderJsx(render, computedProps);\n});\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nlet serverHandoffComplete = false;\nlet count = 0;\nconst genId = () => // Ensure the id is unique with multiple independent versions of Floating UI\n// on serverHandoffComplete ? genId() : undefined);\n index(() => {\n if (id == null) {\n setId(genId());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n React.useEffect(() => {\n serverHandoffComplete = true;\n }, []);\n return id;\n}\nconst useReactId = SafeReact.useId;\n\n/**\n * Uses React 18's built-in `useId()` when available, or falls back to a\n * slightly less performant (requiring a double render) implementation for\n * earlier React versions.\n * @see https://floating-ui.com/docs/react-utils#useid\n */\nconst useId = useReactId || useFloatingId;\n\nlet devMessageSet;\nif (process.env.NODE_ENV !== \"production\") {\n devMessageSet = /*#__PURE__*/new Set();\n}\nfunction warn() {\n var _devMessageSet;\n for (var _len = arguments.length, messages = new Array(_len), _key = 0; _key < _len; _key++) {\n messages[_key] = arguments[_key];\n }\n const message = \"Floating UI: \" + messages.join(' ');\n if (!((_devMessageSet = devMessageSet) != null && _devMessageSet.has(message))) {\n var _devMessageSet2;\n (_devMessageSet2 = devMessageSet) == null || _devMessageSet2.add(message);\n console.warn(message);\n }\n}\nfunction error() {\n var _devMessageSet3;\n for (var _len2 = arguments.length, messages = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n messages[_key2] = arguments[_key2];\n }\n const message = \"Floating UI: \" + messages.join(' ');\n if (!((_devMessageSet3 = devMessageSet) != null && _devMessageSet3.has(message))) {\n var _devMessageSet4;\n (_devMessageSet4 = devMessageSet) == null || _devMessageSet4.add(message);\n console.error(message);\n }\n}\n\n/**\n * Renders a pointing arrow triangle.\n * @see https://floating-ui.com/docs/FloatingArrow\n */\nconst FloatingArrow = /*#__PURE__*/React.forwardRef(function FloatingArrow(props, ref) {\n const {\n context: {\n placement,\n elements: {\n floating\n },\n middlewareData: {\n arrow,\n shift\n }\n },\n width = 14,\n height = 7,\n tipRadius = 0,\n strokeWidth = 0,\n staticOffset,\n stroke,\n d,\n style: {\n transform,\n ...restStyle\n } = {},\n ...rest\n } = props;\n if (process.env.NODE_ENV !== \"production\") {\n if (!ref) {\n warn('The `ref` prop is required for `FloatingArrow`.');\n }\n }\n const clipPathId = useId();\n const [isRTL, setIsRTL] = React.useState(false);\n\n // https://github.com/floating-ui/floating-ui/issues/2932\n index(() => {\n if (!floating) return;\n const isRTL = getComputedStyle(floating).direction === 'rtl';\n if (isRTL) {\n setIsRTL(true);\n }\n }, [floating]);\n if (!floating) {\n return null;\n }\n const [side, alignment] = placement.split('-');\n const isVerticalSide = side === 'top' || side === 'bottom';\n let computedStaticOffset = staticOffset;\n if (isVerticalSide && shift != null && shift.x || !isVerticalSide && shift != null && shift.y) {\n computedStaticOffset = null;\n }\n\n // Strokes must be double the border width, this ensures the stroke's width\n // works as you'd expect.\n const computedStrokeWidth = strokeWidth * 2;\n const halfStrokeWidth = computedStrokeWidth / 2;\n const svgX = width / 2 * (tipRadius / -8 + 1);\n const svgY = height / 2 * tipRadius / 4;\n const isCustomShape = !!d;\n const yOffsetProp = computedStaticOffset && alignment === 'end' ? 'bottom' : 'top';\n let xOffsetProp = computedStaticOffset && alignment === 'end' ? 'right' : 'left';\n if (computedStaticOffset && isRTL) {\n xOffsetProp = alignment === 'end' ? 'left' : 'right';\n }\n const arrowX = (arrow == null ? void 0 : arrow.x) != null ? computedStaticOffset || arrow.x : '';\n const arrowY = (arrow == null ? void 0 : arrow.y) != null ? computedStaticOffset || arrow.y : '';\n const dValue = d || 'M0,0' + (\" H\" + width) + (\" L\" + (width - svgX) + \",\" + (height - svgY)) + (\" Q\" + width / 2 + \",\" + height + \" \" + svgX + \",\" + (height - svgY)) + ' Z';\n const rotation = {\n top: isCustomShape ? 'rotate(180deg)' : '',\n left: isCustomShape ? 'rotate(90deg)' : 'rotate(-90deg)',\n bottom: isCustomShape ? '' : 'rotate(180deg)',\n right: isCustomShape ? 'rotate(-90deg)' : 'rotate(90deg)'\n }[side];\n return /*#__PURE__*/React.createElement(\"svg\", _extends({}, rest, {\n \"aria-hidden\": true,\n ref: ref,\n width: isCustomShape ? width : width + computedStrokeWidth,\n height: width,\n viewBox: \"0 0 \" + width + \" \" + (height > width ? height : width),\n style: {\n position: 'absolute',\n pointerEvents: 'none',\n [xOffsetProp]: arrowX,\n [yOffsetProp]: arrowY,\n [side]: isVerticalSide || isCustomShape ? '100%' : \"calc(100% - \" + computedStrokeWidth / 2 + \"px)\",\n transform: [rotation, transform].filter(t => !!t).join(' '),\n ...restStyle\n }\n }), computedStrokeWidth > 0 && /*#__PURE__*/React.createElement(\"path\", {\n clipPath: \"url(#\" + clipPathId + \")\",\n fill: \"none\",\n stroke: stroke\n // Account for the stroke on the fill path rendered below.\n ,\n strokeWidth: computedStrokeWidth + (d ? 0 : 1),\n d: dValue\n }), /*#__PURE__*/React.createElement(\"path\", {\n stroke: computedStrokeWidth && !d ? rest.fill : 'none',\n d: dValue\n }), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: clipPathId\n }, /*#__PURE__*/React.createElement(\"rect\", {\n x: -halfStrokeWidth,\n y: halfStrokeWidth * (isCustomShape ? -1 : 1),\n width: width + computedStrokeWidth,\n height: width\n })));\n});\n\nfunction createPubSub() {\n const map = new Map();\n return {\n emit(event, data) {\n var _map$get;\n (_map$get = map.get(event)) == null || _map$get.forEach(handler => handler(data));\n },\n on(event, listener) {\n map.set(event, [...(map.get(event) || []), listener]);\n },\n off(event, listener) {\n var _map$get2;\n map.set(event, ((_map$get2 = map.get(event)) == null ? void 0 : _map$get2.filter(l => l !== listener)) || []);\n }\n };\n}\n\nconst FloatingNodeContext = /*#__PURE__*/React.createContext(null);\nconst FloatingTreeContext = /*#__PURE__*/React.createContext(null);\n\n/**\n * Returns the parent node id for nested floating elements, if available.\n * Returns `null` for top-level floating elements.\n */\nconst useFloatingParentNodeId = () => {\n var _React$useContext;\n return ((_React$useContext = React.useContext(FloatingNodeContext)) == null ? void 0 : _React$useContext.id) || null;\n};\n\n/**\n * Returns the nearest floating tree context, if available.\n */\nconst useFloatingTree = () => React.useContext(FloatingTreeContext);\n\n/**\n * Registers a node into the `FloatingTree`, returning its id.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction useFloatingNodeId(customParentId) {\n const id = useId();\n const tree = useFloatingTree();\n const reactParentId = useFloatingParentNodeId();\n const parentId = customParentId || reactParentId;\n index(() => {\n const node = {\n id,\n parentId\n };\n tree == null || tree.addNode(node);\n return () => {\n tree == null || tree.removeNode(node);\n };\n }, [tree, id, parentId]);\n return id;\n}\n/**\n * Provides parent node context for nested floating elements.\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingNode(props) {\n const {\n children,\n id\n } = props;\n const parentId = useFloatingParentNodeId();\n return /*#__PURE__*/React.createElement(FloatingNodeContext.Provider, {\n value: React.useMemo(() => ({\n id,\n parentId\n }), [id, parentId])\n }, children);\n}\n/**\n * Provides context for nested floating elements when they are not children of\n * each other on the DOM.\n * This is not necessary in all cases, except when there must be explicit communication between parent and child floating elements. It is necessary for:\n * - The `bubbles` option in the `useDismiss()` Hook\n * - Nested virtual list navigation\n * - Nested floating elements that each open on hover\n * - Custom communication between parent and child floating elements\n * @see https://floating-ui.com/docs/FloatingTree\n */\nfunction FloatingTree(props) {\n const {\n children\n } = props;\n const nodesRef = React.useRef([]);\n const addNode = React.useCallback(node => {\n nodesRef.current = [...nodesRef.current, node];\n }, []);\n const removeNode = React.useCallback(node => {\n nodesRef.current = nodesRef.current.filter(n => n !== node);\n }, []);\n const events = React.useState(() => createPubSub())[0];\n return /*#__PURE__*/React.createElement(FloatingTreeContext.Provider, {\n value: React.useMemo(() => ({\n nodesRef,\n addNode,\n removeNode,\n events\n }), [addNode, removeNode, events])\n }, children);\n}\n\nfunction createAttribute(name) {\n return \"data-floating-ui-\" + name;\n}\n\nfunction useLatestRef(value) {\n const ref = useRef(value);\n index(() => {\n ref.current = value;\n });\n return ref;\n}\n\nconst safePolygonIdentifier = /*#__PURE__*/createAttribute('safe-polygon');\nfunction getDelay(value, prop, pointerType) {\n if (pointerType && !isMouseLikePointerType(pointerType)) {\n return 0;\n }\n if (typeof value === 'number') {\n return value;\n }\n return value == null ? void 0 : value[prop];\n}\n/**\n * Opens the floating element while hovering over the reference element, like\n * CSS `:hover`.\n * @see https://floating-ui.com/docs/useHover\n */\nfunction useHover(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n events,\n elements\n } = context;\n const {\n enabled = true,\n delay = 0,\n handleClose = null,\n mouseOnly = false,\n restMs = 0,\n move = true\n } = props;\n const tree = useFloatingTree();\n const parentId = useFloatingParentNodeId();\n const handleCloseRef = useLatestRef(handleClose);\n const delayRef = useLatestRef(delay);\n const openRef = useLatestRef(open);\n const pointerTypeRef = React.useRef();\n const timeoutRef = React.useRef(-1);\n const handlerRef = React.useRef();\n const restTimeoutRef = React.useRef(-1);\n const blockMouseMoveRef = React.useRef(true);\n const performedPointerEventsMutationRef = React.useRef(false);\n const unbindMouseMoveRef = React.useRef(() => {});\n const restTimeoutPendingRef = React.useRef(false);\n const isHoverOpen = React.useCallback(() => {\n var _dataRef$current$open;\n const type = (_dataRef$current$open = dataRef.current.openEvent) == null ? void 0 : _dataRef$current$open.type;\n return (type == null ? void 0 : type.includes('mouse')) && type !== 'mousedown';\n }, [dataRef]);\n\n // When closing before opening, clear the delay timeouts to cancel it\n // from showing.\n React.useEffect(() => {\n if (!enabled) return;\n function onOpenChange(_ref) {\n let {\n open\n } = _ref;\n if (!open) {\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n blockMouseMoveRef.current = true;\n restTimeoutPendingRef.current = false;\n }\n }\n events.on('openchange', onOpenChange);\n return () => {\n events.off('openchange', onOpenChange);\n };\n }, [enabled, events]);\n React.useEffect(() => {\n if (!enabled) return;\n if (!handleCloseRef.current) return;\n if (!open) return;\n function onLeave(event) {\n if (isHoverOpen()) {\n onOpenChange(false, event, 'hover');\n }\n }\n const html = getDocument(elements.floating).documentElement;\n html.addEventListener('mouseleave', onLeave);\n return () => {\n html.removeEventListener('mouseleave', onLeave);\n };\n }, [elements.floating, open, onOpenChange, enabled, handleCloseRef, isHoverOpen]);\n const closeWithDelay = React.useCallback(function (event, runElseBranch, reason) {\n if (runElseBranch === void 0) {\n runElseBranch = true;\n }\n if (reason === void 0) {\n reason = 'hover';\n }\n const closeDelay = getDelay(delayRef.current, 'close', pointerTypeRef.current);\n if (closeDelay && !handlerRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(() => onOpenChange(false, event, reason), closeDelay);\n } else if (runElseBranch) {\n clearTimeout(timeoutRef.current);\n onOpenChange(false, event, reason);\n }\n }, [delayRef, onOpenChange]);\n const cleanupMouseMoveHandler = useEffectEvent(() => {\n unbindMouseMoveRef.current();\n handlerRef.current = undefined;\n });\n const clearPointerEvents = useEffectEvent(() => {\n if (performedPointerEventsMutationRef.current) {\n const body = getDocument(elements.floating).body;\n body.style.pointerEvents = '';\n body.removeAttribute(safePolygonIdentifier);\n performedPointerEventsMutationRef.current = false;\n }\n });\n const isClickLikeOpenEvent = useEffectEvent(() => {\n return dataRef.current.openEvent ? ['click', 'mousedown'].includes(dataRef.current.openEvent.type) : false;\n });\n\n // Registering the mouse events on the reference directly to bypass React's\n // delegation system. If the cursor was on a disabled element and then entered\n // the reference (no gap), `mouseenter` doesn't fire in the delegation system.\n React.useEffect(() => {\n if (!enabled) return;\n function onMouseEnter(event) {\n clearTimeout(timeoutRef.current);\n blockMouseMoveRef.current = false;\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current) || restMs > 0 && !getDelay(delayRef.current, 'open')) {\n return;\n }\n const openDelay = getDelay(delayRef.current, 'open', pointerTypeRef.current);\n if (openDelay) {\n timeoutRef.current = window.setTimeout(() => {\n if (!openRef.current) {\n onOpenChange(true, event, 'hover');\n }\n }, openDelay);\n } else if (!open) {\n onOpenChange(true, event, 'hover');\n }\n }\n function onMouseLeave(event) {\n if (isClickLikeOpenEvent()) return;\n unbindMouseMoveRef.current();\n const doc = getDocument(elements.floating);\n clearTimeout(restTimeoutRef.current);\n restTimeoutPendingRef.current = false;\n if (handleCloseRef.current && dataRef.current.floatingContext) {\n // Prevent clearing `onScrollMouseLeave` timeout.\n if (!open) {\n clearTimeout(timeoutRef.current);\n }\n handlerRef.current = handleCloseRef.current({\n ...dataRef.current.floatingContext,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event, true, 'safe-polygon');\n }\n }\n });\n const handler = handlerRef.current;\n doc.addEventListener('mousemove', handler);\n unbindMouseMoveRef.current = () => {\n doc.removeEventListener('mousemove', handler);\n };\n return;\n }\n\n // Allow interactivity without `safePolygon` on touch devices. With a\n // pointer, a short close delay is an alternative, so it should work\n // consistently.\n const shouldClose = pointerTypeRef.current === 'touch' ? !contains(elements.floating, event.relatedTarget) : true;\n if (shouldClose) {\n closeWithDelay(event);\n }\n }\n\n // Ensure the floating element closes after scrolling even if the pointer\n // did not move.\n // https://github.com/floating-ui/floating-ui/discussions/1692\n function onScrollMouseLeave(event) {\n if (isClickLikeOpenEvent()) return;\n if (!dataRef.current.floatingContext) return;\n handleCloseRef.current == null || handleCloseRef.current({\n ...dataRef.current.floatingContext,\n tree,\n x: event.clientX,\n y: event.clientY,\n onClose() {\n clearPointerEvents();\n cleanupMouseMoveHandler();\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event);\n }\n }\n })(event);\n }\n if (isElement(elements.domReference)) {\n var _elements$floating;\n const ref = elements.domReference;\n open && ref.addEventListener('mouseleave', onScrollMouseLeave);\n (_elements$floating = elements.floating) == null || _elements$floating.addEventListener('mouseleave', onScrollMouseLeave);\n move && ref.addEventListener('mousemove', onMouseEnter, {\n once: true\n });\n ref.addEventListener('mouseenter', onMouseEnter);\n ref.addEventListener('mouseleave', onMouseLeave);\n return () => {\n var _elements$floating2;\n open && ref.removeEventListener('mouseleave', onScrollMouseLeave);\n (_elements$floating2 = elements.floating) == null || _elements$floating2.removeEventListener('mouseleave', onScrollMouseLeave);\n move && ref.removeEventListener('mousemove', onMouseEnter);\n ref.removeEventListener('mouseenter', onMouseEnter);\n ref.removeEventListener('mouseleave', onMouseLeave);\n };\n }\n }, [elements, enabled, context, mouseOnly, restMs, move, closeWithDelay, cleanupMouseMoveHandler, clearPointerEvents, onOpenChange, open, openRef, tree, delayRef, handleCloseRef, dataRef, isClickLikeOpenEvent]);\n\n // Block pointer-events of every element other than the reference and floating\n // while the floating element is open and has a `handleClose` handler. Also\n // handles nested floating elements.\n // https://github.com/floating-ui/floating-ui/issues/1722\n index(() => {\n var _handleCloseRef$curre;\n if (!enabled) return;\n if (open && (_handleCloseRef$curre = handleCloseRef.current) != null && _handleCloseRef$curre.__options.blockPointerEvents && isHoverOpen()) {\n performedPointerEventsMutationRef.current = true;\n const floatingEl = elements.floating;\n if (isElement(elements.domReference) && floatingEl) {\n var _tree$nodesRef$curren;\n const body = getDocument(elements.floating).body;\n body.setAttribute(safePolygonIdentifier, '');\n const ref = elements.domReference;\n const parentFloating = tree == null || (_tree$nodesRef$curren = tree.nodesRef.current.find(node => node.id === parentId)) == null || (_tree$nodesRef$curren = _tree$nodesRef$curren.context) == null ? void 0 : _tree$nodesRef$curren.elements.floating;\n if (parentFloating) {\n parentFloating.style.pointerEvents = '';\n }\n body.style.pointerEvents = 'none';\n ref.style.pointerEvents = 'auto';\n floatingEl.style.pointerEvents = 'auto';\n return () => {\n body.style.pointerEvents = '';\n ref.style.pointerEvents = '';\n floatingEl.style.pointerEvents = '';\n };\n }\n }\n }, [enabled, open, parentId, elements, tree, handleCloseRef, isHoverOpen]);\n index(() => {\n if (!open) {\n pointerTypeRef.current = undefined;\n restTimeoutPendingRef.current = false;\n cleanupMouseMoveHandler();\n clearPointerEvents();\n }\n }, [open, cleanupMouseMoveHandler, clearPointerEvents]);\n React.useEffect(() => {\n return () => {\n cleanupMouseMoveHandler();\n clearTimeout(timeoutRef.current);\n clearTimeout(restTimeoutRef.current);\n clearPointerEvents();\n };\n }, [enabled, elements.domReference, cleanupMouseMoveHandler, clearPointerEvents]);\n const reference = React.useMemo(() => {\n function setPointerRef(event) {\n pointerTypeRef.current = event.pointerType;\n }\n return {\n onPointerDown: setPointerRef,\n onPointerEnter: setPointerRef,\n onMouseMove(event) {\n const {\n nativeEvent\n } = event;\n function handleMouseMove() {\n if (!blockMouseMoveRef.current && !openRef.current) {\n onOpenChange(true, nativeEvent, 'hover');\n }\n }\n if (mouseOnly && !isMouseLikePointerType(pointerTypeRef.current)) {\n return;\n }\n if (open || restMs === 0) {\n return;\n }\n\n // Ignore insignificant movements to account for tremors.\n if (restTimeoutPendingRef.current && event.movementX ** 2 + event.movementY ** 2 < 2) {\n return;\n }\n clearTimeout(restTimeoutRef.current);\n if (pointerTypeRef.current === 'touch') {\n handleMouseMove();\n } else {\n restTimeoutPendingRef.current = true;\n restTimeoutRef.current = window.setTimeout(handleMouseMove, restMs);\n }\n }\n };\n }, [mouseOnly, onOpenChange, open, openRef, restMs]);\n const floating = React.useMemo(() => ({\n onMouseEnter() {\n clearTimeout(timeoutRef.current);\n },\n onMouseLeave(event) {\n if (!isClickLikeOpenEvent()) {\n closeWithDelay(event.nativeEvent, false);\n }\n }\n }), [closeWithDelay, isClickLikeOpenEvent]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}\n\nconst NOOP = () => {};\nconst FloatingDelayGroupContext = /*#__PURE__*/React.createContext({\n delay: 0,\n initialDelay: 0,\n timeoutMs: 0,\n currentId: null,\n setCurrentId: NOOP,\n setState: NOOP,\n isInstantPhase: false\n});\n\n/**\n * @deprecated\n * Use the return value of `useDelayGroup()` instead.\n */\nconst useDelayGroupContext = () => React.useContext(FloatingDelayGroupContext);\n/**\n * Provides context for a group of floating elements that should share a\n * `delay`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction FloatingDelayGroup(props) {\n const {\n children,\n delay,\n timeoutMs = 0\n } = props;\n const [state, setState] = React.useReducer((prev, next) => ({\n ...prev,\n ...next\n }), {\n delay,\n timeoutMs,\n initialDelay: delay,\n currentId: null,\n isInstantPhase: false\n });\n const initialCurrentIdRef = React.useRef(null);\n const setCurrentId = React.useCallback(currentId => {\n setState({\n currentId\n });\n }, []);\n index(() => {\n if (state.currentId) {\n if (initialCurrentIdRef.current === null) {\n initialCurrentIdRef.current = state.currentId;\n } else if (!state.isInstantPhase) {\n setState({\n isInstantPhase: true\n });\n }\n } else {\n if (state.isInstantPhase) {\n setState({\n isInstantPhase: false\n });\n }\n initialCurrentIdRef.current = null;\n }\n }, [state.currentId, state.isInstantPhase]);\n return /*#__PURE__*/React.createElement(FloatingDelayGroupContext.Provider, {\n value: React.useMemo(() => ({\n ...state,\n setState,\n setCurrentId\n }), [state, setCurrentId])\n }, children);\n}\n/**\n * Enables grouping when called inside a component that's a child of a\n * `FloatingDelayGroup`.\n * @see https://floating-ui.com/docs/FloatingDelayGroup\n */\nfunction useDelayGroup(context, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n open,\n onOpenChange,\n floatingId\n } = context;\n const {\n id: optionId,\n enabled = true\n } = options;\n const id = optionId != null ? optionId : floatingId;\n const groupContext = useDelayGroupContext();\n const {\n currentId,\n setCurrentId,\n initialDelay,\n setState,\n timeoutMs\n } = groupContext;\n index(() => {\n if (!enabled) return;\n if (!currentId) return;\n setState({\n delay: {\n open: 1,\n close: getDelay(initialDelay, 'close')\n }\n });\n if (currentId !== id) {\n onOpenChange(false);\n }\n }, [enabled, id, onOpenChange, setState, currentId, initialDelay]);\n index(() => {\n function unset() {\n onOpenChange(false);\n setState({\n delay: initialDelay,\n currentId: null\n });\n }\n if (!enabled) return;\n if (!currentId) return;\n if (!open && currentId === id) {\n if (timeoutMs) {\n const timeout = window.setTimeout(unset, timeoutMs);\n return () => {\n clearTimeout(timeout);\n };\n }\n unset();\n }\n }, [enabled, open, setState, currentId, id, onOpenChange, initialDelay, timeoutMs]);\n index(() => {\n if (!enabled) return;\n if (setCurrentId === NOOP || !open) return;\n setCurrentId(id);\n }, [enabled, open, setCurrentId, id]);\n return groupContext;\n}\n\nlet rafId = 0;\nfunction enqueueFocus(el, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n preventScroll = false,\n cancelPrevious = true,\n sync = false\n } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n const exec = () => el == null ? void 0 : el.focus({\n preventScroll\n });\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\n\nfunction getAncestors(nodes, id) {\n var _nodes$find;\n let allAncestors = [];\n let currentParentId = (_nodes$find = nodes.find(node => node.id === id)) == null ? void 0 : _nodes$find.parentId;\n while (currentParentId) {\n const currentNode = nodes.find(node => node.id === currentParentId);\n currentParentId = currentNode == null ? void 0 : currentNode.parentId;\n if (currentNode) {\n allAncestors = allAncestors.concat(currentNode);\n }\n }\n return allAncestors;\n}\n\nfunction getChildren(nodes, id) {\n let allChildren = nodes.filter(node => {\n var _node$context;\n return node.parentId === id && ((_node$context = node.context) == null ? void 0 : _node$context.open);\n });\n let currentChildren = allChildren;\n while (currentChildren.length) {\n currentChildren = nodes.filter(node => {\n var _currentChildren;\n return (_currentChildren = currentChildren) == null ? void 0 : _currentChildren.some(n => {\n var _node$context2;\n return node.parentId === n.id && ((_node$context2 = node.context) == null ? void 0 : _node$context2.open);\n });\n });\n allChildren = allChildren.concat(currentChildren);\n }\n return allChildren;\n}\nfunction getDeepestNode(nodes, id) {\n let deepestNodeId;\n let maxDepth = -1;\n function findDeepest(nodeId, depth) {\n if (depth > maxDepth) {\n deepestNodeId = nodeId;\n maxDepth = depth;\n }\n const children = getChildren(nodes, nodeId);\n children.forEach(child => {\n findDeepest(child.id, depth + 1);\n });\n }\n findDeepest(id, 0);\n return nodes.find(node => node.id === deepestNodeId);\n}\n\n// Modified to add conditional `aria-hidden` support:\n// https://github.com/theKashey/aria-hidden/blob/9220c8f4a4fd35f63bee5510a9f41a37264382d4/src/index.ts\nlet counterMap = /*#__PURE__*/new WeakMap();\nlet uncontrolledElementsSet = /*#__PURE__*/new WeakSet();\nlet markerMap = {};\nlet lockCount$1 = 0;\nconst supportsInert = () => typeof HTMLElement !== 'undefined' && 'inert' in HTMLElement.prototype;\nconst unwrapHost = node => node && (node.host || unwrapHost(node.parentNode));\nconst correctElements = (parent, targets) => targets.map(target => {\n if (parent.contains(target)) {\n return target;\n }\n const correctedTarget = unwrapHost(target);\n if (parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n return null;\n}).filter(x => x != null);\nfunction applyAttributeToOthers(uncorrectedAvoidElements, body, ariaHidden, inert) {\n const markerName = 'data-floating-ui-inert';\n const controlAttribute = inert ? 'inert' : ariaHidden ? 'aria-hidden' : null;\n const avoidElements = correctElements(body, uncorrectedAvoidElements);\n const elementsToKeep = new Set();\n const elementsToStop = new Set(avoidElements);\n const hiddenElements = [];\n if (!markerMap[markerName]) {\n markerMap[markerName] = new WeakMap();\n }\n const markerCounter = markerMap[markerName];\n avoidElements.forEach(keep);\n deep(body);\n elementsToKeep.clear();\n function keep(el) {\n if (!el || elementsToKeep.has(el)) {\n return;\n }\n elementsToKeep.add(el);\n el.parentNode && keep(el.parentNode);\n }\n function deep(parent) {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n [].forEach.call(parent.children, node => {\n if (getNodeName(node) === 'script') return;\n if (elementsToKeep.has(node)) {\n deep(node);\n } else {\n const attr = controlAttribute ? node.getAttribute(controlAttribute) : null;\n const alreadyHidden = attr !== null && attr !== 'false';\n const counterValue = (counterMap.get(node) || 0) + 1;\n const markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenElements.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledElementsSet.add(node);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, '');\n }\n if (!alreadyHidden && controlAttribute) {\n node.setAttribute(controlAttribute, 'true');\n }\n }\n });\n }\n lockCount$1++;\n return () => {\n hiddenElements.forEach(element => {\n const counterValue = (counterMap.get(element) || 0) - 1;\n const markerValue = (markerCounter.get(element) || 0) - 1;\n counterMap.set(element, counterValue);\n markerCounter.set(element, markerValue);\n if (!counterValue) {\n if (!uncontrolledElementsSet.has(element) && controlAttribute) {\n element.removeAttribute(controlAttribute);\n }\n uncontrolledElementsSet.delete(element);\n }\n if (!markerValue) {\n element.removeAttribute(markerName);\n }\n });\n lockCount$1--;\n if (!lockCount$1) {\n counterMap = new WeakMap();\n counterMap = new WeakMap();\n uncontrolledElementsSet = new WeakSet();\n markerMap = {};\n }\n };\n}\nfunction markOthers(avoidElements, ariaHidden, inert) {\n if (ariaHidden === void 0) {\n ariaHidden = false;\n }\n if (inert === void 0) {\n inert = false;\n }\n const body = getDocument(avoidElements[0]).body;\n return applyAttributeToOthers(avoidElements.concat(Array.from(body.querySelectorAll('[aria-live]'))), body, ariaHidden, inert);\n}\n\nconst getTabbableOptions = () => ({\n getShadowRoot: true,\n displayCheck:\n // JSDOM does not support the `tabbable` library. To solve this we can\n // check if `ResizeObserver` is a real function (not polyfilled), which\n // determines if the current environment is JSDOM-like.\n typeof ResizeObserver === 'function' && ResizeObserver.toString().includes('[native code]') ? 'full' : 'none'\n});\nfunction getTabbableIn(container, direction) {\n const allTabbable = tabbable(container, getTabbableOptions());\n if (direction === 'prev') {\n allTabbable.reverse();\n }\n const activeIndex = allTabbable.indexOf(activeElement(getDocument(container)));\n const nextTabbableElements = allTabbable.slice(activeIndex + 1);\n return nextTabbableElements[0];\n}\nfunction getNextTabbable() {\n return getTabbableIn(document.body, 'next');\n}\nfunction getPreviousTabbable() {\n return getTabbableIn(document.body, 'prev');\n}\nfunction isOutsideEvent(event, container) {\n const containerElement = container || event.currentTarget;\n const relatedTarget = event.relatedTarget;\n return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction disableFocusInside(container) {\n const tabbableElements = tabbable(container, getTabbableOptions());\n tabbableElements.forEach(element => {\n element.dataset.tabindex = element.getAttribute('tabindex') || '';\n element.setAttribute('tabindex', '-1');\n });\n}\nfunction enableFocusInside(container) {\n const elements = container.querySelectorAll('[data-tabindex]');\n elements.forEach(element => {\n const tabindex = element.dataset.tabindex;\n delete element.dataset.tabindex;\n if (tabindex) {\n element.setAttribute('tabindex', tabindex);\n } else {\n element.removeAttribute('tabindex');\n }\n });\n}\n\n// See Diego Haz's Sandbox for making this logic work well on Safari/iOS:\n// https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/FocusTrap.tsx\n\nconst HIDDEN_STYLES = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: 0,\n position: 'fixed',\n whiteSpace: 'nowrap',\n width: '1px',\n top: 0,\n left: 0\n};\nlet timeoutId;\nfunction setActiveElementOnTab(event) {\n if (event.key === 'Tab') {\n event.target;\n clearTimeout(timeoutId);\n }\n}\nconst FocusGuard = /*#__PURE__*/React.forwardRef(function FocusGuard(props, ref) {\n const [role, setRole] = React.useState();\n index(() => {\n if (isSafari()) {\n // Unlike other screen readers such as NVDA and JAWS, the virtual cursor\n // on VoiceOver does trigger the onFocus event, so we can use the focus\n // trap element. On Safari, only buttons trigger the onFocus event.\n // NB: \"group\" role in the Sandbox no longer appears to work, must be a\n // button role.\n setRole('button');\n }\n document.addEventListener('keydown', setActiveElementOnTab);\n return () => {\n document.removeEventListener('keydown', setActiveElementOnTab);\n };\n }, []);\n const restProps = {\n ref,\n tabIndex: 0,\n // Role is only for VoiceOver\n role,\n 'aria-hidden': role ? undefined : true,\n [createAttribute('focus-guard')]: '',\n style: HIDDEN_STYLES\n };\n return /*#__PURE__*/React.createElement(\"span\", _extends({}, props, restProps));\n});\n\nconst PortalContext = /*#__PURE__*/React.createContext(null);\nconst attr = /*#__PURE__*/createAttribute('portal');\n/**\n * @see https://floating-ui.com/docs/FloatingPortal#usefloatingportalnode\n */\nfunction useFloatingPortalNode(props) {\n if (props === void 0) {\n props = {};\n }\n const {\n id,\n root\n } = props;\n const uniqueId = useId();\n const portalContext = usePortalContext();\n const [portalNode, setPortalNode] = React.useState(null);\n const portalNodeRef = React.useRef(null);\n index(() => {\n return () => {\n portalNode == null || portalNode.remove();\n // Allow the subsequent layout effects to create a new node on updates.\n // The portal node will still be cleaned up on unmount.\n // https://github.com/floating-ui/floating-ui/issues/2454\n queueMicrotask(() => {\n portalNodeRef.current = null;\n });\n };\n }, [portalNode]);\n index(() => {\n // Wait for the uniqueId to be generated before creating the portal node in\n // React <18 (using `useFloatingId` instead of the native `useId`).\n // https://github.com/floating-ui/floating-ui/issues/2778\n if (!uniqueId) return;\n if (portalNodeRef.current) return;\n const existingIdRoot = id ? document.getElementById(id) : null;\n if (!existingIdRoot) return;\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n existingIdRoot.appendChild(subRoot);\n portalNodeRef.current = subRoot;\n setPortalNode(subRoot);\n }, [id, uniqueId]);\n index(() => {\n // Wait for the root to exist before creating the portal node. The root must\n // be stored in state, not a ref, for this to work reactively.\n if (root === null) return;\n if (!uniqueId) return;\n if (portalNodeRef.current) return;\n let container = root || (portalContext == null ? void 0 : portalContext.portalNode);\n if (container && !isElement(container)) container = container.current;\n container = container || document.body;\n let idWrapper = null;\n if (id) {\n idWrapper = document.createElement('div');\n idWrapper.id = id;\n container.appendChild(idWrapper);\n }\n const subRoot = document.createElement('div');\n subRoot.id = uniqueId;\n subRoot.setAttribute(attr, '');\n container = idWrapper || container;\n container.appendChild(subRoot);\n portalNodeRef.current = subRoot;\n setPortalNode(subRoot);\n }, [id, root, uniqueId, portalContext]);\n return portalNode;\n}\n/**\n * Portals the floating element into a given container element — by default,\n * outside of the app root and into the body.\n * This is necessary to ensure the floating element can appear outside any\n * potential parent containers that cause clipping (such as `overflow: hidden`),\n * while retaining its location in the React tree.\n * @see https://floating-ui.com/docs/FloatingPortal\n */\nfunction FloatingPortal(props) {\n const {\n children,\n id,\n root,\n preserveTabOrder = true\n } = props;\n const portalNode = useFloatingPortalNode({\n id,\n root\n });\n const [focusManagerState, setFocusManagerState] = React.useState(null);\n const beforeOutsideRef = React.useRef(null);\n const afterOutsideRef = React.useRef(null);\n const beforeInsideRef = React.useRef(null);\n const afterInsideRef = React.useRef(null);\n const modal = focusManagerState == null ? void 0 : focusManagerState.modal;\n const open = focusManagerState == null ? void 0 : focusManagerState.open;\n const shouldRenderGuards =\n // The FocusManager and therefore floating element are currently open/\n // rendered.\n !!focusManagerState &&\n // Guards are only for non-modal focus management.\n !focusManagerState.modal &&\n // Don't render if unmount is transitioning.\n focusManagerState.open && preserveTabOrder && !!(root || portalNode);\n\n // https://codesandbox.io/s/tabbable-portal-f4tng?file=/src/TabbablePortal.tsx\n React.useEffect(() => {\n if (!portalNode || !preserveTabOrder || modal) {\n return;\n }\n\n // Make sure elements inside the portal element are tabbable only when the\n // portal has already been focused, either by tabbing into a focus trap\n // element outside or using the mouse.\n function onFocus(event) {\n if (portalNode && isOutsideEvent(event)) {\n const focusing = event.type === 'focusin';\n const manageFocus = focusing ? enableFocusInside : disableFocusInside;\n manageFocus(portalNode);\n }\n }\n // Listen to the event on the capture phase so they run before the focus\n // trap elements onFocus prop is called.\n portalNode.addEventListener('focusin', onFocus, true);\n portalNode.addEventListener('focusout', onFocus, true);\n return () => {\n portalNode.removeEventListener('focusin', onFocus, true);\n portalNode.removeEventListener('focusout', onFocus, true);\n };\n }, [portalNode, preserveTabOrder, modal]);\n React.useEffect(() => {\n if (!portalNode) return;\n if (open) return;\n enableFocusInside(portalNode);\n }, [open, portalNode]);\n return /*#__PURE__*/React.createElement(PortalContext.Provider, {\n value: React.useMemo(() => ({\n preserveTabOrder,\n beforeOutsideRef,\n afterOutsideRef,\n beforeInsideRef,\n afterInsideRef,\n portalNode,\n setFocusManagerState\n }), [preserveTabOrder, portalNode])\n }, shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: beforeOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _beforeInsideRef$curr;\n (_beforeInsideRef$curr = beforeInsideRef.current) == null || _beforeInsideRef$curr.focus();\n } else {\n const prevTabbable = getPreviousTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n prevTabbable == null || prevTabbable.focus();\n }\n }\n }), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(\"span\", {\n \"aria-owns\": portalNode.id,\n style: HIDDEN_STYLES\n }), portalNode && /*#__PURE__*/ReactDOM.createPortal(children, portalNode), shouldRenderGuards && portalNode && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"outside\",\n ref: afterOutsideRef,\n onFocus: event => {\n if (isOutsideEvent(event, portalNode)) {\n var _afterInsideRef$curre;\n (_afterInsideRef$curre = afterInsideRef.current) == null || _afterInsideRef$curre.focus();\n } else {\n const nextTabbable = getNextTabbable() || (focusManagerState == null ? void 0 : focusManagerState.refs.domReference.current);\n nextTabbable == null || nextTabbable.focus();\n (focusManagerState == null ? void 0 : focusManagerState.closeOnFocusOut) && (focusManagerState == null ? void 0 : focusManagerState.onOpenChange(false, event.nativeEvent, 'focus-out'));\n }\n }\n }));\n}\nconst usePortalContext = () => React.useContext(PortalContext);\n\nconst FOCUSABLE_ATTRIBUTE = 'data-floating-ui-focusable';\nfunction getFloatingFocusElement(floatingElement) {\n if (!floatingElement) {\n return null;\n }\n // Try to find the element that has `{...getFloatingProps()}` spread on it.\n // This indicates the floating element is acting as a positioning wrapper, and\n // so focus should be managed on the child element with the event handlers and\n // aria props.\n return floatingElement.hasAttribute(FOCUSABLE_ATTRIBUTE) ? floatingElement : floatingElement.querySelector(\"[\" + FOCUSABLE_ATTRIBUTE + \"]\") || floatingElement;\n}\n\nconst LIST_LIMIT = 20;\nlet previouslyFocusedElements = [];\nfunction addPreviouslyFocusedElement(element) {\n previouslyFocusedElements = previouslyFocusedElements.filter(el => el.isConnected);\n let tabbableEl = element;\n if (!tabbableEl || getNodeName(tabbableEl) === 'body') return;\n if (!isTabbable(tabbableEl, getTabbableOptions())) {\n const tabbableChild = tabbable(tabbableEl, getTabbableOptions())[0];\n if (tabbableChild) {\n tabbableEl = tabbableChild;\n }\n }\n previouslyFocusedElements.push(tabbableEl);\n if (previouslyFocusedElements.length > LIST_LIMIT) {\n previouslyFocusedElements = previouslyFocusedElements.slice(-LIST_LIMIT);\n }\n}\nfunction getPreviouslyFocusedElement() {\n return previouslyFocusedElements.slice().reverse().find(el => el.isConnected);\n}\nconst VisuallyHiddenDismiss = /*#__PURE__*/React.forwardRef(function VisuallyHiddenDismiss(props, ref) {\n return /*#__PURE__*/React.createElement(\"button\", _extends({}, props, {\n type: \"button\",\n ref: ref,\n tabIndex: -1,\n style: HIDDEN_STYLES\n }));\n});\n/**\n * Provides focus management for the floating element.\n * @see https://floating-ui.com/docs/FloatingFocusManager\n */\nfunction FloatingFocusManager(props) {\n const {\n context,\n children,\n disabled = false,\n order = ['content'],\n guards: _guards = true,\n initialFocus = 0,\n returnFocus = true,\n restoreFocus = false,\n modal = true,\n visuallyHiddenDismiss = false,\n closeOnFocusOut = true\n } = props;\n const {\n open,\n refs,\n nodeId,\n onOpenChange,\n events,\n dataRef,\n floatingId,\n elements: {\n domReference,\n floating\n }\n } = context;\n const ignoreInitialFocus = typeof initialFocus === 'number' && initialFocus < 0;\n // If the reference is a combobox and is typeable (e.g. input/textarea),\n // there are different focus semantics. The guards should not be rendered, but\n // aria-hidden should be applied to all nodes still. Further, the visually\n // hidden dismiss button should only appear at the end of the list, not the\n // start.\n const isUntrappedTypeableCombobox = isTypeableCombobox(domReference) && ignoreInitialFocus;\n\n // Force the guards to be rendered if the `inert` attribute is not supported.\n const guards = supportsInert() ? _guards : true;\n const orderRef = useLatestRef(order);\n const initialFocusRef = useLatestRef(initialFocus);\n const returnFocusRef = useLatestRef(returnFocus);\n const tree = useFloatingTree();\n const portalContext = usePortalContext();\n const startDismissButtonRef = React.useRef(null);\n const endDismissButtonRef = React.useRef(null);\n const preventReturnFocusRef = React.useRef(false);\n const isPointerDownRef = React.useRef(false);\n const tabbableIndexRef = React.useRef(-1);\n const isInsidePortal = portalContext != null;\n const floatingFocusElement = getFloatingFocusElement(floating);\n const getTabbableContent = useEffectEvent(function (container) {\n if (container === void 0) {\n container = floatingFocusElement;\n }\n return container ? tabbable(container, getTabbableOptions()) : [];\n });\n const getTabbableElements = useEffectEvent(container => {\n const content = getTabbableContent(container);\n return orderRef.current.map(type => {\n if (domReference && type === 'reference') {\n return domReference;\n }\n if (floatingFocusElement && type === 'floating') {\n return floatingFocusElement;\n }\n return content;\n }).filter(Boolean).flat();\n });\n React.useEffect(() => {\n if (disabled) return;\n if (!modal) return;\n function onKeyDown(event) {\n if (event.key === 'Tab') {\n // The focus guards have nothing to focus, so we need to stop the event.\n if (contains(floatingFocusElement, activeElement(getDocument(floatingFocusElement))) && getTabbableContent().length === 0 && !isUntrappedTypeableCombobox) {\n stopEvent(event);\n }\n const els = getTabbableElements();\n const target = getTarget(event);\n if (orderRef.current[0] === 'reference' && target === domReference) {\n stopEvent(event);\n if (event.shiftKey) {\n enqueueFocus(els[els.length - 1]);\n } else {\n enqueueFocus(els[1]);\n }\n }\n if (orderRef.current[1] === 'floating' && target === floatingFocusElement && event.shiftKey) {\n stopEvent(event);\n enqueueFocus(els[0]);\n }\n }\n }\n const doc = getDocument(floatingFocusElement);\n doc.addEventListener('keydown', onKeyDown);\n return () => {\n doc.removeEventListener('keydown', onKeyDown);\n };\n }, [disabled, domReference, floatingFocusElement, modal, orderRef, isUntrappedTypeableCombobox, getTabbableContent, getTabbableElements]);\n React.useEffect(() => {\n if (disabled) return;\n if (!floating) return;\n function handleFocusIn(event) {\n const target = getTarget(event);\n const tabbableContent = getTabbableContent();\n const tabbableIndex = tabbableContent.indexOf(target);\n if (tabbableIndex !== -1) {\n tabbableIndexRef.current = tabbableIndex;\n }\n }\n floating.addEventListener('focusin', handleFocusIn);\n return () => {\n floating.removeEventListener('focusin', handleFocusIn);\n };\n }, [disabled, floating, getTabbableContent]);\n React.useEffect(() => {\n if (disabled) return;\n if (!closeOnFocusOut) return;\n\n // In Safari, buttons lose focus when pressing them.\n function handlePointerDown() {\n isPointerDownRef.current = true;\n setTimeout(() => {\n isPointerDownRef.current = false;\n });\n }\n function handleFocusOutside(event) {\n const relatedTarget = event.relatedTarget;\n queueMicrotask(() => {\n const movedToUnrelatedNode = !(contains(domReference, relatedTarget) || contains(floating, relatedTarget) || contains(relatedTarget, floating) || contains(portalContext == null ? void 0 : portalContext.portalNode, relatedTarget) || relatedTarget != null && relatedTarget.hasAttribute(createAttribute('focus-guard')) || tree && (getChildren(tree.nodesRef.current, nodeId).find(node => {\n var _node$context, _node$context2;\n return contains((_node$context = node.context) == null ? void 0 : _node$context.elements.floating, relatedTarget) || contains((_node$context2 = node.context) == null ? void 0 : _node$context2.elements.domReference, relatedTarget);\n }) || getAncestors(tree.nodesRef.current, nodeId).find(node => {\n var _node$context3, _node$context4;\n return ((_node$context3 = node.context) == null ? void 0 : _node$context3.elements.floating) === relatedTarget || ((_node$context4 = node.context) == null ? void 0 : _node$context4.elements.domReference) === relatedTarget;\n })));\n\n // Restore focus to the previous tabbable element index to prevent\n // focus from being lost outside the floating tree.\n if (restoreFocus && movedToUnrelatedNode && activeElement(getDocument(floatingFocusElement)) === getDocument(floatingFocusElement).body) {\n // Let `FloatingPortal` effect knows that focus is still inside the\n // floating tree.\n if (isHTMLElement(floatingFocusElement)) {\n floatingFocusElement.focus();\n }\n const prevTabbableIndex = tabbableIndexRef.current;\n const tabbableContent = getTabbableContent();\n const nodeToFocus = tabbableContent[prevTabbableIndex] || tabbableContent[tabbableContent.length - 1] || floatingFocusElement;\n if (isHTMLElement(nodeToFocus)) {\n nodeToFocus.focus();\n }\n }\n\n // Focus did not move inside the floating tree, and there are no tabbable\n // portal guards to handle closing.\n if ((isUntrappedTypeableCombobox ? true : !modal) && relatedTarget && movedToUnrelatedNode && !isPointerDownRef.current &&\n // Fix React 18 Strict Mode returnFocus due to double rendering.\n relatedTarget !== getPreviouslyFocusedElement()) {\n preventReturnFocusRef.current = true;\n onOpenChange(false, event, 'focus-out');\n }\n });\n }\n if (floating && isHTMLElement(domReference)) {\n domReference.addEventListener('focusout', handleFocusOutside);\n domReference.addEventListener('pointerdown', handlePointerDown);\n floating.addEventListener('focusout', handleFocusOutside);\n return () => {\n domReference.removeEventListener('focusout', handleFocusOutside);\n domReference.removeEventListener('pointerdown', handlePointerDown);\n floating.removeEventListener('focusout', handleFocusOutside);\n };\n }\n }, [disabled, domReference, floating, floatingFocusElement, modal, nodeId, tree, portalContext, onOpenChange, closeOnFocusOut, restoreFocus, getTabbableContent, isUntrappedTypeableCombobox]);\n React.useEffect(() => {\n var _portalContext$portal;\n if (disabled) return;\n\n // Don't hide portals nested within the parent portal.\n const portalNodes = Array.from((portalContext == null || (_portalContext$portal = portalContext.portalNode) == null ? void 0 : _portalContext$portal.querySelectorAll(\"[\" + createAttribute('portal') + \"]\")) || []);\n if (floating) {\n const insideElements = [floating, ...portalNodes, startDismissButtonRef.current, endDismissButtonRef.current, orderRef.current.includes('reference') || isUntrappedTypeableCombobox ? domReference : null].filter(x => x != null);\n const cleanup = modal || isUntrappedTypeableCombobox ? markOthers(insideElements, guards, !guards) : markOthers(insideElements);\n return () => {\n cleanup();\n };\n }\n }, [disabled, domReference, floating, modal, orderRef, portalContext, isUntrappedTypeableCombobox, guards]);\n index(() => {\n if (disabled || !isHTMLElement(floatingFocusElement)) return;\n const doc = getDocument(floatingFocusElement);\n const previouslyFocusedElement = activeElement(doc);\n\n // Wait for any layout effect state setters to execute to set `tabIndex`.\n queueMicrotask(() => {\n const focusableElements = getTabbableElements(floatingFocusElement);\n const initialFocusValue = initialFocusRef.current;\n const elToFocus = (typeof initialFocusValue === 'number' ? focusableElements[initialFocusValue] : initialFocusValue.current) || floatingFocusElement;\n const focusAlreadyInsideFloatingEl = contains(floatingFocusElement, previouslyFocusedElement);\n if (!ignoreInitialFocus && !focusAlreadyInsideFloatingEl && open) {\n enqueueFocus(elToFocus, {\n preventScroll: elToFocus === floatingFocusElement\n });\n }\n });\n }, [disabled, open, floatingFocusElement, ignoreInitialFocus, getTabbableElements, initialFocusRef]);\n index(() => {\n if (disabled || !floatingFocusElement) return;\n let preventReturnFocusScroll = false;\n const doc = getDocument(floatingFocusElement);\n const previouslyFocusedElement = activeElement(doc);\n const contextData = dataRef.current;\n let openEvent = contextData.openEvent;\n addPreviouslyFocusedElement(previouslyFocusedElement);\n\n // Dismissing via outside press should always ignore `returnFocus` to\n // prevent unwanted scrolling.\n function onOpenChange(_ref) {\n let {\n open,\n reason,\n event,\n nested\n } = _ref;\n if (open) {\n openEvent = event;\n }\n if (reason === 'escape-key' && refs.domReference.current) {\n addPreviouslyFocusedElement(refs.domReference.current);\n }\n if (reason === 'hover' && event.type === 'mouseleave') {\n preventReturnFocusRef.current = true;\n }\n if (reason !== 'outside-press') return;\n if (nested) {\n preventReturnFocusRef.current = false;\n preventReturnFocusScroll = true;\n } else {\n preventReturnFocusRef.current = !(isVirtualClick(event) || isVirtualPointerEvent(event));\n }\n }\n events.on('openchange', onOpenChange);\n const fallbackEl = doc.createElement('span');\n fallbackEl.setAttribute('tabindex', '-1');\n fallbackEl.setAttribute('aria-hidden', 'true');\n Object.assign(fallbackEl.style, HIDDEN_STYLES);\n if (isInsidePortal && domReference) {\n domReference.insertAdjacentElement('afterend', fallbackEl);\n }\n function getReturnElement() {\n if (typeof returnFocusRef.current === 'boolean') {\n return getPreviouslyFocusedElement() || fallbackEl;\n }\n return returnFocusRef.current.current || fallbackEl;\n }\n return () => {\n events.off('openchange', onOpenChange);\n const activeEl = activeElement(doc);\n const isFocusInsideFloatingTree = contains(floating, activeEl) || tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context5;\n return contains((_node$context5 = node.context) == null ? void 0 : _node$context5.elements.floating, activeEl);\n });\n const shouldFocusReference = isFocusInsideFloatingTree || openEvent && ['click', 'mousedown'].includes(openEvent.type);\n if (shouldFocusReference && refs.domReference.current) {\n addPreviouslyFocusedElement(refs.domReference.current);\n }\n const returnElement = getReturnElement();\n queueMicrotask(() => {\n if (\n // eslint-disable-next-line react-hooks/exhaustive-deps\n returnFocusRef.current && !preventReturnFocusRef.current && isHTMLElement(returnElement) && (\n // If the focus moved somewhere else after mount, avoid returning focus\n // since it likely entered a different element which should be\n // respected: https://github.com/floating-ui/floating-ui/issues/2607\n returnElement !== activeEl && activeEl !== doc.body ? isFocusInsideFloatingTree : true)) {\n returnElement.focus({\n preventScroll: preventReturnFocusScroll\n });\n }\n fallbackEl.remove();\n });\n };\n }, [disabled, floating, floatingFocusElement, returnFocusRef, dataRef, refs, events, tree, nodeId, isInsidePortal, domReference]);\n React.useEffect(() => {\n // The `returnFocus` cleanup behavior is inside a microtask; ensure we\n // wait for it to complete before resetting the flag.\n queueMicrotask(() => {\n preventReturnFocusRef.current = false;\n });\n }, [disabled]);\n\n // Synchronize the `context` & `modal` value to the FloatingPortal context.\n // It will decide whether or not it needs to render its own guards.\n index(() => {\n if (disabled) return;\n if (!portalContext) return;\n portalContext.setFocusManagerState({\n modal,\n closeOnFocusOut,\n open,\n onOpenChange,\n refs\n });\n return () => {\n portalContext.setFocusManagerState(null);\n };\n }, [disabled, portalContext, modal, open, onOpenChange, refs, closeOnFocusOut]);\n index(() => {\n if (disabled) return;\n if (!floatingFocusElement) return;\n if (typeof MutationObserver !== 'function') return;\n if (ignoreInitialFocus) return;\n const handleMutation = () => {\n const tabIndex = floatingFocusElement.getAttribute('tabindex');\n const tabbableContent = getTabbableContent();\n const activeEl = activeElement(getDocument(floating));\n const tabbableIndex = tabbableContent.indexOf(activeEl);\n if (tabbableIndex !== -1) {\n tabbableIndexRef.current = tabbableIndex;\n }\n if (orderRef.current.includes('floating') || activeEl !== refs.domReference.current && tabbableContent.length === 0) {\n if (tabIndex !== '0') {\n floatingFocusElement.setAttribute('tabindex', '0');\n }\n } else if (tabIndex !== '-1') {\n floatingFocusElement.setAttribute('tabindex', '-1');\n }\n };\n handleMutation();\n const observer = new MutationObserver(handleMutation);\n observer.observe(floatingFocusElement, {\n childList: true,\n subtree: true,\n attributes: true\n });\n return () => {\n observer.disconnect();\n };\n }, [disabled, floating, floatingFocusElement, refs, orderRef, getTabbableContent, ignoreInitialFocus]);\n function renderDismissButton(location) {\n if (disabled || !visuallyHiddenDismiss || !modal) {\n return null;\n }\n return /*#__PURE__*/React.createElement(VisuallyHiddenDismiss, {\n ref: location === 'start' ? startDismissButtonRef : endDismissButtonRef,\n onClick: event => onOpenChange(false, event.nativeEvent)\n }, typeof visuallyHiddenDismiss === 'string' ? visuallyHiddenDismiss : 'Dismiss');\n }\n const shouldRenderGuards = !disabled && guards && (modal ? !isUntrappedTypeableCombobox : true) && (isInsidePortal || modal);\n return /*#__PURE__*/React.createElement(React.Fragment, null, shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.beforeInsideRef,\n onFocus: event => {\n if (modal) {\n const els = getTabbableElements();\n enqueueFocus(order[0] === 'reference' ? els[0] : els[els.length - 1]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n preventReturnFocusRef.current = false;\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const nextTabbable = getNextTabbable() || domReference;\n nextTabbable == null || nextTabbable.focus();\n } else {\n var _portalContext$before;\n (_portalContext$before = portalContext.beforeOutsideRef.current) == null || _portalContext$before.focus();\n }\n }\n }\n }), !isUntrappedTypeableCombobox && renderDismissButton('start'), children, renderDismissButton('end'), shouldRenderGuards && /*#__PURE__*/React.createElement(FocusGuard, {\n \"data-type\": \"inside\",\n ref: portalContext == null ? void 0 : portalContext.afterInsideRef,\n onFocus: event => {\n if (modal) {\n enqueueFocus(getTabbableElements()[0]);\n } else if (portalContext != null && portalContext.preserveTabOrder && portalContext.portalNode) {\n if (closeOnFocusOut) {\n preventReturnFocusRef.current = true;\n }\n if (isOutsideEvent(event, portalContext.portalNode)) {\n const prevTabbable = getPreviousTabbable() || domReference;\n prevTabbable == null || prevTabbable.focus();\n } else {\n var _portalContext$afterO;\n (_portalContext$afterO = portalContext.afterOutsideRef.current) == null || _portalContext$afterO.focus();\n }\n }\n }\n }));\n}\n\nlet lockCount = 0;\nfunction enableScrollLock() {\n const isIOS = /iP(hone|ad|od)|iOS/.test(getPlatform());\n const bodyStyle = document.body.style;\n // RTL scrollbar\n const scrollbarX = Math.round(document.documentElement.getBoundingClientRect().left) + document.documentElement.scrollLeft;\n const paddingProp = scrollbarX ? 'paddingLeft' : 'paddingRight';\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n const scrollX = bodyStyle.left ? parseFloat(bodyStyle.left) : window.scrollX;\n const scrollY = bodyStyle.top ? parseFloat(bodyStyle.top) : window.scrollY;\n bodyStyle.overflow = 'hidden';\n if (scrollbarWidth) {\n bodyStyle[paddingProp] = scrollbarWidth + \"px\";\n }\n\n // Only iOS doesn't respect `overflow: hidden` on document.body, and this\n // technique has fewer side effects.\n if (isIOS) {\n var _window$visualViewpor, _window$visualViewpor2;\n // iOS 12 does not support `visualViewport`.\n const offsetLeft = ((_window$visualViewpor = window.visualViewport) == null ? void 0 : _window$visualViewpor.offsetLeft) || 0;\n const offsetTop = ((_window$visualViewpor2 = window.visualViewport) == null ? void 0 : _window$visualViewpor2.offsetTop) || 0;\n Object.assign(bodyStyle, {\n position: 'fixed',\n top: -(scrollY - Math.floor(offsetTop)) + \"px\",\n left: -(scrollX - Math.floor(offsetLeft)) + \"px\",\n right: '0'\n });\n }\n return () => {\n Object.assign(bodyStyle, {\n overflow: '',\n [paddingProp]: ''\n });\n if (isIOS) {\n Object.assign(bodyStyle, {\n position: '',\n top: '',\n left: '',\n right: ''\n });\n window.scrollTo(scrollX, scrollY);\n }\n };\n}\nlet cleanup = () => {};\n\n/**\n * Provides base styling for a fixed overlay element to dim content or block\n * pointer events behind a floating element.\n * It's a regular `
`, so it can be styled via any CSS solution you prefer.\n * @see https://floating-ui.com/docs/FloatingOverlay\n */\nconst FloatingOverlay = /*#__PURE__*/React.forwardRef(function FloatingOverlay(props, ref) {\n const {\n lockScroll = false,\n ...rest\n } = props;\n index(() => {\n if (!lockScroll) return;\n lockCount++;\n if (lockCount === 1) {\n cleanup = enableScrollLock();\n }\n return () => {\n lockCount--;\n if (lockCount === 0) {\n cleanup();\n }\n };\n }, [lockScroll]);\n return /*#__PURE__*/React.createElement(\"div\", _extends({\n ref: ref\n }, rest, {\n style: {\n position: 'fixed',\n overflow: 'auto',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...rest.style\n }\n }));\n});\n\nfunction isButtonTarget(event) {\n return isHTMLElement(event.target) && event.target.tagName === 'BUTTON';\n}\nfunction isSpaceIgnored(element) {\n return isTypeableElement(element);\n}\n/**\n * Opens or closes the floating element when clicking the reference element.\n * @see https://floating-ui.com/docs/useClick\n */\nfunction useClick(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n dataRef,\n elements: {\n domReference\n }\n } = context;\n const {\n enabled = true,\n event: eventOption = 'click',\n toggle = true,\n ignoreMouse = false,\n keyboardHandlers = true,\n stickIfOpen = true\n } = props;\n const pointerTypeRef = React.useRef();\n const didKeyDownRef = React.useRef(false);\n const reference = React.useMemo(() => ({\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n const pointerType = pointerTypeRef.current;\n\n // Ignore all buttons except for the \"main\" button.\n // https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/button\n if (event.button !== 0) return;\n if (eventOption === 'click') return;\n if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === 'mousedown' : true)) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n // Prevent stealing focus from the floating element\n event.preventDefault();\n onOpenChange(true, event.nativeEvent, 'click');\n }\n },\n onClick(event) {\n const pointerType = pointerTypeRef.current;\n if (eventOption === 'mousedown' && pointerTypeRef.current) {\n pointerTypeRef.current = undefined;\n return;\n }\n if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;\n if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === 'click' : true)) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n onOpenChange(true, event.nativeEvent, 'click');\n }\n },\n onKeyDown(event) {\n pointerTypeRef.current = undefined;\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n return;\n }\n if (event.key === ' ' && !isSpaceIgnored(domReference)) {\n // Prevent scrolling\n event.preventDefault();\n didKeyDownRef.current = true;\n }\n if (event.key === 'Enter') {\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n onOpenChange(true, event.nativeEvent, 'click');\n }\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === ' ' && didKeyDownRef.current) {\n didKeyDownRef.current = false;\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent, 'click');\n } else {\n onOpenChange(true, event.nativeEvent, 'click');\n }\n }\n }\n }), [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}\n\nfunction createVirtualElement(domElement, data) {\n let offsetX = null;\n let offsetY = null;\n let isAutoUpdateEvent = false;\n return {\n contextElement: domElement || undefined,\n getBoundingClientRect() {\n var _data$dataRef$current;\n const domRect = (domElement == null ? void 0 : domElement.getBoundingClientRect()) || {\n width: 0,\n height: 0,\n x: 0,\n y: 0\n };\n const isXAxis = data.axis === 'x' || data.axis === 'both';\n const isYAxis = data.axis === 'y' || data.axis === 'both';\n const canTrackCursorOnAutoUpdate = ['mouseenter', 'mousemove'].includes(((_data$dataRef$current = data.dataRef.current.openEvent) == null ? void 0 : _data$dataRef$current.type) || '') && data.pointerType !== 'touch';\n let width = domRect.width;\n let height = domRect.height;\n let x = domRect.x;\n let y = domRect.y;\n if (offsetX == null && data.x && isXAxis) {\n offsetX = domRect.x - data.x;\n }\n if (offsetY == null && data.y && isYAxis) {\n offsetY = domRect.y - data.y;\n }\n x -= offsetX || 0;\n y -= offsetY || 0;\n width = 0;\n height = 0;\n if (!isAutoUpdateEvent || canTrackCursorOnAutoUpdate) {\n width = data.axis === 'y' ? domRect.width : 0;\n height = data.axis === 'x' ? domRect.height : 0;\n x = isXAxis && data.x != null ? data.x : x;\n y = isYAxis && data.y != null ? data.y : y;\n } else if (isAutoUpdateEvent && !canTrackCursorOnAutoUpdate) {\n height = data.axis === 'x' ? domRect.height : height;\n width = data.axis === 'y' ? domRect.width : width;\n }\n isAutoUpdateEvent = true;\n return {\n width,\n height,\n x,\n y,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n }\n };\n}\nfunction isMouseBasedEvent(event) {\n return event != null && event.clientX != null;\n}\n/**\n * Positions the floating element relative to a client point (in the viewport),\n * such as the mouse position. By default, it follows the mouse cursor.\n * @see https://floating-ui.com/docs/useClientPoint\n */\nfunction useClientPoint(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n dataRef,\n elements: {\n floating,\n domReference\n },\n refs\n } = context;\n const {\n enabled = true,\n axis = 'both',\n x = null,\n y = null\n } = props;\n const initialRef = React.useRef(false);\n const cleanupListenerRef = React.useRef(null);\n const [pointerType, setPointerType] = React.useState();\n const [reactive, setReactive] = React.useState([]);\n const setReference = useEffectEvent((x, y) => {\n if (initialRef.current) return;\n\n // Prevent setting if the open event was not a mouse-like one\n // (e.g. focus to open, then hover over the reference element).\n // Only apply if the event exists.\n if (dataRef.current.openEvent && !isMouseBasedEvent(dataRef.current.openEvent)) {\n return;\n }\n refs.setPositionReference(createVirtualElement(domReference, {\n x,\n y,\n axis,\n dataRef,\n pointerType\n }));\n });\n const handleReferenceEnterOrMove = useEffectEvent(event => {\n if (x != null || y != null) return;\n if (!open) {\n setReference(event.clientX, event.clientY);\n } else if (!cleanupListenerRef.current) {\n // If there's no cleanup, there's no listener, but we want to ensure\n // we add the listener if the cursor landed on the floating element and\n // then back on the reference (i.e. it's interactive).\n setReactive([]);\n }\n });\n\n // If the pointer is a mouse-like pointer, we want to continue following the\n // mouse even if the floating element is transitioning out. On touch\n // devices, this is undesirable because the floating element will move to\n // the dismissal touch point.\n const openCheck = isMouseLikePointerType(pointerType) ? floating : open;\n const addListener = React.useCallback(() => {\n // Explicitly specified `x`/`y` coordinates shouldn't add a listener.\n if (!openCheck || !enabled || x != null || y != null) return;\n const win = getWindow(floating);\n function handleMouseMove(event) {\n const target = getTarget(event);\n if (!contains(floating, target)) {\n setReference(event.clientX, event.clientY);\n } else {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n }\n }\n if (!dataRef.current.openEvent || isMouseBasedEvent(dataRef.current.openEvent)) {\n win.addEventListener('mousemove', handleMouseMove);\n const cleanup = () => {\n win.removeEventListener('mousemove', handleMouseMove);\n cleanupListenerRef.current = null;\n };\n cleanupListenerRef.current = cleanup;\n return cleanup;\n }\n refs.setPositionReference(domReference);\n }, [openCheck, enabled, x, y, floating, dataRef, refs, domReference, setReference]);\n React.useEffect(() => {\n return addListener();\n }, [addListener, reactive]);\n React.useEffect(() => {\n if (enabled && !floating) {\n initialRef.current = false;\n }\n }, [enabled, floating]);\n React.useEffect(() => {\n if (!enabled && open) {\n initialRef.current = true;\n }\n }, [enabled, open]);\n index(() => {\n if (enabled && (x != null || y != null)) {\n initialRef.current = false;\n setReference(x, y);\n }\n }, [enabled, x, y, setReference]);\n const reference = React.useMemo(() => {\n function setPointerTypeRef(_ref) {\n let {\n pointerType\n } = _ref;\n setPointerType(pointerType);\n }\n return {\n onPointerDown: setPointerTypeRef,\n onPointerEnter: setPointerTypeRef,\n onMouseMove: handleReferenceEnterOrMove,\n onMouseEnter: handleReferenceEnterOrMove\n };\n }, [handleReferenceEnterOrMove]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}\n\nconst bubbleHandlerKeys = {\n pointerdown: 'onPointerDown',\n mousedown: 'onMouseDown',\n click: 'onClick'\n};\nconst captureHandlerKeys = {\n pointerdown: 'onPointerDownCapture',\n mousedown: 'onMouseDownCapture',\n click: 'onClickCapture'\n};\nconst normalizeProp = normalizable => {\n var _normalizable$escapeK, _normalizable$outside;\n return {\n escapeKey: typeof normalizable === 'boolean' ? normalizable : (_normalizable$escapeK = normalizable == null ? void 0 : normalizable.escapeKey) != null ? _normalizable$escapeK : false,\n outsidePress: typeof normalizable === 'boolean' ? normalizable : (_normalizable$outside = normalizable == null ? void 0 : normalizable.outsidePress) != null ? _normalizable$outside : true\n };\n};\n/**\n * Closes the floating element when a dismissal is requested — by default, when\n * the user presses the `escape` key or outside of the floating element.\n * @see https://floating-ui.com/docs/useDismiss\n */\nfunction useDismiss(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n elements,\n dataRef\n } = context;\n const {\n enabled = true,\n escapeKey = true,\n outsidePress: unstable_outsidePress = true,\n outsidePressEvent = 'pointerdown',\n referencePress = false,\n referencePressEvent = 'pointerdown',\n ancestorScroll = false,\n bubbles,\n capture\n } = props;\n const tree = useFloatingTree();\n const outsidePressFn = useEffectEvent(typeof unstable_outsidePress === 'function' ? unstable_outsidePress : () => false);\n const outsidePress = typeof unstable_outsidePress === 'function' ? outsidePressFn : unstable_outsidePress;\n const insideReactTreeRef = React.useRef(false);\n const endedOrStartedInsideRef = React.useRef(false);\n const {\n escapeKey: escapeKeyBubbles,\n outsidePress: outsidePressBubbles\n } = normalizeProp(bubbles);\n const {\n escapeKey: escapeKeyCapture,\n outsidePress: outsidePressCapture\n } = normalizeProp(capture);\n const isComposingRef = React.useRef(false);\n const closeOnEscapeKeyDown = useEffectEvent(event => {\n var _dataRef$current$floa;\n if (!open || !enabled || !escapeKey || event.key !== 'Escape') {\n return;\n }\n\n // Wait until IME is settled. Pressing `Escape` while composing should\n // close the compose menu, but not the floating element.\n if (isComposingRef.current) {\n return;\n }\n const nodeId = (_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.nodeId;\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (!escapeKeyBubbles) {\n event.stopPropagation();\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context;\n if ((_child$context = child.context) != null && _child$context.open && !child.context.dataRef.current.__escapeKeyBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n }\n onOpenChange(false, isReactEvent(event) ? event.nativeEvent : event, 'escape-key');\n });\n const closeOnEscapeKeyDownCapture = useEffectEvent(event => {\n var _getTarget2;\n const callback = () => {\n var _getTarget;\n closeOnEscapeKeyDown(event);\n (_getTarget = getTarget(event)) == null || _getTarget.removeEventListener('keydown', callback);\n };\n (_getTarget2 = getTarget(event)) == null || _getTarget2.addEventListener('keydown', callback);\n });\n const closeOnPressOutside = useEffectEvent(event => {\n var _dataRef$current$floa2;\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = insideReactTreeRef.current;\n insideReactTreeRef.current = false;\n\n // When click outside is lazy (`click` event), handle dragging.\n // Don't close if:\n // - The click started inside the floating element.\n // - The click ended inside the floating element.\n const endedOrStartedInside = endedOrStartedInsideRef.current;\n endedOrStartedInsideRef.current = false;\n if (outsidePressEvent === 'click' && endedOrStartedInside) {\n return;\n }\n if (insideReactTree) {\n return;\n }\n if (typeof outsidePress === 'function' && !outsidePress(event)) {\n return;\n }\n const target = getTarget(event);\n const inertSelector = \"[\" + createAttribute('inert') + \"]\";\n const markers = getDocument(elements.floating).querySelectorAll(inertSelector);\n let targetRootAncestor = isElement(target) ? target : null;\n while (targetRootAncestor && !isLastTraversableNode(targetRootAncestor)) {\n const nextParent = getParentNode(targetRootAncestor);\n if (isLastTraversableNode(nextParent) || !isElement(nextParent)) {\n break;\n }\n targetRootAncestor = nextParent;\n }\n\n // Check if the click occurred on a third-party element injected after the\n // floating element rendered.\n if (markers.length && isElement(target) && !isRootElement(target) &&\n // Clicked on a direct ancestor (e.g. FloatingOverlay).\n !contains(target, elements.floating) &&\n // If the target root element contains none of the markers, then the\n // element was injected after the floating element rendered.\n Array.from(markers).every(marker => !contains(targetRootAncestor, marker))) {\n return;\n }\n\n // Check if the click occurred on the scrollbar\n if (isHTMLElement(target) && floating) {\n // In Firefox, `target.scrollWidth > target.clientWidth` for inline\n // elements.\n const canScrollX = target.clientWidth > 0 && target.scrollWidth > target.clientWidth;\n const canScrollY = target.clientHeight > 0 && target.scrollHeight > target.clientHeight;\n let xCond = canScrollY && event.offsetX > target.clientWidth;\n\n // In some browsers it is possible to change the (or window)\n // scrollbar to the left side, but is very rare and is difficult to\n // check for. Plus, for modal dialogs with backdrops, it is more\n // important that the backdrop is checked but not so much the window.\n if (canScrollY) {\n const isRTL = getComputedStyle(target).direction === 'rtl';\n if (isRTL) {\n xCond = event.offsetX <= target.offsetWidth - target.clientWidth;\n }\n }\n if (xCond || canScrollX && event.offsetY > target.clientHeight) {\n return;\n }\n }\n const nodeId = (_dataRef$current$floa2 = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa2.nodeId;\n const targetIsInsideChildren = tree && getChildren(tree.nodesRef.current, nodeId).some(node => {\n var _node$context;\n return isEventTargetWithin(event, (_node$context = node.context) == null ? void 0 : _node$context.elements.floating);\n });\n if (isEventTargetWithin(event, elements.floating) || isEventTargetWithin(event, elements.domReference) || targetIsInsideChildren) {\n return;\n }\n const children = tree ? getChildren(tree.nodesRef.current, nodeId) : [];\n if (children.length > 0) {\n let shouldDismiss = true;\n children.forEach(child => {\n var _child$context2;\n if ((_child$context2 = child.context) != null && _child$context2.open && !child.context.dataRef.current.__outsidePressBubbles) {\n shouldDismiss = false;\n return;\n }\n });\n if (!shouldDismiss) {\n return;\n }\n }\n onOpenChange(false, event, 'outside-press');\n });\n const closeOnPressOutsideCapture = useEffectEvent(event => {\n var _getTarget4;\n const callback = () => {\n var _getTarget3;\n closeOnPressOutside(event);\n (_getTarget3 = getTarget(event)) == null || _getTarget3.removeEventListener(outsidePressEvent, callback);\n };\n (_getTarget4 = getTarget(event)) == null || _getTarget4.addEventListener(outsidePressEvent, callback);\n });\n React.useEffect(() => {\n if (!open || !enabled) {\n return;\n }\n dataRef.current.__escapeKeyBubbles = escapeKeyBubbles;\n dataRef.current.__outsidePressBubbles = outsidePressBubbles;\n let compositionTimeout = -1;\n function onScroll(event) {\n onOpenChange(false, event, 'ancestor-scroll');\n }\n function handleCompositionStart() {\n window.clearTimeout(compositionTimeout);\n isComposingRef.current = true;\n }\n function handleCompositionEnd() {\n // Safari fires `compositionend` before `keydown`, so we need to wait\n // until the next tick to set `isComposing` to `false`.\n // https://bugs.webkit.org/show_bug.cgi?id=165004\n compositionTimeout = window.setTimeout(() => {\n isComposingRef.current = false;\n },\n // 0ms or 1ms don't work in Safari. 5ms appears to consistently work.\n // Only apply to WebKit for the test to remain 0ms.\n isWebKit() ? 5 : 0);\n }\n const doc = getDocument(elements.floating);\n if (escapeKey) {\n doc.addEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n doc.addEventListener('compositionstart', handleCompositionStart);\n doc.addEventListener('compositionend', handleCompositionEnd);\n }\n outsidePress && doc.addEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n let ancestors = [];\n if (ancestorScroll) {\n if (isElement(elements.domReference)) {\n ancestors = getOverflowAncestors(elements.domReference);\n }\n if (isElement(elements.floating)) {\n ancestors = ancestors.concat(getOverflowAncestors(elements.floating));\n }\n if (!isElement(elements.reference) && elements.reference && elements.reference.contextElement) {\n ancestors = ancestors.concat(getOverflowAncestors(elements.reference.contextElement));\n }\n }\n\n // Ignore the visual viewport for scrolling dismissal (allow pinch-zoom)\n ancestors = ancestors.filter(ancestor => {\n var _doc$defaultView;\n return ancestor !== ((_doc$defaultView = doc.defaultView) == null ? void 0 : _doc$defaultView.visualViewport);\n });\n ancestors.forEach(ancestor => {\n ancestor.addEventListener('scroll', onScroll, {\n passive: true\n });\n });\n return () => {\n if (escapeKey) {\n doc.removeEventListener('keydown', escapeKeyCapture ? closeOnEscapeKeyDownCapture : closeOnEscapeKeyDown, escapeKeyCapture);\n doc.removeEventListener('compositionstart', handleCompositionStart);\n doc.removeEventListener('compositionend', handleCompositionEnd);\n }\n outsidePress && doc.removeEventListener(outsidePressEvent, outsidePressCapture ? closeOnPressOutsideCapture : closeOnPressOutside, outsidePressCapture);\n ancestors.forEach(ancestor => {\n ancestor.removeEventListener('scroll', onScroll);\n });\n window.clearTimeout(compositionTimeout);\n };\n }, [dataRef, elements, escapeKey, outsidePress, outsidePressEvent, open, onOpenChange, ancestorScroll, enabled, escapeKeyBubbles, outsidePressBubbles, closeOnEscapeKeyDown, escapeKeyCapture, closeOnEscapeKeyDownCapture, closeOnPressOutside, outsidePressCapture, closeOnPressOutsideCapture]);\n React.useEffect(() => {\n insideReactTreeRef.current = false;\n }, [outsidePress, outsidePressEvent]);\n const reference = React.useMemo(() => ({\n onKeyDown: closeOnEscapeKeyDown,\n [bubbleHandlerKeys[referencePressEvent]]: event => {\n if (referencePress) {\n onOpenChange(false, event.nativeEvent, 'reference-press');\n }\n }\n }), [closeOnEscapeKeyDown, onOpenChange, referencePress, referencePressEvent]);\n const floating = React.useMemo(() => ({\n onKeyDown: closeOnEscapeKeyDown,\n onMouseDown() {\n endedOrStartedInsideRef.current = true;\n },\n onMouseUp() {\n endedOrStartedInsideRef.current = true;\n },\n [captureHandlerKeys[outsidePressEvent]]: () => {\n insideReactTreeRef.current = true;\n }\n }), [closeOnEscapeKeyDown, outsidePressEvent]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}\n\nfunction useFloatingRootContext(options) {\n const {\n open = false,\n onOpenChange: onOpenChangeProp,\n elements: elementsProp\n } = options;\n const floatingId = useId();\n const dataRef = React.useRef({});\n const [events] = React.useState(() => createPubSub());\n const nested = useFloatingParentNodeId() != null;\n if (process.env.NODE_ENV !== \"production\") {\n const optionDomReference = elementsProp.reference;\n if (optionDomReference && !isElement(optionDomReference)) {\n error('Cannot pass a virtual element to the `elements.reference` option,', 'as it must be a real DOM element. Use `refs.setPositionReference()`', 'instead.');\n }\n }\n const [positionReference, setPositionReference] = React.useState(elementsProp.reference);\n const onOpenChange = useEffectEvent((open, event, reason) => {\n dataRef.current.openEvent = open ? event : undefined;\n events.emit('openchange', {\n open,\n event,\n reason,\n nested\n });\n onOpenChangeProp == null || onOpenChangeProp(open, event, reason);\n });\n const refs = React.useMemo(() => ({\n setPositionReference\n }), []);\n const elements = React.useMemo(() => ({\n reference: positionReference || elementsProp.reference || null,\n floating: elementsProp.floating || null,\n domReference: elementsProp.reference\n }), [positionReference, elementsProp.reference, elementsProp.floating]);\n return React.useMemo(() => ({\n dataRef,\n open,\n onOpenChange,\n elements,\n events,\n floatingId,\n refs\n }), [open, onOpenChange, elements, events, floatingId, refs]);\n}\n\n/**\n * Provides data to position a floating element and context to add interactions.\n * @see https://floating-ui.com/docs/useFloating\n */\nfunction useFloating(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n nodeId\n } = options;\n const internalRootContext = useFloatingRootContext({\n ...options,\n elements: {\n reference: null,\n floating: null,\n ...options.elements\n }\n });\n const rootContext = options.rootContext || internalRootContext;\n const computedElements = rootContext.elements;\n const [_domReference, setDomReference] = React.useState(null);\n const [positionReference, _setPositionReference] = React.useState(null);\n const optionDomReference = computedElements == null ? void 0 : computedElements.domReference;\n const domReference = optionDomReference || _domReference;\n const domReferenceRef = React.useRef(null);\n const tree = useFloatingTree();\n index(() => {\n if (domReference) {\n domReferenceRef.current = domReference;\n }\n }, [domReference]);\n const position = useFloating$1({\n ...options,\n elements: {\n ...computedElements,\n ...(positionReference && {\n reference: positionReference\n })\n }\n });\n const setPositionReference = React.useCallback(node => {\n const computedPositionReference = isElement(node) ? {\n getBoundingClientRect: () => node.getBoundingClientRect(),\n contextElement: node\n } : node;\n // Store the positionReference in state if the DOM reference is specified externally via the\n // `elements.reference` option. This ensures that it won't be overridden on future renders.\n _setPositionReference(computedPositionReference);\n position.refs.setReference(computedPositionReference);\n }, [position.refs]);\n const setReference = React.useCallback(node => {\n if (isElement(node) || node === null) {\n domReferenceRef.current = node;\n setDomReference(node);\n }\n\n // Backwards-compatibility for passing a virtual element to `reference`\n // after it has set the DOM reference.\n if (isElement(position.refs.reference.current) || position.refs.reference.current === null ||\n // Don't allow setting virtual elements using the old technique back to\n // `null` to support `positionReference` + an unstable `reference`\n // callback ref.\n node !== null && !isElement(node)) {\n position.refs.setReference(node);\n }\n }, [position.refs]);\n const refs = React.useMemo(() => ({\n ...position.refs,\n setReference,\n setPositionReference,\n domReference: domReferenceRef\n }), [position.refs, setReference, setPositionReference]);\n const elements = React.useMemo(() => ({\n ...position.elements,\n domReference: domReference\n }), [position.elements, domReference]);\n const context = React.useMemo(() => ({\n ...position,\n ...rootContext,\n refs,\n elements,\n nodeId\n }), [position, refs, elements, nodeId, rootContext]);\n index(() => {\n rootContext.dataRef.current.floatingContext = context;\n const node = tree == null ? void 0 : tree.nodesRef.current.find(node => node.id === nodeId);\n if (node) {\n node.context = context;\n }\n });\n return React.useMemo(() => ({\n ...position,\n context,\n refs,\n elements\n }), [position, refs, elements, context]);\n}\n\n/**\n * Opens the floating element while the reference element has focus, like CSS\n * `:focus`.\n * @see https://floating-ui.com/docs/useFocus\n */\nfunction useFocus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n onOpenChange,\n events,\n dataRef,\n elements\n } = context;\n const {\n enabled = true,\n visibleOnly = true\n } = props;\n const blockFocusRef = React.useRef(false);\n const timeoutRef = React.useRef();\n const keyboardModalityRef = React.useRef(true);\n React.useEffect(() => {\n if (!enabled) return;\n const win = getWindow(elements.domReference);\n\n // If the reference was focused and the user left the tab/window, and the\n // floating element was not open, the focus should be blocked when they\n // return to the tab/window.\n function onBlur() {\n if (!open && isHTMLElement(elements.domReference) && elements.domReference === activeElement(getDocument(elements.domReference))) {\n blockFocusRef.current = true;\n }\n }\n function onKeyDown() {\n keyboardModalityRef.current = true;\n }\n win.addEventListener('blur', onBlur);\n win.addEventListener('keydown', onKeyDown, true);\n return () => {\n win.removeEventListener('blur', onBlur);\n win.removeEventListener('keydown', onKeyDown, true);\n };\n }, [elements.domReference, open, enabled]);\n React.useEffect(() => {\n if (!enabled) return;\n function onOpenChange(_ref) {\n let {\n reason\n } = _ref;\n if (reason === 'reference-press' || reason === 'escape-key') {\n blockFocusRef.current = true;\n }\n }\n events.on('openchange', onOpenChange);\n return () => {\n events.off('openchange', onOpenChange);\n };\n }, [events, enabled]);\n React.useEffect(() => {\n return () => {\n clearTimeout(timeoutRef.current);\n };\n }, []);\n const reference = React.useMemo(() => ({\n onPointerDown(event) {\n if (isVirtualPointerEvent(event.nativeEvent)) return;\n keyboardModalityRef.current = false;\n },\n onMouseLeave() {\n blockFocusRef.current = false;\n },\n onFocus(event) {\n if (blockFocusRef.current) return;\n const target = getTarget(event.nativeEvent);\n if (visibleOnly && isElement(target)) {\n try {\n // Mac Safari unreliably matches `:focus-visible` on the reference\n // if focus was outside the page initially - use the fallback\n // instead.\n if (isSafari() && isMac()) throw Error();\n if (!target.matches(':focus-visible')) return;\n } catch (e) {\n // Old browsers will throw an error when using `:focus-visible`.\n if (!keyboardModalityRef.current && !isTypeableElement(target)) {\n return;\n }\n }\n }\n onOpenChange(true, event.nativeEvent, 'focus');\n },\n onBlur(event) {\n blockFocusRef.current = false;\n const relatedTarget = event.relatedTarget;\n const nativeEvent = event.nativeEvent;\n\n // Hit the non-modal focus management portal guard. Focus will be\n // moved into the floating element immediately after.\n const movedToFocusGuard = isElement(relatedTarget) && relatedTarget.hasAttribute(createAttribute('focus-guard')) && relatedTarget.getAttribute('data-type') === 'outside';\n\n // Wait for the window blur listener to fire.\n timeoutRef.current = window.setTimeout(() => {\n var _dataRef$current$floa;\n const activeEl = activeElement(elements.domReference ? elements.domReference.ownerDocument : document);\n\n // Focus left the page, keep it open.\n if (!relatedTarget && activeEl === elements.domReference) return;\n\n // When focusing the reference element (e.g. regular click), then\n // clicking into the floating element, prevent it from hiding.\n // Note: it must be focusable, e.g. `tabindex=\"-1\"`.\n // We can not rely on relatedTarget to point to the correct element\n // as it will only point to the shadow host of the newly focused element\n // and not the element that actually has received focus if it is located\n // inside a shadow root.\n if (contains((_dataRef$current$floa = dataRef.current.floatingContext) == null ? void 0 : _dataRef$current$floa.refs.floating.current, activeEl) || contains(elements.domReference, activeEl) || movedToFocusGuard) {\n return;\n }\n onOpenChange(false, nativeEvent, 'focus');\n });\n }\n }), [dataRef, elements.domReference, onOpenChange, visibleOnly]);\n return React.useMemo(() => enabled ? {\n reference\n } : {}, [enabled, reference]);\n}\n\nconst ACTIVE_KEY = 'active';\nconst SELECTED_KEY = 'selected';\nfunction mergeProps(userProps, propsList, elementKey) {\n const map = new Map();\n const isItem = elementKey === 'item';\n let domUserProps = userProps;\n if (isItem && userProps) {\n const {\n [ACTIVE_KEY]: _,\n [SELECTED_KEY]: __,\n ...validProps\n } = userProps;\n domUserProps = validProps;\n }\n return {\n ...(elementKey === 'floating' && {\n tabIndex: -1,\n [FOCUSABLE_ATTRIBUTE]: ''\n }),\n ...domUserProps,\n ...propsList.map(value => {\n const propsOrGetProps = value ? value[elementKey] : null;\n if (typeof propsOrGetProps === 'function') {\n return userProps ? propsOrGetProps(userProps) : null;\n }\n return propsOrGetProps;\n }).concat(userProps).reduce((acc, props) => {\n if (!props) {\n return acc;\n }\n Object.entries(props).forEach(_ref => {\n let [key, value] = _ref;\n if (isItem && [ACTIVE_KEY, SELECTED_KEY].includes(key)) {\n return;\n }\n if (key.indexOf('on') === 0) {\n if (!map.has(key)) {\n map.set(key, []);\n }\n if (typeof value === 'function') {\n var _map$get;\n (_map$get = map.get(key)) == null || _map$get.push(value);\n acc[key] = function () {\n var _map$get2;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return (_map$get2 = map.get(key)) == null ? void 0 : _map$get2.map(fn => fn(...args)).find(val => val !== undefined);\n };\n }\n } else {\n acc[key] = value;\n }\n });\n return acc;\n }, {})\n };\n}\n/**\n * Merges an array of interaction hooks' props into prop getters, allowing\n * event handler functions to be composed together without overwriting one\n * another.\n * @see https://floating-ui.com/docs/useInteractions\n */\nfunction useInteractions(propsList) {\n if (propsList === void 0) {\n propsList = [];\n }\n const referenceDeps = propsList.map(key => key == null ? void 0 : key.reference);\n const floatingDeps = propsList.map(key => key == null ? void 0 : key.floating);\n const itemDeps = propsList.map(key => key == null ? void 0 : key.item);\n const getReferenceProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'reference'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n referenceDeps);\n const getFloatingProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'floating'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n floatingDeps);\n const getItemProps = React.useCallback(userProps => mergeProps(userProps, propsList, 'item'),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n itemDeps);\n return React.useMemo(() => ({\n getReferenceProps,\n getFloatingProps,\n getItemProps\n }), [getReferenceProps, getFloatingProps, getItemProps]);\n}\n\nlet isPreventScrollSupported = false;\nfunction doSwitch(orientation, vertical, horizontal) {\n switch (orientation) {\n case 'vertical':\n return vertical;\n case 'horizontal':\n return horizontal;\n default:\n return vertical || horizontal;\n }\n}\nfunction isMainOrientationKey(key, orientation) {\n const vertical = key === ARROW_UP || key === ARROW_DOWN;\n const horizontal = key === ARROW_LEFT || key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isMainOrientationToEndKey(key, orientation, rtl) {\n const vertical = key === ARROW_DOWN;\n const horizontal = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n return doSwitch(orientation, vertical, horizontal) || key === 'Enter' || key === ' ' || key === '';\n}\nfunction isCrossOrientationOpenKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_LEFT : key === ARROW_RIGHT;\n const horizontal = key === ARROW_DOWN;\n return doSwitch(orientation, vertical, horizontal);\n}\nfunction isCrossOrientationCloseKey(key, orientation, rtl) {\n const vertical = rtl ? key === ARROW_RIGHT : key === ARROW_LEFT;\n const horizontal = key === ARROW_UP;\n return doSwitch(orientation, vertical, horizontal);\n}\n/**\n * Adds arrow key-based navigation of a list of items, either using real DOM\n * focus or virtual focus.\n * @see https://floating-ui.com/docs/useListNavigation\n */\nfunction useListNavigation(context, props) {\n const {\n open,\n onOpenChange,\n elements\n } = context;\n const {\n listRef,\n activeIndex,\n onNavigate: unstable_onNavigate = () => {},\n enabled = true,\n selectedIndex = null,\n allowEscape = false,\n loop = false,\n nested = false,\n rtl = false,\n virtual = false,\n focusItemOnOpen = 'auto',\n focusItemOnHover = true,\n openOnArrowKeyDown = true,\n disabledIndices = undefined,\n orientation = 'vertical',\n cols = 1,\n scrollItemIntoView = true,\n virtualItemRef,\n itemSizes,\n dense = false\n } = props;\n if (process.env.NODE_ENV !== \"production\") {\n if (allowEscape) {\n if (!loop) {\n warn('`useListNavigation` looping must be enabled to allow escaping.');\n }\n if (!virtual) {\n warn('`useListNavigation` must be virtual to allow escaping.');\n }\n }\n if (orientation === 'vertical' && cols > 1) {\n warn('In grid list navigation mode (`cols` > 1), the `orientation` should', 'be either \"horizontal\" or \"both\".');\n }\n }\n const floatingFocusElement = getFloatingFocusElement(elements.floating);\n const floatingFocusElementRef = useLatestRef(floatingFocusElement);\n const parentId = useFloatingParentNodeId();\n const tree = useFloatingTree();\n const onNavigate = useEffectEvent(unstable_onNavigate);\n const typeableComboboxReference = isTypeableCombobox(elements.domReference);\n const focusItemOnOpenRef = React.useRef(focusItemOnOpen);\n const indexRef = React.useRef(selectedIndex != null ? selectedIndex : -1);\n const keyRef = React.useRef(null);\n const isPointerModalityRef = React.useRef(true);\n const previousOnNavigateRef = React.useRef(onNavigate);\n const previousMountedRef = React.useRef(!!elements.floating);\n const previousOpenRef = React.useRef(open);\n const forceSyncFocus = React.useRef(false);\n const forceScrollIntoViewRef = React.useRef(false);\n const disabledIndicesRef = useLatestRef(disabledIndices);\n const latestOpenRef = useLatestRef(open);\n const scrollItemIntoViewRef = useLatestRef(scrollItemIntoView);\n const selectedIndexRef = useLatestRef(selectedIndex);\n const [activeId, setActiveId] = React.useState();\n const [virtualId, setVirtualId] = React.useState();\n const focusItem = useEffectEvent(function (listRef, indexRef, forceScrollIntoView) {\n if (forceScrollIntoView === void 0) {\n forceScrollIntoView = false;\n }\n function runFocus(item) {\n if (virtual) {\n setActiveId(item.id);\n tree == null || tree.events.emit('virtualfocus', item);\n if (virtualItemRef) {\n virtualItemRef.current = item;\n }\n } else {\n enqueueFocus(item, {\n preventScroll: true,\n // Mac Safari does not move the virtual cursor unless the focus call\n // is sync. However, for the very first focus call, we need to wait\n // for the position to be ready in order to prevent unwanted\n // scrolling. This means the virtual cursor will not move to the first\n // item when first opening the floating element, but will on\n // subsequent calls. `preventScroll` is supported in modern Safari,\n // so we can use that instead.\n // iOS Safari must be async or the first item will not be focused.\n sync: isMac() && isSafari() ? isPreventScrollSupported || forceSyncFocus.current : false\n });\n }\n }\n const initialItem = listRef.current[indexRef.current];\n if (initialItem) {\n runFocus(initialItem);\n }\n requestAnimationFrame(() => {\n const waitedItem = listRef.current[indexRef.current] || initialItem;\n if (!waitedItem) return;\n if (!initialItem) {\n runFocus(waitedItem);\n }\n const scrollIntoViewOptions = scrollItemIntoViewRef.current;\n const shouldScrollIntoView = scrollIntoViewOptions && item && (forceScrollIntoView || !isPointerModalityRef.current);\n if (shouldScrollIntoView) {\n // JSDOM doesn't support `.scrollIntoView()` but it's widely supported\n // by all browsers.\n waitedItem.scrollIntoView == null || waitedItem.scrollIntoView(typeof scrollIntoViewOptions === 'boolean' ? {\n block: 'nearest',\n inline: 'nearest'\n } : scrollIntoViewOptions);\n }\n });\n });\n index(() => {\n document.createElement('div').focus({\n get preventScroll() {\n isPreventScrollSupported = true;\n return false;\n }\n });\n }, []);\n\n // Sync `selectedIndex` to be the `activeIndex` upon opening the floating\n // element. Also, reset `activeIndex` upon closing the floating element.\n index(() => {\n if (!enabled) return;\n if (open && elements.floating) {\n if (focusItemOnOpenRef.current && selectedIndex != null) {\n // Regardless of the pointer modality, we want to ensure the selected\n // item comes into view when the floating element is opened.\n forceScrollIntoViewRef.current = true;\n indexRef.current = selectedIndex;\n onNavigate(selectedIndex);\n }\n } else if (previousMountedRef.current) {\n // Since the user can specify `onNavigate` conditionally\n // (onNavigate: open ? setActiveIndex : setSelectedIndex),\n // we store and call the previous function.\n indexRef.current = -1;\n previousOnNavigateRef.current(null);\n }\n }, [enabled, open, elements.floating, selectedIndex, onNavigate]);\n\n // Sync `activeIndex` to be the focused item while the floating element is\n // open.\n index(() => {\n if (!enabled) return;\n if (open && elements.floating) {\n if (activeIndex == null) {\n forceSyncFocus.current = false;\n if (selectedIndexRef.current != null) {\n return;\n }\n\n // Reset while the floating element was open (e.g. the list changed).\n if (previousMountedRef.current) {\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n }\n\n // Initial sync.\n if ((!previousOpenRef.current || !previousMountedRef.current) && focusItemOnOpenRef.current && (keyRef.current != null || focusItemOnOpenRef.current === true && keyRef.current == null)) {\n let runs = 0;\n const waitForListPopulated = () => {\n if (listRef.current[0] == null) {\n // Avoid letting the browser paint if possible on the first try,\n // otherwise use rAF. Don't try more than twice, since something\n // is wrong otherwise.\n if (runs < 2) {\n const scheduler = runs ? requestAnimationFrame : queueMicrotask;\n scheduler(waitForListPopulated);\n }\n runs++;\n } else {\n indexRef.current = keyRef.current == null || isMainOrientationToEndKey(keyRef.current, orientation, rtl) || nested ? getMinIndex(listRef, disabledIndicesRef.current) : getMaxIndex(listRef, disabledIndicesRef.current);\n keyRef.current = null;\n onNavigate(indexRef.current);\n }\n };\n waitForListPopulated();\n }\n } else if (!isIndexOutOfBounds(listRef, activeIndex)) {\n indexRef.current = activeIndex;\n focusItem(listRef, indexRef, forceScrollIntoViewRef.current);\n forceScrollIntoViewRef.current = false;\n }\n }\n }, [enabled, open, elements.floating, activeIndex, selectedIndexRef, nested, listRef, orientation, rtl, onNavigate, focusItem, disabledIndicesRef]);\n\n // Ensure the parent floating element has focus when a nested child closes\n // to allow arrow key navigation to work after the pointer leaves the child.\n index(() => {\n var _nodes$find;\n if (!enabled || elements.floating || !tree || virtual || !previousMountedRef.current) {\n return;\n }\n const nodes = tree.nodesRef.current;\n const parent = (_nodes$find = nodes.find(node => node.id === parentId)) == null || (_nodes$find = _nodes$find.context) == null ? void 0 : _nodes$find.elements.floating;\n const activeEl = activeElement(getDocument(elements.floating));\n const treeContainsActiveEl = nodes.some(node => node.context && contains(node.context.elements.floating, activeEl));\n if (parent && !treeContainsActiveEl && isPointerModalityRef.current) {\n parent.focus({\n preventScroll: true\n });\n }\n }, [enabled, elements.floating, tree, parentId, virtual]);\n index(() => {\n if (!enabled) return;\n if (!tree) return;\n if (!virtual) return;\n if (parentId) return;\n function handleVirtualFocus(item) {\n setVirtualId(item.id);\n if (virtualItemRef) {\n virtualItemRef.current = item;\n }\n }\n tree.events.on('virtualfocus', handleVirtualFocus);\n return () => {\n tree.events.off('virtualfocus', handleVirtualFocus);\n };\n }, [enabled, tree, virtual, parentId, virtualItemRef]);\n index(() => {\n previousOnNavigateRef.current = onNavigate;\n previousMountedRef.current = !!elements.floating;\n });\n index(() => {\n if (!open) {\n keyRef.current = null;\n }\n }, [open]);\n index(() => {\n previousOpenRef.current = open;\n }, [open]);\n const hasActiveIndex = activeIndex != null;\n const item = React.useMemo(() => {\n function syncCurrentTarget(currentTarget) {\n if (!open) return;\n const index = listRef.current.indexOf(currentTarget);\n if (index !== -1) {\n onNavigate(index);\n }\n }\n const props = {\n onFocus(_ref) {\n let {\n currentTarget\n } = _ref;\n syncCurrentTarget(currentTarget);\n },\n onClick: _ref2 => {\n let {\n currentTarget\n } = _ref2;\n return currentTarget.focus({\n preventScroll: true\n });\n },\n // Safari\n ...(focusItemOnHover && {\n onMouseMove(_ref3) {\n let {\n currentTarget\n } = _ref3;\n syncCurrentTarget(currentTarget);\n },\n onPointerLeave(_ref4) {\n let {\n pointerType\n } = _ref4;\n if (!isPointerModalityRef.current || pointerType === 'touch') {\n return;\n }\n indexRef.current = -1;\n focusItem(listRef, indexRef);\n onNavigate(null);\n if (!virtual) {\n enqueueFocus(floatingFocusElementRef.current, {\n preventScroll: true\n });\n }\n }\n })\n };\n return props;\n }, [open, floatingFocusElementRef, focusItem, focusItemOnHover, listRef, onNavigate, virtual]);\n const commonOnKeyDown = useEffectEvent(event => {\n isPointerModalityRef.current = false;\n forceSyncFocus.current = true;\n\n // When composing a character, Chrome fires ArrowDown twice. Firefox/Safari\n // don't appear to suffer from this. `event.isComposing` is avoided due to\n // Safari not supporting it properly (although it's not needed in the first\n // place for Safari, just avoiding any possible issues).\n if (event.which === 229) {\n return;\n }\n\n // If the floating element is animating out, ignore navigation. Otherwise,\n // the `activeIndex` gets set to 0 despite not being open so the next time\n // the user ArrowDowns, the first item won't be focused.\n if (!latestOpenRef.current && event.currentTarget === floatingFocusElementRef.current) {\n return;\n }\n if (nested && isCrossOrientationCloseKey(event.key, orientation, rtl)) {\n stopEvent(event);\n onOpenChange(false, event.nativeEvent, 'list-navigation');\n if (isHTMLElement(elements.domReference)) {\n if (virtual) {\n tree == null || tree.events.emit('virtualfocus', elements.domReference);\n } else {\n elements.domReference.focus();\n }\n }\n return;\n }\n const currentIndex = indexRef.current;\n const minIndex = getMinIndex(listRef, disabledIndices);\n const maxIndex = getMaxIndex(listRef, disabledIndices);\n if (!typeableComboboxReference) {\n if (event.key === 'Home') {\n stopEvent(event);\n indexRef.current = minIndex;\n onNavigate(indexRef.current);\n }\n if (event.key === 'End') {\n stopEvent(event);\n indexRef.current = maxIndex;\n onNavigate(indexRef.current);\n }\n }\n\n // Grid navigation.\n if (cols > 1) {\n const sizes = itemSizes || Array.from({\n length: listRef.current.length\n }, () => ({\n width: 1,\n height: 1\n }));\n // To calculate movements on the grid, we use hypothetical cell indices\n // as if every item was 1x1, then convert back to real indices.\n const cellMap = buildCellMap(sizes, cols, dense);\n const minGridIndex = cellMap.findIndex(index => index != null && !isDisabled(listRef.current, index, disabledIndices));\n // last enabled index\n const maxGridIndex = cellMap.reduce((foundIndex, index, cellIndex) => index != null && !isDisabled(listRef.current, index, disabledIndices) ? cellIndex : foundIndex, -1);\n const index = cellMap[getGridNavigatedIndex({\n current: cellMap.map(itemIndex => itemIndex != null ? listRef.current[itemIndex] : null)\n }, {\n event,\n orientation,\n loop,\n rtl,\n cols,\n // treat undefined (empty grid spaces) as disabled indices so we\n // don't end up in them\n disabledIndices: getCellIndices([...(disabledIndices || listRef.current.map((_, index) => isDisabled(listRef.current, index) ? index : undefined)), undefined], cellMap),\n minIndex: minGridIndex,\n maxIndex: maxGridIndex,\n prevIndex: getCellIndexOfCorner(indexRef.current > maxIndex ? minIndex : indexRef.current, sizes, cellMap, cols,\n // use a corner matching the edge closest to the direction\n // we're moving in so we don't end up in the same item. Prefer\n // top/left over bottom/right.\n event.key === ARROW_DOWN ? 'bl' : event.key === (rtl ? ARROW_LEFT : ARROW_RIGHT) ? 'tr' : 'tl'),\n stopEvent: true\n })];\n if (index != null) {\n indexRef.current = index;\n onNavigate(indexRef.current);\n }\n if (orientation === 'both') {\n return;\n }\n }\n if (isMainOrientationKey(event.key, orientation)) {\n stopEvent(event);\n\n // Reset the index if no item is focused.\n if (open && !virtual && activeElement(event.currentTarget.ownerDocument) === event.currentTarget) {\n indexRef.current = isMainOrientationToEndKey(event.key, orientation, rtl) ? minIndex : maxIndex;\n onNavigate(indexRef.current);\n return;\n }\n if (isMainOrientationToEndKey(event.key, orientation, rtl)) {\n if (loop) {\n indexRef.current = currentIndex >= maxIndex ? allowEscape && currentIndex !== listRef.current.length ? -1 : minIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n });\n } else {\n indexRef.current = Math.min(maxIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n disabledIndices\n }));\n }\n } else {\n if (loop) {\n indexRef.current = currentIndex <= minIndex ? allowEscape && currentIndex !== -1 ? listRef.current.length : maxIndex : findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n });\n } else {\n indexRef.current = Math.max(minIndex, findNonDisabledIndex(listRef, {\n startingIndex: currentIndex,\n decrement: true,\n disabledIndices\n }));\n }\n }\n if (isIndexOutOfBounds(listRef, indexRef.current)) {\n onNavigate(null);\n } else {\n onNavigate(indexRef.current);\n }\n }\n });\n const ariaActiveDescendantProp = React.useMemo(() => {\n return virtual && open && hasActiveIndex && {\n 'aria-activedescendant': virtualId || activeId\n };\n }, [virtual, open, hasActiveIndex, virtualId, activeId]);\n const floating = React.useMemo(() => {\n return {\n 'aria-orientation': orientation === 'both' ? undefined : orientation,\n ...(!isTypeableCombobox(elements.domReference) && ariaActiveDescendantProp),\n onKeyDown: commonOnKeyDown,\n onPointerMove() {\n isPointerModalityRef.current = true;\n }\n };\n }, [ariaActiveDescendantProp, commonOnKeyDown, elements.domReference, orientation]);\n const reference = React.useMemo(() => {\n function checkVirtualMouse(event) {\n if (focusItemOnOpen === 'auto' && isVirtualClick(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n function checkVirtualPointer(event) {\n // `pointerdown` fires first, reset the state then perform the checks.\n focusItemOnOpenRef.current = focusItemOnOpen;\n if (focusItemOnOpen === 'auto' && isVirtualPointerEvent(event.nativeEvent)) {\n focusItemOnOpenRef.current = true;\n }\n }\n return {\n ...ariaActiveDescendantProp,\n onKeyDown(event) {\n isPointerModalityRef.current = false;\n const isArrowKey = event.key.startsWith('Arrow');\n const isHomeOrEndKey = ['Home', 'End'].includes(event.key);\n const isMoveKey = isArrowKey || isHomeOrEndKey;\n const isCrossOpenKey = isCrossOrientationOpenKey(event.key, orientation, rtl);\n const isCrossCloseKey = isCrossOrientationCloseKey(event.key, orientation, rtl);\n const isMainKey = isMainOrientationKey(event.key, orientation);\n const isNavigationKey = (nested ? isCrossOpenKey : isMainKey) || event.key === 'Enter' || event.key.trim() === '';\n if (virtual && open) {\n const rootNode = tree == null ? void 0 : tree.nodesRef.current.find(node => node.parentId == null);\n const deepestNode = tree && rootNode ? getDeepestNode(tree.nodesRef.current, rootNode.id) : null;\n if (isMoveKey && deepestNode && virtualItemRef) {\n const eventObject = new KeyboardEvent('keydown', {\n key: event.key,\n bubbles: true\n });\n if (isCrossOpenKey || isCrossCloseKey) {\n var _deepestNode$context, _deepestNode$context2;\n const isCurrentTarget = ((_deepestNode$context = deepestNode.context) == null ? void 0 : _deepestNode$context.elements.domReference) === event.currentTarget;\n const dispatchItem = isCrossCloseKey && !isCurrentTarget ? (_deepestNode$context2 = deepestNode.context) == null ? void 0 : _deepestNode$context2.elements.domReference : isCrossOpenKey ? listRef.current.find(item => (item == null ? void 0 : item.id) === activeId) : null;\n if (dispatchItem) {\n stopEvent(event);\n dispatchItem.dispatchEvent(eventObject);\n setVirtualId(undefined);\n }\n }\n if ((isMainKey || isHomeOrEndKey) && deepestNode.context) {\n if (deepestNode.context.open && deepestNode.parentId && event.currentTarget !== deepestNode.context.elements.domReference) {\n var _deepestNode$context$;\n stopEvent(event);\n (_deepestNode$context$ = deepestNode.context.elements.domReference) == null || _deepestNode$context$.dispatchEvent(eventObject);\n return;\n }\n }\n }\n return commonOnKeyDown(event);\n }\n\n // If a floating element should not open on arrow key down, avoid\n // setting `activeIndex` while it's closed.\n if (!open && !openOnArrowKeyDown && isArrowKey) {\n return;\n }\n if (isNavigationKey) {\n keyRef.current = nested && isMainKey ? null : event.key;\n }\n if (nested) {\n if (isCrossOpenKey) {\n stopEvent(event);\n if (open) {\n indexRef.current = getMinIndex(listRef, disabledIndicesRef.current);\n onNavigate(indexRef.current);\n } else {\n onOpenChange(true, event.nativeEvent, 'list-navigation');\n }\n }\n return;\n }\n if (isMainKey) {\n if (selectedIndex != null) {\n indexRef.current = selectedIndex;\n }\n stopEvent(event);\n if (!open && openOnArrowKeyDown) {\n onOpenChange(true, event.nativeEvent, 'list-navigation');\n } else {\n commonOnKeyDown(event);\n }\n if (open) {\n onNavigate(indexRef.current);\n }\n }\n },\n onFocus() {\n if (open && !virtual) {\n onNavigate(null);\n }\n },\n onPointerDown: checkVirtualPointer,\n onMouseDown: checkVirtualMouse,\n onClick: checkVirtualMouse\n };\n }, [activeId, ariaActiveDescendantProp, commonOnKeyDown, disabledIndicesRef, focusItemOnOpen, listRef, nested, onNavigate, onOpenChange, open, openOnArrowKeyDown, orientation, rtl, selectedIndex, tree, virtual, virtualItemRef]);\n return React.useMemo(() => enabled ? {\n reference,\n floating,\n item\n } : {}, [enabled, reference, floating, item]);\n}\n\nconst componentRoleToAriaRoleMap = /*#__PURE__*/new Map([['select', 'listbox'], ['combobox', 'listbox'], ['label', false]]);\n\n/**\n * Adds base screen reader props to the reference and floating elements for a\n * given floating element `role`.\n * @see https://floating-ui.com/docs/useRole\n */\nfunction useRole(context, props) {\n var _componentRoleToAriaR;\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n floatingId\n } = context;\n const {\n enabled = true,\n role = 'dialog'\n } = props;\n const ariaRole = (_componentRoleToAriaR = componentRoleToAriaRoleMap.get(role)) != null ? _componentRoleToAriaR : role;\n const referenceId = useId();\n const parentId = useFloatingParentNodeId();\n const isNested = parentId != null;\n const reference = React.useMemo(() => {\n if (ariaRole === 'tooltip' || role === 'label') {\n return {\n [\"aria-\" + (role === 'label' ? 'labelledby' : 'describedby')]: open ? floatingId : undefined\n };\n }\n return {\n 'aria-expanded': open ? 'true' : 'false',\n 'aria-haspopup': ariaRole === 'alertdialog' ? 'dialog' : ariaRole,\n 'aria-controls': open ? floatingId : undefined,\n ...(ariaRole === 'listbox' && {\n role: 'combobox'\n }),\n ...(ariaRole === 'menu' && {\n id: referenceId\n }),\n ...(ariaRole === 'menu' && isNested && {\n role: 'menuitem'\n }),\n ...(role === 'select' && {\n 'aria-autocomplete': 'none'\n }),\n ...(role === 'combobox' && {\n 'aria-autocomplete': 'list'\n })\n };\n }, [ariaRole, floatingId, isNested, open, referenceId, role]);\n const floating = React.useMemo(() => {\n const floatingProps = {\n id: floatingId,\n ...(ariaRole && {\n role: ariaRole\n })\n };\n if (ariaRole === 'tooltip' || role === 'label') {\n return floatingProps;\n }\n return {\n ...floatingProps,\n ...(ariaRole === 'menu' && {\n 'aria-labelledby': referenceId\n })\n };\n }, [ariaRole, floatingId, referenceId, role]);\n const item = React.useCallback(_ref => {\n let {\n active,\n selected\n } = _ref;\n const commonProps = {\n role: 'option',\n ...(active && {\n id: floatingId + \"-option\"\n })\n };\n\n // For `menu`, we are unable to tell if the item is a `menuitemradio`\n // or `menuitemcheckbox`. For backwards-compatibility reasons, also\n // avoid defaulting to `menuitem` as it may overwrite custom role props.\n switch (role) {\n case 'select':\n return {\n ...commonProps,\n 'aria-selected': active && selected\n };\n case 'combobox':\n {\n return {\n ...commonProps,\n ...(active && {\n 'aria-selected': true\n })\n };\n }\n }\n return {};\n }, [floatingId, role]);\n return React.useMemo(() => enabled ? {\n reference,\n floating,\n item\n } : {}, [enabled, reference, floating, item]);\n}\n\n// Converts a JS style key like `backgroundColor` to a CSS transition-property\n// like `background-color`.\nconst camelCaseToKebabCase = str => str.replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, ofs) => (ofs ? '-' : '') + $.toLowerCase());\nfunction execWithArgsOrReturn(valueOrFn, args) {\n return typeof valueOrFn === 'function' ? valueOrFn(args) : valueOrFn;\n}\nfunction useDelayUnmount(open, durationMs) {\n const [isMounted, setIsMounted] = React.useState(open);\n if (open && !isMounted) {\n setIsMounted(true);\n }\n React.useEffect(() => {\n if (!open && isMounted) {\n const timeout = setTimeout(() => setIsMounted(false), durationMs);\n return () => clearTimeout(timeout);\n }\n }, [open, isMounted, durationMs]);\n return isMounted;\n}\n/**\n * Provides a status string to apply CSS transitions to a floating element,\n * correctly handling placement-aware transitions.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstatus\n */\nfunction useTransitionStatus(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n open,\n elements: {\n floating\n }\n } = context;\n const {\n duration = 250\n } = props;\n const isNumberDuration = typeof duration === 'number';\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [status, setStatus] = React.useState('unmounted');\n const isMounted = useDelayUnmount(open, closeDuration);\n if (!isMounted && status === 'close') {\n setStatus('unmounted');\n }\n index(() => {\n if (!floating) return;\n if (open) {\n setStatus('initial');\n const frame = requestAnimationFrame(() => {\n setStatus('open');\n });\n return () => {\n cancelAnimationFrame(frame);\n };\n }\n setStatus('close');\n }, [open, floating]);\n return {\n isMounted,\n status\n };\n}\n/**\n * Provides styles to apply CSS transitions to a floating element, correctly\n * handling placement-aware transitions. Wrapper around `useTransitionStatus`.\n * @see https://floating-ui.com/docs/useTransition#usetransitionstyles\n */\nfunction useTransitionStyles(context, props) {\n if (props === void 0) {\n props = {};\n }\n const {\n initial: unstable_initial = {\n opacity: 0\n },\n open: unstable_open,\n close: unstable_close,\n common: unstable_common,\n duration = 250\n } = props;\n const placement = context.placement;\n const side = placement.split('-')[0];\n const fnArgs = React.useMemo(() => ({\n side,\n placement\n }), [side, placement]);\n const isNumberDuration = typeof duration === 'number';\n const openDuration = (isNumberDuration ? duration : duration.open) || 0;\n const closeDuration = (isNumberDuration ? duration : duration.close) || 0;\n const [styles, setStyles] = React.useState(() => ({\n ...execWithArgsOrReturn(unstable_common, fnArgs),\n ...execWithArgsOrReturn(unstable_initial, fnArgs)\n }));\n const {\n isMounted,\n status\n } = useTransitionStatus(context, {\n duration\n });\n const initialRef = useLatestRef(unstable_initial);\n const openRef = useLatestRef(unstable_open);\n const closeRef = useLatestRef(unstable_close);\n const commonRef = useLatestRef(unstable_common);\n index(() => {\n const initialStyles = execWithArgsOrReturn(initialRef.current, fnArgs);\n const closeStyles = execWithArgsOrReturn(closeRef.current, fnArgs);\n const commonStyles = execWithArgsOrReturn(commonRef.current, fnArgs);\n const openStyles = execWithArgsOrReturn(openRef.current, fnArgs) || Object.keys(initialStyles).reduce((acc, key) => {\n acc[key] = '';\n return acc;\n }, {});\n if (status === 'initial') {\n setStyles(styles => ({\n transitionProperty: styles.transitionProperty,\n ...commonStyles,\n ...initialStyles\n }));\n }\n if (status === 'open') {\n setStyles({\n transitionProperty: Object.keys(openStyles).map(camelCaseToKebabCase).join(','),\n transitionDuration: openDuration + \"ms\",\n ...commonStyles,\n ...openStyles\n });\n }\n if (status === 'close') {\n const styles = closeStyles || initialStyles;\n setStyles({\n transitionProperty: Object.keys(styles).map(camelCaseToKebabCase).join(','),\n transitionDuration: closeDuration + \"ms\",\n ...commonStyles,\n ...styles\n });\n }\n }, [closeDuration, closeRef, initialRef, openRef, commonRef, openDuration, status, fnArgs]);\n return {\n isMounted,\n styles\n };\n}\n\n/**\n * Provides a matching callback that can be used to focus an item as the user\n * types, often used in tandem with `useListNavigation()`.\n * @see https://floating-ui.com/docs/useTypeahead\n */\nfunction useTypeahead(context, props) {\n var _ref;\n const {\n open,\n dataRef\n } = context;\n const {\n listRef,\n activeIndex,\n onMatch: unstable_onMatch,\n onTypingChange: unstable_onTypingChange,\n enabled = true,\n findMatch = null,\n resetMs = 750,\n ignoreKeys = [],\n selectedIndex = null\n } = props;\n const timeoutIdRef = React.useRef();\n const stringRef = React.useRef('');\n const prevIndexRef = React.useRef((_ref = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref : -1);\n const matchIndexRef = React.useRef(null);\n const onMatch = useEffectEvent(unstable_onMatch);\n const onTypingChange = useEffectEvent(unstable_onTypingChange);\n const findMatchRef = useLatestRef(findMatch);\n const ignoreKeysRef = useLatestRef(ignoreKeys);\n index(() => {\n if (open) {\n clearTimeout(timeoutIdRef.current);\n matchIndexRef.current = null;\n stringRef.current = '';\n }\n }, [open]);\n index(() => {\n // Sync arrow key navigation but not typeahead navigation.\n if (open && stringRef.current === '') {\n var _ref2;\n prevIndexRef.current = (_ref2 = selectedIndex != null ? selectedIndex : activeIndex) != null ? _ref2 : -1;\n }\n }, [open, selectedIndex, activeIndex]);\n const setTypingChange = useEffectEvent(value => {\n if (value) {\n if (!dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n } else {\n if (dataRef.current.typing) {\n dataRef.current.typing = value;\n onTypingChange(value);\n }\n }\n });\n const onKeyDown = useEffectEvent(event => {\n function getMatchingIndex(list, orderedList, string) {\n const str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(text => (text == null ? void 0 : text.toLocaleLowerCase().indexOf(string.toLocaleLowerCase())) === 0);\n return str ? list.indexOf(str) : -1;\n }\n const listContent = listRef.current;\n if (stringRef.current.length > 0 && stringRef.current[0] !== ' ') {\n if (getMatchingIndex(listContent, listContent, stringRef.current) === -1) {\n setTypingChange(false);\n } else if (event.key === ' ') {\n stopEvent(event);\n }\n }\n if (listContent == null || ignoreKeysRef.current.includes(event.key) ||\n // Character key.\n event.key.length !== 1 ||\n // Modifier key.\n event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n if (open && event.key !== ' ') {\n stopEvent(event);\n setTypingChange(true);\n }\n\n // Bail out if the list contains a word like \"llama\" or \"aaron\". TODO:\n // allow it in this case, too.\n const allowRapidSuccessionOfFirstLetter = listContent.every(text => {\n var _text$, _text$2;\n return text ? ((_text$ = text[0]) == null ? void 0 : _text$.toLocaleLowerCase()) !== ((_text$2 = text[1]) == null ? void 0 : _text$2.toLocaleLowerCase()) : true;\n });\n\n // Allows the user to cycle through items that start with the same letter\n // in rapid succession.\n if (allowRapidSuccessionOfFirstLetter && stringRef.current === event.key) {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n }\n stringRef.current += event.key;\n clearTimeout(timeoutIdRef.current);\n timeoutIdRef.current = setTimeout(() => {\n stringRef.current = '';\n prevIndexRef.current = matchIndexRef.current;\n setTypingChange(false);\n }, resetMs);\n const prevIndex = prevIndexRef.current;\n const index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);\n if (index !== -1) {\n onMatch(index);\n matchIndexRef.current = index;\n } else if (event.key !== ' ') {\n stringRef.current = '';\n setTypingChange(false);\n }\n });\n const reference = React.useMemo(() => ({\n onKeyDown\n }), [onKeyDown]);\n const floating = React.useMemo(() => {\n return {\n onKeyDown,\n onKeyUp(event) {\n if (event.key === ' ') {\n setTypingChange(false);\n }\n }\n };\n }, [onKeyDown, setTypingChange]);\n return React.useMemo(() => enabled ? {\n reference,\n floating\n } : {}, [enabled, reference, floating]);\n}\n\nfunction getArgsWithCustomFloatingHeight(state, height) {\n return {\n ...state,\n rects: {\n ...state.rects,\n floating: {\n ...state.rects.floating,\n height\n }\n }\n };\n}\n/**\n * Positions the floating element such that an inner element inside of it is\n * anchored to the reference element.\n * @see https://floating-ui.com/docs/inner\n */\nconst inner = props => ({\n name: 'inner',\n options: props,\n async fn(state) {\n const {\n listRef,\n overflowRef,\n onFallbackChange,\n offset: innerOffset = 0,\n index = 0,\n minItemsVisible = 4,\n referenceOverflowThreshold = 0,\n scrollRef,\n ...detectOverflowOptions\n } = evaluate(props, state);\n const {\n rects,\n elements: {\n floating\n }\n } = state;\n const item = listRef.current[index];\n const scrollEl = (scrollRef == null ? void 0 : scrollRef.current) || floating;\n\n // Valid combinations:\n // 1. Floating element is the scrollRef and has a border (default)\n // 2. Floating element is not the scrollRef, floating element has a border\n // 3. Floating element is not the scrollRef, scrollRef has a border\n // Floating > {...getFloatingProps()} wrapper > scrollRef > items is not\n // allowed as VoiceOver doesn't work.\n const clientTop = floating.clientTop || scrollEl.clientTop;\n const floatingIsBordered = floating.clientTop !== 0;\n const scrollElIsBordered = scrollEl.clientTop !== 0;\n const floatingIsScrollEl = floating === scrollEl;\n if (process.env.NODE_ENV !== \"production\") {\n if (!state.placement.startsWith('bottom')) {\n warn('`placement` side must be \"bottom\" when using the `inner`', 'middleware.');\n }\n }\n if (!item) {\n return {};\n }\n const nextArgs = {\n ...state,\n ...(await offset(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))\n };\n const overflow = await detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);\n const refOverflow = await detectOverflow(nextArgs, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const diffY = max(0, overflow.top);\n const nextY = nextArgs.y + diffY;\n const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;\n const rounder = isScrollable ? v => v : round;\n const maxHeight = rounder(max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - max(0, overflow.bottom)));\n scrollEl.style.maxHeight = maxHeight + \"px\";\n scrollEl.scrollTop = diffY;\n\n // There is not enough space, fallback to standard anchored positioning\n if (onFallbackChange) {\n const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * min(minItemsVisible, listRef.current.length) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;\n ReactDOM.flushSync(() => onFallbackChange(shouldFallback));\n }\n if (overflowRef) {\n overflowRef.current = await detectOverflow(getArgsWithCustomFloatingHeight({\n ...nextArgs,\n y: nextY\n }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);\n }\n return {\n y: nextY\n };\n }\n});\n/**\n * Changes the `inner` middleware's `offset` upon a `wheel` event to\n * expand the floating element's height, revealing more list items.\n * @see https://floating-ui.com/docs/inner\n */\nfunction useInnerOffset(context, props) {\n const {\n open,\n elements\n } = context;\n const {\n enabled = true,\n overflowRef,\n scrollRef,\n onChange: unstable_onChange\n } = props;\n const onChange = useEffectEvent(unstable_onChange);\n const controlledScrollingRef = React.useRef(false);\n const prevScrollTopRef = React.useRef(null);\n const initialOverflowRef = React.useRef(null);\n React.useEffect(() => {\n if (!enabled) return;\n function onWheel(e) {\n if (e.ctrlKey || !el || overflowRef.current == null) {\n return;\n }\n const dY = e.deltaY;\n const isAtTop = overflowRef.current.top >= -0.5;\n const isAtBottom = overflowRef.current.bottom >= -0.5;\n const remainingScroll = el.scrollHeight - el.clientHeight;\n const sign = dY < 0 ? -1 : 1;\n const method = dY < 0 ? 'max' : 'min';\n if (el.scrollHeight <= el.clientHeight) {\n return;\n }\n if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {\n e.preventDefault();\n ReactDOM.flushSync(() => {\n onChange(d => d + Math[method](dY, remainingScroll * sign));\n });\n } else if (/firefox/i.test(getUserAgent())) {\n // Needed to propagate scrolling during momentum scrolling phase once\n // it gets limited by the boundary. UX improvement, not critical.\n el.scrollTop += dY;\n }\n }\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (open && el) {\n el.addEventListener('wheel', onWheel);\n\n // Wait for the position to be ready.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n if (overflowRef.current != null) {\n initialOverflowRef.current = {\n ...overflowRef.current\n };\n }\n });\n return () => {\n prevScrollTopRef.current = null;\n initialOverflowRef.current = null;\n el.removeEventListener('wheel', onWheel);\n };\n }\n }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);\n const floating = React.useMemo(() => ({\n onKeyDown() {\n controlledScrollingRef.current = true;\n },\n onWheel() {\n controlledScrollingRef.current = false;\n },\n onPointerMove() {\n controlledScrollingRef.current = false;\n },\n onScroll() {\n const el = (scrollRef == null ? void 0 : scrollRef.current) || elements.floating;\n if (!overflowRef.current || !el || !controlledScrollingRef.current) {\n return;\n }\n if (prevScrollTopRef.current !== null) {\n const scrollDiff = el.scrollTop - prevScrollTopRef.current;\n if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {\n ReactDOM.flushSync(() => onChange(d => d + scrollDiff));\n }\n }\n\n // [Firefox] Wait for the height change to have been applied.\n requestAnimationFrame(() => {\n prevScrollTopRef.current = el.scrollTop;\n });\n }\n }), [elements.floating, onChange, overflowRef, scrollRef]);\n return React.useMemo(() => enabled ? {\n floating\n } : {}, [enabled, floating]);\n}\n\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let isInside = false;\n const length = polygon.length;\n for (let i = 0, j = length - 1; i < length; j = i++) {\n const [xi, yi] = polygon[i] || [0, 0];\n const [xj, yj] = polygon[j] || [0, 0];\n const intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;\n if (intersect) {\n isInside = !isInside;\n }\n }\n return isInside;\n}\nfunction isInside(point, rect) {\n return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n}\n/**\n * Generates a safe polygon area that the user can traverse without closing the\n * floating element once leaving the reference element.\n * @see https://floating-ui.com/docs/useHover#safepolygon\n */\nfunction safePolygon(options) {\n if (options === void 0) {\n options = {};\n }\n const {\n buffer = 0.5,\n blockPointerEvents = false,\n requireIntent = true\n } = options;\n let timeoutId;\n let hasLanded = false;\n let lastX = null;\n let lastY = null;\n let lastCursorTime = performance.now();\n function getCursorSpeed(x, y) {\n const currentTime = performance.now();\n const elapsedTime = currentTime - lastCursorTime;\n if (lastX === null || lastY === null || elapsedTime === 0) {\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return null;\n }\n const deltaX = x - lastX;\n const deltaY = y - lastY;\n const distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);\n const speed = distance / elapsedTime; // px / ms\n\n lastX = x;\n lastY = y;\n lastCursorTime = currentTime;\n return speed;\n }\n const fn = _ref => {\n let {\n x,\n y,\n placement,\n elements,\n onClose,\n nodeId,\n tree\n } = _ref;\n return function onMouseMove(event) {\n function close() {\n clearTimeout(timeoutId);\n onClose();\n }\n clearTimeout(timeoutId);\n if (!elements.domReference || !elements.floating || placement == null || x == null || y == null) {\n return;\n }\n const {\n clientX,\n clientY\n } = event;\n const clientPoint = [clientX, clientY];\n const target = getTarget(event);\n const isLeave = event.type === 'mouseleave';\n const isOverFloatingEl = contains(elements.floating, target);\n const isOverReferenceEl = contains(elements.domReference, target);\n const refRect = elements.domReference.getBoundingClientRect();\n const rect = elements.floating.getBoundingClientRect();\n const side = placement.split('-')[0];\n const cursorLeaveFromRight = x > rect.right - rect.width / 2;\n const cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;\n const isOverReferenceRect = isInside(clientPoint, refRect);\n const isFloatingWider = rect.width > refRect.width;\n const isFloatingTaller = rect.height > refRect.height;\n const left = (isFloatingWider ? refRect : rect).left;\n const right = (isFloatingWider ? refRect : rect).right;\n const top = (isFloatingTaller ? refRect : rect).top;\n const bottom = (isFloatingTaller ? refRect : rect).bottom;\n if (isOverFloatingEl) {\n hasLanded = true;\n if (!isLeave) {\n return;\n }\n }\n if (isOverReferenceEl) {\n hasLanded = false;\n }\n if (isOverReferenceEl && !isLeave) {\n hasLanded = true;\n return;\n }\n\n // Prevent overlapping floating element from being stuck in an open-close\n // loop: https://github.com/floating-ui/floating-ui/issues/1910\n if (isLeave && isElement(event.relatedTarget) && contains(elements.floating, event.relatedTarget)) {\n return;\n }\n\n // If any nested child is open, abort.\n if (tree && getChildren(tree.nodesRef.current, nodeId).some(_ref2 => {\n let {\n context\n } = _ref2;\n return context == null ? void 0 : context.open;\n })) {\n return;\n }\n\n // If the pointer is leaving from the opposite side, the \"buffer\" logic\n // creates a point where the floating element remains open, but should be\n // ignored.\n // A constant of 1 handles floating point rounding errors.\n if (side === 'top' && y >= refRect.bottom - 1 || side === 'bottom' && y <= refRect.top + 1 || side === 'left' && x >= refRect.right - 1 || side === 'right' && x <= refRect.left + 1) {\n return close();\n }\n\n // Ignore when the cursor is within the rectangular trough between the\n // two elements. Since the triangle is created from the cursor point,\n // which can start beyond the ref element's edge, traversing back and\n // forth from the ref to the floating element can cause it to close. This\n // ensures it always remains open in that case.\n let rectPoly = [];\n switch (side) {\n case 'top':\n rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];\n break;\n case 'bottom':\n rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];\n break;\n case 'left':\n rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];\n break;\n case 'right':\n rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];\n break;\n }\n function getPolygon(_ref3) {\n let [x, y] = _ref3;\n switch (side) {\n case 'top':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y + buffer + 1];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'bottom':\n {\n const cursorPointOne = [isFloatingWider ? x + buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const cursorPointTwo = [isFloatingWider ? x - buffer / 2 : cursorLeaveFromRight ? x + buffer * 4 : x - buffer * 4, y - buffer];\n const commonPoints = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n case 'left':\n {\n const cursorPointOne = [x + buffer + 1, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x + buffer + 1, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];\n return [...commonPoints, cursorPointOne, cursorPointTwo];\n }\n case 'right':\n {\n const cursorPointOne = [x - buffer, isFloatingTaller ? y + buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const cursorPointTwo = [x - buffer, isFloatingTaller ? y - buffer / 2 : cursorLeaveFromBottom ? y + buffer * 4 : y - buffer * 4];\n const commonPoints = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];\n return [cursorPointOne, cursorPointTwo, ...commonPoints];\n }\n }\n }\n if (isPointInPolygon([clientX, clientY], rectPoly)) {\n return;\n }\n if (hasLanded && !isOverReferenceRect) {\n return close();\n }\n if (!isLeave && requireIntent) {\n const cursorSpeed = getCursorSpeed(event.clientX, event.clientY);\n const cursorSpeedThreshold = 0.1;\n if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {\n return close();\n }\n }\n if (!isPointInPolygon([clientX, clientY], getPolygon([x, y]))) {\n close();\n } else if (!hasLanded && requireIntent) {\n timeoutId = window.setTimeout(close, 40);\n }\n };\n };\n fn.__options = {\n blockPointerEvents\n };\n return fn;\n}\n\nexport { Composite, CompositeItem, FloatingArrow, FloatingDelayGroup, FloatingFocusManager, FloatingList, FloatingNode, FloatingOverlay, FloatingPortal, FloatingTree, inner, safePolygon, useClick, useClientPoint, useDelayGroup, useDelayGroupContext, useDismiss, useFloating, useFloatingNodeId, useFloatingParentNodeId, useFloatingPortalNode, useFloatingRootContext, useFloatingTree, useFocus, useHover, useId, useInnerOffset, useInteractions, useListItem, useListNavigation, useMergeRefs, useRole, useTransitionStatus, useTransitionStyles, useTypeahead };\n"],"names":["timeoutId","useMergeRefs","refs","react__WEBPACK_IMPORTED_MODULE_0__","useMemo","every","ref","value","forEach","current","SafeReact","react__WEBPACK_IMPORTED_MODULE_0___namespace_cache","__webpack_require__","t","useSafeInsertionEffect","useInsertionEffect","fn","useEffectEvent","callback","useRef","useCallback","_len","arguments","length","args","_key","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","isDifferentRow","index","cols","prevRow","Math","floor","isIndexOutOfBounds","listRef","getMinIndex","disabledIndices","findNonDisabledIndex","getMaxIndex","decrement","startingIndex","_temp","amount","list","isDisabled","getGridNavigatedIndex","elementsRef","_ref","event","orientation","loop","rtl","minIndex","maxIndex","prevIndex","stopEvent","stop","nextIndex","key","_floating_ui_react_utils__WEBPACK_IMPORTED_MODULE_5__","p7","col","maxCol","offset","_floating_ui_utils__WEBPACK_IMPORTED_MODULE_6__","GW","lastRow","buildCellMap","sizes","dense","cellMap","startIndex","_ref2","width","height","itemPlaced","targetCells","i","j","push","cell","getCellIndexOfCorner","corner","firstCellIndex","indexOf","sizeItem","lastIndexOf","getCellIndices","indices","flatMap","cellIndex","includes","element","hasAttribute","getAttribute","document","useLayoutEffect","useEffect","sortByDocumentPosition","a","b","position","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","FloatingListContext","createContext","register","unregister","map","Map","FloatingList","props","children","labelsRef","setMap","useState","node","prevMap","set","delete","newMap","nodes","from","keys","sort","areMapsEqual","map1","map2","size","entries","get","createElement","Provider","useListItem","label","useContext","index$1","setIndex","componentRef","_node$textContent","isLabelDefined","undefined","textContent","renderJsx","render","computedProps","cloneElement","CompositeContext","activeIndex","onNavigate","horizontalKeys","verticalKeys","allKeys","Composite","forwardRef","forwardedRef","externalActiveIndex","externalSetActiveIndex","itemSizes","domProps","internalActiveIndex","internalSetActiveIndex","renderElementProps","contextValue","isGrid","onKeyDown","e","handleKeyDown","horizontalEndKey","horizontalStartKey","Array","minGridIndex","findIndex","maxGridIndex","reduce","foundIndex","maybeNextIndex","itemIndex","_","toEndKeys","horizontal","vertical","both","toStartKeys","preventedKeys","_elementsRef$current$","stopPropagation","preventDefault","focus","CompositeItem","mergedRef","isActive","tabIndex","onFocus","_extends","Object","assign","bind","target","source","prototype","hasOwnProperty","call","apply","serverHandoffComplete","count","genId","random","toString","slice","useId","useReactId","id","setId","FloatingArrow","context","placement","elements","floating","middlewareData","arrow","shift","tipRadius","strokeWidth","staticOffset","stroke","d","style","transform","restStyle","rest","clipPathId","isRTL","setIsRTL","_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_4__","Dx","direction","side","alignment","split","isVerticalSide","computedStaticOffset","x","y","computedStrokeWidth","halfStrokeWidth","svgX","svgY","isCustomShape","yOffsetProp","xOffsetProp","arrowX","arrowY","dValue","rotation","top","left","bottom","right","viewBox","pointerEvents","filter","join","clipPath","fill","createPubSub","emit","data","_map$get","handler","on","listener","off","_map$get2","l","FloatingNodeContext","FloatingTreeContext","useFloatingParentNodeId","_React$useContext","useFloatingTree","useFloatingNodeId","customParentId","tree","reactParentId","parentId","addNode","removeNode","FloatingNode","FloatingTree","nodesRef","n","events","createAttribute","name","useLatestRef","safePolygonIdentifier","getDelay","prop","pointerType","r","useHover","open","onOpenChange","dataRef","enabled","delay","handleClose","mouseOnly","restMs","move","handleCloseRef","delayRef","openRef","pointerTypeRef","timeoutRef","handlerRef","restTimeoutRef","blockMouseMoveRef","performedPointerEventsMutationRef","unbindMouseMoveRef","restTimeoutPendingRef","isHoverOpen","_dataRef$current$open","type","openEvent","clearTimeout","onLeave","html","Me","documentElement","addEventListener","removeEventListener","closeWithDelay","runElseBranch","reason","closeDelay","window","setTimeout","cleanupMouseMoveHandler","clearPointerEvents","body","removeAttribute","isClickLikeOpenEvent","kK","domReference","_elements$floating","onScrollMouseLeave","onMouseEnter","once","onMouseLeave","_elements$floating2","openDelay","doc","floatingContext","clientX","clientY","onClose","r3","relatedTarget","_handleCloseRef$curre","_tree$nodesRef$curren","__options","blockPointerEvents","floatingEl","setAttribute","parentFloating","find","reference","setPointerRef","onPointerDown","onPointerEnter","onMouseMove","nativeEvent","handleMouseMove","movementX","movementY","NOOP","FloatingDelayGroupContext","initialDelay","timeoutMs","currentId","setCurrentId","setState","isInstantPhase","useDelayGroupContext","FloatingDelayGroup","state","useReducer","prev","next","initialCurrentIdRef","useDelayGroup","options","floatingId","optionId","groupContext","close","unset","timeout","rafId","enqueueFocus","el","preventScroll","cancelPrevious","sync","cancelAnimationFrame","exec","requestAnimationFrame","getChildren","allChildren","_node$context","currentChildren","_currentChildren","some","_node$context2","concat","counterMap","WeakMap","uncontrolledElementsSet","WeakSet","markerMap","lockCount$1","supportsInert","HTMLElement","unwrapHost","host","parentNode","correctElements","parent","targets","contains","correctedTarget","markOthers","avoidElements","ariaHidden","inert","applyAttributeToOthers","uncorrectedAvoidElements","markerName","controlAttribute","elementsToKeep","Set","elementsToStop","hiddenElements","markerCounter","keep","has","add","deep","wk","attr","alreadyHidden","counterValue","markerValue","clear","querySelectorAll","getTabbableOptions","getShadowRoot","displayCheck","ResizeObserver","getTabbableIn","container","allTabbable","tabbable__WEBPACK_IMPORTED_MODULE_7__","ht","reverse","AW","nextTabbableElements","getNextTabbable","getPreviousTabbable","isOutsideEvent","containerElement","currentTarget","enableFocusInside","tabindex","dataset","HIDDEN_STYLES","border","clip","margin","overflow","padding","whiteSpace","setActiveElementOnTab","FocusGuard","role","setRole","G6","restProps","PortalContext","useFloatingPortalNode","root","uniqueId","portalContext","usePortalContext","portalNode","setPortalNode","portalNodeRef","remove","queueMicrotask","existingIdRoot","getElementById","subRoot","appendChild","idWrapper","FloatingPortal","preserveTabOrder","focusManagerState","setFocusManagerState","beforeOutsideRef","afterOutsideRef","beforeInsideRef","afterInsideRef","modal","shouldRenderGuards","manageFocus","focusing","tabbableElements","_beforeInsideRef$curr","prevTabbable","react_dom__WEBPACK_IMPORTED_MODULE_1__","createPortal","_afterInsideRef$curre","nextTabbable","closeOnFocusOut","FOCUSABLE_ATTRIBUTE","getFloatingFocusElement","floatingElement","querySelector","previouslyFocusedElements","addPreviouslyFocusedElement","isConnected","tabbableEl","Wq","tabbableChild","getPreviouslyFocusedElement","VisuallyHiddenDismiss","FloatingFocusManager","disabled","order","guards","_guards","initialFocus","returnFocus","restoreFocus","visuallyHiddenDismiss","nodeId","ignoreInitialFocus","isUntrappedTypeableCombobox","Ie","orderRef","initialFocusRef","returnFocusRef","startDismissButtonRef","endDismissButtonRef","preventReturnFocusRef","isPointerDownRef","tabbableIndexRef","isInsidePortal","floatingFocusElement","getTabbableContent","getTabbableElements","content","Boolean","flat","renderDismissButton","location","onClick","els","U9","shiftKey","handleFocusIn","tabbableIndex","tabbableContent","Re","handleFocusOutside","handlePointerDown","movedToUnrelatedNode","getAncestors","_nodes$find","allAncestors","currentParentId","currentNode","_node$context3","_node$context4","prevTabbableIndex","nodeToFocus","_portalContext$portal","portalNodes","insideElements","cleanup","previouslyFocusedElement","focusableElements","initialFocusValue","elToFocus","focusAlreadyInsideFloatingEl","preventReturnFocusScroll","contextData","nested","Zj","cr","fallbackEl","insertAdjacentElement","activeEl","isFocusInsideFloatingTree","_node$context5","returnElement","MutationObserver","handleMutation","observer","observe","childList","subtree","attributes","disconnect","Fragment","_portalContext$before","_portalContext$afterO","lockCount","FloatingOverlay","lockScroll","enableScrollLock","isIOS","test","Xf","bodyStyle","paddingProp","scrollbarX","round","getBoundingClientRect","scrollLeft","scrollbarWidth","innerWidth","clientWidth","scrollX","parseFloat","scrollY","_window$visualViewpor","_window$visualViewpor2","offsetLeft","visualViewport","offsetTop","scrollTo","isButtonTarget","tagName","useClick","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","didKeyDownRef","onMouseDown","button","defaultPrevented","j7","onKeyUp","isMouseBasedEvent","useClientPoint","axis","initialRef","cleanupListenerRef","setPointerType","reactive","setReactive","setReference","offsetX","offsetY","isAutoUpdateEvent","setPositionReference","contextElement","domElement","_data$dataRef$current","domRect","isXAxis","isYAxis","canTrackCursorOnAutoUpdate","handleReferenceEnterOrMove","openCheck","addListener","win","Jj","setPointerTypeRef","bubbleHandlerKeys","pointerdown","mousedown","click","captureHandlerKeys","normalizeProp","normalizable","_normalizable$escapeK","_normalizable$outside","escapeKey","outsidePress","useDismiss","unstable_outsidePress","outsidePressEvent","referencePress","referencePressEvent","ancestorScroll","bubbles","capture","outsidePressFn","insideReactTreeRef","endedOrStartedInsideRef","escapeKeyBubbles","outsidePressBubbles","escapeKeyCapture","outsidePressCapture","isComposingRef","closeOnEscapeKeyDown","_dataRef$current$floa","shouldDismiss","child","_child$context","__escapeKeyBubbles","MM","closeOnEscapeKeyDownCapture","_getTarget2","_getTarget","closeOnPressOutside","_dataRef$current$floa2","insideReactTree","endedOrStartedInside","inertSelector","markers","targetRootAncestor","Py","nextParent","Ow","ex","marker","canScrollX","scrollWidth","canScrollY","clientHeight","scrollHeight","xCond","offsetWidth","targetIsInsideChildren","Pe","_child$context2","__outsidePressBubbles","closeOnPressOutsideCapture","_getTarget4","_getTarget3","compositionTimeout","onScroll","handleCompositionStart","handleCompositionEnd","Pf","ancestors","Kx","ancestor","_doc$defaultView","defaultView","passive","onMouseUp","useFloatingRootContext","onOpenChangeProp","elementsProp","positionReference","useFloating","internalRootContext","rootContext","computedElements","_domReference","setDomReference","_setPositionReference","optionDomReference","domReferenceRef","_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_2__","YF","computedPositionReference","useFocus","visibleOnly","blockFocusRef","keyboardModalityRef","onBlur","V5","Error","matches","movedToFocusGuard","ownerDocument","ACTIVE_KEY","SELECTED_KEY","mergeProps","userProps","propsList","elementKey","isItem","domUserProps","__","validProps","propsOrGetProps","acc","val","useInteractions","referenceDeps","floatingDeps","itemDeps","item","getReferenceProps","getFloatingProps","getItemProps","isPreventScrollSupported","doSwitch","isMainOrientationKey","isMainOrientationToEndKey","isCrossOrientationCloseKey","useListNavigation","unstable_onNavigate","selectedIndex","allowEscape","virtual","focusItemOnOpen","focusItemOnHover","openOnArrowKeyDown","scrollItemIntoView","virtualItemRef","floatingFocusElementRef","typeableComboboxReference","focusItemOnOpenRef","indexRef","keyRef","isPointerModalityRef","previousOnNavigateRef","previousMountedRef","previousOpenRef","forceSyncFocus","forceScrollIntoViewRef","disabledIndicesRef","latestOpenRef","scrollItemIntoViewRef","selectedIndexRef","activeId","setActiveId","virtualId","setVirtualId","focusItem","forceScrollIntoView","runFocus","initialItem","waitedItem","scrollIntoViewOptions","scrollIntoView","block","inline","runs","waitForListPopulated","scheduler","treeContainsActiveEl","handleVirtualFocus","hasActiveIndex","syncCurrentTarget","_ref3","onPointerLeave","_ref4","commonOnKeyDown","which","currentIndex","min","max","ariaActiveDescendantProp","onPointerMove","checkVirtualMouse","_deepestNode$context","_deepestNode$context2","_deepestNode$context$","isArrowKey","startsWith","isHomeOrEndKey","isCrossOpenKey","isCrossCloseKey","isMainKey","isNavigationKey","trim","deepestNodeId","maxDepth","rootNode","deepestNode","findDeepest","depth","isMoveKey","eventObject","KeyboardEvent","isCurrentTarget","dispatchItem","dispatchEvent","componentRoleToAriaRoleMap","useRole","_componentRoleToAriaR","ariaRole","referenceId","isNested","floatingProps","active","selected","commonProps","camelCaseToKebabCase","str","replace","$","ofs","toLowerCase","execWithArgsOrReturn","valueOrFn","useTransitionStatus","duration","closeDuration","isNumberDuration","status","setStatus","isMounted","useDelayUnmount","durationMs","setIsMounted","frame","useTransitionStyles","initial","unstable_initial","opacity","unstable_open","unstable_close","common","unstable_common","fnArgs","openDuration","styles","setStyles","closeRef","commonRef","initialStyles","closeStyles","commonStyles","openStyles","transitionProperty","transitionDuration","useTypeahead","onMatch","unstable_onMatch","onTypingChange","unstable_onTypingChange","findMatch","resetMs","ignoreKeys","timeoutIdRef","stringRef","prevIndexRef","matchIndexRef","findMatchRef","ignoreKeysRef","setTypingChange","typing","getMatchingIndex","orderedList","string","text","toLocaleLowerCase","listContent","ctrlKey","metaKey","altKey","_text$","_text$2","getArgsWithCustomFloatingHeight","rects","inner","overflowRef","onFallbackChange","innerOffset","minItemsVisible","referenceOverflowThreshold","scrollRef","detectOverflowOptions","ku","scrollEl","clientTop","floatingIsBordered","scrollElIsBordered","floatingIsScrollEl","nextArgs","cv","offsetHeight","_floating_ui_react_dom__WEBPACK_IMPORTED_MODULE_3__","US","refOverflow","elementContext","diffY","Fp","nextY","maxHeight","rounder","isScrollable","v","NM","scrollTop","shouldFallback","VV","flushSync","useInnerOffset","onChange","unstable_onChange","controlledScrollingRef","prevScrollTopRef","initialOverflowRef","onWheel","dY","deltaY","isAtTop","isAtBottom","remainingScroll","sign","method","ij","scrollDiff","isPointInPolygon","point","polygon","isInside","xi","yi","xj","yj","safePolygon","buffer","requireIntent","hasLanded","lastX","lastY","lastCursorTime","performance","now","clientPoint","isLeave","isOverFloatingEl","isOverReferenceEl","refRect","rect","cursorLeaveFromRight","cursorLeaveFromBottom","isOverReferenceRect","isFloatingWider","isFloatingTaller","rectPoly","cursorSpeed","getCursorSpeed","currentTime","elapsedTime","deltaX","distance","sqrt","getPolygon","commonPoints"],"sourceRoot":""}