{"version":3,"file":"static/chunks/242-5314618ca5953dca.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@mui/base/useDropdown/dropdownReducer.js","webpack://_N_E/./node_modules/@mui/base/useDropdown/useDropdown.js","webpack://_N_E/./node_modules/@mui/base/Dropdown/Dropdown.js","webpack://_N_E/./node_modules/@mui/base/Menu/menuClasses.js","webpack://_N_E/./node_modules/@mui/base/useList/listReducer.js","webpack://_N_E/./node_modules/@mui/base/useMenu/menuReducer.js","webpack://_N_E/./node_modules/@mui/base/utils/areArraysEqual.js","webpack://_N_E/./node_modules/@mui/base/utils/useTextNavigation.js","webpack://_N_E/./node_modules/@mui/base/useList/useList.js","webpack://_N_E/./node_modules/@mui/base/useMenu/useMenu.js","webpack://_N_E/./node_modules/@mui/base/useMenu/MenuProvider.js","webpack://_N_E/./node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://_N_E/./node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://_N_E/./node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","webpack://_N_E/./node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://_N_E/./node_modules/@mui/base/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.mjs","webpack://_N_E/./node_modules/@mui/base/node_modules/@mui/utils/esm/getReactElementRef/getReactElementRef.js","webpack://_N_E/./node_modules/@mui/base/Portal/Portal.js","webpack://_N_E/./node_modules/@mui/base/Unstable_Popup/popupClasses.js","webpack://_N_E/./node_modules/@mui/base/useTransition/useTransitionTrigger.js","webpack://_N_E/./node_modules/@mui/base/Unstable_Popup/Popup.js","webpack://_N_E/./node_modules/@mui/base/Menu/Menu.js","webpack://_N_E/./node_modules/@mui/base/utils/useControllableReducer.js","webpack://_N_E/./node_modules/@mui/material/List/ListContext.js","webpack://_N_E/./node_modules/@mui/material/Divider/dividerClasses.js","webpack://_N_E/./node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","webpack://_N_E/./node_modules/@mui/material/ListItemText/listItemTextClasses.js","webpack://_N_E/./node_modules/@mui/material/MenuItem/menuItemClasses.js","webpack://_N_E/./node_modules/@mui/material/MenuItem/MenuItem.js","webpack://_N_E/./node_modules/@mui/material/utils/useEnhancedEffect.js"],"sourcesContent":["import { DropdownActionTypes } from \"./useDropdown.types.js\";\nexport function dropdownReducer(state, action) {\n switch (action.type) {\n case DropdownActionTypes.blur:\n return {\n open: false,\n changeReason: action.event\n };\n case DropdownActionTypes.escapeKeyDown:\n return {\n open: false,\n changeReason: action.event\n };\n case DropdownActionTypes.toggle:\n return {\n open: !state.open,\n changeReason: action.event\n };\n case DropdownActionTypes.open:\n return {\n open: true,\n changeReason: action.event\n };\n case DropdownActionTypes.close:\n return {\n open: false,\n changeReason: action.event\n };\n default:\n throw new Error(`Unhandled action`);\n }\n}","'use client';\n\nimport * as React from 'react';\nimport { useControllableReducer } from \"../utils/useControllableReducer.js\";\nimport { DropdownActionTypes } from \"./useDropdown.types.js\";\nimport { dropdownReducer } from \"./dropdownReducer.js\";\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useDropdown API](https://mui.com/base-ui/react-menu/hooks-api/#use-dropdown)\n */\nexport function useDropdown(parameters = {}) {\n const {\n defaultOpen,\n onOpenChange,\n open: openProp,\n componentName = 'useDropdown'\n } = parameters;\n const [popupId, setPopupId] = React.useState('');\n const [triggerElement, setTriggerElement] = React.useState(null);\n const lastActionType = React.useRef(null);\n const handleStateChange = React.useCallback((event, field, value, reason) => {\n if (field === 'open') {\n onOpenChange?.(event, value);\n }\n lastActionType.current = reason;\n }, [onOpenChange]);\n const controlledProps = React.useMemo(() => openProp !== undefined ? {\n open: openProp\n } : {}, [openProp]);\n const [state, dispatch] = useControllableReducer({\n controlledProps,\n initialState: defaultOpen ? {\n open: true,\n changeReason: null\n } : {\n open: false,\n changeReason: null\n },\n onStateChange: handleStateChange,\n reducer: dropdownReducer,\n componentName\n });\n React.useEffect(() => {\n if (!state.open && lastActionType.current !== null && lastActionType.current !== DropdownActionTypes.blur) {\n triggerElement?.focus();\n }\n }, [state.open, triggerElement]);\n const contextValue = {\n state,\n dispatch,\n popupId,\n registerPopup: setPopupId,\n registerTrigger: setTriggerElement,\n triggerElement\n };\n return {\n contextValue,\n open: state.open\n };\n}","'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport { DropdownContext } from \"../useDropdown/DropdownContext.js\";\nimport { useDropdown } from \"../useDropdown/useDropdown.js\";\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/)\n *\n * API:\n *\n * - [Dropdown API](https://mui.com/base-ui/react-menu/components-api/#dropdown)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction Dropdown(props) {\n const {\n children,\n open,\n defaultOpen,\n onOpenChange\n } = props;\n const {\n contextValue\n } = useDropdown({\n defaultOpen,\n onOpenChange,\n open\n });\n return /*#__PURE__*/_jsx(DropdownContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? Dropdown.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * If `true`, the dropdown is initially open.\n */\n defaultOpen: PropTypes.bool,\n /**\n * Callback fired when the component requests to be opened or closed.\n */\n onOpenChange: PropTypes.func,\n /**\n * Allows to control whether the dropdown is open.\n * This is a controlled counterpart of `defaultOpen`.\n */\n open: PropTypes.bool\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n Dropdown['propTypes' + ''] = exactProp(Dropdown.propTypes);\n}\nexport { Dropdown };","import { generateUtilityClass } from \"../generateUtilityClass/index.js\";\nimport { generateUtilityClasses } from \"../generateUtilityClasses/index.js\";\nconst COMPONENT_NAME = 'Menu';\nexport function getMenuUtilityClass(slot) {\n return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const menuClasses = generateUtilityClasses(COMPONENT_NAME, ['root', 'listbox', 'expanded']);","import { ListActionTypes } from \"./listActions.types.js\";\n/**\n * Looks up the next valid item to highlight within the list.\n *\n * @param currentIndex The index of the start of the search.\n * @param lookupDirection Whether to look for the next or previous item.\n * @param items The array of items to search.\n * @param includeDisabledItems Whether to include disabled items in the search.\n * @param isItemDisabled A function that determines whether an item is disabled.\n * @param wrapAround Whether to wrap around the list when searching.\n * @returns The index of the next valid item to highlight or -1 if no valid item is found.\n */\nfunction findValidItemToHighlight(currentIndex, lookupDirection, items, includeDisabledItems, isItemDisabled, wrapAround) {\n if (items.length === 0 || !includeDisabledItems && items.every((item, itemIndex) => isItemDisabled(item, itemIndex))) {\n return -1;\n }\n let nextFocus = currentIndex;\n for (;;) {\n // No valid items found\n if (!wrapAround && lookupDirection === 'next' && nextFocus === items.length || !wrapAround && lookupDirection === 'previous' && nextFocus === -1) {\n return -1;\n }\n const nextFocusDisabled = includeDisabledItems ? false : isItemDisabled(items[nextFocus], nextFocus);\n if (nextFocusDisabled) {\n nextFocus += lookupDirection === 'next' ? 1 : -1;\n if (wrapAround) {\n nextFocus = (nextFocus + items.length) % items.length;\n }\n } else {\n return nextFocus;\n }\n }\n}\n\n/**\n * Gets the next item to highlight based on the current highlighted item and the search direction.\n *\n * @param previouslyHighlightedValue The item from which to start the search for the next candidate.\n * @param offset The offset from the previously highlighted item to search for the next candidate or a special named value ('reset', 'start', 'end').\n * @param context The list action context.\n *\n * @returns The next item to highlight or null if no item is valid.\n */\nexport function moveHighlight(previouslyHighlightedValue, offset, context) {\n const {\n items,\n isItemDisabled,\n disableListWrap,\n disabledItemsFocusable,\n itemComparer,\n focusManagement\n } = context;\n\n // TODO: make this configurable\n // The always should be an item highlighted when focus is managed by the DOM\n // so that it's accessible by the `tab` key.\n const defaultHighlightedIndex = focusManagement === 'DOM' ? 0 : -1;\n const maxIndex = items.length - 1;\n const previouslyHighlightedIndex = previouslyHighlightedValue == null ? -1 : items.findIndex(item => itemComparer(item, previouslyHighlightedValue));\n let nextIndexCandidate;\n let lookupDirection;\n let wrapAround = !disableListWrap;\n switch (offset) {\n case 'reset':\n if (defaultHighlightedIndex === -1) {\n return null;\n }\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n wrapAround = false;\n break;\n case 'start':\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n wrapAround = false;\n break;\n case 'end':\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n wrapAround = false;\n break;\n default:\n {\n const newIndex = previouslyHighlightedIndex + offset;\n if (newIndex < 0) {\n if (!wrapAround && previouslyHighlightedIndex !== -1 || Math.abs(offset) > 1) {\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n } else {\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n }\n } else if (newIndex > maxIndex) {\n if (!wrapAround || Math.abs(offset) > 1) {\n nextIndexCandidate = maxIndex;\n lookupDirection = 'previous';\n } else {\n nextIndexCandidate = 0;\n lookupDirection = 'next';\n }\n } else {\n nextIndexCandidate = newIndex;\n lookupDirection = offset >= 0 ? 'next' : 'previous';\n }\n }\n }\n const nextIndex = findValidItemToHighlight(nextIndexCandidate, lookupDirection, items, disabledItemsFocusable, isItemDisabled, wrapAround);\n\n // If there are no valid items to highlight, return the previously highlighted item (if it's still valid).\n if (nextIndex === -1 && previouslyHighlightedValue !== null && !isItemDisabled(previouslyHighlightedValue, previouslyHighlightedIndex)) {\n return previouslyHighlightedValue;\n }\n return items[nextIndex] ?? null;\n}\n\n/**\n * Toggles the selection of an item.\n *\n * @param item Item to toggle.\n * @param selectedValues Already selected items.\n * @param selectionMode The number of items that can be simultanously selected.\n * @param itemComparer A custom item comparer function.\n *\n * @returns The new array of selected items.\n */\nexport function toggleSelection(item, selectedValues, selectionMode, itemComparer) {\n if (selectionMode === 'none') {\n return [];\n }\n if (selectionMode === 'single') {\n // if the item to select has already been selected, return the original array\n if (itemComparer(selectedValues[0], item)) {\n return selectedValues;\n }\n return [item];\n }\n\n // The toggled item is selected; remove it from the selection.\n if (selectedValues.some(sv => itemComparer(sv, item))) {\n return selectedValues.filter(sv => !itemComparer(sv, item));\n }\n\n // The toggled item is not selected - add it to the selection.\n return [...selectedValues, item];\n}\n\n/**\n * Handles item selection in a list.\n *\n * @param item - The item to be selected.\n * @param state - The current state of the list.\n * @param context - The context of the list action.\n * @returns The new state of the list after the item has been selected, or the original state if the item is disabled.\n */\nexport function handleItemSelection(item, state, context) {\n const {\n itemComparer,\n isItemDisabled,\n selectionMode,\n items\n } = context;\n const {\n selectedValues\n } = state;\n const itemIndex = items.findIndex(i => itemComparer(item, i));\n if (isItemDisabled(item, itemIndex)) {\n return state;\n }\n\n // if the item is already selected, remove it from the selection, otherwise add it\n const newSelectedValues = toggleSelection(item, selectedValues, selectionMode, itemComparer);\n return {\n ...state,\n selectedValues: newSelectedValues,\n highlightedValue: item\n };\n}\nfunction handleKeyDown(key, state, context) {\n const previouslySelectedValue = state.highlightedValue;\n const {\n orientation,\n pageSize\n } = context;\n switch (key) {\n case 'Home':\n return {\n ...state,\n highlightedValue: moveHighlight(previouslySelectedValue, 'start', context)\n };\n case 'End':\n return {\n ...state,\n highlightedValue: moveHighlight(previouslySelectedValue, 'end', context)\n };\n case 'PageUp':\n return {\n ...state,\n highlightedValue: moveHighlight(previouslySelectedValue, -pageSize, context)\n };\n case 'PageDown':\n return {\n ...state,\n highlightedValue: moveHighlight(previouslySelectedValue, pageSize, context)\n };\n case 'ArrowUp':\n if (orientation !== 'vertical') {\n break;\n }\n return {\n ...state,\n highlightedValue: moveHighlight(previouslySelectedValue, -1, context)\n };\n case 'ArrowDown':\n if (orientation !== 'vertical') {\n break;\n }\n return {\n ...state,\n highlightedValue: moveHighlight(previouslySelectedValue, 1, context)\n };\n case 'ArrowLeft':\n {\n if (orientation === 'vertical') {\n break;\n }\n const offset = orientation === 'horizontal-ltr' ? -1 : 1;\n return {\n ...state,\n highlightedValue: moveHighlight(previouslySelectedValue, offset, context)\n };\n }\n case 'ArrowRight':\n {\n if (orientation === 'vertical') {\n break;\n }\n const offset = orientation === 'horizontal-ltr' ? 1 : -1;\n return {\n ...state,\n highlightedValue: moveHighlight(previouslySelectedValue, offset, context)\n };\n }\n case 'Enter':\n case ' ':\n if (state.highlightedValue === null) {\n return state;\n }\n return handleItemSelection(state.highlightedValue, state, context);\n default:\n break;\n }\n return state;\n}\nfunction handleBlur(state, context) {\n if (context.focusManagement === 'DOM') {\n return state;\n }\n return {\n ...state,\n highlightedValue: null\n };\n}\nfunction textCriteriaMatches(nextFocus, searchString, stringifyItem) {\n const text = stringifyItem(nextFocus)?.trim().toLowerCase();\n if (!text || text.length === 0) {\n // Make item not navigable if stringification fails or results in empty string.\n return false;\n }\n return text.startsWith(searchString);\n}\nfunction handleTextNavigation(state, searchString, context) {\n const {\n items,\n isItemDisabled,\n disabledItemsFocusable,\n getItemAsString\n } = context;\n const startWithCurrentItem = searchString.length > 1;\n let nextItem = startWithCurrentItem ? state.highlightedValue : moveHighlight(state.highlightedValue, 1, context);\n for (let index = 0; index < items.length; index += 1) {\n // Return un-mutated state if looped back to the currently highlighted value\n if (!nextItem || !startWithCurrentItem && state.highlightedValue === nextItem) {\n return state;\n }\n if (textCriteriaMatches(nextItem, searchString, getItemAsString) && (!isItemDisabled(nextItem, items.indexOf(nextItem)) || disabledItemsFocusable)) {\n // The nextItem is the element to be highlighted\n return {\n ...state,\n highlightedValue: nextItem\n };\n }\n // Move to the next element.\n nextItem = moveHighlight(nextItem, 1, context);\n }\n\n // No item matches the text search criteria\n return state;\n}\nfunction handleItemsChange(items, previousItems, state, context) {\n const {\n itemComparer,\n focusManagement\n } = context;\n let newHighlightedValue = null;\n if (state.highlightedValue != null) {\n newHighlightedValue = items.find(item => itemComparer(item, state.highlightedValue)) ?? null;\n } else if (focusManagement === 'DOM' && previousItems.length === 0) {\n newHighlightedValue = moveHighlight(null, 'reset', context);\n }\n\n // exclude selected values that are no longer in the items list\n const selectedValues = state.selectedValues ?? [];\n const newSelectedValues = selectedValues.filter(selectedValue => items.some(item => itemComparer(item, selectedValue)));\n return {\n ...state,\n highlightedValue: newHighlightedValue,\n selectedValues: newSelectedValues\n };\n}\nfunction handleResetHighlight(state, context) {\n return {\n ...state,\n highlightedValue: moveHighlight(null, 'reset', context)\n };\n}\nfunction handleHighlightLast(state, context) {\n return {\n ...state,\n highlightedValue: moveHighlight(null, 'end', context)\n };\n}\nfunction handleClearSelection(state, context) {\n return {\n ...state,\n selectedValues: [],\n highlightedValue: moveHighlight(null, 'reset', context)\n };\n}\nexport function listReducer(state, action) {\n const {\n type,\n context\n } = action;\n switch (type) {\n case ListActionTypes.keyDown:\n return handleKeyDown(action.key, state, context);\n case ListActionTypes.itemClick:\n return handleItemSelection(action.item, state, context);\n case ListActionTypes.blur:\n return handleBlur(state, context);\n case ListActionTypes.textNavigation:\n return handleTextNavigation(state, action.searchString, context);\n case ListActionTypes.itemsChange:\n return handleItemsChange(action.items, action.previousItems, state, context);\n case ListActionTypes.resetHighlight:\n return handleResetHighlight(state, context);\n case ListActionTypes.highlightLast:\n return handleHighlightLast(state, context);\n case ListActionTypes.clearSelection:\n return handleClearSelection(state, context);\n default:\n return state;\n }\n}","import { ListActionTypes, listReducer } from \"../useList/index.js\";\nexport function menuReducer(state, action) {\n if (action.type === ListActionTypes.itemHover) {\n return {\n ...state,\n highlightedValue: action.item\n };\n }\n const newState = listReducer(state, action);\n\n // make sure an item is always highlighted\n if (newState.highlightedValue === null && action.context.items.length > 0) {\n return {\n ...newState,\n highlightedValue: action.context.items[0]\n };\n }\n if (action.type === ListActionTypes.keyDown) {\n if (action.event.key === 'Escape') {\n return {\n ...newState,\n open: false\n };\n }\n }\n if (action.type === ListActionTypes.blur) {\n if (!action.context.listboxRef.current?.contains(action.event.relatedTarget)) {\n // To prevent the menu from closing when the focus leaves the menu to the button.\n // For more details, see https://github.com/mui/material-ui/pull/36917#issuecomment-1566992698\n const listboxId = action.context.listboxRef.current?.getAttribute('id');\n const controlledBy = action.event.relatedTarget?.getAttribute('aria-controls');\n if (listboxId && controlledBy && listboxId === controlledBy) {\n return newState;\n }\n return {\n ...newState,\n open: false,\n highlightedValue: action.context.items[0]\n };\n }\n }\n return newState;\n}","export function areArraysEqual(array1, array2, itemComparer = (a, b) => a === b) {\n return array1.length === array2.length && array1.every((value, index) => itemComparer(value, array2[index]));\n}","'use client';\n\nimport * as React from 'react';\nconst TEXT_NAVIGATION_RESET_TIMEOUT = 500; // milliseconds\n\n/**\n * @ignore - internal hook.\n *\n * Provides a handler for text navigation.\n * It's used to navigate a list by typing the first letters of the options.\n *\n * @param callback A function to be called when the navigation should be performed.\n * @returns A function to be used in a keydown event handler.\n */\nexport function useTextNavigation(callback) {\n const textCriteriaRef = React.useRef({\n searchString: '',\n lastTime: null\n });\n return React.useCallback(event => {\n if (event.key.length === 1 && event.key !== ' ') {\n const textCriteria = textCriteriaRef.current;\n const lowerKey = event.key.toLowerCase();\n const currentTime = performance.now();\n if (textCriteria.searchString.length > 0 && textCriteria.lastTime && currentTime - textCriteria.lastTime > TEXT_NAVIGATION_RESET_TIMEOUT) {\n textCriteria.searchString = lowerKey;\n } else if (textCriteria.searchString.length !== 1 || lowerKey !== textCriteria.searchString) {\n // If there is just one character in the buffer and the key is the same, do not append\n textCriteria.searchString += lowerKey;\n }\n textCriteria.lastTime = currentTime;\n callback(textCriteria.searchString, event);\n }\n }, [callback]);\n}","'use client';\n\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef } from '@mui/utils';\nimport { ListActionTypes } from \"./listActions.types.js\";\nimport { listReducer as defaultReducer } from \"./listReducer.js\";\nimport { useControllableReducer } from \"../utils/useControllableReducer.js\";\nimport { areArraysEqual } from \"../utils/areArraysEqual.js\";\nimport { useTextNavigation } from \"../utils/useTextNavigation.js\";\nimport { extractEventHandlers } from \"../utils/extractEventHandlers.js\";\nconst EMPTY_OBJECT = {};\nconst NOOP = () => {};\nconst defaultItemComparer = (optionA, optionB) => optionA === optionB;\nconst defaultIsItemDisabled = () => false;\nconst defaultItemStringifier = item => typeof item === 'string' ? item : String(item);\nconst defaultGetInitialState = () => ({\n highlightedValue: null,\n selectedValues: []\n});\n\n/**\n * The useList is a lower-level utility that is used to build list-like components.\n * It's used to manage the state of the list and its items.\n *\n * Supports highlighting a single item and selecting an arbitrary number of items.\n *\n * The state of the list is managed by a controllable reducer - that is a reducer that can have its state\n * controlled from outside.\n *\n * By default, the state consists of `selectedValues` and `highlightedValue` but can be extended by the caller of the hook.\n * Also the actions that can be dispatched and the reducer function can be defined externally.\n *\n * @template ItemValue The type of the item values.\n * @template State The type of the list state. This should be a subtype of `ListState`.\n * @template CustomAction The type of the actions that can be dispatched (besides the standard ListAction).\n * @template CustomActionContext The shape of additional properties that will be added to actions when dispatched.\n *\n * @ignore - internal hook.\n */\nfunction useList(params) {\n const {\n controlledProps = EMPTY_OBJECT,\n disabledItemsFocusable = false,\n disableListWrap = false,\n focusManagement = 'activeDescendant',\n getInitialState = defaultGetInitialState,\n getItemDomElement,\n getItemId,\n isItemDisabled = defaultIsItemDisabled,\n rootRef: externalListRef,\n onStateChange = NOOP,\n items,\n itemComparer = defaultItemComparer,\n getItemAsString = defaultItemStringifier,\n onChange,\n onHighlightChange,\n onItemsChange,\n orientation = 'vertical',\n pageSize = 5,\n reducerActionContext = EMPTY_OBJECT,\n selectionMode = 'single',\n stateReducer: externalReducer,\n componentName = 'useList'\n } = params;\n if (process.env.NODE_ENV !== 'production') {\n if (focusManagement === 'DOM' && getItemDomElement == null) {\n throw new Error('useList: The `getItemDomElement` prop is required when using the `DOM` focus management.');\n }\n if (focusManagement === 'activeDescendant' && getItemId == null) {\n throw new Error('useList: The `getItemId` prop is required when using the `activeDescendant` focus management.');\n }\n }\n const listRef = React.useRef(null);\n const handleRef = useForkRef(externalListRef, listRef);\n const handleHighlightChange = React.useCallback((event, value, reason) => {\n onHighlightChange?.(event, value, reason);\n if (focusManagement === 'DOM' && value != null && (reason === ListActionTypes.itemClick || reason === ListActionTypes.keyDown || reason === ListActionTypes.textNavigation)) {\n getItemDomElement?.(value)?.focus();\n }\n }, [getItemDomElement, onHighlightChange, focusManagement]);\n const stateComparers = React.useMemo(() => ({\n highlightedValue: itemComparer,\n selectedValues: (valuesArray1, valuesArray2) => areArraysEqual(valuesArray1, valuesArray2, itemComparer)\n }), [itemComparer]);\n\n // This gets called whenever a reducer changes the state.\n const handleStateChange = React.useCallback((event, field, value, reason, state) => {\n onStateChange?.(event, field, value, reason, state);\n switch (field) {\n case 'highlightedValue':\n handleHighlightChange(event, value, reason);\n break;\n case 'selectedValues':\n onChange?.(event, value, reason);\n break;\n default:\n break;\n }\n }, [handleHighlightChange, onChange, onStateChange]);\n\n // The following object is added to each action when it's dispatched.\n // It's accessible in the reducer via the `action.context` field.\n const listActionContext = React.useMemo(() => {\n return {\n disabledItemsFocusable,\n disableListWrap,\n focusManagement,\n isItemDisabled,\n itemComparer,\n items,\n getItemAsString,\n onHighlightChange: handleHighlightChange,\n orientation,\n pageSize,\n selectionMode,\n stateComparers\n };\n }, [disabledItemsFocusable, disableListWrap, focusManagement, isItemDisabled, itemComparer, items, getItemAsString, handleHighlightChange, orientation, pageSize, selectionMode, stateComparers]);\n const initialState = getInitialState();\n const reducer = externalReducer ?? defaultReducer;\n const actionContext = React.useMemo(() => ({\n ...reducerActionContext,\n ...listActionContext\n }), [reducerActionContext, listActionContext]);\n const [state, dispatch] = useControllableReducer({\n reducer,\n actionContext,\n initialState: initialState,\n controlledProps,\n stateComparers,\n onStateChange: handleStateChange,\n componentName\n });\n const {\n highlightedValue,\n selectedValues\n } = state;\n const handleTextNavigation = useTextNavigation((searchString, event) => dispatch({\n type: ListActionTypes.textNavigation,\n event,\n searchString\n }));\n const previousItems = React.useRef([]);\n React.useEffect(() => {\n // Whenever the `items` object changes, we need to determine if the actual items changed.\n // If they did, we need to dispatch an `itemsChange` action, so the selected/highlighted state is updated.\n if (areArraysEqual(previousItems.current, items, itemComparer)) {\n return;\n }\n dispatch({\n type: ListActionTypes.itemsChange,\n event: null,\n items,\n previousItems: previousItems.current\n });\n previousItems.current = items;\n onItemsChange?.(items);\n }, [items, itemComparer, dispatch, onItemsChange]);\n const createHandleKeyDown = externalHandlers => event => {\n externalHandlers.onKeyDown?.(event);\n if (event.defaultMuiPrevented) {\n return;\n }\n const keysToPreventDefault = ['Home', 'End', 'PageUp', 'PageDown'];\n if (orientation === 'vertical') {\n keysToPreventDefault.push('ArrowUp', 'ArrowDown');\n } else {\n keysToPreventDefault.push('ArrowLeft', 'ArrowRight');\n }\n if (focusManagement === 'activeDescendant') {\n // When the child element is focused using the activeDescendant attribute,\n // the list handles keyboard events on its behalf.\n // We have to `preventDefault()` is this case to prevent the browser from\n // scrolling the view when space is pressed or submitting forms when enter is pressed.\n keysToPreventDefault.push(' ', 'Enter');\n }\n if (keysToPreventDefault.includes(event.key)) {\n event.preventDefault();\n }\n dispatch({\n type: ListActionTypes.keyDown,\n key: event.key,\n event\n });\n handleTextNavigation(event);\n };\n const createHandleBlur = externalHandlers => event => {\n externalHandlers.onBlur?.(event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (listRef.current?.contains(event.relatedTarget)) {\n // focus remains within the list\n return;\n }\n dispatch({\n type: ListActionTypes.blur,\n event\n });\n };\n const getRootProps = (externalProps = {}) => {\n const externalEventHandlers = extractEventHandlers(externalProps);\n return {\n ...externalProps,\n 'aria-activedescendant': focusManagement === 'activeDescendant' && highlightedValue != null ? getItemId(highlightedValue) : undefined,\n tabIndex: focusManagement === 'DOM' ? -1 : 0,\n ref: handleRef,\n ...externalEventHandlers,\n onBlur: createHandleBlur(externalEventHandlers),\n onKeyDown: createHandleKeyDown(externalEventHandlers)\n };\n };\n const getItemState = React.useCallback(item => {\n const selected = (selectedValues ?? []).some(value => value != null && itemComparer(item, value));\n const highlighted = highlightedValue != null && itemComparer(item, highlightedValue);\n const focusable = focusManagement === 'DOM';\n return {\n focusable,\n highlighted,\n selected\n };\n }, [itemComparer, selectedValues, highlightedValue, focusManagement]);\n const contextValue = React.useMemo(() => ({\n dispatch,\n getItemState\n }), [dispatch, getItemState]);\n React.useDebugValue({\n state\n });\n return {\n contextValue,\n dispatch,\n getRootProps,\n rootRef: handleRef,\n state\n };\n}\nexport { useList };","'use client';\n\nimport * as React from 'react';\nimport { unstable_useForkRef as useForkRef, unstable_useId as useId, unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nimport { menuReducer } from \"./menuReducer.js\";\nimport { DropdownContext } from \"../useDropdown/DropdownContext.js\";\nimport { ListActionTypes, useList } from \"../useList/index.js\";\nimport { DropdownActionTypes } from \"../useDropdown/index.js\";\nimport { useCompoundParent } from \"../useCompound/index.js\";\nimport { combineHooksSlotProps } from \"../utils/combineHooksSlotProps.js\";\nimport { extractEventHandlers } from \"../utils/extractEventHandlers.js\";\nconst FALLBACK_MENU_CONTEXT = {\n dispatch: () => {},\n popupId: '',\n registerPopup: () => {},\n registerTrigger: () => {},\n state: {\n open: true,\n changeReason: null\n },\n triggerElement: null\n};\n\n/**\n *\n * Demos:\n *\n * - [Menu](https://mui.com/base-ui/react-menu/#hooks)\n *\n * API:\n *\n * - [useMenu API](https://mui.com/base-ui/react-menu/hooks-api/#use-menu)\n */\nexport function useMenu(parameters = {}) {\n const {\n listboxRef: listboxRefProp,\n onItemsChange,\n id: idParam,\n disabledItemsFocusable = true,\n disableListWrap = false,\n autoFocus = true,\n componentName = 'useMenu'\n } = parameters;\n const rootRef = React.useRef(null);\n const handleRef = useForkRef(rootRef, listboxRefProp);\n const listboxId = useId(idParam) ?? '';\n const {\n state: {\n open,\n changeReason\n },\n dispatch: menuDispatch,\n triggerElement,\n registerPopup\n } = React.useContext(DropdownContext) ?? FALLBACK_MENU_CONTEXT;\n\n // store the initial open state to prevent focus stealing\n // (the first menu items gets focued only when the menu is opened by the user)\n const isInitiallyOpen = React.useRef(open);\n const {\n subitems,\n contextValue: compoundComponentContextValue\n } = useCompoundParent();\n const subitemKeys = React.useMemo(() => Array.from(subitems.keys()), [subitems]);\n const getItemDomElement = React.useCallback(itemId => {\n if (itemId == null) {\n return null;\n }\n return subitems.get(itemId)?.ref.current ?? null;\n }, [subitems]);\n const isItemDisabled = React.useCallback(id => subitems?.get(id)?.disabled || false, [subitems]);\n const getItemAsString = React.useCallback(id => subitems.get(id)?.label || subitems.get(id)?.ref.current?.innerText, [subitems]);\n const reducerActionContext = React.useMemo(() => ({\n listboxRef: rootRef\n }), [rootRef]);\n const {\n dispatch: listDispatch,\n getRootProps: getListRootProps,\n contextValue: listContextValue,\n state: {\n highlightedValue\n },\n rootRef: mergedListRef\n } = useList({\n disabledItemsFocusable,\n disableListWrap,\n focusManagement: 'DOM',\n getItemDomElement,\n getInitialState: () => ({\n selectedValues: [],\n highlightedValue: null\n }),\n isItemDisabled,\n items: subitemKeys,\n getItemAsString,\n rootRef: handleRef,\n onItemsChange,\n reducerActionContext,\n selectionMode: 'none',\n stateReducer: menuReducer,\n componentName\n });\n useEnhancedEffect(() => {\n registerPopup(listboxId);\n }, [listboxId, registerPopup]);\n useEnhancedEffect(() => {\n if (open && changeReason?.type === 'keydown' && changeReason.key === 'ArrowUp') {\n listDispatch({\n type: ListActionTypes.highlightLast,\n event: changeReason\n });\n }\n }, [open, changeReason, listDispatch]);\n React.useEffect(() => {\n if (open && autoFocus && highlightedValue && !isInitiallyOpen.current) {\n subitems.get(highlightedValue)?.ref?.current?.focus();\n }\n }, [open, autoFocus, highlightedValue, subitems, subitemKeys]);\n React.useEffect(() => {\n // set focus to the highlighted item (but prevent stealing focus from other elements on the page)\n if (rootRef.current?.contains(document.activeElement) && highlightedValue !== null) {\n subitems?.get(highlightedValue)?.ref.current?.focus();\n }\n }, [highlightedValue, subitems]);\n const createHandleBlur = otherHandlers => event => {\n otherHandlers.onBlur?.(event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (rootRef.current?.contains(event.relatedTarget) || event.relatedTarget === triggerElement) {\n return;\n }\n menuDispatch({\n type: DropdownActionTypes.blur,\n event\n });\n };\n const createHandleKeyDown = otherHandlers => event => {\n otherHandlers.onKeyDown?.(event);\n if (event.defaultMuiPrevented) {\n return;\n }\n if (event.key === 'Escape') {\n menuDispatch({\n type: DropdownActionTypes.escapeKeyDown,\n event\n });\n }\n };\n const getOwnListboxHandlers = (otherHandlers = {}) => ({\n onBlur: createHandleBlur(otherHandlers),\n onKeyDown: createHandleKeyDown(otherHandlers)\n });\n const getListboxProps = (externalProps = {}) => {\n const getCombinedRootProps = combineHooksSlotProps(getOwnListboxHandlers, getListRootProps);\n const externalEventHandlers = extractEventHandlers(externalProps);\n return {\n ...externalProps,\n ...externalEventHandlers,\n ...getCombinedRootProps(externalEventHandlers),\n id: listboxId,\n role: 'menu'\n };\n };\n React.useDebugValue({\n subitems,\n highlightedValue\n });\n return {\n contextValue: {\n ...compoundComponentContextValue,\n ...listContextValue\n },\n dispatch: listDispatch,\n getListboxProps,\n highlightedValue,\n listboxRef: mergedListRef,\n menuItems: subitems,\n open,\n triggerElement\n };\n}","'use client';\n\nimport * as React from 'react';\nimport { ListContext } from \"../useList/ListContext.js\";\nimport { CompoundComponentContext } from \"../useCompound/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Sets up the contexts for the underlying MenuItem components.\n *\n * @ignore - do not document.\n */\nexport function MenuProvider(props) {\n const {\n value,\n children\n } = props;\n const {\n dispatch,\n getItemIndex,\n getItemState,\n registerItem,\n totalSubitemCount\n } = value;\n const listContextValue = React.useMemo(() => ({\n dispatch,\n getItemState,\n getItemIndex\n }), [dispatch, getItemIndex, getItemState]);\n const compoundComponentContextValue = React.useMemo(() => ({\n getItemIndex,\n registerItem,\n totalSubitemCount\n }), [registerItem, getItemIndex, totalSubitemCount]);\n return /*#__PURE__*/_jsx(CompoundComponentContext.Provider, {\n value: compoundComponentContextValue,\n children: /*#__PURE__*/_jsx(ListContext.Provider, {\n value: listContextValue,\n children: children\n })\n });\n}","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the element as the offsetParent if it's non-static,\n // while Chrome and Safari return the element. The element must\n // be used to perform the correct calculations even if the element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n var _io;\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n // If the reference is clipped, the ratio is 0. Throttle the refresh\n // to prevent an infinite loop of updates.\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 1000);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle