{"version":3,"file":"7412.0a369c0a.js","mappings":"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","sources":["webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/2H5K47H4.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/7PRQYBBV.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/BRS7GKWU.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/MFZZDIHG.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/__chunks/URUD7X4C.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3D6OCOHF.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3IEDWLST.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/3OMHZVJD.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/YMV43K4F.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/6YZEXKNV.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/Y6GYTNQ2.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/7GBW5FLS.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/7YKLTEOQ.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/BYD75WXE.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/C6OBNQ4F.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/E5E7G32I.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/FTNKYK65.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/FWINX72I.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/MADQZZRL.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/NLT7LY5Y.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TE637IA7.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/TWDHCE7Y.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UNDSQXBK.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/combobox/combobox-store.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/URCSOWGR.js","webpack://@finviz/website/../node_modules/@ariakit/core/esm/tooltip/tooltip-store.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/WKII7I2E.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/WL6TTPTB.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/XWCFCD3Q.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/Y3BYYHRY.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/combobox/combobox-item.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/combobox/combobox-popover.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/combobox/combobox.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-anchor.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/QFL5V2DO.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/__chunks/UFM3D5TN.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-arrow.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip-provider.js","webpack://@finviz/website/../node_modules/@ariakit/react-core/esm/tooltip/tooltip.js","webpack://@finviz/website/../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","webpack://@finviz/website/../node_modules/@floating-ui/core/dist/floating-ui.core.mjs","webpack://@finviz/website/../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","webpack://@finviz/website/../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs"],"sourcesContent":["\"use client\";\nimport {\n createCollectionStore\n} from \"./URUD7X4C.js\";\nimport {\n createStore,\n setup,\n sync\n} from \"./R676XYVY.js\";\nimport {\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n flatten2DArray,\n reverseArray\n} from \"./7PRQYBBV.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/composite/composite-store.ts\nvar NULL_ITEM = { id: null };\nfunction findFirstEnabledItem(items, excludeId) {\n return items.find((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getEnabledItems(items, excludeId) {\n return items.filter((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getOppositeOrientation(orientation) {\n if (orientation === \"vertical\")\n return \"horizontal\";\n if (orientation === \"horizontal\")\n return \"vertical\";\n return;\n}\nfunction getItemsInRow(items, rowId) {\n return items.filter((item) => item.rowId === rowId);\n}\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n const index = items.findIndex((item) => item.id === activeId);\n return [\n ...items.slice(index + 1),\n ...shouldInsertNullItem ? [NULL_ITEM] : [],\n ...items.slice(0, index)\n ];\n}\nfunction groupItemsByRows(items) {\n const rows = [];\n for (const item of items) {\n const row = rows.find((currentRow) => {\n var _a;\n return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n });\n if (row) {\n row.push(item);\n } else {\n rows.push([item]);\n }\n }\n return rows;\n}\nfunction getMaxRowLength(array) {\n let maxLength = 0;\n for (const { length } of array) {\n if (length > maxLength) {\n maxLength = length;\n }\n }\n return maxLength;\n}\nfunction createEmptyItem(rowId) {\n return {\n id: \"__EMPTY_ITEM__\",\n disabled: true,\n rowId\n };\n}\nfunction normalizeRows(rows, activeId, focusShift) {\n const maxLength = getMaxRowLength(rows);\n for (const row of rows) {\n for (let i = 0; i < maxLength; i += 1) {\n const item = row[i];\n if (!item || focusShift && item.disabled) {\n const isFirst = i === 0;\n const previousItem = isFirst && focusShift ? findFirstEnabledItem(row) : row[i - 1];\n row[i] = previousItem && activeId !== previousItem.id && focusShift ? previousItem : createEmptyItem(previousItem == null ? void 0 : previousItem.rowId);\n }\n }\n }\n return rows;\n}\nfunction verticalizeItems(items) {\n const rows = groupItemsByRows(items);\n const maxLength = getMaxRowLength(rows);\n const verticalized = [];\n for (let i = 0; i < maxLength; i += 1) {\n for (const row of rows) {\n const item = row[i];\n if (item) {\n verticalized.push(__spreadProps(__spreadValues({}, item), {\n // If there's no rowId, it means that it's not a grid composite, but\n // a single row instead. So, instead of verticalizing it, that is,\n // assigning a different rowId based on the column index, we keep it\n // undefined so they will be part of the same row. This is useful\n // when using up/down on one-dimensional composites.\n rowId: item.rowId ? `${i}` : void 0\n }));\n }\n }\n }\n return verticalized;\n}\nfunction createCompositeStore(props = {}) {\n var _a;\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const collection = createCollectionStore(props);\n const activeId = defaultValue(\n props.activeId,\n syncState == null ? void 0 : syncState.activeId,\n props.defaultActiveId\n );\n const initialState = __spreadProps(__spreadValues({}, collection.getState()), {\n activeId,\n baseElement: defaultValue(syncState == null ? void 0 : syncState.baseElement, null),\n includesBaseElement: defaultValue(\n props.includesBaseElement,\n syncState == null ? void 0 : syncState.includesBaseElement,\n activeId === null\n ),\n moves: defaultValue(syncState == null ? void 0 : syncState.moves, 0),\n orientation: defaultValue(\n props.orientation,\n syncState == null ? void 0 : syncState.orientation,\n \"both\"\n ),\n rtl: defaultValue(props.rtl, syncState == null ? void 0 : syncState.rtl, false),\n virtualFocus: defaultValue(\n props.virtualFocus,\n syncState == null ? void 0 : syncState.virtualFocus,\n false\n ),\n focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, false),\n focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, false),\n focusShift: defaultValue(props.focusShift, syncState == null ? void 0 : syncState.focusShift, false)\n });\n const composite = createStore(initialState, collection, props.store);\n setup(\n composite,\n () => sync(composite, [\"renderedItems\", \"activeId\"], (state) => {\n composite.setState(\"activeId\", (activeId2) => {\n var _a2;\n if (activeId2 !== void 0)\n return activeId2;\n return (_a2 = findFirstEnabledItem(state.renderedItems)) == null ? void 0 : _a2.id;\n });\n })\n );\n const getNextId = (items, orientation, hasNullItem, skip) => {\n var _a2, _b;\n const { activeId: activeId2, rtl, focusLoop, focusWrap, includesBaseElement } = composite.getState();\n const isHorizontal = orientation !== \"vertical\";\n const isRTL = rtl && isHorizontal;\n const allItems = isRTL ? reverseArray(items) : items;\n if (activeId2 == null) {\n return (_a2 = findFirstEnabledItem(allItems)) == null ? void 0 : _a2.id;\n }\n const activeItem = allItems.find((item) => item.id === activeId2);\n if (!activeItem) {\n return (_b = findFirstEnabledItem(allItems)) == null ? void 0 : _b.id;\n }\n const isGrid = !!activeItem.rowId;\n const activeIndex = allItems.indexOf(activeItem);\n const nextItems = allItems.slice(activeIndex + 1);\n const nextItemsInRow = getItemsInRow(nextItems, activeItem.rowId);\n if (skip !== void 0) {\n const nextEnabledItemsInRow = getEnabledItems(nextItemsInRow, activeId2);\n const nextItem2 = nextEnabledItemsInRow.slice(skip)[0] || // If we can't find an item, just return the last one.\n nextEnabledItemsInRow[nextEnabledItemsInRow.length - 1];\n return nextItem2 == null ? void 0 : nextItem2.id;\n }\n const oppositeOrientation = getOppositeOrientation(\n // If it's a grid and orientation is not set, it's a next/previous call,\n // which is inherently horizontal. up/down will call next with orientation\n // set to vertical by default (see below on up/down methods).\n isGrid ? orientation || \"horizontal\" : orientation\n );\n const canLoop = focusLoop && focusLoop !== oppositeOrientation;\n const canWrap = isGrid && focusWrap && focusWrap !== oppositeOrientation;\n hasNullItem = hasNullItem || !isGrid && canLoop && includesBaseElement;\n if (canLoop) {\n const loopItems = canWrap && !hasNullItem ? allItems : getItemsInRow(allItems, activeItem.rowId);\n const sortedItems = flipItems(loopItems, activeId2, hasNullItem);\n const nextItem2 = findFirstEnabledItem(sortedItems, activeId2);\n return nextItem2 == null ? void 0 : nextItem2.id;\n }\n if (canWrap) {\n const nextItem2 = findFirstEnabledItem(\n // We can use nextItems, which contains all the next items, including\n // items from other rows, to wrap between rows. However, if there is a\n // null item (the composite container), we'll only use the next items in\n // the row. So moving next from the last item will focus on the\n // composite container. On grid composites, horizontal navigation never\n // focuses on the composite container, only vertical.\n hasNullItem ? nextItemsInRow : nextItems,\n activeId2\n );\n const nextId = hasNullItem ? (nextItem2 == null ? void 0 : nextItem2.id) || null : nextItem2 == null ? void 0 : nextItem2.id;\n return nextId;\n }\n const nextItem = findFirstEnabledItem(nextItemsInRow, activeId2);\n if (!nextItem && hasNullItem) {\n return null;\n }\n return nextItem == null ? void 0 : nextItem.id;\n };\n return __spreadProps(__spreadValues(__spreadValues({}, collection), composite), {\n setBaseElement: (element) => composite.setState(\"baseElement\", element),\n setActiveId: (id) => composite.setState(\"activeId\", id),\n move: (id) => {\n if (id === void 0)\n return;\n composite.setState(\"activeId\", id);\n composite.setState(\"moves\", (moves) => moves + 1);\n },\n first: () => {\n var _a2;\n return (_a2 = findFirstEnabledItem(composite.getState().renderedItems)) == null ? void 0 : _a2.id;\n },\n last: () => {\n var _a2;\n return (_a2 = findFirstEnabledItem(reverseArray(composite.getState().renderedItems))) == null ? void 0 : _a2.id;\n },\n next: (skip) => {\n const { renderedItems, orientation } = composite.getState();\n return getNextId(renderedItems, orientation, false, skip);\n },\n previous: (skip) => {\n var _a2;\n const { renderedItems, orientation, includesBaseElement } = composite.getState();\n const isGrid = !!((_a2 = findFirstEnabledItem(renderedItems)) == null ? void 0 : _a2.rowId);\n const hasNullItem = !isGrid && includesBaseElement;\n return getNextId(\n reverseArray(renderedItems),\n orientation,\n hasNullItem,\n skip\n );\n },\n down: (skip) => {\n const {\n activeId: activeId2,\n renderedItems,\n focusShift,\n focusLoop,\n includesBaseElement\n } = composite.getState();\n const shouldShift = focusShift && !skip;\n const verticalItems = verticalizeItems(\n flatten2DArray(\n normalizeRows(groupItemsByRows(renderedItems), activeId2, shouldShift)\n )\n );\n const canLoop = focusLoop && focusLoop !== \"horizontal\";\n const hasNullItem = canLoop && includesBaseElement;\n return getNextId(verticalItems, \"vertical\", hasNullItem, skip);\n },\n up: (skip) => {\n const { activeId: activeId2, renderedItems, focusShift, includesBaseElement } = composite.getState();\n const shouldShift = focusShift && !skip;\n const verticalItems = verticalizeItems(\n reverseArray(\n flatten2DArray(\n normalizeRows(\n groupItemsByRows(renderedItems),\n activeId2,\n shouldShift\n )\n )\n )\n );\n const hasNullItem = includesBaseElement;\n return getNextId(verticalItems, \"vertical\", hasNullItem, skip);\n }\n });\n}\n\nexport {\n createCompositeStore\n};\n","\"use client\";\n\n// src/utils/array.ts\nfunction toArray(arg) {\n if (Array.isArray(arg)) {\n return arg;\n }\n return typeof arg !== \"undefined\" ? [arg] : [];\n}\nfunction addItemToArray(array, item, index = -1) {\n if (!(index in array)) {\n return [...array, item];\n }\n return [...array.slice(0, index), item, ...array.slice(index)];\n}\nfunction flatten2DArray(array) {\n const flattened = [];\n for (const row of array) {\n flattened.push(...row);\n }\n return flattened;\n}\nfunction reverseArray(array) {\n return array.slice().reverse();\n}\n\nexport {\n toArray,\n addItemToArray,\n flatten2DArray,\n reverseArray\n};\n","\"use client\";\nimport {\n createPopoverStore\n} from \"./MFZZDIHG.js\";\nimport {\n createStore\n} from \"./R676XYVY.js\";\nimport {\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/hovercard/hovercard-store.ts\nfunction createHovercardStore(props = {}) {\n var _a;\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const popover = createPopoverStore(__spreadProps(__spreadValues({}, props), {\n placement: defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom\"\n )\n }));\n const timeout = defaultValue(props.timeout, syncState == null ? void 0 : syncState.timeout, 500);\n const initialState = __spreadProps(__spreadValues({}, popover.getState()), {\n timeout,\n showTimeout: defaultValue(props.showTimeout, syncState == null ? void 0 : syncState.showTimeout),\n hideTimeout: defaultValue(props.hideTimeout, syncState == null ? void 0 : syncState.hideTimeout),\n autoFocusOnShow: defaultValue(syncState == null ? void 0 : syncState.autoFocusOnShow, false)\n });\n const hovercard = createStore(initialState, popover, props.store);\n return __spreadProps(__spreadValues(__spreadValues({}, popover), hovercard), {\n setAutoFocusOnShow: (value) => hovercard.setState(\"autoFocusOnShow\", value)\n });\n}\n\nexport {\n createHovercardStore\n};\n","\"use client\";\nimport {\n createDialogStore\n} from \"./5RJNXXU2.js\";\nimport {\n createStore,\n mergeStore,\n omit,\n throwOnConflictingProps\n} from \"./R676XYVY.js\";\nimport {\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/popover/popover-store.ts\nfunction createPopoverStore(_a = {}) {\n var _b = _a, {\n popover: otherPopover\n } = _b, props = __objRest(_b, [\n \"popover\"\n ]);\n const store = mergeStore(\n props.store,\n omit(otherPopover, [\n \"arrowElement\",\n \"anchorElement\",\n \"contentElement\",\n \"popoverElement\",\n \"disclosureElement\"\n ])\n );\n throwOnConflictingProps(props, store);\n const syncState = store == null ? void 0 : store.getState();\n const dialog = createDialogStore(__spreadProps(__spreadValues({}, props), { store }));\n const placement = defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom\"\n );\n const initialState = __spreadProps(__spreadValues({}, dialog.getState()), {\n placement,\n currentPlacement: placement,\n anchorElement: defaultValue(syncState == null ? void 0 : syncState.anchorElement, null),\n popoverElement: defaultValue(syncState == null ? void 0 : syncState.popoverElement, null),\n arrowElement: defaultValue(syncState == null ? void 0 : syncState.arrowElement, null),\n rendered: Symbol(\"rendered\")\n });\n const popover = createStore(initialState, dialog, store);\n return __spreadProps(__spreadValues(__spreadValues({}, dialog), popover), {\n setAnchorElement: (element) => popover.setState(\"anchorElement\", element),\n setPopoverElement: (element) => popover.setState(\"popoverElement\", element),\n setArrowElement: (element) => popover.setState(\"arrowElement\", element),\n render: () => popover.setState(\"rendered\", Symbol(\"rendered\"))\n });\n}\n\nexport {\n createPopoverStore\n};\n","\"use client\";\nimport {\n batch,\n createStore,\n init,\n setup,\n throwOnConflictingProps\n} from \"./R676XYVY.js\";\nimport {\n chain,\n defaultValue\n} from \"./22HHDS5F.js\";\nimport {\n getDocument\n} from \"./RRSZHCH6.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/collection/collection-store.ts\nfunction isElementPreceding(a, b) {\n return Boolean(\n b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING\n );\n}\nfunction sortBasedOnDOMPosition(items) {\n const pairs = items.map((item, index) => [index, item]);\n let isOrderDifferent = false;\n pairs.sort(([indexA, a], [indexB, b]) => {\n const elementA = a.element;\n const elementB = b.element;\n if (elementA === elementB)\n return 0;\n if (!elementA || !elementB)\n return 0;\n if (isElementPreceding(elementA, elementB)) {\n if (indexA > indexB) {\n isOrderDifferent = true;\n }\n return -1;\n }\n if (indexA < indexB) {\n isOrderDifferent = true;\n }\n return 1;\n });\n if (isOrderDifferent) {\n return pairs.map(([_, item]) => item);\n }\n return items;\n}\nfunction getCommonParent(items) {\n var _a;\n const firstItem = items.find((item) => !!item.element);\n const lastItem = [...items].reverse().find((item) => !!item.element);\n let parentElement = (_a = firstItem == null ? void 0 : firstItem.element) == null ? void 0 : _a.parentElement;\n while (parentElement && (lastItem == null ? void 0 : lastItem.element)) {\n const parent = parentElement;\n if (lastItem && parent.contains(lastItem.element)) {\n return parentElement;\n }\n parentElement = parentElement.parentElement;\n }\n return getDocument(parentElement).body;\n}\nfunction getPrivateStore(store) {\n return store == null ? void 0 : store.__unstablePrivateStore;\n}\nfunction createCollectionStore(props = {}) {\n var _a;\n throwOnConflictingProps(props, props.store);\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const items = defaultValue(\n props.items,\n syncState == null ? void 0 : syncState.items,\n props.defaultItems,\n []\n );\n const itemsMap = new Map(items.map((item) => [item.id, item]));\n const initialState = {\n items,\n renderedItems: defaultValue(syncState == null ? void 0 : syncState.renderedItems, [])\n };\n const syncPrivateStore = getPrivateStore(props.store);\n const privateStore = createStore(\n { items, renderedItems: initialState.renderedItems },\n syncPrivateStore\n );\n const collection = createStore(initialState, props.store);\n const sortItems = (renderedItems) => {\n const sortedItems = sortBasedOnDOMPosition(renderedItems);\n privateStore.setState(\"renderedItems\", sortedItems);\n collection.setState(\"renderedItems\", sortedItems);\n };\n setup(collection, () => init(privateStore));\n setup(privateStore, () => {\n return batch(privateStore, [\"items\"], (state) => {\n collection.setState(\"items\", state.items);\n });\n });\n setup(privateStore, () => {\n return batch(privateStore, [\"renderedItems\"], (state) => {\n let firstRun = true;\n let raf = requestAnimationFrame(() => {\n const { renderedItems } = collection.getState();\n if (state.renderedItems === renderedItems)\n return;\n sortItems(state.renderedItems);\n });\n if (typeof IntersectionObserver !== \"function\") {\n return () => cancelAnimationFrame(raf);\n }\n const ioCallback = () => {\n if (firstRun) {\n firstRun = false;\n return;\n }\n cancelAnimationFrame(raf);\n raf = requestAnimationFrame(() => sortItems(state.renderedItems));\n };\n const root = getCommonParent(state.renderedItems);\n const observer = new IntersectionObserver(ioCallback, { root });\n for (const item of state.renderedItems) {\n if (!item.element)\n continue;\n observer.observe(item.element);\n }\n return () => {\n cancelAnimationFrame(raf);\n observer.disconnect();\n };\n });\n });\n const mergeItem = (item, setItems, canDeleteFromMap = false) => {\n let prevItem;\n setItems((items2) => {\n const index = items2.findIndex(({ id }) => id === item.id);\n const nextItems = items2.slice();\n if (index !== -1) {\n prevItem = items2[index];\n const nextItem = __spreadValues(__spreadValues({}, prevItem), item);\n nextItems[index] = nextItem;\n itemsMap.set(item.id, nextItem);\n } else {\n nextItems.push(item);\n itemsMap.set(item.id, item);\n }\n return nextItems;\n });\n const unmergeItem = () => {\n setItems((items2) => {\n if (!prevItem) {\n if (canDeleteFromMap) {\n itemsMap.delete(item.id);\n }\n return items2.filter(({ id }) => id !== item.id);\n }\n const index = items2.findIndex(({ id }) => id === item.id);\n if (index === -1)\n return items2;\n const nextItems = items2.slice();\n nextItems[index] = prevItem;\n itemsMap.set(item.id, prevItem);\n return nextItems;\n });\n };\n return unmergeItem;\n };\n const registerItem = (item) => mergeItem(\n item,\n (getItems) => privateStore.setState(\"items\", getItems),\n true\n );\n return __spreadProps(__spreadValues({}, collection), {\n registerItem,\n renderItem: (item) => chain(\n registerItem(item),\n mergeItem(\n item,\n (getItems) => privateStore.setState(\"renderedItems\", getItems)\n )\n ),\n item: (id) => {\n if (!id)\n return null;\n let item = itemsMap.get(id);\n if (!item) {\n const { items: items2 } = collection.getState();\n item = items2.find((item2) => item2.id === id);\n if (item) {\n itemsMap.set(id, item);\n }\n }\n return item || null;\n },\n // @ts-expect-error Internal\n __unstablePrivateStore: privateStore\n });\n}\n\nexport {\n createCollectionStore\n};\n","\"use client\";\nimport {\n CollectionContextProvider,\n CollectionScopedContextProvider\n} from \"./MADQZZRL.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/composite/composite-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n [CollectionContextProvider],\n [CollectionScopedContextProvider]\n);\nvar useCompositeContext = ctx.useContext;\nvar useCompositeScopedContext = ctx.useScopedContext;\nvar useCompositeProviderContext = ctx.useProviderContext;\nvar CompositeContextProvider = ctx.ContextProvider;\nvar CompositeScopedContextProvider = ctx.ScopedContextProvider;\nvar CompositeItemContext = createContext(\n void 0\n);\nvar CompositeRowContext = createContext(\n void 0\n);\n\nexport {\n useCompositeContext,\n useCompositeScopedContext,\n useCompositeProviderContext,\n CompositeContextProvider,\n CompositeScopedContextProvider,\n CompositeItemContext,\n CompositeRowContext\n};\n","\"use client\";\n\n// src/composite/utils.ts\nimport { getDocument, isTextField } from \"@ariakit/core/utils/dom\";\nvar NULL_ITEM = { id: null };\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n const index = items.findIndex((item) => item.id === activeId);\n return [\n ...items.slice(index + 1),\n ...shouldInsertNullItem ? [NULL_ITEM] : [],\n ...items.slice(0, index)\n ];\n}\nfunction findFirstEnabledItem(items, excludeId) {\n return items.find((item) => {\n if (excludeId) {\n return !item.disabled && item.id !== excludeId;\n }\n return !item.disabled;\n });\n}\nfunction getEnabledItem(store, id) {\n if (!id)\n return null;\n return store.item(id) || null;\n}\nfunction groupItemsByRows(items) {\n const rows = [];\n for (const item of items) {\n const row = rows.find((currentRow) => {\n var _a;\n return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n });\n if (row) {\n row.push(item);\n } else {\n rows.push([item]);\n }\n }\n return rows;\n}\nfunction selectTextField(element, collapseToEnd = false) {\n if (isTextField(element)) {\n element.setSelectionRange(\n collapseToEnd ? element.value.length : 0,\n element.value.length\n );\n } else if (element.isContentEditable) {\n const selection = getDocument(element).getSelection();\n selection == null ? void 0 : selection.selectAllChildren(element);\n if (collapseToEnd) {\n selection == null ? void 0 : selection.collapseToEnd();\n }\n }\n}\nvar FOCUS_SILENTLY = Symbol(\"FOCUS_SILENTLY\");\nfunction focusSilently(element) {\n element[FOCUS_SILENTLY] = true;\n element.focus({ preventScroll: true });\n}\nfunction silentlyFocused(element) {\n const isSilentlyFocused = element[FOCUS_SILENTLY];\n delete element[FOCUS_SILENTLY];\n return isSilentlyFocused;\n}\nfunction isItem(store, element, exclude) {\n if (!element)\n return false;\n if (element === exclude)\n return false;\n const item = store.item(element.id);\n if (!item)\n return false;\n if (exclude && item.element === exclude)\n return false;\n return true;\n}\n\nexport {\n flipItems,\n findFirstEnabledItem,\n getEnabledItem,\n groupItemsByRows,\n selectTextField,\n focusSilently,\n silentlyFocused,\n isItem\n};\n","\"use client\";\nimport {\n HovercardContextProvider,\n HovercardScopedContextProvider\n} from \"./TWDHCE7Y.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/tooltip/tooltip-context.tsx\nvar ctx = createStoreContext(\n [HovercardContextProvider],\n [HovercardScopedContextProvider]\n);\nvar useTooltipContext = ctx.useContext;\nvar useTooltipScopedContext = ctx.useScopedContext;\nvar useTooltipProviderContext = ctx.useProviderContext;\nvar TooltipContextProvider = ctx.ContextProvider;\nvar TooltipScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useTooltipContext,\n useTooltipScopedContext,\n useTooltipProviderContext,\n TooltipContextProvider,\n TooltipScopedContextProvider\n};\n","\"use client\";\n\n// src/hovercard/utils/polygon.ts\nfunction getEventPoint(event) {\n return [event.clientX, event.clientY];\n}\nfunction isPointInPolygon(point, polygon) {\n const [x, y] = point;\n let inside = false;\n const length = polygon.length;\n for (let l = length, i = 0, j = l - 1; i < l; j = i++) {\n const [xi, yi] = polygon[i];\n const [xj, yj] = polygon[j];\n const [, vy] = polygon[j === 0 ? l - 1 : j - 1] || [0, 0];\n const where = (yi - yj) * (x - xi) - (xi - xj) * (y - yi);\n if (yj < yi) {\n if (y >= yj && y < yi) {\n if (where === 0)\n return true;\n if (where > 0) {\n if (y === yj) {\n if (y > vy) {\n inside = !inside;\n }\n } else {\n inside = !inside;\n }\n }\n }\n } else if (yi < yj) {\n if (y > yi && y <= yj) {\n if (where === 0)\n return true;\n if (where < 0) {\n if (y === yj) {\n if (y < vy) {\n inside = !inside;\n }\n } else {\n inside = !inside;\n }\n }\n }\n } else if (y == yi && (x >= xj && x <= xi || x >= xi && x <= xj)) {\n return true;\n }\n }\n return inside;\n}\nfunction getEnterPointPlacement(enterPoint, rect) {\n const { top, right, bottom, left } = rect;\n const [x, y] = enterPoint;\n const placementX = x < left ? \"left\" : x > right ? \"right\" : null;\n const placementY = y < top ? \"top\" : y > bottom ? \"bottom\" : null;\n return [placementX, placementY];\n}\nfunction getElementPolygon(element, enterPoint) {\n const rect = element.getBoundingClientRect();\n const { top, right, bottom, left } = rect;\n const [x, y] = getEnterPointPlacement(enterPoint, rect);\n const polygon = [enterPoint];\n if (x) {\n if (y !== \"top\") {\n polygon.push([x === \"left\" ? left : right, top]);\n }\n polygon.push([x === \"left\" ? right : left, top]);\n polygon.push([x === \"left\" ? right : left, bottom]);\n if (y !== \"bottom\") {\n polygon.push([x === \"left\" ? left : right, bottom]);\n }\n } else if (y === \"top\") {\n polygon.push([left, top]);\n polygon.push([left, bottom]);\n polygon.push([right, bottom]);\n polygon.push([right, top]);\n } else {\n polygon.push([left, bottom]);\n polygon.push([left, top]);\n polygon.push([right, top]);\n polygon.push([right, bottom]);\n }\n return polygon;\n}\n\nexport {\n getEventPoint,\n isPointInPolygon,\n getElementPolygon\n};\n","\"use client\";\nimport {\n getElementPolygon,\n getEventPoint,\n isPointInPolygon\n} from \"./YMV43K4F.js\";\nimport {\n usePopover\n} from \"./BYD75WXE.js\";\nimport {\n createDialogComponent\n} from \"./KXSO5EFT.js\";\nimport {\n HovercardScopedContextProvider,\n useHovercardProviderContext\n} from \"./TWDHCE7Y.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useLiveRef,\n useMergeRefs,\n usePortalRef,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/hovercard/hovercard.tsx\nimport {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport {\n chain,\n invariant,\n isFalsyBooleanCallback\n} from \"@ariakit/core/utils/misc\";\nimport { sync } from \"@ariakit/core/utils/store\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isMovingOnHovercard(target, card, anchor, nested) {\n if (hasFocusWithin(card))\n return true;\n if (!target)\n return false;\n if (contains(card, target))\n return true;\n if (anchor && contains(anchor, target))\n return true;\n if (nested == null ? void 0 : nested.some((card2) => isMovingOnHovercard(target, card2, anchor))) {\n return true;\n }\n return false;\n}\nfunction useAutoFocusOnHide(_a) {\n var _b = _a, {\n store\n } = _b, props = __objRest(_b, [\n \"store\"\n ]);\n const [autoFocusOnHide, setAutoFocusOnHide] = useState(false);\n const mounted = store.useState(\"mounted\");\n useEffect(() => {\n if (!mounted) {\n setAutoFocusOnHide(false);\n }\n }, [mounted]);\n const onFocusProp = props.onFocus;\n const onFocus = useEvent((event) => {\n onFocusProp == null ? void 0 : onFocusProp(event);\n if (event.defaultPrevented)\n return;\n setAutoFocusOnHide(true);\n });\n const finalFocusRef = useRef(null);\n useEffect(() => {\n return sync(store, [\"anchorElement\"], (state) => {\n finalFocusRef.current = state.anchorElement;\n });\n }, []);\n props = __spreadProps(__spreadValues({\n autoFocusOnHide,\n finalFocus: finalFocusRef\n }, props), {\n onFocus\n });\n return props;\n}\nvar NestedHovercardContext = createContext(null);\nvar useHovercard = createHook(\n function useHovercard2(_a) {\n var _b = _a, {\n store,\n modal = false,\n portal = !!modal,\n hideOnEscape = true,\n hideOnHoverOutside = true,\n disablePointerEventsOnApproach = !!hideOnHoverOutside\n } = _b, props = __objRest(_b, [\n \"store\",\n \"modal\",\n \"portal\",\n \"hideOnEscape\",\n \"hideOnHoverOutside\",\n \"disablePointerEventsOnApproach\"\n ]);\n const context = useHovercardProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Hovercard must receive a `store` prop or be wrapped in a HovercardProvider component.\"\n );\n const ref = useRef(null);\n const [nestedHovercards, setNestedHovercards] = useState([]);\n const hideTimeoutRef = useRef(0);\n const enterPointRef = useRef(null);\n const { portalRef, domReady } = usePortalRef(portal, props.portalRef);\n const mayHideOnHoverOutside = !!hideOnHoverOutside;\n const hideOnHoverOutsideProp = useBooleanEvent(hideOnHoverOutside);\n const mayDisablePointerEvents = !!disablePointerEventsOnApproach;\n const disablePointerEventsProp = useBooleanEvent(\n disablePointerEventsOnApproach\n );\n const open = store.useState(\"open\");\n const mounted = store.useState(\"mounted\");\n useEffect(() => {\n if (!domReady)\n return;\n if (!mounted)\n return;\n if (!mayHideOnHoverOutside && !mayDisablePointerEvents)\n return;\n const element = ref.current;\n if (!element)\n return;\n const onMouseMove = (event) => {\n if (!store)\n return;\n const { anchorElement, hideTimeout, timeout } = store.getState();\n const enterPoint = enterPointRef.current;\n const [target] = event.composedPath();\n const anchor = anchorElement;\n if (isMovingOnHovercard(target, element, anchor, nestedHovercards)) {\n enterPointRef.current = target && anchor && contains(anchor, target) ? getEventPoint(event) : null;\n window.clearTimeout(hideTimeoutRef.current);\n hideTimeoutRef.current = 0;\n return;\n }\n if (hideTimeoutRef.current)\n return;\n if (enterPoint) {\n const currentPoint = getEventPoint(event);\n const polygon = getElementPolygon(element, enterPoint);\n if (isPointInPolygon(currentPoint, polygon)) {\n enterPointRef.current = currentPoint;\n if (!disablePointerEventsProp(event))\n return;\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n }\n if (!hideOnHoverOutsideProp(event))\n return;\n hideTimeoutRef.current = window.setTimeout(() => {\n hideTimeoutRef.current = 0;\n store == null ? void 0 : store.hide();\n }, hideTimeout != null ? hideTimeout : timeout);\n };\n return chain(\n addGlobalEventListener(\"mousemove\", onMouseMove, true),\n () => clearTimeout(hideTimeoutRef.current)\n );\n }, [\n store,\n domReady,\n mounted,\n mayHideOnHoverOutside,\n mayDisablePointerEvents,\n nestedHovercards,\n disablePointerEventsProp,\n hideOnHoverOutsideProp\n ]);\n useEffect(() => {\n if (!domReady)\n return;\n if (!mounted)\n return;\n if (!mayDisablePointerEvents)\n return;\n const disableEvent = (event) => {\n const element = ref.current;\n if (!element)\n return;\n const enterPoint = enterPointRef.current;\n if (!enterPoint)\n return;\n const polygon = getElementPolygon(element, enterPoint);\n if (isPointInPolygon(getEventPoint(event), polygon)) {\n if (!disablePointerEventsProp(event))\n return;\n event.preventDefault();\n event.stopPropagation();\n }\n };\n return chain(\n // Note: we may need to add pointer events here in the future.\n addGlobalEventListener(\"mouseenter\", disableEvent, true),\n addGlobalEventListener(\"mouseover\", disableEvent, true),\n addGlobalEventListener(\"mouseout\", disableEvent, true),\n addGlobalEventListener(\"mouseleave\", disableEvent, true)\n );\n }, [domReady, mounted, mayDisablePointerEvents, disablePointerEventsProp]);\n useEffect(() => {\n if (!domReady)\n return;\n if (open)\n return;\n store == null ? void 0 : store.setAutoFocusOnShow(false);\n }, [store, domReady, open]);\n const openRef = useLiveRef(open);\n useEffect(() => {\n if (!domReady)\n return;\n return () => {\n if (!openRef.current) {\n store == null ? void 0 : store.setAutoFocusOnShow(false);\n }\n };\n }, [store, domReady]);\n const registerOnParent = useContext(NestedHovercardContext);\n useSafeLayoutEffect(() => {\n if (modal)\n return;\n if (!portal)\n return;\n if (!mounted)\n return;\n if (!domReady)\n return;\n const element = ref.current;\n if (!element)\n return;\n return registerOnParent == null ? void 0 : registerOnParent(element);\n }, [modal, portal, mounted, domReady]);\n const registerNestedHovercard = useCallback(\n (element) => {\n setNestedHovercards((prevElements) => [...prevElements, element]);\n const parentUnregister = registerOnParent == null ? void 0 : registerOnParent(element);\n return () => {\n setNestedHovercards(\n (prevElements) => prevElements.filter((item) => item !== element)\n );\n parentUnregister == null ? void 0 : parentUnregister();\n };\n },\n [registerOnParent]\n );\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(HovercardScopedContextProvider, { value: store, children: /* @__PURE__ */ jsx(NestedHovercardContext.Provider, { value: registerNestedHovercard, children: element }) }),\n [store, registerNestedHovercard]\n );\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref)\n });\n props = useAutoFocusOnHide(__spreadValues({ store }, props));\n const autoFocusOnShow = store.useState(\n (state) => modal || state.autoFocusOnShow\n );\n props = usePopover(__spreadProps(__spreadValues({\n store,\n modal,\n portal,\n autoFocusOnShow\n }, props), {\n portalRef,\n hideOnEscape(event) {\n if (isFalsyBooleanCallback(hideOnEscape, event))\n return false;\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n store == null ? void 0 : store.hide();\n });\n });\n return true;\n }\n }));\n return props;\n }\n);\nvar Hovercard = createDialogComponent(\n forwardRef(function Hovercard2(props) {\n const htmlProps = useHovercard(props);\n return createElement(TagName, htmlProps);\n }),\n useHovercardProviderContext\n);\n\nexport {\n useHovercard,\n Hovercard\n};\n","\"use client\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\nimport {\n useUpdateEffect\n} from \"./6O5OEQGF.js\";\n\n// src/collection/collection-store.ts\nimport * as Core from \"@ariakit/core/collection/collection-store\";\nfunction useCollectionStoreProps(store, update, props) {\n useUpdateEffect(update, [props.store]);\n useStoreProps(store, props, \"items\", \"setItems\");\n return store;\n}\nfunction useCollectionStore(props = {}) {\n const [store, update] = useStore(Core.createCollectionStore, props);\n return useCollectionStoreProps(store, update, props);\n}\n\nexport {\n useCollectionStoreProps,\n useCollectionStore\n};\n","\"use client\";\nimport {\n useCollectionStoreProps\n} from \"./Y6GYTNQ2.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\n\n// src/composite/composite-store.ts\nimport * as Core from \"@ariakit/core/composite/composite-store\";\nfunction useCompositeStoreProps(store, update, props) {\n store = useCollectionStoreProps(store, update, props);\n useStoreProps(store, props, \"activeId\", \"setActiveId\");\n useStoreProps(store, props, \"includesBaseElement\");\n useStoreProps(store, props, \"virtualFocus\");\n useStoreProps(store, props, \"orientation\");\n useStoreProps(store, props, \"rtl\");\n useStoreProps(store, props, \"focusLoop\");\n useStoreProps(store, props, \"focusWrap\");\n useStoreProps(store, props, \"focusShift\");\n return store;\n}\nfunction useCompositeStore(props = {}) {\n const [store, update] = useStore(Core.createCompositeStore, props);\n return useCompositeStoreProps(store, update, props);\n}\n\nexport {\n useCompositeStoreProps,\n useCompositeStore\n};\n","\"use client\";\nimport {\n useCollectionContext\n} from \"./MADQZZRL.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useId,\n useMergeRefs\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/collection/collection-item.ts\nimport { useEffect, useRef } from \"react\";\nimport { identity, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nvar TagName = \"div\";\nvar useCollectionItem = createHook(\n function useCollectionItem2(_a) {\n var _b = _a, {\n store,\n shouldRegisterItem = true,\n getItem = identity,\n element: element\n } = _b, props = __objRest(_b, [\n \"store\",\n \"shouldRegisterItem\",\n \"getItem\",\n // @ts-expect-error This prop may come from a collection renderer.\n \"element\"\n ]);\n const context = useCollectionContext();\n store = store || context;\n const id = useId(props.id);\n const ref = useRef(element);\n useEffect(() => {\n const element2 = ref.current;\n if (!id)\n return;\n if (!element2)\n return;\n if (!shouldRegisterItem)\n return;\n const item = getItem({ id, element: element2 });\n return store == null ? void 0 : store.renderItem(item);\n }, [id, shouldRegisterItem, getItem, store]);\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref)\n });\n return removeUndefinedValues(props);\n }\n);\nvar CollectionItem = forwardRef(function CollectionItem2(props) {\n const htmlProps = useCollectionItem(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useCollectionItem,\n CollectionItem\n};\n","\"use client\";\nimport {\n createDialogComponent,\n useDialog\n} from \"./KXSO5EFT.js\";\nimport {\n PopoverScopedContextProvider,\n usePopoverProviderContext\n} from \"./TE637IA7.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useEvent,\n usePortalRef,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/popover/popover.tsx\nimport { useState } from \"react\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n limitShift,\n offset,\n shift,\n size\n} from \"@floating-ui/dom\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction createDOMRect(x = 0, y = 0, width = 0, height = 0) {\n if (typeof DOMRect === \"function\") {\n return new DOMRect(x, y, width, height);\n }\n const rect = {\n x,\n y,\n width,\n height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x\n };\n return __spreadProps(__spreadValues({}, rect), { toJSON: () => rect });\n}\nfunction getDOMRect(anchorRect) {\n if (!anchorRect)\n return createDOMRect();\n const { x, y, width, height } = anchorRect;\n return createDOMRect(x, y, width, height);\n}\nfunction getAnchorElement(anchorElement, getAnchorRect) {\n const contextElement = anchorElement || void 0;\n return {\n contextElement,\n getBoundingClientRect: () => {\n const anchor = anchorElement;\n const anchorRect = getAnchorRect == null ? void 0 : getAnchorRect(anchor);\n if (anchorRect || !anchor) {\n return getDOMRect(anchorRect);\n }\n return anchor.getBoundingClientRect();\n }\n };\n}\nfunction isValidPlacement(flip2) {\n return /^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(flip2);\n}\nfunction roundByDPR(value) {\n const dpr = window.devicePixelRatio || 1;\n return Math.round(value * dpr) / dpr;\n}\nfunction getOffsetMiddleware(arrowElement, props) {\n return offset(({ placement }) => {\n var _a;\n const arrowOffset = ((arrowElement == null ? void 0 : arrowElement.clientHeight) || 0) / 2;\n const finalGutter = typeof props.gutter === \"number\" ? props.gutter + arrowOffset : (_a = props.gutter) != null ? _a : arrowOffset;\n const hasAlignment = !!placement.split(\"-\")[1];\n return {\n crossAxis: !hasAlignment ? props.shift : void 0,\n mainAxis: finalGutter,\n alignmentAxis: props.shift\n };\n });\n}\nfunction getFlipMiddleware(props) {\n if (props.flip === false)\n return;\n const fallbackPlacements = typeof props.flip === \"string\" ? props.flip.split(\" \") : void 0;\n invariant(\n !fallbackPlacements || fallbackPlacements.every(isValidPlacement),\n process.env.NODE_ENV !== \"production\" && \"`flip` expects a spaced-delimited list of placements\"\n );\n return flip({\n padding: props.overflowPadding,\n fallbackPlacements\n });\n}\nfunction getShiftMiddleware(props) {\n if (!props.slide && !props.overlap)\n return;\n return shift({\n mainAxis: props.slide,\n crossAxis: props.overlap,\n padding: props.overflowPadding,\n limiter: limitShift()\n });\n}\nfunction getSizeMiddleware(props) {\n return size({\n padding: props.overflowPadding,\n apply({ elements, availableWidth, availableHeight, rects }) {\n const wrapper = elements.floating;\n const referenceWidth = Math.round(rects.reference.width);\n availableWidth = Math.floor(availableWidth);\n availableHeight = Math.floor(availableHeight);\n wrapper.style.setProperty(\n \"--popover-anchor-width\",\n `${referenceWidth}px`\n );\n wrapper.style.setProperty(\n \"--popover-available-width\",\n `${availableWidth}px`\n );\n wrapper.style.setProperty(\n \"--popover-available-height\",\n `${availableHeight}px`\n );\n if (props.sameWidth) {\n wrapper.style.width = `${referenceWidth}px`;\n }\n if (props.fitViewport) {\n wrapper.style.maxWidth = `${availableWidth}px`;\n wrapper.style.maxHeight = `${availableHeight}px`;\n }\n }\n });\n}\nfunction getArrowMiddleware(arrowElement, props) {\n if (!arrowElement)\n return;\n return arrow({\n element: arrowElement,\n padding: props.arrowPadding\n });\n}\nvar usePopover = createHook(\n function usePopover2(_a) {\n var _b = _a, {\n store,\n modal = false,\n portal = !!modal,\n preserveTabOrder = true,\n autoFocusOnShow = true,\n wrapperProps,\n fixed = false,\n flip: flip2 = true,\n shift: shift2 = 0,\n slide = true,\n overlap = false,\n sameWidth = false,\n fitViewport = false,\n gutter,\n arrowPadding = 4,\n overflowPadding = 8,\n getAnchorRect,\n updatePosition\n } = _b, props = __objRest(_b, [\n \"store\",\n \"modal\",\n \"portal\",\n \"preserveTabOrder\",\n \"autoFocusOnShow\",\n \"wrapperProps\",\n \"fixed\",\n \"flip\",\n \"shift\",\n \"slide\",\n \"overlap\",\n \"sameWidth\",\n \"fitViewport\",\n \"gutter\",\n \"arrowPadding\",\n \"overflowPadding\",\n \"getAnchorRect\",\n \"updatePosition\"\n ]);\n const context = usePopoverProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Popover must receive a `store` prop or be wrapped in a PopoverProvider component.\"\n );\n const arrowElement = store.useState(\"arrowElement\");\n const anchorElement = store.useState(\"anchorElement\");\n const disclosureElement = store.useState(\"disclosureElement\");\n const popoverElement = store.useState(\"popoverElement\");\n const contentElement = store.useState(\"contentElement\");\n const placement = store.useState(\"placement\");\n const mounted = store.useState(\"mounted\");\n const rendered = store.useState(\"rendered\");\n const [positioned, setPositioned] = useState(false);\n const { portalRef, domReady } = usePortalRef(portal, props.portalRef);\n const getAnchorRectProp = useEvent(getAnchorRect);\n const updatePositionProp = useEvent(updatePosition);\n const hasCustomUpdatePosition = !!updatePosition;\n useSafeLayoutEffect(() => {\n if (!(popoverElement == null ? void 0 : popoverElement.isConnected))\n return;\n popoverElement.style.setProperty(\n \"--popover-overflow-padding\",\n `${overflowPadding}px`\n );\n const anchor = getAnchorElement(anchorElement, getAnchorRectProp);\n const updatePosition2 = async () => {\n if (!mounted)\n return;\n const middleware = [\n getOffsetMiddleware(arrowElement, { gutter, shift: shift2 }),\n getFlipMiddleware({ flip: flip2, overflowPadding }),\n getShiftMiddleware({ slide, shift: shift2, overlap, overflowPadding }),\n getArrowMiddleware(arrowElement, { arrowPadding }),\n getSizeMiddleware({\n sameWidth,\n fitViewport,\n overflowPadding\n })\n ];\n const pos = await computePosition(anchor, popoverElement, {\n placement,\n strategy: fixed ? \"fixed\" : \"absolute\",\n middleware\n });\n store == null ? void 0 : store.setState(\"currentPlacement\", pos.placement);\n setPositioned(true);\n const x = roundByDPR(pos.x);\n const y = roundByDPR(pos.y);\n Object.assign(popoverElement.style, {\n top: \"0\",\n left: \"0\",\n transform: `translate3d(${x}px,${y}px,0)`\n });\n if (arrowElement && pos.middlewareData.arrow) {\n const { x: arrowX, y: arrowY } = pos.middlewareData.arrow;\n const dir = pos.placement.split(\"-\")[0];\n Object.assign(arrowElement.style, {\n left: arrowX != null ? `${arrowX}px` : \"\",\n top: arrowY != null ? `${arrowY}px` : \"\",\n [dir]: \"100%\"\n });\n }\n };\n const update = async () => {\n if (hasCustomUpdatePosition) {\n await updatePositionProp({ updatePosition: updatePosition2 });\n setPositioned(true);\n } else {\n await updatePosition2();\n }\n };\n const cancelAutoUpdate = autoUpdate(anchor, popoverElement, update, {\n // JSDOM doesn't support ResizeObserver\n elementResize: typeof ResizeObserver === \"function\"\n });\n return () => {\n setPositioned(false);\n cancelAutoUpdate();\n };\n }, [\n store,\n rendered,\n popoverElement,\n arrowElement,\n anchorElement,\n popoverElement,\n placement,\n mounted,\n domReady,\n fixed,\n flip2,\n shift2,\n slide,\n overlap,\n sameWidth,\n fitViewport,\n gutter,\n arrowPadding,\n overflowPadding,\n getAnchorRectProp,\n hasCustomUpdatePosition,\n updatePositionProp\n ]);\n useSafeLayoutEffect(() => {\n if (!mounted)\n return;\n if (!domReady)\n return;\n if (!(popoverElement == null ? void 0 : popoverElement.isConnected))\n return;\n if (!(contentElement == null ? void 0 : contentElement.isConnected))\n return;\n const applyZIndex = () => {\n popoverElement.style.zIndex = getComputedStyle(contentElement).zIndex;\n };\n applyZIndex();\n let raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(applyZIndex);\n });\n return () => cancelAnimationFrame(raf);\n }, [mounted, domReady, popoverElement, contentElement]);\n const position = fixed ? \"fixed\" : \"absolute\";\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(\n \"div\",\n __spreadProps(__spreadValues({}, wrapperProps), {\n style: __spreadValues({\n // https://floating-ui.com/docs/computeposition#initial-layout\n position,\n top: 0,\n left: 0,\n width: \"max-content\"\n }, wrapperProps == null ? void 0 : wrapperProps.style),\n ref: store == null ? void 0 : store.setPopoverElement,\n children: element\n })\n ),\n [store, position, wrapperProps]\n );\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(PopoverScopedContextProvider, { value: store, children: element }),\n [store]\n );\n props = __spreadProps(__spreadValues({\n // data-placing is not part of the public API. We're setting this here so\n // we can wait for the popover to be positioned before other components\n // move focus into it. For example, this attribute is observed by the\n // Combobox component with the autoSelect behavior.\n \"data-placing\": !positioned || void 0\n }, props), {\n style: __spreadValues({\n position: \"relative\"\n }, props.style)\n });\n props = useDialog(__spreadProps(__spreadValues({\n store,\n modal,\n portal,\n preserveTabOrder,\n preserveTabOrderAnchor: disclosureElement || anchorElement,\n autoFocusOnShow: positioned && autoFocusOnShow\n }, props), {\n portalRef\n }));\n return props;\n }\n);\nvar Popover = createDialogComponent(\n forwardRef(function Popover2(props) {\n const htmlProps = usePopover(props);\n return createElement(TagName, htmlProps);\n }),\n usePopoverProviderContext\n);\n\nexport {\n usePopover,\n Popover\n};\n","\"use client\";\nimport {\n useCommand\n} from \"./KSZPJCUA.js\";\nimport {\n useCollectionItem\n} from \"./7YKLTEOQ.js\";\nimport {\n focusSilently,\n getEnabledItem,\n isItem\n} from \"./3IEDWLST.js\";\nimport {\n CompositeItemContext,\n CompositeRowContext,\n useCompositeContext\n} from \"./3D6OCOHF.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"./5M6RSQEC.js\";\nimport {\n useStoreState\n} from \"./EKQEJRUF.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/composite/composite-item.tsx\nimport { useCallback, useContext, useMemo, useRef, useState } from \"react\";\nimport {\n getScrollingElement,\n isButton,\n isTextField\n} from \"@ariakit/core/utils/dom\";\nimport { isPortalEvent, isSelfTarget } from \"@ariakit/core/utils/events\";\nimport {\n disabledFromProps,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"button\";\nfunction isEditableElement(element) {\n if (element.isContentEditable)\n return true;\n if (isTextField(element))\n return true;\n return element.tagName === \"INPUT\" && !isButton(element);\n}\nfunction getNextPageOffset(scrollingElement, pageUp = false) {\n const height = scrollingElement.clientHeight;\n const { top } = scrollingElement.getBoundingClientRect();\n const pageSize = Math.max(height * 0.875, height - 40) * 1.5;\n const pageOffset = pageUp ? height - pageSize + top : pageSize + top;\n if (scrollingElement.tagName === \"HTML\") {\n return pageOffset + scrollingElement.scrollTop;\n }\n return pageOffset;\n}\nfunction getItemOffset(itemElement, pageUp = false) {\n const { top } = itemElement.getBoundingClientRect();\n if (pageUp) {\n return top + itemElement.clientHeight;\n }\n return top;\n}\nfunction findNextPageItemId(element, store, next, pageUp = false) {\n var _a;\n if (!store)\n return;\n if (!next)\n return;\n const { renderedItems } = store.getState();\n const scrollingElement = getScrollingElement(element);\n if (!scrollingElement)\n return;\n const nextPageOffset = getNextPageOffset(scrollingElement, pageUp);\n let id;\n let prevDifference;\n for (let i = 0; i < renderedItems.length; i += 1) {\n const previousId = id;\n id = next(i);\n if (!id)\n break;\n if (id === previousId)\n continue;\n const itemElement = (_a = getEnabledItem(store, id)) == null ? void 0 : _a.element;\n if (!itemElement)\n continue;\n const itemOffset = getItemOffset(itemElement, pageUp);\n const difference = itemOffset - nextPageOffset;\n const absDifference = Math.abs(difference);\n if (pageUp && difference <= 0 || !pageUp && difference >= 0) {\n if (prevDifference !== void 0 && prevDifference < absDifference) {\n id = previousId;\n }\n break;\n }\n prevDifference = absDifference;\n }\n return id;\n}\nfunction targetIsAnotherItem(event, store) {\n if (isSelfTarget(event))\n return false;\n return isItem(store, event.target);\n}\nfunction useRole(ref, props) {\n const roleProp = props.role;\n const [role, setRole] = useState(roleProp);\n useSafeLayoutEffect(() => {\n const element = ref.current;\n if (!element)\n return;\n setRole(element.getAttribute(\"role\") || roleProp);\n }, [roleProp]);\n return role;\n}\nfunction requiresAriaSelected(role) {\n return role === \"option\" || role === \"treeitem\";\n}\nfunction supportsAriaSelected(role) {\n if (role === \"option\")\n return true;\n if (role === \"tab\")\n return true;\n if (role === \"treeitem\")\n return true;\n if (role === \"gridcell\")\n return true;\n if (role === \"row\")\n return true;\n if (role === \"columnheader\")\n return true;\n if (role === \"rowheader\")\n return true;\n return false;\n}\nvar useCompositeItem = createHook(\n function useCompositeItem2(_a) {\n var _b = _a, {\n store,\n rowId: rowIdProp,\n preventScrollOnKeyDown = false,\n moveOnKeyPress = true,\n tabbable = false,\n getItem: getItemProp,\n \"aria-setsize\": ariaSetSizeProp,\n \"aria-posinset\": ariaPosInSetProp\n } = _b, props = __objRest(_b, [\n \"store\",\n \"rowId\",\n \"preventScrollOnKeyDown\",\n \"moveOnKeyPress\",\n \"tabbable\",\n \"getItem\",\n \"aria-setsize\",\n \"aria-posinset\"\n ]);\n const context = useCompositeContext();\n store = store || context;\n const id = useId(props.id);\n const ref = useRef(null);\n const row = useContext(CompositeRowContext);\n const rowId = useStoreState(store, (state) => {\n if (rowIdProp)\n return rowIdProp;\n if (!state)\n return;\n if (!(row == null ? void 0 : row.baseElement))\n return;\n if (row.baseElement !== state.baseElement)\n return;\n return row.id;\n });\n const disabled = disabledFromProps(props);\n const trulyDisabled = disabled && !props.accessibleWhenDisabled;\n const getItem = useCallback(\n (item) => {\n const nextItem = __spreadProps(__spreadValues({}, item), {\n id: id || item.id,\n rowId,\n disabled: !!trulyDisabled\n });\n if (getItemProp) {\n return getItemProp(nextItem);\n }\n return nextItem;\n },\n [id, rowId, trulyDisabled, getItemProp]\n );\n const onFocusProp = props.onFocus;\n const hasFocusedComposite = useRef(false);\n const onFocus = useEvent((event) => {\n onFocusProp == null ? void 0 : onFocusProp(event);\n if (event.defaultPrevented)\n return;\n if (isPortalEvent(event))\n return;\n if (!id)\n return;\n if (!store)\n return;\n const { activeId, virtualFocus: virtualFocus2, baseElement: baseElement2 } = store.getState();\n if (targetIsAnotherItem(event, store))\n return;\n if (activeId !== id) {\n store.setActiveId(id);\n }\n if (!virtualFocus2)\n return;\n if (!isSelfTarget(event))\n return;\n if (isEditableElement(event.currentTarget))\n return;\n if (!(baseElement2 == null ? void 0 : baseElement2.isConnected))\n return;\n hasFocusedComposite.current = true;\n const fromComposite = event.relatedTarget === baseElement2 || isItem(store, event.relatedTarget);\n if (fromComposite) {\n focusSilently(baseElement2);\n } else {\n baseElement2.focus();\n }\n });\n const onBlurCaptureProp = props.onBlurCapture;\n const onBlurCapture = useEvent((event) => {\n onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);\n if (event.defaultPrevented)\n return;\n const state = store == null ? void 0 : store.getState();\n if ((state == null ? void 0 : state.virtualFocus) && hasFocusedComposite.current) {\n hasFocusedComposite.current = false;\n event.preventDefault();\n event.stopPropagation();\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const preventScrollOnKeyDownProp = useBooleanEvent(preventScrollOnKeyDown);\n const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented)\n return;\n if (!isSelfTarget(event))\n return;\n if (!store)\n return;\n const { currentTarget } = event;\n const state = store.getState();\n const item = store.item(id);\n const isGrid = !!(item == null ? void 0 : item.rowId);\n const isVertical = state.orientation !== \"horizontal\";\n const isHorizontal = state.orientation !== \"vertical\";\n const canHomeEnd = () => {\n if (isGrid)\n return true;\n if (isHorizontal)\n return true;\n if (!state.baseElement)\n return true;\n if (!isTextField(state.baseElement))\n return true;\n return false;\n };\n const keyMap = {\n ArrowUp: (isGrid || isVertical) && store.up,\n ArrowRight: (isGrid || isHorizontal) && store.next,\n ArrowDown: (isGrid || isVertical) && store.down,\n ArrowLeft: (isGrid || isHorizontal) && store.previous,\n Home: () => {\n if (!canHomeEnd())\n return;\n if (!isGrid || event.ctrlKey) {\n return store == null ? void 0 : store.first();\n }\n return store == null ? void 0 : store.previous(-1);\n },\n End: () => {\n if (!canHomeEnd())\n return;\n if (!isGrid || event.ctrlKey) {\n return store == null ? void 0 : store.last();\n }\n return store == null ? void 0 : store.next(-1);\n },\n PageUp: () => {\n return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.up, true);\n },\n PageDown: () => {\n return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.down);\n }\n };\n const action = keyMap[event.key];\n if (action) {\n const nextId = action();\n if (preventScrollOnKeyDownProp(event) || nextId !== void 0) {\n if (!moveOnKeyPressProp(event))\n return;\n event.preventDefault();\n store.move(nextId);\n }\n }\n });\n const baseElement = useStoreState(\n store,\n (state) => (state == null ? void 0 : state.baseElement) || void 0\n );\n const providerValue = useMemo(\n () => ({ id, baseElement }),\n [id, baseElement]\n );\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(CompositeItemContext.Provider, { value: providerValue, children: element }),\n [providerValue]\n );\n const isActiveItem = useStoreState(\n store,\n (state) => !!state && state.activeId === id\n );\n const virtualFocus = useStoreState(store, \"virtualFocus\");\n const role = useRole(ref, props);\n let ariaSelected;\n if (isActiveItem) {\n if (requiresAriaSelected(role)) {\n ariaSelected = true;\n } else if (virtualFocus && supportsAriaSelected(role)) {\n ariaSelected = true;\n }\n }\n const ariaSetSize = useStoreState(store, (state) => {\n if (ariaSetSizeProp != null)\n return ariaSetSizeProp;\n if (!state)\n return;\n if (!(row == null ? void 0 : row.ariaSetSize))\n return;\n if (row.baseElement !== state.baseElement)\n return;\n return row.ariaSetSize;\n });\n const ariaPosInSet = useStoreState(store, (state) => {\n if (ariaPosInSetProp != null)\n return ariaPosInSetProp;\n if (!state)\n return;\n if (!(row == null ? void 0 : row.ariaPosInSet))\n return;\n if (row.baseElement !== state.baseElement)\n return;\n const itemsInRow = state.renderedItems.filter(\n (item) => item.rowId === rowId\n );\n return row.ariaPosInSet + itemsInRow.findIndex((item) => item.id === id);\n });\n const isTabbable = useStoreState(store, (state) => {\n if (!(state == null ? void 0 : state.renderedItems.length))\n return true;\n if (state.virtualFocus)\n return false;\n if (tabbable)\n return true;\n return state.activeId === id;\n });\n props = __spreadProps(__spreadValues({\n id,\n \"aria-selected\": ariaSelected,\n \"data-active-item\": isActiveItem || void 0\n }, props), {\n ref: useMergeRefs(ref, props.ref),\n tabIndex: isTabbable ? props.tabIndex : -1,\n onFocus,\n onBlurCapture,\n onKeyDown\n });\n props = useCommand(props);\n props = useCollectionItem(__spreadProps(__spreadValues({\n store\n }, props), {\n getItem,\n shouldRegisterItem: !!id ? props.shouldRegisterItem : false\n }));\n return removeUndefinedValues(__spreadProps(__spreadValues({}, props), {\n \"aria-setsize\": ariaSetSize,\n \"aria-posinset\": ariaPosInSet\n }));\n }\n);\nvar CompositeItem = memo(\n forwardRef(function CompositeItem2(props) {\n const htmlProps = useCompositeItem(props);\n return createElement(TagName, htmlProps);\n })\n);\n\nexport {\n useCompositeItem,\n CompositeItem\n};\n","\"use client\";\nimport {\n usePopoverStoreProps\n} from \"./XWCFCD3Q.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\n\n// src/hovercard/hovercard-store.ts\nimport * as Core from \"@ariakit/core/hovercard/hovercard-store\";\nfunction useHovercardStoreProps(store, update, props) {\n useStoreProps(store, props, \"timeout\");\n useStoreProps(store, props, \"showTimeout\");\n useStoreProps(store, props, \"hideTimeout\");\n return usePopoverStoreProps(store, update, props);\n}\nfunction useHovercardStore(props = {}) {\n const [store, update] = useStore(Core.createHovercardStore, props);\n return useHovercardStoreProps(store, update, props);\n}\n\nexport {\n useHovercardStoreProps,\n useHovercardStore\n};\n","\"use client\";\nimport {\n findFirstEnabledItem,\n getEnabledItem,\n groupItemsByRows,\n isItem,\n silentlyFocused\n} from \"./3IEDWLST.js\";\nimport {\n CompositeContextProvider,\n useCompositeProviderContext\n} from \"./3D6OCOHF.js\";\nimport {\n useFocusable\n} from \"./WAZE6NXP.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useMergeRefs,\n useSafeLayoutEffect,\n useWrapElement\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/composite/composite.tsx\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { flatten2DArray, reverseArray } from \"@ariakit/core/utils/array\";\nimport { getActiveElement, isTextField } from \"@ariakit/core/utils/dom\";\nimport {\n fireBlurEvent,\n fireKeyboardEvent,\n isSelfTarget\n} from \"@ariakit/core/utils/events\";\nimport { focusIntoView, hasFocus } from \"@ariakit/core/utils/focus\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isGrid(items) {\n return items.some((item) => !!item.rowId);\n}\nfunction isPrintableKey(event) {\n const target = event.target;\n if (target && !isTextField(target))\n return false;\n return event.key.length === 1 && !event.ctrlKey && !event.metaKey;\n}\nfunction isModifierKey(event) {\n return event.key === \"Shift\" || event.key === \"Control\" || event.key === \"Alt\" || event.key === \"Meta\";\n}\nfunction useKeyboardEventProxy(store, onKeyboardEvent, previousElementRef) {\n return useEvent((event) => {\n var _a;\n onKeyboardEvent == null ? void 0 : onKeyboardEvent(event);\n if (event.defaultPrevented)\n return;\n if (event.isPropagationStopped())\n return;\n if (!isSelfTarget(event))\n return;\n if (isModifierKey(event))\n return;\n if (isPrintableKey(event))\n return;\n const state = store.getState();\n const activeElement = (_a = getEnabledItem(store, state.activeId)) == null ? void 0 : _a.element;\n if (!activeElement)\n return;\n const _b = event, { view } = _b, eventInit = __objRest(_b, [\"view\"]);\n const previousElement = previousElementRef == null ? void 0 : previousElementRef.current;\n if (activeElement !== previousElement) {\n activeElement.focus();\n }\n if (!fireKeyboardEvent(activeElement, event.type, eventInit)) {\n event.preventDefault();\n }\n if (event.currentTarget.contains(activeElement)) {\n event.stopPropagation();\n }\n });\n}\nfunction findFirstEnabledItemInTheLastRow(items) {\n return findFirstEnabledItem(\n flatten2DArray(reverseArray(groupItemsByRows(items)))\n );\n}\nfunction useScheduleFocus(store) {\n const [scheduled, setScheduled] = useState(false);\n const schedule = useCallback(() => setScheduled(true), []);\n const activeItem = store.useState(\n (state) => getEnabledItem(store, state.activeId)\n );\n useEffect(() => {\n const activeElement = activeItem == null ? void 0 : activeItem.element;\n if (!scheduled)\n return;\n if (!activeElement)\n return;\n setScheduled(false);\n activeElement.focus({ preventScroll: true });\n }, [activeItem, scheduled]);\n return schedule;\n}\nvar useComposite = createHook(\n function useComposite2(_a) {\n var _b = _a, {\n store,\n composite = true,\n focusOnMove = composite,\n moveOnKeyPress = true\n } = _b, props = __objRest(_b, [\n \"store\",\n \"composite\",\n \"focusOnMove\",\n \"moveOnKeyPress\"\n ]);\n const context = useCompositeProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Composite must receive a `store` prop or be wrapped in a CompositeProvider component.\"\n );\n const previousElementRef = useRef(null);\n const scheduleFocus = useScheduleFocus(store);\n const moves = store.useState(\"moves\");\n useEffect(() => {\n var _a2;\n if (!store)\n return;\n if (!moves)\n return;\n if (!composite)\n return;\n if (!focusOnMove)\n return;\n const { activeId: activeId2 } = store.getState();\n const itemElement = (_a2 = getEnabledItem(store, activeId2)) == null ? void 0 : _a2.element;\n if (!itemElement)\n return;\n focusIntoView(itemElement);\n }, [store, moves, composite, focusOnMove]);\n useSafeLayoutEffect(() => {\n if (!store)\n return;\n if (!moves)\n return;\n if (!composite)\n return;\n const { baseElement, activeId: activeId2 } = store.getState();\n const isSelfAcive = activeId2 === null;\n if (!isSelfAcive)\n return;\n if (!baseElement)\n return;\n const previousElement = previousElementRef.current;\n previousElementRef.current = null;\n if (previousElement) {\n fireBlurEvent(previousElement, { relatedTarget: baseElement });\n }\n if (!hasFocus(baseElement)) {\n baseElement.focus();\n }\n }, [store, moves, composite]);\n const activeId = store.useState(\"activeId\");\n const virtualFocus = store.useState(\"virtualFocus\");\n useSafeLayoutEffect(() => {\n var _a2;\n if (!store)\n return;\n if (!composite)\n return;\n if (!virtualFocus)\n return;\n const previousElement = previousElementRef.current;\n previousElementRef.current = null;\n if (!previousElement)\n return;\n const activeElement = (_a2 = getEnabledItem(store, activeId)) == null ? void 0 : _a2.element;\n const relatedTarget = activeElement || getActiveElement(previousElement);\n if (relatedTarget === previousElement)\n return;\n fireBlurEvent(previousElement, { relatedTarget });\n }, [store, activeId, virtualFocus, composite]);\n const onKeyDownCapture = useKeyboardEventProxy(\n store,\n props.onKeyDownCapture,\n previousElementRef\n );\n const onKeyUpCapture = useKeyboardEventProxy(\n store,\n props.onKeyUpCapture,\n previousElementRef\n );\n const onFocusCaptureProp = props.onFocusCapture;\n const onFocusCapture = useEvent((event) => {\n onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);\n if (event.defaultPrevented)\n return;\n if (!store)\n return;\n const { virtualFocus: virtualFocus2 } = store.getState();\n if (!virtualFocus2)\n return;\n const previousActiveElement = event.relatedTarget;\n const isSilentlyFocused = silentlyFocused(event.currentTarget);\n if (isSelfTarget(event) && isSilentlyFocused) {\n event.stopPropagation();\n previousElementRef.current = previousActiveElement;\n }\n });\n const onFocusProp = props.onFocus;\n const onFocus = useEvent((event) => {\n onFocusProp == null ? void 0 : onFocusProp(event);\n if (event.defaultPrevented)\n return;\n if (!composite)\n return;\n if (!store)\n return;\n const { relatedTarget } = event;\n const { virtualFocus: virtualFocus2 } = store.getState();\n if (virtualFocus2) {\n if (isSelfTarget(event) && !isItem(store, relatedTarget)) {\n queueMicrotask(scheduleFocus);\n }\n } else if (isSelfTarget(event)) {\n store.setActiveId(null);\n }\n });\n const onBlurCaptureProp = props.onBlurCapture;\n const onBlurCapture = useEvent((event) => {\n var _a2;\n onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);\n if (event.defaultPrevented)\n return;\n if (!store)\n return;\n const { virtualFocus: virtualFocus2, activeId: activeId2 } = store.getState();\n if (!virtualFocus2)\n return;\n const activeElement = (_a2 = getEnabledItem(store, activeId2)) == null ? void 0 : _a2.element;\n const nextActiveElement = event.relatedTarget;\n const nextActiveElementIsItem = isItem(store, nextActiveElement);\n const previousElement = previousElementRef.current;\n previousElementRef.current = null;\n if (isSelfTarget(event) && nextActiveElementIsItem) {\n if (nextActiveElement === activeElement) {\n if (previousElement && previousElement !== nextActiveElement) {\n fireBlurEvent(previousElement, event);\n }\n } else if (activeElement) {\n fireBlurEvent(activeElement, event);\n } else if (previousElement) {\n fireBlurEvent(previousElement, event);\n }\n event.stopPropagation();\n } else {\n const targetIsItem = isItem(store, event.target);\n if (!targetIsItem && activeElement) {\n fireBlurEvent(activeElement, event);\n }\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n const onKeyDown = useEvent((event) => {\n var _a2;\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented)\n return;\n if (!store)\n return;\n if (!isSelfTarget(event))\n return;\n const { orientation, items, renderedItems, activeId: activeId2 } = store.getState();\n const activeItem = getEnabledItem(store, activeId2);\n if ((_a2 = activeItem == null ? void 0 : activeItem.element) == null ? void 0 : _a2.isConnected)\n return;\n const isVertical = orientation !== \"horizontal\";\n const isHorizontal = orientation !== \"vertical\";\n const grid = isGrid(renderedItems);\n const isHorizontalKey = event.key === \"ArrowLeft\" || event.key === \"ArrowRight\" || event.key === \"Home\" || event.key === \"End\";\n if (isHorizontalKey && isTextField(event.currentTarget))\n return;\n const up = () => {\n if (grid) {\n const item = items && findFirstEnabledItemInTheLastRow(items);\n return item == null ? void 0 : item.id;\n }\n return store == null ? void 0 : store.last();\n };\n const keyMap = {\n ArrowUp: (grid || isVertical) && up,\n ArrowRight: (grid || isHorizontal) && store.first,\n ArrowDown: (grid || isVertical) && store.first,\n ArrowLeft: (grid || isHorizontal) && store.last,\n Home: store.first,\n End: store.last,\n PageUp: store.first,\n PageDown: store.last\n };\n const action = keyMap[event.key];\n if (action) {\n const id = action();\n if (id !== void 0) {\n if (!moveOnKeyPressProp(event))\n return;\n event.preventDefault();\n store.move(id);\n }\n }\n });\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(CompositeContextProvider, { value: store, children: element }),\n [store]\n );\n const activeDescendant = store.useState((state) => {\n var _a2;\n if (!store)\n return;\n if (!composite)\n return;\n if (!state.virtualFocus)\n return;\n return (_a2 = getEnabledItem(store, state.activeId)) == null ? void 0 : _a2.id;\n });\n props = __spreadProps(__spreadValues({\n \"aria-activedescendant\": activeDescendant\n }, props), {\n ref: useMergeRefs(composite ? store.setBaseElement : null, props.ref),\n onKeyDownCapture,\n onKeyUpCapture,\n onFocusCapture,\n onFocus,\n onBlurCapture,\n onKeyDown\n });\n const focusable = store.useState(\n (state) => composite && (state.virtualFocus || state.activeId === null)\n );\n props = useFocusable(__spreadValues({ focusable }, props));\n return props;\n }\n);\nvar Composite = forwardRef(function Composite2(props) {\n const htmlProps = useComposite(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useComposite,\n Composite\n};\n","\"use client\";\nimport {\n useHovercardProviderContext\n} from \"./TWDHCE7Y.js\";\nimport {\n useFocusable\n} from \"./WAZE6NXP.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useIsMouseMoving,\n useMergeRefs\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/hovercard/hovercard-anchor.ts\nimport { useCallback, useEffect, useRef } from \"react\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { disabledFromProps, invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"a\";\nvar useHovercardAnchor = createHook(\n function useHovercardAnchor2(_a) {\n var _b = _a, { store, showOnHover = true } = _b, props = __objRest(_b, [\"store\", \"showOnHover\"]);\n const context = useHovercardProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"HovercardAnchor must receive a `store` prop or be wrapped in a HovercardProvider component.\"\n );\n const disabled = disabledFromProps(props);\n const showTimeoutRef = useRef(0);\n useEffect(() => () => window.clearTimeout(showTimeoutRef.current), []);\n useEffect(() => {\n const onMouseLeave = (event) => {\n if (!store)\n return;\n const { anchorElement } = store.getState();\n if (!anchorElement)\n return;\n if (event.target !== anchorElement)\n return;\n window.clearTimeout(showTimeoutRef.current);\n showTimeoutRef.current = 0;\n };\n return addGlobalEventListener(\"mouseleave\", onMouseLeave, true);\n }, [store]);\n const onMouseMoveProp = props.onMouseMove;\n const showOnHoverProp = useBooleanEvent(showOnHover);\n const isMouseMoving = useIsMouseMoving();\n const onMouseMove = useEvent((event) => {\n onMouseMoveProp == null ? void 0 : onMouseMoveProp(event);\n if (disabled)\n return;\n if (!store)\n return;\n if (event.defaultPrevented)\n return;\n if (showTimeoutRef.current)\n return;\n if (!isMouseMoving())\n return;\n if (!showOnHoverProp(event))\n return;\n const element = event.currentTarget;\n store.setAnchorElement(element);\n store.setDisclosureElement(element);\n const { showTimeout, timeout } = store.getState();\n const showHovercard = () => {\n showTimeoutRef.current = 0;\n if (!isMouseMoving())\n return;\n store == null ? void 0 : store.setAnchorElement(element);\n store == null ? void 0 : store.show();\n queueMicrotask(() => {\n store == null ? void 0 : store.setDisclosureElement(element);\n });\n };\n const timeoutMs = showTimeout != null ? showTimeout : timeout;\n if (timeoutMs === 0) {\n showHovercard();\n } else {\n showTimeoutRef.current = window.setTimeout(showHovercard, timeoutMs);\n }\n });\n const ref = useCallback(\n (element) => {\n if (!store)\n return;\n const { anchorElement } = store.getState();\n if (anchorElement == null ? void 0 : anchorElement.isConnected)\n return;\n store.setAnchorElement(element);\n },\n [store]\n );\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref),\n onMouseMove\n });\n props = useFocusable(props);\n return props;\n }\n);\nvar HovercardAnchor = forwardRef(function HovercardAnchor2(props) {\n const htmlProps = useHovercardAnchor(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useHovercardAnchor,\n HovercardAnchor\n};\n","\"use client\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/collection/collection-context.tsx\nvar ctx = createStoreContext();\nvar useCollectionContext = ctx.useContext;\nvar useCollectionScopedContext = ctx.useScopedContext;\nvar useCollectionProviderContext = ctx.useProviderContext;\nvar CollectionContextProvider = ctx.ContextProvider;\nvar CollectionScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useCollectionContext,\n useCollectionScopedContext,\n useCollectionProviderContext,\n CollectionContextProvider,\n CollectionScopedContextProvider\n};\n","\"use client\";\nimport {\n usePopoverProviderContext\n} from \"./TE637IA7.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useMergeRefs\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/popover/popover-anchor.ts\nvar TagName = \"div\";\nvar usePopoverAnchor = createHook(\n function usePopoverAnchor2(_a) {\n var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n const context = usePopoverProviderContext();\n store = store || context;\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(store == null ? void 0 : store.setAnchorElement, props.ref)\n });\n return props;\n }\n);\nvar PopoverAnchor = forwardRef(function PopoverAnchor2(props) {\n const htmlProps = usePopoverAnchor(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n usePopoverAnchor,\n PopoverAnchor\n};\n","\"use client\";\nimport {\n DialogContextProvider,\n DialogScopedContextProvider\n} from \"./XXVAHUAO.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/popover/popover-context.tsx\nvar ctx = createStoreContext(\n [DialogContextProvider],\n [DialogScopedContextProvider]\n);\nvar usePopoverContext = ctx.useContext;\nvar usePopoverScopedContext = ctx.useScopedContext;\nvar usePopoverProviderContext = ctx.useProviderContext;\nvar PopoverContextProvider = ctx.ContextProvider;\nvar PopoverScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n usePopoverContext,\n usePopoverScopedContext,\n usePopoverProviderContext,\n PopoverContextProvider,\n PopoverScopedContextProvider\n};\n","\"use client\";\nimport {\n PopoverContextProvider,\n PopoverScopedContextProvider\n} from \"./TE637IA7.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/hovercard/hovercard-context.tsx\nvar ctx = createStoreContext(\n [PopoverContextProvider],\n [PopoverScopedContextProvider]\n);\nvar useHovercardContext = ctx.useContext;\nvar useHovercardScopedContext = ctx.useScopedContext;\nvar useHovercardProviderContext = ctx.useProviderContext;\nvar HovercardContextProvider = ctx.ContextProvider;\nvar HovercardScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n useHovercardContext,\n useHovercardScopedContext,\n useHovercardProviderContext,\n HovercardContextProvider,\n HovercardScopedContextProvider\n};\n","\"use client\";\nimport {\n CompositeContextProvider,\n CompositeScopedContextProvider\n} from \"./3D6OCOHF.js\";\nimport {\n PopoverContextProvider,\n PopoverScopedContextProvider\n} from \"./TE637IA7.js\";\nimport {\n createStoreContext\n} from \"./5M6RSQEC.js\";\n\n// src/combobox/combobox-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n [PopoverContextProvider, CompositeContextProvider],\n [PopoverScopedContextProvider, CompositeScopedContextProvider]\n);\nvar useComboboxContext = ctx.useContext;\nvar useComboboxScopedContext = ctx.useScopedContext;\nvar useComboboxProviderContext = ctx.useProviderContext;\nvar ComboboxContextProvider = ctx.ContextProvider;\nvar ComboboxScopedContextProvider = ctx.ScopedContextProvider;\nvar ComboboxItemValueContext = createContext(\n void 0\n);\nvar ComboboxItemCheckedContext = createContext(false);\n\nexport {\n useComboboxContext,\n useComboboxScopedContext,\n useComboboxProviderContext,\n ComboboxContextProvider,\n ComboboxScopedContextProvider,\n ComboboxItemValueContext,\n ComboboxItemCheckedContext\n};\n","\"use client\";\nimport {\n createPopoverStore\n} from \"../__chunks/MFZZDIHG.js\";\nimport \"../__chunks/5RJNXXU2.js\";\nimport \"../__chunks/WCKXDMU7.js\";\nimport {\n createCompositeStore\n} from \"../__chunks/2H5K47H4.js\";\nimport \"../__chunks/URUD7X4C.js\";\nimport {\n batch,\n createStore,\n setup,\n sync,\n throwOnConflictingProps\n} from \"../__chunks/R676XYVY.js\";\nimport {\n defaultValue\n} from \"../__chunks/22HHDS5F.js\";\nimport {\n isSafari,\n isTouchDevice\n} from \"../__chunks/VDNATJW2.js\";\nimport \"../__chunks/RRSZHCH6.js\";\nimport \"../__chunks/7PRQYBBV.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/combobox/combobox-store.ts\nvar isSafariOnMobile = isSafari() && isTouchDevice();\nfunction createComboboxStore(props = {}) {\n var _a;\n throwOnConflictingProps(props, props.store);\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const activeId = defaultValue(\n props.activeId,\n syncState == null ? void 0 : syncState.activeId,\n props.defaultActiveId,\n null\n );\n const composite = createCompositeStore(__spreadProps(__spreadValues({}, props), {\n activeId,\n includesBaseElement: defaultValue(\n props.includesBaseElement,\n syncState == null ? void 0 : syncState.includesBaseElement,\n true\n ),\n orientation: defaultValue(\n props.orientation,\n syncState == null ? void 0 : syncState.orientation,\n \"vertical\"\n ),\n focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, true),\n focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, true),\n virtualFocus: defaultValue(\n props.virtualFocus,\n syncState == null ? void 0 : syncState.virtualFocus,\n !isSafariOnMobile\n )\n }));\n const popover = createPopoverStore(__spreadProps(__spreadValues({}, props), {\n placement: defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"bottom-start\"\n )\n }));\n const value = defaultValue(\n props.value,\n syncState == null ? void 0 : syncState.value,\n props.defaultValue,\n \"\"\n );\n const selectedValue = defaultValue(\n props.selectedValue,\n syncState == null ? void 0 : syncState.selectedValue,\n props.defaultSelectedValue,\n \"\"\n );\n const multiSelectable = Array.isArray(selectedValue);\n const initialState = __spreadProps(__spreadValues(__spreadValues({}, composite.getState()), popover.getState()), {\n value,\n selectedValue,\n resetValueOnSelect: defaultValue(\n props.resetValueOnSelect,\n syncState == null ? void 0 : syncState.resetValueOnSelect,\n multiSelectable\n ),\n resetValueOnHide: defaultValue(\n props.resetValueOnHide,\n syncState == null ? void 0 : syncState.resetValueOnHide,\n multiSelectable\n ),\n activeValue: syncState == null ? void 0 : syncState.activeValue\n });\n const combobox = createStore(initialState, composite, popover, props.store);\n setup(\n combobox,\n () => sync(combobox, [\"resetValueOnHide\", \"mounted\"], (state) => {\n if (!state.resetValueOnHide)\n return;\n if (state.mounted)\n return;\n combobox.setState(\"value\", value);\n })\n );\n setup(\n combobox,\n () => sync(combobox, [\"resetValueOnSelect\", \"selectedValue\"], (state) => {\n if (!state.resetValueOnSelect)\n return;\n combobox.setState(\"value\", value);\n })\n );\n setup(\n combobox,\n () => batch(combobox, [\"mounted\"], (state) => {\n if (state.mounted)\n return;\n combobox.setState(\"activeId\", activeId);\n combobox.setState(\"moves\", 0);\n })\n );\n setup(\n combobox,\n () => sync(combobox, [\"moves\", \"activeId\"], (state, prevState) => {\n if (state.moves === prevState.moves) {\n combobox.setState(\"activeValue\", void 0);\n }\n })\n );\n setup(\n combobox,\n () => batch(combobox, [\"moves\", \"renderedItems\"], (state, prev) => {\n if (state.moves === prev.moves)\n return;\n const { activeId: activeId2 } = combobox.getState();\n const activeItem = composite.item(activeId2);\n combobox.setState(\"activeValue\", activeItem == null ? void 0 : activeItem.value);\n })\n );\n return __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, popover), composite), combobox), {\n setValue: (value2) => combobox.setState(\"value\", value2),\n setSelectedValue: (selectedValue2) => combobox.setState(\"selectedValue\", selectedValue2)\n });\n}\nexport {\n createComboboxStore\n};\n","\"use client\";\nimport {\n useCompositeStoreProps\n} from \"./7GBW5FLS.js\";\nimport {\n usePopoverStoreProps\n} from \"./XWCFCD3Q.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\n\n// src/combobox/combobox-store.ts\nimport * as Core from \"@ariakit/core/combobox/combobox-store\";\nfunction useComboboxStoreProps(store, update, props) {\n useStoreProps(store, props, \"value\", \"setValue\");\n useStoreProps(store, props, \"selectedValue\", \"setSelectedValue\");\n useStoreProps(store, props, \"resetValueOnHide\");\n useStoreProps(store, props, \"resetValueOnSelect\");\n return useCompositeStoreProps(\n usePopoverStoreProps(store, update, props),\n update,\n props\n );\n}\nfunction useComboboxStore(props = {}) {\n const [store, update] = useStore(Core.createComboboxStore, props);\n return useComboboxStoreProps(store, update, props);\n}\n\nexport {\n useComboboxStoreProps,\n useComboboxStore\n};\n","\"use client\";\nimport {\n createHovercardStore\n} from \"../__chunks/BRS7GKWU.js\";\nimport \"../__chunks/MFZZDIHG.js\";\nimport \"../__chunks/5RJNXXU2.js\";\nimport \"../__chunks/WCKXDMU7.js\";\nimport {\n createStore\n} from \"../__chunks/R676XYVY.js\";\nimport {\n defaultValue\n} from \"../__chunks/22HHDS5F.js\";\nimport {\n __spreadProps,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/tooltip/tooltip-store.ts\nfunction createTooltipStore(props = {}) {\n var _a;\n if (process.env.NODE_ENV !== \"production\") {\n if (props.type === \"label\") {\n console.warn(\n \"The `type` option on the tooltip store is deprecated.\",\n \"Render a visually hidden label or use the `aria-label` or `aria-labelledby` attributes on the anchor element instead.\",\n \"See https://ariakit.org/components/tooltip#tooltip-anchors-must-have-accessible-names\"\n );\n }\n }\n const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n const hovercard = createHovercardStore(__spreadProps(__spreadValues({}, props), {\n placement: defaultValue(\n props.placement,\n syncState == null ? void 0 : syncState.placement,\n \"top\"\n ),\n hideTimeout: defaultValue(props.hideTimeout, syncState == null ? void 0 : syncState.hideTimeout, 0)\n }));\n const initialState = __spreadProps(__spreadValues({}, hovercard.getState()), {\n type: defaultValue(props.type, syncState == null ? void 0 : syncState.type, \"description\"),\n skipTimeout: defaultValue(props.skipTimeout, syncState == null ? void 0 : syncState.skipTimeout, 300)\n });\n const tooltip = createStore(initialState, hovercard, props.store);\n return __spreadValues(__spreadValues({}, hovercard), tooltip);\n}\nexport {\n createTooltipStore\n};\n","\"use client\";\nimport {\n useHovercardStoreProps\n} from \"./E5E7G32I.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\n\n// src/tooltip/tooltip-store.ts\nimport * as Core from \"@ariakit/core/tooltip/tooltip-store\";\nfunction useTooltipStoreProps(store, update, props) {\n useStoreProps(store, props, \"type\");\n useStoreProps(store, props, \"skipTimeout\");\n return useHovercardStoreProps(store, update, props);\n}\nfunction useTooltipStore(props = {}) {\n const [store, update] = useStore(Core.createTooltipStore, props);\n return useTooltipStoreProps(store, update, props);\n}\n\nexport {\n useTooltipStoreProps,\n useTooltipStore\n};\n","\"use client\";\nimport {\n useCompositeContext\n} from \"./3D6OCOHF.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"./5M6RSQEC.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useIsMouseMoving,\n useMergeRefs\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/composite/composite-hover.ts\nimport { useCallback } from \"react\";\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { hasFocus, hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport {\n hasOwnProperty,\n invariant,\n removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nvar TagName = \"div\";\nfunction getMouseDestination(event) {\n const relatedTarget = event.relatedTarget;\n if ((relatedTarget == null ? void 0 : relatedTarget.nodeType) === Node.ELEMENT_NODE) {\n return relatedTarget;\n }\n return null;\n}\nfunction hoveringInside(event) {\n const nextElement = getMouseDestination(event);\n if (!nextElement)\n return false;\n return contains(event.currentTarget, nextElement);\n}\nvar symbol = Symbol(\"composite-hover\");\nfunction movingToAnotherItem(event) {\n let dest = getMouseDestination(event);\n if (!dest)\n return false;\n do {\n if (hasOwnProperty(dest, symbol) && dest[symbol])\n return true;\n dest = dest.parentElement;\n } while (dest);\n return false;\n}\nvar useCompositeHover = createHook(\n function useCompositeHover2(_a) {\n var _b = _a, {\n store,\n focusOnHover = true,\n blurOnHoverEnd = !!focusOnHover\n } = _b, props = __objRest(_b, [\n \"store\",\n \"focusOnHover\",\n \"blurOnHoverEnd\"\n ]);\n const context = useCompositeContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"CompositeHover must be wrapped in a Composite component.\"\n );\n const isMouseMoving = useIsMouseMoving();\n const onMouseMoveProp = props.onMouseMove;\n const focusOnHoverProp = useBooleanEvent(focusOnHover);\n const onMouseMove = useEvent((event) => {\n onMouseMoveProp == null ? void 0 : onMouseMoveProp(event);\n if (event.defaultPrevented)\n return;\n if (!isMouseMoving())\n return;\n if (!focusOnHoverProp(event))\n return;\n if (!hasFocusWithin(event.currentTarget)) {\n const baseElement = store == null ? void 0 : store.getState().baseElement;\n if (baseElement && !hasFocus(baseElement)) {\n baseElement.focus();\n }\n }\n store == null ? void 0 : store.setActiveId(event.currentTarget.id);\n });\n const onMouseLeaveProp = props.onMouseLeave;\n const blurOnHoverEndProp = useBooleanEvent(blurOnHoverEnd);\n const onMouseLeave = useEvent((event) => {\n var _a2;\n onMouseLeaveProp == null ? void 0 : onMouseLeaveProp(event);\n if (event.defaultPrevented)\n return;\n if (!isMouseMoving())\n return;\n if (hoveringInside(event))\n return;\n if (movingToAnotherItem(event))\n return;\n if (!focusOnHoverProp(event))\n return;\n if (!blurOnHoverEndProp(event))\n return;\n store == null ? void 0 : store.setActiveId(null);\n (_a2 = store == null ? void 0 : store.getState().baseElement) == null ? void 0 : _a2.focus();\n });\n const ref = useCallback((element) => {\n if (!element)\n return;\n element[symbol] = true;\n }, []);\n props = __spreadProps(__spreadValues({}, props), {\n ref: useMergeRefs(ref, props.ref),\n onMouseMove,\n onMouseLeave\n });\n return removeUndefinedValues(props);\n }\n);\nvar CompositeHover = memo(\n forwardRef(function CompositeHover2(props) {\n const htmlProps = useCompositeHover(props);\n return createElement(TagName, htmlProps);\n })\n);\n\nexport {\n useCompositeHover,\n CompositeHover\n};\n","\"use client\";\nimport {\n useDialogStoreProps\n} from \"./I62TROYO.js\";\nimport {\n useStore,\n useStoreProps\n} from \"./EKQEJRUF.js\";\nimport {\n useUpdateEffect\n} from \"./6O5OEQGF.js\";\n\n// src/popover/popover-store.ts\nimport * as Core from \"@ariakit/core/popover/popover-store\";\nfunction usePopoverStoreProps(store, update, props) {\n useUpdateEffect(update, [props.popover]);\n useStoreProps(store, props, \"placement\");\n return useDialogStoreProps(store, update, props);\n}\nfunction usePopoverStore(props = {}) {\n const [store, update] = useStore(Core.createPopoverStore, props);\n return usePopoverStoreProps(store, update, props);\n}\n\nexport {\n usePopoverStoreProps,\n usePopoverStore\n};\n","\"use client\";\nimport {\n ComboboxScopedContextProvider,\n useComboboxProviderContext\n} from \"./UNDSQXBK.js\";\nimport {\n isHidden\n} from \"./RQZGFHI2.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useAttribute,\n useId,\n useMergeRefs,\n useWrapElement\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/combobox/combobox-list.tsx\nimport { useRef } from \"react\";\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar useComboboxList = createHook(\n function useComboboxList2(_a) {\n var _b = _a, { store, alwaysVisible } = _b, props = __objRest(_b, [\"store\", \"alwaysVisible\"]);\n const context = useComboboxProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"ComboboxList must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n );\n const ref = useRef(null);\n const id = useId(props.id);\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(ComboboxScopedContextProvider, { value: store, children: element }),\n [store]\n );\n const mounted = store.useState(\"mounted\");\n const hidden = isHidden(mounted, props.hidden, alwaysVisible);\n const style = hidden ? __spreadProps(__spreadValues({}, props.style), { display: \"none\" }) : props.style;\n const multiSelectable = store.useState(\n (state) => Array.isArray(state.selectedValue)\n );\n const role = useAttribute(ref, \"role\", props.role);\n const isCompositeRole = role === \"listbox\" || role === \"tree\" || role === \"grid\";\n const ariaMultiSelectable = isCompositeRole ? multiSelectable || void 0 : void 0;\n props = __spreadProps(__spreadValues({\n id,\n hidden,\n role: \"listbox\",\n \"aria-multiselectable\": ariaMultiSelectable\n }, props), {\n ref: useMergeRefs(id ? store.setContentElement : null, ref, props.ref),\n style\n });\n return removeUndefinedValues(props);\n }\n);\nvar ComboboxList = forwardRef(function ComboboxList2(props) {\n const htmlProps = useComboboxList(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n useComboboxList,\n ComboboxList\n};\n","\"use client\";\nimport {\n useCompositeHover\n} from \"../__chunks/WL6TTPTB.js\";\nimport {\n ComboboxItemCheckedContext,\n ComboboxItemValueContext,\n useComboboxScopedContext\n} from \"../__chunks/UNDSQXBK.js\";\nimport {\n useCompositeItem\n} from \"../__chunks/C6OBNQ4F.js\";\nimport \"../__chunks/KSZPJCUA.js\";\nimport \"../__chunks/7YKLTEOQ.js\";\nimport \"../__chunks/3IEDWLST.js\";\nimport \"../__chunks/3D6OCOHF.js\";\nimport \"../__chunks/MADQZZRL.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport \"../__chunks/WAZE6NXP.js\";\nimport \"../__chunks/SHA3WOPI.js\";\nimport {\n createElement,\n createHook,\n forwardRef,\n memo\n} from \"../__chunks/5M6RSQEC.js\";\nimport \"../__chunks/EKQEJRUF.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useWrapElement\n} from \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/combobox/combobox-item.tsx\nimport { useCallback } from \"react\";\nimport { getPopupItemRole, isTextField } from \"@ariakit/core/utils/dom\";\nimport { isDownloading, isOpeningInNewTab } from \"@ariakit/core/utils/events\";\nimport { hasFocus } from \"@ariakit/core/utils/focus\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isSelected(storeValue, itemValue) {\n if (itemValue == null)\n return;\n if (storeValue == null)\n return false;\n if (Array.isArray(storeValue)) {\n return storeValue.includes(itemValue);\n }\n return storeValue === itemValue;\n}\nvar useComboboxItem = createHook(\n function useComboboxItem2(_a) {\n var _b = _a, {\n store,\n value,\n hideOnClick,\n selectValueOnClick = true,\n setValueOnClick,\n focusOnHover = false,\n moveOnKeyPress = true,\n getItem: getItemProp\n } = _b, props = __objRest(_b, [\n \"store\",\n \"value\",\n \"hideOnClick\",\n \"selectValueOnClick\",\n \"setValueOnClick\",\n \"focusOnHover\",\n \"moveOnKeyPress\",\n \"getItem\"\n ]);\n const context = useComboboxScopedContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"ComboboxItem must be wrapped in a ComboboxList or ComboboxPopover component.\"\n );\n const getItem = useCallback(\n (item) => {\n const nextItem = __spreadProps(__spreadValues({}, item), { value });\n if (getItemProp) {\n return getItemProp(nextItem);\n }\n return nextItem;\n },\n [value, getItemProp]\n );\n const multiSelectable = store.useState(\n (state) => Array.isArray(state.selectedValue)\n );\n setValueOnClick = setValueOnClick != null ? setValueOnClick : !multiSelectable;\n hideOnClick = hideOnClick != null ? hideOnClick : value != null && !multiSelectable;\n const onClickProp = props.onClick;\n const setValueOnClickProp = useBooleanEvent(setValueOnClick);\n const selectValueOnClickProp = useBooleanEvent(selectValueOnClick);\n const hideOnClickProp = useBooleanEvent(hideOnClick);\n const onClick = useEvent((event) => {\n onClickProp == null ? void 0 : onClickProp(event);\n if (event.defaultPrevented)\n return;\n if (isDownloading(event))\n return;\n if (isOpeningInNewTab(event))\n return;\n if (value != null) {\n if (selectValueOnClickProp(event)) {\n store == null ? void 0 : store.setSelectedValue((prevValue) => {\n if (!Array.isArray(prevValue))\n return value;\n if (prevValue.includes(value)) {\n return prevValue.filter((v) => v !== value);\n }\n return [...prevValue, value];\n });\n }\n if (setValueOnClickProp(event)) {\n store == null ? void 0 : store.setValue(value);\n }\n }\n if (hideOnClickProp(event)) {\n store == null ? void 0 : store.hide();\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (event.defaultPrevented)\n return;\n const baseElement = store == null ? void 0 : store.getState().baseElement;\n if (!baseElement)\n return;\n if (hasFocus(baseElement))\n return;\n const printable = event.key.length === 1;\n if (printable || event.key === \"Backspace\" || event.key === \"Delete\") {\n queueMicrotask(() => baseElement.focus());\n if (isTextField(baseElement)) {\n store == null ? void 0 : store.setValue(baseElement.value);\n }\n }\n });\n const selected = store.useState(\n (state) => isSelected(state.selectedValue, value)\n );\n if (multiSelectable && selected != null) {\n props = __spreadValues({\n \"aria-selected\": selected\n }, props);\n }\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(ComboboxItemValueContext.Provider, { value, children: /* @__PURE__ */ jsx(ComboboxItemCheckedContext.Provider, { value: selected != null ? selected : false, children: element }) }),\n [value, selected]\n );\n const contentElement = store.useState(\"contentElement\");\n props = __spreadProps(__spreadValues({\n role: getPopupItemRole(contentElement),\n children: value\n }, props), {\n onClick,\n onKeyDown\n });\n const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n props = useCompositeItem(__spreadProps(__spreadValues({\n store\n }, props), {\n getItem,\n // Dispatch a custom event on the combobox input when moving to an item\n // with the keyboard so the Combobox component can enable inline\n // autocompletion.\n moveOnKeyPress: (event) => {\n if (!moveOnKeyPressProp(event))\n return false;\n const moveEvent = new Event(\"combobox-item-move\");\n const baseElement = store == null ? void 0 : store.getState().baseElement;\n baseElement == null ? void 0 : baseElement.dispatchEvent(moveEvent);\n return true;\n }\n }));\n props = useCompositeHover(__spreadValues({ store, focusOnHover }, props));\n return props;\n }\n);\nvar ComboboxItem = memo(\n forwardRef(function ComboboxItem2(props) {\n const htmlProps = useComboboxItem(props);\n return createElement(TagName, htmlProps);\n })\n);\nexport {\n ComboboxItem,\n useComboboxItem\n};\n","\"use client\";\nimport {\n useComboboxList\n} from \"../__chunks/Y3BYYHRY.js\";\nimport {\n useComboboxProviderContext\n} from \"../__chunks/UNDSQXBK.js\";\nimport \"../__chunks/3D6OCOHF.js\";\nimport \"../__chunks/MADQZZRL.js\";\nimport {\n usePopover\n} from \"../__chunks/BYD75WXE.js\";\nimport {\n createDialogComponent\n} from \"../__chunks/KXSO5EFT.js\";\nimport \"../__chunks/3N4FFVWW.js\";\nimport \"../__chunks/NOYDL3YS.js\";\nimport \"../__chunks/BULCTPRV.js\";\nimport \"../__chunks/6BJGLK2C.js\";\nimport \"../__chunks/CS347UVZ.js\";\nimport \"../__chunks/IUB2BTEK.js\";\nimport \"../__chunks/XHJGS6Z5.js\";\nimport \"../__chunks/TL67WVI6.js\";\nimport \"../__chunks/MKDDWKFK.js\";\nimport \"../__chunks/72E5EPFF.js\";\nimport \"../__chunks/OOBDFMJL.js\";\nimport \"../__chunks/X6WIMZJE.js\";\nimport \"../__chunks/677M2CI3.js\";\nimport \"../__chunks/6GXEOXGT.js\";\nimport \"../__chunks/WCIYB4YS.js\";\nimport \"../__chunks/UYRJLDVS.js\";\nimport \"../__chunks/CK3UW3AQ.js\";\nimport \"../__chunks/WKWX2XLD.js\";\nimport \"../__chunks/7452U3HH.js\";\nimport \"../__chunks/XPF5GU3Q.js\";\nimport \"../__chunks/CBTO7DFZ.js\";\nimport \"../__chunks/RQZGFHI2.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport \"../__chunks/WAZE6NXP.js\";\nimport \"../__chunks/SHA3WOPI.js\";\nimport \"../__chunks/IFT5JEUU.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/5M6RSQEC.js\";\nimport \"../__chunks/I62TROYO.js\";\nimport \"../__chunks/HZJ2XALY.js\";\nimport \"../__chunks/EKQEJRUF.js\";\nimport \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/combobox/combobox-popover.tsx\nimport { getDocument, matches } from \"@ariakit/core/utils/dom\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"div\";\nfunction isController(target, ...ids) {\n if (!target)\n return false;\n if (\"id\" in target) {\n const selector = ids.filter(Boolean).map((id) => `[aria-controls~=\"${id}\"]`).join(\", \");\n if (!selector)\n return false;\n return matches(target, selector);\n }\n return false;\n}\nvar useComboboxPopover = createHook(\n function useComboboxPopover2(_a) {\n var _b = _a, {\n store,\n modal,\n tabIndex,\n alwaysVisible,\n hideOnInteractOutside = true\n } = _b, props = __objRest(_b, [\n \"store\",\n \"modal\",\n \"tabIndex\",\n \"alwaysVisible\",\n \"hideOnInteractOutside\"\n ]);\n const context = useComboboxProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"ComboboxPopover must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n );\n const baseElement = store.useState(\"baseElement\");\n props = useComboboxList(__spreadValues({ store, alwaysVisible }, props));\n props = usePopover(__spreadProps(__spreadValues({\n store,\n modal,\n alwaysVisible,\n backdrop: false,\n autoFocusOnShow: false,\n autoFocusOnHide: false,\n finalFocus: baseElement,\n preserveTabOrderAnchor: null\n }, props), {\n // When the combobox popover is modal, we make sure to include the\n // combobox input and all the combobox controls (cancel, disclosure) in\n // the list of persistent elements so they make part of the modal context,\n // allowing users to tab through them.\n getPersistentElements() {\n var _a2;\n const elements = ((_a2 = props.getPersistentElements) == null ? void 0 : _a2.call(props)) || [];\n if (!modal)\n return elements;\n if (!store)\n return elements;\n const { contentElement, baseElement: baseElement2 } = store.getState();\n if (!baseElement2)\n return elements;\n const doc = getDocument(baseElement2);\n const selectors = [];\n if (contentElement == null ? void 0 : contentElement.id) {\n selectors.push(`[aria-controls~=\"${contentElement.id}\"]`);\n }\n if (baseElement2 == null ? void 0 : baseElement2.id) {\n selectors.push(`[aria-controls~=\"${baseElement2.id}\"]`);\n }\n if (!selectors.length)\n return [...elements, baseElement2];\n const selector = selectors.join(\",\");\n const controlElements = doc.querySelectorAll(selector);\n return [...elements, ...controlElements];\n },\n // Make sure we don't hide the popover when the user interacts with the\n // combobox cancel or the combobox disclosure buttons. They will have the\n // aria-controls attribute pointing to either the combobox input or the\n // combobox popover elements.\n hideOnInteractOutside(event) {\n var _a2, _b2;\n const state = store == null ? void 0 : store.getState();\n const contentId = (_a2 = state == null ? void 0 : state.contentElement) == null ? void 0 : _a2.id;\n const baseId = (_b2 = state == null ? void 0 : state.baseElement) == null ? void 0 : _b2.id;\n if (isController(event.target, contentId, baseId))\n return false;\n const result = typeof hideOnInteractOutside === \"function\" ? hideOnInteractOutside(event) : hideOnInteractOutside;\n return result;\n }\n }));\n return props;\n }\n);\nvar ComboboxPopover = createDialogComponent(\n forwardRef(function ComboboxPopover2(props) {\n const htmlProps = useComboboxPopover(props);\n return createElement(TagName, htmlProps);\n }),\n useComboboxProviderContext\n);\nexport {\n ComboboxPopover,\n useComboboxPopover\n};\n","\"use client\";\nimport {\n usePopoverAnchor\n} from \"../__chunks/NLT7LY5Y.js\";\nimport {\n useComboboxProviderContext\n} from \"../__chunks/UNDSQXBK.js\";\nimport {\n useComposite\n} from \"../__chunks/FTNKYK65.js\";\nimport \"../__chunks/3IEDWLST.js\";\nimport \"../__chunks/3D6OCOHF.js\";\nimport \"../__chunks/MADQZZRL.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport \"../__chunks/WAZE6NXP.js\";\nimport \"../__chunks/SHA3WOPI.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/5M6RSQEC.js\";\nimport {\n useBooleanEvent,\n useEvent,\n useForceUpdate,\n useId,\n useMergeRefs,\n useSafeLayoutEffect,\n useUpdateEffect,\n useUpdateLayoutEffect\n} from \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/combobox/combobox.ts\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n getPopupRole,\n getScrollingElement,\n setSelectionRange\n} from \"@ariakit/core/utils/dom\";\nimport {\n isFocusEventOutside,\n queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport { hasFocus } from \"@ariakit/core/utils/focus\";\nimport {\n invariant,\n isFalsyBooleanCallback,\n normalizeString\n} from \"@ariakit/core/utils/misc\";\nimport { flushSync } from \"react-dom\";\nvar TagName = \"input\";\nfunction isFirstItemAutoSelected(items, activeValue, autoSelect) {\n if (!autoSelect)\n return false;\n const firstItem = items.find((item) => !item.disabled && item.value);\n return (firstItem == null ? void 0 : firstItem.value) === activeValue;\n}\nfunction hasCompletionString(value, activeValue) {\n if (!activeValue)\n return false;\n if (value == null)\n return false;\n value = normalizeString(value);\n return activeValue.length > value.length && activeValue.toLowerCase().indexOf(value.toLowerCase()) === 0;\n}\nfunction isInputEvent(event) {\n return event.type === \"input\";\n}\nfunction isAriaAutoCompleteValue(value) {\n return value === \"inline\" || value === \"list\" || value === \"both\" || value === \"none\";\n}\nvar useCombobox = createHook(\n function useCombobox2(_a) {\n var _b = _a, {\n store,\n focusable = true,\n autoSelect: autoSelectProp = false,\n getAutoSelectId,\n showOnChange = true,\n setValueOnChange = true,\n showOnMouseDown = true,\n showOnClick = showOnMouseDown,\n blurActiveItemOnClick,\n setValueOnClick = true,\n showOnKeyDown = true,\n showOnKeyPress = showOnKeyDown,\n moveOnKeyPress = true,\n autoComplete = \"list\"\n } = _b, props = __objRest(_b, [\n \"store\",\n \"focusable\",\n \"autoSelect\",\n \"getAutoSelectId\",\n \"showOnChange\",\n \"setValueOnChange\",\n \"showOnMouseDown\",\n \"showOnClick\",\n \"blurActiveItemOnClick\",\n \"setValueOnClick\",\n \"showOnKeyDown\",\n \"showOnKeyPress\",\n \"moveOnKeyPress\",\n \"autoComplete\"\n ]);\n const context = useComboboxProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Combobox must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n );\n const ref = useRef(null);\n const [valueUpdated, forceValueUpdate] = useForceUpdate();\n const canAutoSelectRef = useRef(false);\n const composingRef = useRef(false);\n const autoSelect = store.useState(\n (state) => state.virtualFocus && autoSelectProp\n );\n const inline = autoComplete === \"inline\" || autoComplete === \"both\";\n const [canInline, setCanInline] = useState(inline);\n useUpdateLayoutEffect(() => {\n if (!inline)\n return;\n setCanInline(true);\n }, [inline]);\n const storeValue = store.useState(\"value\");\n const activeValue = store.useState(\n (state) => inline && canInline ? state.activeValue : void 0\n );\n const items = store.useState(\"renderedItems\");\n const open = store.useState(\"open\");\n const contentElement = store.useState(\"contentElement\");\n const value = useMemo(() => {\n if (!inline)\n return storeValue;\n if (!canInline)\n return storeValue;\n const firstItemAutoSelected = isFirstItemAutoSelected(\n items,\n activeValue,\n autoSelect\n );\n if (firstItemAutoSelected) {\n if (hasCompletionString(storeValue, activeValue)) {\n const slice = (activeValue == null ? void 0 : activeValue.slice(storeValue.length)) || \"\";\n return storeValue + slice;\n }\n return storeValue;\n }\n return activeValue || storeValue;\n }, [inline, canInline, items, activeValue, autoSelect, storeValue]);\n useEffect(() => {\n const element = ref.current;\n if (!element)\n return;\n const onCompositeItemMove = () => setCanInline(true);\n element.addEventListener(\"combobox-item-move\", onCompositeItemMove);\n return () => {\n element.removeEventListener(\"combobox-item-move\", onCompositeItemMove);\n };\n }, []);\n useEffect(() => {\n if (!inline)\n return;\n if (!canInline)\n return;\n if (!activeValue)\n return;\n const firstItemAutoSelected = isFirstItemAutoSelected(\n items,\n activeValue,\n autoSelect\n );\n if (!firstItemAutoSelected)\n return;\n if (!hasCompletionString(storeValue, activeValue))\n return;\n queueMicrotask(() => {\n const element = ref.current;\n if (!element)\n return;\n setSelectionRange(element, storeValue.length, activeValue.length);\n });\n }, [\n valueUpdated,\n inline,\n canInline,\n activeValue,\n items,\n autoSelect,\n storeValue\n ]);\n const scrollingElementRef = useRef(null);\n const getAutoSelectIdProp = useEvent(getAutoSelectId);\n const autoSelectIdRef = useRef(null);\n useEffect(() => {\n if (!open)\n return;\n if (!contentElement)\n return;\n const scrollingElement = getScrollingElement(contentElement);\n if (!scrollingElement)\n return;\n scrollingElementRef.current = scrollingElement;\n const onWheel = () => {\n canAutoSelectRef.current = false;\n };\n const onScroll = () => {\n if (!store)\n return;\n if (!canAutoSelectRef.current)\n return;\n const { activeId } = store.getState();\n if (activeId === null)\n return;\n if (activeId === autoSelectIdRef.current)\n return;\n canAutoSelectRef.current = false;\n };\n const options = { passive: true, capture: true };\n scrollingElement.addEventListener(\"wheel\", onWheel, options);\n scrollingElement.addEventListener(\"scroll\", onScroll, options);\n return () => {\n scrollingElement.removeEventListener(\"wheel\", onWheel, true);\n scrollingElement.removeEventListener(\"scroll\", onScroll, true);\n };\n }, [open, contentElement, store]);\n useSafeLayoutEffect(() => {\n if (!storeValue)\n return;\n if (composingRef.current)\n return;\n canAutoSelectRef.current = true;\n }, [storeValue]);\n useSafeLayoutEffect(() => {\n if (autoSelect !== \"always\" && open)\n return;\n canAutoSelectRef.current = open;\n }, [autoSelect, open]);\n const resetValueOnSelect = store.useState(\"resetValueOnSelect\");\n useUpdateEffect(() => {\n var _a2;\n const canAutoSelect = canAutoSelectRef.current;\n if (!store)\n return;\n if (!open)\n return;\n if ((!autoSelect || !canAutoSelect) && !resetValueOnSelect)\n return;\n const { baseElement, contentElement: contentElement2, activeId } = store.getState();\n if (baseElement && !hasFocus(baseElement))\n return;\n if (contentElement2 == null ? void 0 : contentElement2.hasAttribute(\"data-placing\")) {\n const observer = new MutationObserver(forceValueUpdate);\n observer.observe(contentElement2, { attributeFilter: [\"data-placing\"] });\n return () => observer.disconnect();\n }\n if (autoSelect && canAutoSelect) {\n const userAutoSelectId = getAutoSelectIdProp(items);\n const autoSelectId = userAutoSelectId !== void 0 ? userAutoSelectId : store.first();\n autoSelectIdRef.current = autoSelectId;\n store.move(autoSelectId != null ? autoSelectId : null);\n } else {\n const element = (_a2 = store.item(activeId)) == null ? void 0 : _a2.element;\n if (element && \"scrollIntoView\" in element) {\n element.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n }\n }\n return;\n }, [\n store,\n open,\n valueUpdated,\n storeValue,\n autoSelect,\n resetValueOnSelect,\n getAutoSelectIdProp,\n items\n ]);\n useEffect(() => {\n if (!inline)\n return;\n const combobox = ref.current;\n if (!combobox)\n return;\n const elements = [combobox, contentElement].filter(\n (value2) => !!value2\n );\n const onBlur2 = (event) => {\n if (elements.every((el) => isFocusEventOutside(event, el))) {\n store == null ? void 0 : store.setValue(value);\n }\n };\n elements.forEach((el) => el.addEventListener(\"focusout\", onBlur2));\n return () => {\n elements.forEach((el) => el.removeEventListener(\"focusout\", onBlur2));\n };\n }, [inline, contentElement, store, value]);\n const onChangeProp = props.onChange;\n const showOnChangeProp = useBooleanEvent(showOnChange);\n const setValueOnChangeProp = useBooleanEvent(setValueOnChange);\n const onChange = useEvent((event) => {\n onChangeProp == null ? void 0 : onChangeProp(event);\n if (event.defaultPrevented)\n return;\n if (!store)\n return;\n const { value: value2, selectionStart, selectionEnd } = event.target;\n const nativeEvent = event.nativeEvent;\n canAutoSelectRef.current = true;\n if (isInputEvent(nativeEvent)) {\n if (nativeEvent.isComposing) {\n canAutoSelectRef.current = false;\n composingRef.current = true;\n }\n if (inline) {\n const textInserted = nativeEvent.inputType === \"insertText\" || nativeEvent.inputType === \"insertCompositionText\";\n const caretAtEnd = selectionStart === value2.length;\n setCanInline(textInserted && caretAtEnd);\n }\n }\n if (setValueOnChangeProp(event)) {\n const isSameValue = value2 === store.getState().value;\n flushSync(() => store == null ? void 0 : store.setValue(value2));\n setSelectionRange(event.currentTarget, selectionStart, selectionEnd);\n if (inline && autoSelect && isSameValue) {\n forceValueUpdate();\n }\n }\n if (showOnChangeProp(event)) {\n store.show();\n }\n if (!autoSelect || !canAutoSelectRef.current) {\n store.setActiveId(null);\n }\n });\n const onCompositionEndProp = props.onCompositionEnd;\n const onCompositionEnd = useEvent((event) => {\n canAutoSelectRef.current = true;\n composingRef.current = false;\n onCompositionEndProp == null ? void 0 : onCompositionEndProp(event);\n if (event.defaultPrevented)\n return;\n if (!autoSelect)\n return;\n forceValueUpdate();\n });\n const onMouseDownProp = props.onMouseDown;\n const blurActiveItemOnClickProp = useBooleanEvent(\n blurActiveItemOnClick != null ? blurActiveItemOnClick : () => !!(store == null ? void 0 : store.getState().includesBaseElement)\n );\n const setValueOnClickProp = useBooleanEvent(setValueOnClick);\n const showOnClickProp = useBooleanEvent(showOnClick);\n const onMouseDown = useEvent((event) => {\n onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n if (event.defaultPrevented)\n return;\n if (event.button)\n return;\n if (event.ctrlKey)\n return;\n if (!store)\n return;\n if (blurActiveItemOnClickProp(event)) {\n store.setActiveId(null);\n }\n if (setValueOnClickProp(event)) {\n store.setValue(value);\n }\n if (showOnClickProp(event)) {\n queueBeforeEvent(event.currentTarget, \"mouseup\", store.show);\n }\n });\n const onKeyDownProp = props.onKeyDown;\n const showOnKeyPressProp = useBooleanEvent(showOnKeyPress);\n const onKeyDown = useEvent((event) => {\n onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n if (!event.repeat) {\n canAutoSelectRef.current = false;\n }\n if (event.defaultPrevented)\n return;\n if (event.ctrlKey)\n return;\n if (event.altKey)\n return;\n if (event.shiftKey)\n return;\n if (event.metaKey)\n return;\n if (!store)\n return;\n const { open: open2, activeId } = store.getState();\n if (open2)\n return;\n if (activeId !== null)\n return;\n if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n if (showOnKeyPressProp(event)) {\n event.preventDefault();\n store.show();\n }\n }\n });\n const onBlurProp = props.onBlur;\n const onBlur = useEvent((event) => {\n canAutoSelectRef.current = false;\n onBlurProp == null ? void 0 : onBlurProp(event);\n if (event.defaultPrevented)\n return;\n });\n const id = useId(props.id);\n const ariaAutoComplete = isAriaAutoCompleteValue(autoComplete) ? autoComplete : void 0;\n const isActiveItem = store.useState((state) => state.activeId === null);\n props = __spreadProps(__spreadValues({\n id,\n role: \"combobox\",\n \"aria-autocomplete\": ariaAutoComplete,\n \"aria-haspopup\": getPopupRole(contentElement, \"listbox\"),\n \"aria-expanded\": open,\n \"aria-controls\": contentElement == null ? void 0 : contentElement.id,\n \"data-active-item\": isActiveItem || void 0,\n value\n }, props), {\n ref: useMergeRefs(ref, props.ref),\n onChange,\n onCompositionEnd,\n onMouseDown,\n onKeyDown,\n onBlur\n });\n props = useComposite(__spreadProps(__spreadValues({\n store,\n focusable\n }, props), {\n // Enable inline autocomplete when the user moves from the combobox input\n // to an item.\n moveOnKeyPress: (event) => {\n if (isFalsyBooleanCallback(moveOnKeyPress, event))\n return false;\n if (inline)\n setCanInline(true);\n return true;\n }\n }));\n props = usePopoverAnchor(__spreadValues({ store }, props));\n return __spreadValues({ autoComplete: \"off\" }, props);\n }\n);\nvar Combobox = forwardRef(function Combobox2(props) {\n const htmlProps = useCombobox(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n Combobox,\n useCombobox\n};\n","\"use client\";\nimport {\n useHovercardAnchor\n} from \"../__chunks/FWINX72I.js\";\nimport {\n useTooltipProviderContext\n} from \"../__chunks/3OMHZVJD.js\";\nimport \"../__chunks/TWDHCE7Y.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport \"../__chunks/WAZE6NXP.js\";\nimport \"../__chunks/SHA3WOPI.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/5M6RSQEC.js\";\nimport {\n useEvent\n} from \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/tooltip/tooltip-anchor.ts\nimport { useEffect, useRef } from \"react\";\nimport { invariant, isFalsyBooleanCallback } from \"@ariakit/core/utils/misc\";\nimport { createStore, sync } from \"@ariakit/core/utils/store\";\nvar TagName = \"div\";\nvar globalStore = createStore({\n activeStore: null\n});\nvar useTooltipAnchor = createHook(\n function useTooltipAnchor2(_a) {\n var _b = _a, { store, showOnHover = true } = _b, props = __objRest(_b, [\"store\", \"showOnHover\"]);\n const context = useTooltipProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"TooltipAnchor must receive a `store` prop or be wrapped in a TooltipProvider component.\"\n );\n const canShowOnHoverRef = useRef(false);\n useEffect(() => {\n return sync(store, [\"mounted\"], (state) => {\n if (state.mounted)\n return;\n canShowOnHoverRef.current = false;\n });\n }, [store]);\n useEffect(() => {\n return sync(store, [\"mounted\", \"skipTimeout\"], (state) => {\n if (!store)\n return;\n if (state.mounted) {\n const { activeStore } = globalStore.getState();\n if (activeStore !== store) {\n activeStore == null ? void 0 : activeStore.hide();\n }\n return globalStore.setState(\"activeStore\", store);\n }\n const id = setTimeout(() => {\n const { activeStore } = globalStore.getState();\n if (activeStore !== store)\n return;\n globalStore.setState(\"activeStore\", null);\n }, state.skipTimeout);\n return () => clearTimeout(id);\n });\n }, [store]);\n const onMouseEnterProp = props.onMouseEnter;\n const onMouseEnter = useEvent((event) => {\n onMouseEnterProp == null ? void 0 : onMouseEnterProp(event);\n canShowOnHoverRef.current = true;\n });\n const onFocusVisibleProp = props.onFocusVisible;\n const onFocusVisible = useEvent((event) => {\n onFocusVisibleProp == null ? void 0 : onFocusVisibleProp(event);\n if (event.defaultPrevented)\n return;\n store == null ? void 0 : store.setAnchorElement(event.currentTarget);\n store == null ? void 0 : store.show();\n });\n const onBlurProp = props.onBlur;\n const onBlur = useEvent((event) => {\n onBlurProp == null ? void 0 : onBlurProp(event);\n if (event.defaultPrevented)\n return;\n const { activeStore } = globalStore.getState();\n if (activeStore === store) {\n globalStore.setState(\"activeStore\", null);\n }\n });\n const type = store.useState(\"type\");\n const contentId = store.useState((state) => {\n var _a2;\n return (_a2 = state.contentElement) == null ? void 0 : _a2.id;\n });\n props = __spreadProps(__spreadValues({\n \"aria-labelledby\": type === \"label\" ? contentId : void 0\n }, props), {\n onMouseEnter,\n onFocusVisible,\n onBlur\n });\n props = useHovercardAnchor(__spreadValues({\n store,\n showOnHover(event) {\n if (!canShowOnHoverRef.current)\n return false;\n if (isFalsyBooleanCallback(showOnHover, event))\n return false;\n const { activeStore } = globalStore.getState();\n if (!activeStore)\n return true;\n store == null ? void 0 : store.show();\n return false;\n }\n }, props));\n return props;\n }\n);\nvar TooltipAnchor = forwardRef(function TooltipAnchor2(props) {\n const htmlProps = useTooltipAnchor(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n TooltipAnchor,\n useTooltipAnchor\n};\n","\"use client\";\n\n// src/popover/popover-arrow-path.ts\nvar POPOVER_ARROW_PATH = \"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\";\n\nexport {\n POPOVER_ARROW_PATH\n};\n","\"use client\";\nimport {\n POPOVER_ARROW_PATH\n} from \"./QFL5V2DO.js\";\nimport {\n usePopoverContext\n} from \"./TE637IA7.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"./5M6RSQEC.js\";\nimport {\n useMergeRefs,\n useSafeLayoutEffect\n} from \"./6O5OEQGF.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"./4R3V3JGP.js\";\n\n// src/popover/popover-arrow.tsx\nimport { useMemo, useState } from \"react\";\nimport { getWindow } from \"@ariakit/core/utils/dom\";\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar defaultSize = 30;\nvar halfDefaultSize = defaultSize / 2;\nvar rotateMap = {\n top: `rotate(180 ${halfDefaultSize} ${halfDefaultSize})`,\n right: `rotate(-90 ${halfDefaultSize} ${halfDefaultSize})`,\n bottom: `rotate(0 ${halfDefaultSize} ${halfDefaultSize})`,\n left: `rotate(90 ${halfDefaultSize} ${halfDefaultSize})`\n};\nfunction useComputedStyle(store) {\n const [style, setStyle] = useState();\n const contentElement = store.useState(\"contentElement\");\n useSafeLayoutEffect(() => {\n if (!contentElement)\n return;\n const win = getWindow(contentElement);\n const computedStyle = win.getComputedStyle(contentElement);\n setStyle(computedStyle);\n }, [contentElement]);\n return style;\n}\nvar usePopoverArrow = createHook(\n function usePopoverArrow2(_a) {\n var _b = _a, { store, size = defaultSize } = _b, props = __objRest(_b, [\"store\", \"size\"]);\n const context = usePopoverContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"PopoverArrow must be wrapped in a Popover component.\"\n );\n const dir = store.useState(\n (state) => state.currentPlacement.split(\"-\")[0]\n );\n const style = useComputedStyle(store);\n const fill = (style == null ? void 0 : style.getPropertyValue(\"background-color\")) || \"none\";\n const stroke = (style == null ? void 0 : style.getPropertyValue(`border-${dir}-color`)) || \"none\";\n const borderWidth = (style == null ? void 0 : style.getPropertyValue(`border-${dir}-width`)) || \"0px\";\n const strokeWidth = parseInt(borderWidth) * 2 * (defaultSize / size);\n const transform = rotateMap[dir];\n const children = useMemo(\n () => /* @__PURE__ */ jsx(\"svg\", { display: \"block\", viewBox: \"0 0 30 30\", children: /* @__PURE__ */ jsxs(\"g\", { transform, children: [\n /* @__PURE__ */ jsx(\"path\", { fill: \"none\", d: POPOVER_ARROW_PATH }),\n /* @__PURE__ */ jsx(\"path\", { stroke: \"none\", d: POPOVER_ARROW_PATH })\n ] }) }),\n [transform]\n );\n props = __spreadProps(__spreadValues({\n children,\n \"aria-hidden\": true\n }, props), {\n ref: useMergeRefs(store.setArrowElement, props.ref),\n style: __spreadValues({\n // server side rendering\n position: \"absolute\",\n fontSize: size,\n width: \"1em\",\n height: \"1em\",\n pointerEvents: \"none\",\n fill,\n stroke,\n strokeWidth\n }, props.style)\n });\n return removeUndefinedValues(props);\n }\n);\nvar PopoverArrow = forwardRef(function PopoverArrow2(props) {\n const htmlProps = usePopoverArrow(props);\n return createElement(TagName, htmlProps);\n});\n\nexport {\n usePopoverArrow,\n PopoverArrow\n};\n","\"use client\";\nimport {\n usePopoverArrow\n} from \"../__chunks/UFM3D5TN.js\";\nimport \"../__chunks/QFL5V2DO.js\";\nimport {\n useTooltipContext\n} from \"../__chunks/3OMHZVJD.js\";\nimport \"../__chunks/TWDHCE7Y.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/5M6RSQEC.js\";\nimport \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport {\n __objRest,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/tooltip/tooltip-arrow.ts\nimport { invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"div\";\nvar useTooltipArrow = createHook(\n function useTooltipArrow2(_a) {\n var _b = _a, { store, size = 16 } = _b, props = __objRest(_b, [\"store\", \"size\"]);\n const context = useTooltipContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"TooltipArrow must be wrapped in a Tooltip component.\"\n );\n props = usePopoverArrow(__spreadValues({ store, size }, props));\n return props;\n }\n);\nvar TooltipArrow = forwardRef(function TooltipArrow2(props) {\n const htmlProps = useTooltipArrow(props);\n return createElement(TagName, htmlProps);\n});\nexport {\n TooltipArrow,\n useTooltipArrow\n};\n","\"use client\";\nimport {\n TooltipContextProvider\n} from \"../__chunks/3OMHZVJD.js\";\nimport \"../__chunks/TWDHCE7Y.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport \"../__chunks/5M6RSQEC.js\";\nimport {\n useTooltipStore\n} from \"../__chunks/WKII7I2E.js\";\nimport \"../__chunks/E5E7G32I.js\";\nimport \"../__chunks/XWCFCD3Q.js\";\nimport \"../__chunks/I62TROYO.js\";\nimport \"../__chunks/HZJ2XALY.js\";\nimport \"../__chunks/EKQEJRUF.js\";\nimport \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport \"../__chunks/4R3V3JGP.js\";\n\n// src/tooltip/tooltip-provider.tsx\nimport { jsx } from \"react/jsx-runtime\";\nfunction TooltipProvider(props = {}) {\n const store = useTooltipStore(props);\n return /* @__PURE__ */ jsx(TooltipContextProvider, { value: store, children: props.children });\n}\nexport {\n TooltipProvider\n};\n","\"use client\";\nimport {\n useHovercard\n} from \"../__chunks/6YZEXKNV.js\";\nimport \"../__chunks/YMV43K4F.js\";\nimport \"../__chunks/BYD75WXE.js\";\nimport {\n createDialogComponent\n} from \"../__chunks/KXSO5EFT.js\";\nimport \"../__chunks/3N4FFVWW.js\";\nimport \"../__chunks/NOYDL3YS.js\";\nimport \"../__chunks/BULCTPRV.js\";\nimport \"../__chunks/6BJGLK2C.js\";\nimport \"../__chunks/CS347UVZ.js\";\nimport \"../__chunks/IUB2BTEK.js\";\nimport \"../__chunks/XHJGS6Z5.js\";\nimport \"../__chunks/TL67WVI6.js\";\nimport \"../__chunks/MKDDWKFK.js\";\nimport \"../__chunks/72E5EPFF.js\";\nimport \"../__chunks/OOBDFMJL.js\";\nimport \"../__chunks/X6WIMZJE.js\";\nimport \"../__chunks/677M2CI3.js\";\nimport \"../__chunks/6GXEOXGT.js\";\nimport \"../__chunks/WCIYB4YS.js\";\nimport \"../__chunks/UYRJLDVS.js\";\nimport \"../__chunks/CK3UW3AQ.js\";\nimport \"../__chunks/WKWX2XLD.js\";\nimport \"../__chunks/7452U3HH.js\";\nimport \"../__chunks/XPF5GU3Q.js\";\nimport \"../__chunks/CBTO7DFZ.js\";\nimport \"../__chunks/RQZGFHI2.js\";\nimport {\n TooltipScopedContextProvider,\n useTooltipProviderContext\n} from \"../__chunks/3OMHZVJD.js\";\nimport \"../__chunks/TWDHCE7Y.js\";\nimport \"../__chunks/TE637IA7.js\";\nimport \"../__chunks/XXVAHUAO.js\";\nimport \"../__chunks/J55AVALY.js\";\nimport \"../__chunks/WAZE6NXP.js\";\nimport \"../__chunks/SHA3WOPI.js\";\nimport \"../__chunks/IFT5JEUU.js\";\nimport {\n createElement,\n createHook,\n forwardRef\n} from \"../__chunks/5M6RSQEC.js\";\nimport \"../__chunks/I62TROYO.js\";\nimport \"../__chunks/HZJ2XALY.js\";\nimport \"../__chunks/EKQEJRUF.js\";\nimport {\n useWrapElement\n} from \"../__chunks/6O5OEQGF.js\";\nimport \"../__chunks/XM66DUTO.js\";\nimport {\n __objRest,\n __spreadProps,\n __spreadValues\n} from \"../__chunks/4R3V3JGP.js\";\n\n// src/tooltip/tooltip.tsx\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { invariant, isFalsyBooleanCallback } from \"@ariakit/core/utils/misc\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar useTooltip = createHook(\n function useTooltip2(_a) {\n var _b = _a, {\n store,\n portal = true,\n gutter = 8,\n preserveTabOrder = false,\n hideOnHoverOutside = true,\n hideOnInteractOutside = true\n } = _b, props = __objRest(_b, [\n \"store\",\n \"portal\",\n \"gutter\",\n \"preserveTabOrder\",\n \"hideOnHoverOutside\",\n \"hideOnInteractOutside\"\n ]);\n const context = useTooltipProviderContext();\n store = store || context;\n invariant(\n store,\n process.env.NODE_ENV !== \"production\" && \"Tooltip must receive a `store` prop or be wrapped in a TooltipProvider component.\"\n );\n props = useWrapElement(\n props,\n (element) => /* @__PURE__ */ jsx(TooltipScopedContextProvider, { value: store, children: element }),\n [store]\n );\n const role = store.useState(\n (state) => state.type === \"description\" ? \"tooltip\" : \"none\"\n );\n props = __spreadValues({ role }, props);\n props = useHovercard(__spreadProps(__spreadValues({}, props), {\n store,\n portal,\n gutter,\n preserveTabOrder,\n hideOnHoverOutside(event) {\n if (isFalsyBooleanCallback(hideOnHoverOutside, event))\n return false;\n const anchorElement = store == null ? void 0 : store.getState().anchorElement;\n if (!anchorElement)\n return true;\n if (\"focusVisible\" in anchorElement.dataset)\n return false;\n return true;\n },\n hideOnInteractOutside: (event) => {\n if (isFalsyBooleanCallback(hideOnInteractOutside, event))\n return false;\n const anchorElement = store == null ? void 0 : store.getState().anchorElement;\n if (!anchorElement)\n return true;\n if (contains(anchorElement, event.target))\n return false;\n return true;\n }\n }));\n return props;\n }\n);\nvar Tooltip = createDialogComponent(\n forwardRef(function Tooltip2(props) {\n const htmlProps = useTooltip(props);\n return createElement(TagName, htmlProps);\n }),\n useTooltipProviderContext\n);\nexport {\n Tooltip,\n useTooltip\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: 0,\n crossAxis: 0,\n alignmentAxis: null,\n ...rawValue\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const 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 (isYAxis) {\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","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, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, 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\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 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,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\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 ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\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 offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const x = rect.left + scroll.scrollLeft - offsets.x;\n const y = rect.top + scroll.scrollTop - offsets.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 return element.offsetParent;\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