@nation-a/ui 0.16.8 → 0.16.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ark-ui-BakX7_HR.cjs +2 -0
- package/dist/ark-ui-BakX7_HR.cjs.map +1 -0
- package/dist/ark-ui-BitYUtmQ.js +6713 -0
- package/dist/ark-ui-BitYUtmQ.js.map +1 -0
- package/dist/index-B4n-XEbJ.js +26 -0
- package/dist/index-B4n-XEbJ.js.map +1 -0
- package/dist/index-BroabscA.cjs +2 -0
- package/dist/index-BroabscA.cjs.map +1 -0
- package/dist/index.cjs +7 -21883
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +5220 -17653
- package/dist/index.js.map +1 -1
- package/dist/react-hot-toast-BQTk3w2h.cjs +178 -0
- package/dist/react-hot-toast-BQTk3w2h.cjs.map +1 -0
- package/dist/react-hot-toast-CPO7pUT3.js +389 -0
- package/dist/react-hot-toast-CPO7pUT3.js.map +1 -0
- package/dist/react-lottie-DTf3gNPc.cjs +29 -0
- package/dist/react-lottie-DTf3gNPc.cjs.map +1 -0
- package/dist/react-lottie-DygynGMG.js +9490 -0
- package/dist/react-lottie-DygynGMG.js.map +1 -0
- package/dist/react-spring-Co4cRp9i.js +3 -0
- package/dist/react-spring-Co4cRp9i.js.map +1 -0
- package/dist/react-spring-DG-m_AyL.cjs +2 -0
- package/dist/react-spring-DG-m_AyL.cjs.map +1 -0
- package/dist/stats.html +4949 -0
- package/dist/styled-system/styles.css +2 -2
- package/dist/styled-system/tokens/index.mjs +2 -2
- package/dist/types/components/Checkbox/checkbox.test.d.ts +1 -0
- package/dist/types/components/Fab/Fab.test.d.ts +1 -0
- package/dist/types/components/IconButton/IconButton.test.d.ts +1 -0
- package/dist/types/components/Select/select.test.d.ts +1 -0
- package/dist/types/components/Tag/tag.test.d.ts +1 -0
- package/package.json +3 -2
- package/dist/index-BMY7nH3O.js +0 -19167
- package/dist/index-BMY7nH3O.js.map +0 -1
- package/dist/index-Bi0nQr7e.cjs +0 -19166
- package/dist/index-Bi0nQr7e.cjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ark-ui-BitYUtmQ.js","sources":["../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/create-context.js","../../../node_modules/.pnpm/@zag-js+utils@1.8.2/node_modules/@zag-js/utils/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+dom-query@1.8.2/node_modules/@zag-js/dom-query/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+core@1.8.2/node_modules/@zag-js/core/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+types@1.8.2/node_modules/@zag-js/types/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+react@1.8.2_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@zag-js/react/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/compose-refs.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/factory.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/create-split-props.js","../../../node_modules/.pnpm/@zag-js+anatomy@1.8.2/node_modules/@zag-js/anatomy/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/providers/environment/use-environment-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/providers/locale/use-locale-context.js","../../../node_modules/.pnpm/@floating-ui+utils@0.2.9/node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs","../../../node_modules/.pnpm/@floating-ui+core@1.6.9/node_modules/@floating-ui/core/dist/floating-ui.core.mjs","../../../node_modules/.pnpm/@floating-ui+utils@0.2.9/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs","../../../node_modules/.pnpm/@floating-ui+dom@1.6.13/node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs","../../../node_modules/.pnpm/@zag-js+popper@1.8.2/node_modules/@zag-js/popper/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+interact-outside@1.8.2/node_modules/@zag-js/interact-outside/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+dismissable@1.8.2/node_modules/@zag-js/dismissable/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/render-strategy.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-control.js","../../../node_modules/.pnpm/@zag-js+focus-visible@1.8.2/node_modules/@zag-js/focus-visible/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+checkbox@1.8.2/node_modules/@zag-js/checkbox/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox.anatomy.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/use-controllable-state.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/use-event.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-group.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-group-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-group.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/field/use-field-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-hidden-input.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-indicator.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-label.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/checkbox/checkbox-root-provider.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/presence/use-presence-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/presence/split-presence-props.js","../../../node_modules/.pnpm/@zag-js+presence@1.8.2/node_modules/@zag-js/presence/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/presence/use-presence.js","../../../node_modules/.pnpm/@zag-js+collection@1.8.2/node_modules/@zag-js/collection/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/collection.js","../../../node_modules/.pnpm/@zag-js+aria-hidden@1.8.2/node_modules/@zag-js/aria-hidden/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/use-dialog-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-backdrop.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-close-trigger.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-content.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-description.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-positioner.js","../../../node_modules/.pnpm/@zag-js+focus-trap@1.8.2/node_modules/@zag-js/focus-trap/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+remove-scroll@1.8.2/node_modules/@zag-js/remove-scroll/dist/index.mjs","../../../node_modules/.pnpm/@zag-js+dialog@1.8.2/node_modules/@zag-js/dialog/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/use-dialog.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-title.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/dialog/dialog-trigger.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/portal/portal.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-item-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group-item-props-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-control.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-hidden-input.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-item-text.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-label.js","../../../node_modules/.pnpm/@zag-js+radio-group@1.8.2/node_modules/@zag-js/radio-group/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/use-radio-group.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/radio-group/radio-group-root-provider.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/use-select-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-content.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-control.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/use-select-item-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/use-select-item-props-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-item.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-label.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-positioner.js","../../../node_modules/.pnpm/@zag-js+select@1.8.2/node_modules/@zag-js/select/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/use-select.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-trigger.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/select/select-value-text.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/use-switch-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-control.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-hidden-input.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-label.js","../../../node_modules/.pnpm/@zag-js+switch@1.8.2/node_modules/@zag-js/switch/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/use-switch.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-root.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-root-provider.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/switch/switch-thumb.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/utils/use-debounce.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/use-tabs-context.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/tab-content.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/tab-indicator.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/tab-list.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/tab-trigger.js","../../../node_modules/.pnpm/@zag-js+tabs@1.8.2/node_modules/@zag-js/tabs/dist/index.mjs","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/use-tabs.js","../../../node_modules/.pnpm/@ark-ui+react@5.5.0_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@ark-ui/react/dist/components/tabs/tabs-root.js"],"sourcesContent":["'use client';\nimport { createContext as createContext$1, useContext } from 'react';\n\nfunction getErrorMessage(hook, provider) {\n return `${hook} returned \\`undefined\\`. Seems you forgot to wrap component within ${provider}`;\n}\nfunction createContext(options = {}) {\n const {\n name,\n strict = true,\n hookName = \"useContext\",\n providerName = \"Provider\",\n errorMessage,\n defaultValue\n } = options;\n const Context = createContext$1(defaultValue);\n Context.displayName = name;\n function useContext$1() {\n const context = useContext(Context);\n if (!context && strict) {\n const error = new Error(errorMessage ?? getErrorMessage(hookName, providerName));\n error.name = \"ContextError\";\n Error.captureStackTrace?.(error, useContext$1);\n throw error;\n }\n return context;\n }\n return [Context.Provider, useContext$1, Context];\n}\n\nexport { createContext };\n","// src/array.ts\nfunction toArray(v) {\n if (!v) return [];\n return Array.isArray(v) ? v : [v];\n}\nvar fromLength = (length) => Array.from(Array(length).keys());\nvar first = (v) => v[0];\nvar last = (v) => v[v.length - 1];\nvar isEmpty = (v) => v.length === 0;\nvar has = (v, t) => v.indexOf(t) !== -1;\nvar add = (v, ...items) => v.concat(items);\nvar remove = (v, ...items) => v.filter((t) => !items.includes(t));\nvar removeAt = (v, i) => v.filter((_, idx) => idx !== i);\nvar insertAt = (v, i, ...items) => [...v.slice(0, i), ...items, ...v.slice(i)];\nvar uniq = (v) => Array.from(new Set(v));\nvar addOrRemove = (v, item) => {\n if (has(v, item)) return remove(v, item);\n return add(v, item);\n};\nfunction clear(v) {\n while (v.length > 0) v.pop();\n return v;\n}\nfunction nextIndex(v, idx, opts = {}) {\n const { step = 1, loop = true } = opts;\n const next2 = idx + step;\n const len = v.length;\n const last2 = len - 1;\n if (idx === -1) return step > 0 ? 0 : last2;\n if (next2 < 0) return loop ? last2 : 0;\n if (next2 >= len) return loop ? 0 : idx > len ? len : idx;\n return next2;\n}\nfunction next(v, idx, opts = {}) {\n return v[nextIndex(v, idx, opts)];\n}\nfunction prevIndex(v, idx, opts = {}) {\n const { step = 1, loop = true } = opts;\n return nextIndex(v, idx, { step: -step, loop });\n}\nfunction prev(v, index, opts = {}) {\n return v[prevIndex(v, index, opts)];\n}\nvar chunk = (v, size) => {\n const res = [];\n return v.reduce((rows, value, index) => {\n if (index % size === 0) rows.push([value]);\n else last(rows)?.push(value);\n return rows;\n }, res);\n};\nfunction flatArray(arr) {\n return arr.reduce((flat, item) => {\n if (Array.isArray(item)) {\n return flat.concat(flatArray(item));\n }\n return flat.concat(item);\n }, []);\n}\n\n// src/equal.ts\nvar isArrayLike = (value) => value?.constructor.name === \"Array\";\nvar isArrayEqual = (a, b) => {\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!isEqual(a[i], b[i])) return false;\n }\n return true;\n};\nvar isEqual = (a, b) => {\n if (Object.is(a, b)) return true;\n if (a == null && b != null || a != null && b == null) return false;\n if (typeof a?.isEqual === \"function\" && typeof b?.isEqual === \"function\") {\n return a.isEqual(b);\n }\n if (typeof a === \"function\" && typeof b === \"function\") {\n return a.toString() === b.toString();\n }\n if (isArrayLike(a) && isArrayLike(b)) {\n return isArrayEqual(Array.from(a), Array.from(b));\n }\n if (!(typeof a === \"object\") || !(typeof b === \"object\")) return false;\n const keys = Object.keys(b ?? /* @__PURE__ */ Object.create(null));\n const length = keys.length;\n for (let i = 0; i < length; i++) {\n const hasKey = Reflect.has(a, keys[i]);\n if (!hasKey) return false;\n }\n for (let i = 0; i < length; i++) {\n const key = keys[i];\n if (!isEqual(a[key], b[key])) return false;\n }\n return true;\n};\n\n// src/guard.ts\nvar isDev = () => process.env.NODE_ENV !== \"production\";\nvar isArray = (v) => Array.isArray(v);\nvar isBoolean = (v) => v === true || v === false;\nvar isObjectLike = (v) => v != null && typeof v === \"object\";\nvar isObject = (v) => isObjectLike(v) && !isArray(v);\nvar isNumber = (v) => typeof v === \"number\" && !Number.isNaN(v);\nvar isString = (v) => typeof v === \"string\";\nvar isFunction = (v) => typeof v === \"function\";\nvar isNull = (v) => v == null;\nvar hasProp = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nvar baseGetTag = (v) => Object.prototype.toString.call(v);\nvar fnToString = Function.prototype.toString;\nvar objectCtorString = fnToString.call(Object);\nvar isPlainObject = (v) => {\n if (!isObjectLike(v) || baseGetTag(v) != \"[object Object]\") return false;\n const proto = Object.getPrototypeOf(v);\n if (proto === null) return true;\n const Ctor = hasProp(proto, \"constructor\") && proto.constructor;\n return typeof Ctor == \"function\" && Ctor instanceof Ctor && fnToString.call(Ctor) == objectCtorString;\n};\n\n// src/functions.ts\nvar runIfFn = (v, ...a) => {\n const res = typeof v === \"function\" ? v(...a) : v;\n return res ?? void 0;\n};\nvar cast = (v) => v;\nvar identity = (v) => v();\nvar noop = () => {\n};\nvar callAll = (...fns) => (...a) => {\n fns.forEach(function(fn) {\n fn?.(...a);\n });\n};\nvar uuid = /* @__PURE__ */ (() => {\n let id = 0;\n return () => {\n id++;\n return id.toString(36);\n };\n})();\nfunction match(key, record, ...args) {\n if (key in record) {\n const fn = record[key];\n return isFunction(fn) ? fn(...args) : fn;\n }\n const error = new Error(`No matching key: ${JSON.stringify(key)} in ${JSON.stringify(Object.keys(record))}`);\n Error.captureStackTrace?.(error, match);\n throw error;\n}\nvar tryCatch = (fn, fallback) => {\n try {\n return fn();\n } catch (error) {\n if (error instanceof Error) {\n Error.captureStackTrace?.(error, tryCatch);\n }\n return fallback?.();\n }\n};\nfunction throttle(fn, wait = 0) {\n let lastCall = 0;\n let timeout = null;\n return (...args) => {\n const now = Date.now();\n const timeSinceLastCall = now - lastCall;\n if (timeSinceLastCall >= wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n fn(...args);\n lastCall = now;\n } else if (!timeout) {\n timeout = setTimeout(() => {\n fn(...args);\n lastCall = Date.now();\n timeout = null;\n }, wait - timeSinceLastCall);\n }\n };\n}\n\n// src/number.ts\nvar { floor, abs, round, min, max, pow, sign } = Math;\nvar isNaN = (v) => Number.isNaN(v);\nvar nan = (v) => isNaN(v) ? 0 : v;\nvar mod = (v, m) => (v % m + m) % m;\nvar wrap = (v, vmax) => (v % vmax + vmax) % vmax;\nvar getMinValueAtIndex = (i, v, vmin) => i === 0 ? vmin : v[i - 1];\nvar getMaxValueAtIndex = (i, v, vmax) => i === v.length - 1 ? vmax : v[i + 1];\nvar isValueAtMax = (v, vmax) => nan(v) >= vmax;\nvar isValueAtMin = (v, vmin) => nan(v) <= vmin;\nvar isValueWithinRange = (v, vmin, vmax) => nan(v) >= vmin && nan(v) <= vmax;\nvar roundValue = (v, vmin, step) => round((nan(v) - vmin) / step) * step + vmin;\nvar clampValue = (v, vmin, vmax) => min(max(nan(v), vmin), vmax);\nvar clampPercent = (v) => clampValue(v, 0, 1);\nvar getValuePercent = (v, vmin, vmax) => (nan(v) - vmin) / (vmax - vmin);\nvar getPercentValue = (p, vmin, vmax, step) => clampValue(roundValue(p * (vmax - vmin) + vmin, vmin, step), vmin, vmax);\nvar roundToStepPrecision = (v, step) => {\n let rv = v;\n let ss = step.toString();\n let pi = ss.indexOf(\".\");\n let p = pi >= 0 ? ss.length - pi : 0;\n if (p > 0) {\n let pw = pow(10, p);\n rv = round(rv * pw) / pw;\n }\n return rv;\n};\nvar roundToDpr = (v, dpr) => typeof dpr === \"number\" ? floor(v * dpr + 0.5) / dpr : round(v);\nvar snapValueToStep = (v, vmin, vmax, step) => {\n vmin = Number(vmin);\n vmax = Number(vmax);\n let remainder = (v - (isNaN(vmin) ? 0 : vmin)) % step;\n let sv = roundToStepPrecision(\n abs(remainder) * 2 >= step ? v + sign(remainder) * (step - abs(remainder)) : v - remainder,\n step\n );\n if (!isNaN(vmin)) {\n if (sv < vmin) {\n sv = vmin;\n } else if (!isNaN(vmax) && sv > vmax) {\n sv = vmin + floor(roundToStepPrecision((vmax - vmin) / step, step)) * step;\n }\n } else if (!isNaN(vmax) && sv > vmax) {\n sv = vmin + floor(roundToStepPrecision((vmax - vmin) / step, step)) * step;\n }\n return roundToStepPrecision(sv, step);\n};\nvar setValueAtIndex = (vs, i, v) => {\n if (vs[i] === v) return vs;\n return [...vs.slice(0, i), v, ...vs.slice(i + 1)];\n};\nfunction getValueSetterAtIndex(index, ctx) {\n const minValueAtIndex = getMinValueAtIndex(index, ctx.values, ctx.min);\n const maxValueAtIndex = getMaxValueAtIndex(index, ctx.values, ctx.max);\n let nextValues = ctx.values.slice();\n return function setValue(value) {\n let nextValue = snapValueToStep(value, minValueAtIndex, maxValueAtIndex, ctx.step);\n nextValues = setValueAtIndex(nextValues, index, value);\n nextValues[index] = nextValue;\n return nextValues;\n };\n}\nfunction getNextStepValue(index, ctx) {\n const nextValue = ctx.values[index] + ctx.step;\n return getValueSetterAtIndex(index, ctx)(nextValue);\n}\nfunction getPreviousStepValue(index, ctx) {\n const nextValue = ctx.values[index] - ctx.step;\n return getValueSetterAtIndex(index, ctx)(nextValue);\n}\nvar getClosestValueIndex = (vs, t) => {\n let i = vs.findIndex((v) => t - v < 0);\n if (i === 0) return i;\n if (i === -1) return vs.length - 1;\n let vLeft = vs[i - 1];\n let vRight = vs[i];\n if (abs(vLeft - t) < abs(vRight - t)) return i - 1;\n return i;\n};\nvar getClosestValue = (vs, t) => vs[getClosestValueIndex(vs, t)];\nvar getValueRanges = (vs, vmin, vmax, gap) => vs.map((v, i) => ({\n min: i === 0 ? vmin : vs[i - 1] + gap,\n max: i === vs.length - 1 ? vmax : vs[i + 1] - gap,\n value: v\n}));\nvar getValueTransformer = (va, vb) => {\n const [a, b] = va;\n const [c, d] = vb;\n return (v) => a === b || c === d ? c : c + (d - c) / (b - a) * (v - a);\n};\nvar toFixedNumber = (v, d = 0, b = 10) => {\n const pow2 = Math.pow(b, d);\n return round(v * pow2) / pow2;\n};\nvar countDecimals = (value) => {\n if (!Number.isFinite(value)) return 0;\n let e = 1, p = 0;\n while (Math.round(value * e) / e !== value) {\n e *= 10;\n p += 1;\n }\n return p;\n};\nvar decimalOp = (a, op, b) => {\n let result = op === \"+\" ? a + b : a - b;\n if (a % 1 !== 0 || b % 1 !== 0) {\n const multiplier = 10 ** Math.max(countDecimals(a), countDecimals(b));\n a = Math.round(a * multiplier);\n b = Math.round(b * multiplier);\n result = op === \"+\" ? a + b : a - b;\n result /= multiplier;\n }\n return result;\n};\nvar incrementValue = (v, s) => decimalOp(nan(v), \"+\", s);\nvar decrementValue = (v, s) => decimalOp(nan(v), \"-\", s);\nvar toPx = (v) => v != null ? `${v}px` : void 0;\n\n// src/object.ts\nfunction compact(obj) {\n if (!isPlainObject2(obj) || obj === void 0) return obj;\n const keys = Reflect.ownKeys(obj).filter((key) => typeof key === \"string\");\n const filtered = {};\n for (const key of keys) {\n const value = obj[key];\n if (value !== void 0) {\n filtered[key] = compact(value);\n }\n }\n return filtered;\n}\nvar json = (v) => JSON.parse(JSON.stringify(v));\nvar isPlainObject2 = (v) => {\n return v && typeof v === \"object\" && v.constructor === Object;\n};\nfunction pick(obj, keys) {\n const filtered = {};\n for (const key of keys) {\n const value = obj[key];\n if (value !== void 0) {\n filtered[key] = value;\n }\n }\n return filtered;\n}\nfunction splitProps(props, keys) {\n const rest = {};\n const result = {};\n const keySet = new Set(keys);\n for (const key in props) {\n if (keySet.has(key)) {\n result[key] = props[key];\n } else {\n rest[key] = props[key];\n }\n }\n return [result, rest];\n}\nvar createSplitProps = (keys) => {\n return function split(props) {\n return splitProps(props, keys);\n };\n};\nfunction omit(obj, keys) {\n return createSplitProps(keys)(obj)[1];\n}\n\n// src/timers.ts\nfunction setRafInterval(callback, interval) {\n let start = performance.now();\n let handle;\n function loop(now) {\n handle = requestAnimationFrame(loop);\n const delta = now - start;\n if (delta >= interval) {\n start = now - delta % interval;\n callback({ startMs: start, deltaMs: delta });\n }\n }\n handle = requestAnimationFrame(loop);\n return () => cancelAnimationFrame(handle);\n}\nfunction setRafTimeout(callback, delay) {\n const start = performance.now();\n let handle;\n function loop(now) {\n handle = requestAnimationFrame(loop);\n const delta = now - start;\n if (delta >= delay) {\n callback();\n }\n }\n handle = requestAnimationFrame(loop);\n return () => cancelAnimationFrame(handle);\n}\n\n// src/warning.ts\nfunction warn(...a) {\n const m = a.length === 1 ? a[0] : a[1];\n const c = a.length === 2 ? a[0] : true;\n if (c && process.env.NODE_ENV !== \"production\") {\n console.warn(m);\n }\n}\nfunction invariant(...a) {\n const m = a.length === 1 ? a[0] : a[1];\n const c = a.length === 2 ? a[0] : true;\n if (c && process.env.NODE_ENV !== \"production\") {\n throw new Error(m);\n }\n}\nfunction ensure(c, m) {\n if (c == null) throw new Error(m());\n}\nfunction ensureProps(props, keys, scope) {\n let missingKeys = [];\n for (const key of keys) {\n if (props[key] == null) missingKeys.push(key);\n }\n if (missingKeys.length > 0)\n throw new Error(`[zag-js${scope ? ` > ${scope}` : \"\"}] missing required props: ${missingKeys.join(\", \")}`);\n}\n\nexport { add, addOrRemove, callAll, cast, chunk, clampPercent, clampValue, clear, compact, createSplitProps, decrementValue, ensure, ensureProps, first, flatArray, fromLength, getClosestValue, getClosestValueIndex, getMaxValueAtIndex, getMinValueAtIndex, getNextStepValue, getPercentValue, getPreviousStepValue, getValuePercent, getValueRanges, getValueSetterAtIndex, getValueTransformer, has, hasProp, identity, incrementValue, insertAt, invariant, isArray, isBoolean, isDev, isEmpty, isEqual, isFunction, isNaN, isNull, isNumber, isObject, isObjectLike, isPlainObject, isString, isValueAtMax, isValueAtMin, isValueWithinRange, json, last, match, mod, nan, next, nextIndex, noop, omit, pick, prev, prevIndex, remove, removeAt, roundToDpr, roundToStepPrecision, roundValue, runIfFn, setRafInterval, setRafTimeout, setValueAtIndex, snapValueToStep, splitProps, throttle, toArray, toFixedNumber, toPx, tryCatch, uniq, uuid, warn, wrap };\n","// src/caret.ts\nfunction isCaretAtStart(input) {\n if (!input) return false;\n try {\n return input.selectionStart === 0 && input.selectionEnd === 0;\n } catch {\n return input.value === \"\";\n }\n}\nfunction setCaretToEnd(input) {\n if (!input) return;\n const start = input.selectionStart ?? 0;\n const end = input.selectionEnd ?? 0;\n if (Math.abs(end - start) !== 0) return;\n if (start !== 0) return;\n input.setSelectionRange(input.value.length, input.value.length);\n}\n\n// src/shared.ts\nvar clamp = (value) => Math.max(0, Math.min(1, value));\nvar wrap = (v, idx) => {\n return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]);\n};\nvar pipe = (...fns) => (arg) => fns.reduce((acc, fn) => fn(acc), arg);\nvar noop = () => void 0;\nvar isObject = (v) => typeof v === \"object\" && v !== null;\nvar MAX_Z_INDEX = 2147483647;\nvar dataAttr = (guard) => guard ? \"\" : void 0;\nvar ariaAttr = (guard) => guard ? \"true\" : void 0;\n\n// src/node.ts\nvar ELEMENT_NODE = 1;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\nvar isHTMLElement = (el) => isObject(el) && el.nodeType === ELEMENT_NODE && typeof el.nodeName === \"string\";\nvar isDocument = (el) => isObject(el) && el.nodeType === DOCUMENT_NODE;\nvar isWindow = (el) => isObject(el) && el === el.window;\nvar isVisualViewport = (el) => isObject(el) && el.constructor.name === \"VisualViewport\";\nvar getNodeName = (node) => {\n if (isHTMLElement(node)) return node.localName || \"\";\n return \"#document\";\n};\nfunction isRootElement(node) {\n return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nvar isNode = (el) => isObject(el) && el.nodeType !== void 0;\nvar isShadowRoot = (el) => isNode(el) && el.nodeType === DOCUMENT_FRAGMENT_NODE && \"host\" in el;\nvar isInputElement = (el) => isHTMLElement(el) && el.localName === \"input\";\nvar isAnchorElement = (el) => !!el?.matches(\"a[href]\");\nvar isElementVisible = (el) => {\n if (!isHTMLElement(el)) return false;\n return el.offsetWidth > 0 || el.offsetHeight > 0 || el.getClientRects().length > 0;\n};\nvar TEXTAREA_SELECT_REGEX = /(textarea|select)/;\nfunction isEditableElement(el) {\n if (el == null || !isHTMLElement(el)) return false;\n try {\n return isInputElement(el) && el.selectionStart != null || TEXTAREA_SELECT_REGEX.test(el.localName) || el.isContentEditable || el.getAttribute(\"contenteditable\") === \"true\" || el.getAttribute(\"contenteditable\") === \"\";\n } catch {\n return false;\n }\n}\nfunction contains(parent, child) {\n if (!parent || !child) return false;\n if (!isHTMLElement(parent) || !isHTMLElement(child)) return false;\n const rootNode = child.getRootNode?.();\n if (parent === child) return true;\n if (parent.contains(child)) return true;\n if (rootNode && isShadowRoot(rootNode)) {\n let next = child;\n while (next) {\n if (parent === next) return true;\n next = next.parentNode || next.host;\n }\n }\n return false;\n}\nfunction getDocument(el) {\n if (isDocument(el)) return el;\n if (isWindow(el)) return el.document;\n return el?.ownerDocument ?? document;\n}\nfunction getDocumentElement(el) {\n return getDocument(el).documentElement;\n}\nfunction getWindow(el) {\n if (isShadowRoot(el)) return getWindow(el.host);\n if (isDocument(el)) return el.defaultView ?? window;\n if (isHTMLElement(el)) return el.ownerDocument?.defaultView ?? window;\n return window;\n}\nfunction getActiveElement(rootNode) {\n let activeElement = rootNode.activeElement;\n while (activeElement?.shadowRoot) {\n const el = activeElement.shadowRoot.activeElement;\n if (el === activeElement) break;\n else activeElement = el;\n }\n return activeElement;\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === \"html\") return node;\n const result = node.assignedSlot || node.parentNode || isShadowRoot(node) && node.host || getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\n\n// src/computed-style.ts\nvar styleCache = /* @__PURE__ */ new WeakMap();\nfunction getComputedStyle(el) {\n if (!styleCache.has(el)) {\n styleCache.set(el, getWindow(el).getComputedStyle(el));\n }\n return styleCache.get(el);\n}\n\n// src/data-url.ts\nfunction getDataUrl(svg, opts) {\n const { type, quality = 0.92, background } = opts;\n if (!svg) throw new Error(\"[zag-js > getDataUrl]: Could not find the svg element\");\n const win = getWindow(svg);\n const doc = win.document;\n const svgBounds = svg.getBoundingClientRect();\n const svgClone = svg.cloneNode(true);\n if (!svgClone.hasAttribute(\"viewBox\")) {\n svgClone.setAttribute(\"viewBox\", `0 0 ${svgBounds.width} ${svgBounds.height}`);\n }\n const serializer = new win.XMLSerializer();\n const source = '<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n' + serializer.serializeToString(svgClone);\n const svgString = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(source);\n if (type === \"image/svg+xml\") {\n return Promise.resolve(svgString).then((str) => {\n svgClone.remove();\n return str;\n });\n }\n const dpr = win.devicePixelRatio || 1;\n const canvas = doc.createElement(\"canvas\");\n const image = new win.Image();\n image.src = svgString;\n canvas.width = svgBounds.width * dpr;\n canvas.height = svgBounds.height * dpr;\n const context = canvas.getContext(\"2d\");\n if (type === \"image/jpeg\" || background) {\n context.fillStyle = background || \"white\";\n context.fillRect(0, 0, canvas.width, canvas.height);\n }\n return new Promise((resolve) => {\n image.onload = () => {\n context?.drawImage(image, 0, 0, canvas.width, canvas.height);\n resolve(canvas.toDataURL(type, quality));\n svgClone.remove();\n };\n });\n}\n\n// src/platform.ts\nvar isDom = () => typeof document !== \"undefined\";\nfunction getPlatform() {\n const agent = navigator.userAgentData;\n return agent?.platform ?? navigator.platform;\n}\nfunction getUserAgent() {\n const ua2 = navigator.userAgentData;\n if (ua2 && Array.isArray(ua2.brands)) {\n return ua2.brands.map(({ brand, version }) => `${brand}/${version}`).join(\" \");\n }\n return navigator.userAgent;\n}\nvar pt = (v) => isDom() && v.test(getPlatform());\nvar ua = (v) => isDom() && v.test(getUserAgent());\nvar vn = (v) => isDom() && v.test(navigator.vendor);\nvar isTouchDevice = () => isDom() && !!navigator.maxTouchPoints;\nvar isIPhone = () => pt(/^iPhone/i);\nvar isIPad = () => pt(/^iPad/i) || isMac() && navigator.maxTouchPoints > 1;\nvar isIos = () => isIPhone() || isIPad();\nvar isApple = () => isMac() || isIos();\nvar isMac = () => pt(/^Mac/i);\nvar isSafari = () => isApple() && vn(/apple/i);\nvar isFirefox = () => ua(/Firefox/i);\nvar isChrome = () => ua(/Chrome/i);\nvar isWebKit = () => ua(/AppleWebKit/i) && !isChrome();\nvar isAndroid = () => ua(/Android/i);\n\n// src/event.ts\nfunction getBeforeInputValue(event) {\n const { selectionStart, selectionEnd, value } = event.currentTarget;\n return value.slice(0, selectionStart) + event.data + value.slice(selectionEnd);\n}\nfunction getComposedPath(event) {\n return event.composedPath?.() ?? event.nativeEvent?.composedPath?.();\n}\nfunction getEventTarget(event) {\n const composedPath = getComposedPath(event);\n return composedPath?.[0] ?? event.target;\n}\nvar isSelfTarget = (event) => {\n return contains(event.currentTarget, getEventTarget(event));\n};\nfunction isOpeningInNewTab(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const isAppleDevice = isApple();\n if (isAppleDevice && !event.metaKey) return false;\n if (!isAppleDevice && !event.ctrlKey) return false;\n const localName = element.localName;\n if (localName === \"a\") return true;\n if (localName === \"button\" && element.type === \"submit\") return true;\n if (localName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\nfunction isDownloadingEvent(event) {\n const element = event.currentTarget;\n if (!element) return false;\n const localName = element.localName;\n if (!event.altKey) return false;\n if (localName === \"a\") return true;\n if (localName === \"button\" && element.type === \"submit\") return true;\n if (localName === \"input\" && element.type === \"submit\") return true;\n return false;\n}\nfunction isComposingEvent(event) {\n return getNativeEvent(event).isComposing || event.keyCode === 229;\n}\nfunction isKeyboardClick(e) {\n return e.detail === 0 || e.clientX === 0 && e.clientY === 0;\n}\nfunction isCtrlOrMetaKey(e) {\n if (isMac()) return e.metaKey;\n return e.ctrlKey;\n}\nfunction isPrintableKey(e) {\n return e.key.length === 1 && !e.ctrlKey && !e.metaKey;\n}\nfunction isVirtualPointerEvent(e) {\n return e.width === 0 && e.height === 0 || e.width === 1 && e.height === 1 && e.pressure === 0 && e.detail === 0 && e.pointerType === \"mouse\";\n}\nfunction isVirtualClick(e) {\n if (e.mozInputSource === 0 && e.isTrusted) return true;\n if (isAndroid() && e.pointerType) {\n return e.type === \"click\" && e.buttons === 1;\n }\n return e.detail === 0 && !e.pointerType;\n}\nvar isLeftClick = (e) => e.button === 0;\nvar isContextMenuEvent = (e) => {\n return e.button === 2 || isMac() && e.ctrlKey && e.button === 0;\n};\nvar isModifierKey = (e) => e.ctrlKey || e.altKey || e.metaKey;\nvar isTouchEvent = (event) => \"touches\" in event && event.touches.length > 0;\nvar keyMap = {\n Up: \"ArrowUp\",\n Down: \"ArrowDown\",\n Esc: \"Escape\",\n \" \": \"Space\",\n \",\": \"Comma\",\n Left: \"ArrowLeft\",\n Right: \"ArrowRight\"\n};\nvar rtlKeyMap = {\n ArrowLeft: \"ArrowRight\",\n ArrowRight: \"ArrowLeft\"\n};\nfunction getEventKey(event, options = {}) {\n const { dir = \"ltr\", orientation = \"horizontal\" } = options;\n let key = event.key;\n key = keyMap[key] ?? key;\n const isRtl = dir === \"rtl\" && orientation === \"horizontal\";\n if (isRtl && key in rtlKeyMap) key = rtlKeyMap[key];\n return key;\n}\nfunction getNativeEvent(event) {\n return event.nativeEvent ?? event;\n}\nvar pageKeys = /* @__PURE__ */ new Set([\"PageUp\", \"PageDown\"]);\nvar arrowKeys = /* @__PURE__ */ new Set([\"ArrowUp\", \"ArrowDown\", \"ArrowLeft\", \"ArrowRight\"]);\nfunction getEventStep(event) {\n if (event.ctrlKey || event.metaKey) {\n return 0.1;\n } else {\n const isPageKey = pageKeys.has(event.key);\n const isSkipKey = isPageKey || event.shiftKey && arrowKeys.has(event.key);\n return isSkipKey ? 10 : 1;\n }\n}\nfunction getEventPoint(event, type = \"client\") {\n const point = isTouchEvent(event) ? event.touches[0] || event.changedTouches[0] : event;\n return { x: point[`${type}X`], y: point[`${type}Y`] };\n}\nvar addDomEvent = (target, eventName, handler, options) => {\n const node = typeof target === \"function\" ? target() : target;\n node?.addEventListener(eventName, handler, options);\n return () => {\n node?.removeEventListener(eventName, handler, options);\n };\n};\n\n// src/form.ts\nfunction getDescriptor(el, options) {\n const { type = \"HTMLInputElement\", property = \"value\" } = options;\n const proto = getWindow(el)[type].prototype;\n return Object.getOwnPropertyDescriptor(proto, property) ?? {};\n}\nfunction getElementType(el) {\n if (el.localName === \"input\") return \"HTMLInputElement\";\n if (el.localName === \"textarea\") return \"HTMLTextAreaElement\";\n if (el.localName === \"select\") return \"HTMLSelectElement\";\n}\nfunction setElementValue(el, value, property = \"value\") {\n if (!el) return;\n const type = getElementType(el);\n if (type) {\n const descriptor = getDescriptor(el, { type, property });\n descriptor.set?.call(el, value);\n }\n el.setAttribute(property, value);\n}\nfunction setElementChecked(el, checked) {\n if (!el) return;\n const descriptor = getDescriptor(el, { type: \"HTMLInputElement\", property: \"checked\" });\n descriptor.set?.call(el, checked);\n if (checked) el.setAttribute(\"checked\", \"\");\n else el.removeAttribute(\"checked\");\n}\nfunction dispatchInputValueEvent(el, options) {\n const { value, bubbles = true } = options;\n if (!el) return;\n const win = getWindow(el);\n if (!(el instanceof win.HTMLInputElement)) return;\n setElementValue(el, `${value}`);\n el.dispatchEvent(new win.Event(\"input\", { bubbles }));\n}\nfunction dispatchInputCheckedEvent(el, options) {\n const { checked, bubbles = true } = options;\n if (!el) return;\n const win = getWindow(el);\n if (!(el instanceof win.HTMLInputElement)) return;\n setElementChecked(el, checked);\n el.dispatchEvent(new win.Event(\"click\", { bubbles }));\n}\nfunction getClosestForm(el) {\n return isFormElement(el) ? el.form : el.closest(\"form\");\n}\nfunction isFormElement(el) {\n return el.matches(\"textarea, input, select, button\");\n}\nfunction trackFormReset(el, callback) {\n if (!el) return;\n const form = getClosestForm(el);\n const onReset = (e) => {\n if (e.defaultPrevented) return;\n callback();\n };\n form?.addEventListener(\"reset\", onReset, { passive: true });\n return () => form?.removeEventListener(\"reset\", onReset);\n}\nfunction trackFieldsetDisabled(el, callback) {\n const fieldset = el?.closest(\"fieldset\");\n if (!fieldset) return;\n callback(fieldset.disabled);\n const win = getWindow(fieldset);\n const obs = new win.MutationObserver(() => callback(fieldset.disabled));\n obs.observe(fieldset, {\n attributes: true,\n attributeFilter: [\"disabled\"]\n });\n return () => obs.disconnect();\n}\nfunction trackFormControl(el, options) {\n if (!el) return;\n const { onFieldsetDisabledChange, onFormReset } = options;\n const cleanups = [trackFormReset(el, onFormReset), trackFieldsetDisabled(el, onFieldsetDisabledChange)];\n return () => cleanups.forEach((cleanup) => cleanup?.());\n}\n\n// src/tabbable.ts\nvar isFrame = (el) => isHTMLElement(el) && el.tagName === \"IFRAME\";\nvar hasTabIndex = (el) => !Number.isNaN(parseInt(el.getAttribute(\"tabindex\") || \"0\", 10));\nvar hasNegativeTabIndex = (el) => parseInt(el.getAttribute(\"tabindex\") || \"0\", 10) < 0;\nvar focusableSelector = \"input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false']), details > summary:first-of-type\";\nvar getFocusables = (container, includeContainer = false) => {\n if (!container) return [];\n const elements = Array.from(container.querySelectorAll(focusableSelector));\n const include = includeContainer == true || includeContainer == \"if-empty\" && elements.length === 0;\n if (include && isHTMLElement(container) && isFocusable(container)) {\n elements.unshift(container);\n }\n const focusableElements = elements.filter(isFocusable);\n focusableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n focusableElements.splice(i, 1, ...getFocusables(frameBody));\n }\n });\n return focusableElements;\n};\nfunction isFocusable(element) {\n if (!element || element.closest(\"[inert]\")) return false;\n return element.matches(focusableSelector) && isElementVisible(element);\n}\nfunction getFirstFocusable(container, includeContainer) {\n const [first] = getFocusables(container, includeContainer);\n return first || null;\n}\nfunction getTabbables(container, includeContainer) {\n if (!container) return [];\n const elements = Array.from(container.querySelectorAll(focusableSelector));\n const tabbableElements = elements.filter(isTabbable);\n if (includeContainer && isTabbable(container)) {\n tabbableElements.unshift(container);\n }\n tabbableElements.forEach((element, i) => {\n if (isFrame(element) && element.contentDocument) {\n const frameBody = element.contentDocument.body;\n const allFrameTabbable = getTabbables(frameBody);\n tabbableElements.splice(i, 1, ...allFrameTabbable);\n }\n });\n if (!tabbableElements.length && includeContainer) {\n return elements;\n }\n return tabbableElements;\n}\nfunction isTabbable(el) {\n if (el != null && el.tabIndex > 0) return true;\n return isFocusable(el) && !hasNegativeTabIndex(el);\n}\nfunction getFirstTabbable(container, includeContainer) {\n const [first] = getTabbables(container, includeContainer);\n return first || null;\n}\nfunction getLastTabbable(container, includeContainer) {\n const elements = getTabbables(container, includeContainer);\n return elements[elements.length - 1] || null;\n}\nfunction getTabbableEdges(container, includeContainer) {\n const elements = getTabbables(container, includeContainer);\n const first = elements[0] || null;\n const last = elements[elements.length - 1] || null;\n return [first, last];\n}\nfunction getNextTabbable(container, current) {\n const tabbables = getTabbables(container);\n const doc = container?.ownerDocument || document;\n const currentElement = current ?? doc.activeElement;\n if (!currentElement) return null;\n const index = tabbables.indexOf(currentElement);\n return tabbables[index + 1] || null;\n}\nfunction getTabIndex(node) {\n if (node.tabIndex < 0) {\n if ((/^(audio|video|details)$/.test(node.localName) || isEditableElement(node)) && !hasTabIndex(node)) {\n return 0;\n }\n }\n return node.tabIndex;\n}\n\n// src/initial-focus.ts\nfunction getInitialFocus(options) {\n const { root, getInitialEl, filter, enabled = true } = options;\n if (!enabled) return;\n let node = null;\n node || (node = typeof getInitialEl === \"function\" ? getInitialEl() : getInitialEl);\n node || (node = root?.querySelector(\"[data-autofocus],[autofocus]\"));\n if (!node) {\n const tabbables = getTabbables(root);\n node = filter ? tabbables.filter(filter)[0] : tabbables[0];\n }\n return node || root || void 0;\n}\nfunction isValidTabEvent(event) {\n const container = event.currentTarget;\n if (!container) return false;\n const [firstTabbable, lastTabbable] = getTabbableEdges(container);\n const doc = container.ownerDocument || document;\n if (doc.activeElement === firstTabbable && event.shiftKey) return false;\n if (doc.activeElement === lastTabbable && !event.shiftKey) return false;\n if (!firstTabbable && !lastTabbable) return false;\n return true;\n}\n\n// src/raf.ts\nfunction nextTick(fn) {\n const set = /* @__PURE__ */ new Set();\n function raf2(fn2) {\n const id = globalThis.requestAnimationFrame(fn2);\n set.add(() => globalThis.cancelAnimationFrame(id));\n }\n raf2(() => raf2(fn));\n return function cleanup() {\n set.forEach((fn2) => fn2());\n };\n}\nfunction raf(fn) {\n let cleanup;\n const id = globalThis.requestAnimationFrame(() => {\n cleanup = fn();\n });\n return () => {\n globalThis.cancelAnimationFrame(id);\n cleanup?.();\n };\n}\nfunction queueBeforeEvent(el, type, cb) {\n const cancelTimer = raf(() => {\n el.removeEventListener(type, exec, true);\n cb();\n });\n const exec = () => {\n cancelTimer();\n cb();\n };\n el.addEventListener(type, exec, { once: true, capture: true });\n return cancelTimer;\n}\n\n// src/mutation-observer.ts\nfunction observeAttributesImpl(node, options) {\n if (!node) return;\n const { attributes, callback: fn } = options;\n const win = node.ownerDocument.defaultView || window;\n const obs = new win.MutationObserver((changes) => {\n for (const change of changes) {\n if (change.type === \"attributes\" && change.attributeName && attributes.includes(change.attributeName)) {\n fn(change);\n }\n }\n });\n obs.observe(node, { attributes: true, attributeFilter: attributes });\n return () => obs.disconnect();\n}\nfunction observeAttributes(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n cleanups.push(observeAttributesImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction observeChildrenImpl(node, options) {\n const { callback: fn } = options;\n if (!node) return;\n const win = node.ownerDocument.defaultView || window;\n const obs = new win.MutationObserver(fn);\n obs.observe(node, { childList: true, subtree: true });\n return () => obs.disconnect();\n}\nfunction observeChildren(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n cleanups.push(observeChildrenImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/navigate.ts\nfunction clickIfLink(el) {\n const click = () => el.click();\n if (isFirefox()) {\n queueBeforeEvent(el, \"keyup\", click);\n } else {\n queueMicrotask(click);\n }\n}\n\n// src/overflow.ts\nfunction getNearestOverflowAncestor(el) {\n const parentNode = getParentNode(el);\n if (isRootElement(parentNode)) return getDocument(parentNode).body;\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) return parentNode;\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(el, list = []) {\n const scrollableAncestor = getNearestOverflowAncestor(el);\n const isBody = scrollableAncestor === el.ownerDocument.body;\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, []));\n}\nvar getElementRect = (el) => {\n if (isHTMLElement(el)) return el.getBoundingClientRect();\n if (isVisualViewport(el)) return { top: 0, left: 0, bottom: el.height, right: el.width };\n return { top: 0, left: 0, bottom: el.innerHeight, right: el.innerWidth };\n};\nfunction isInView(el, ancestor) {\n if (!isHTMLElement(el)) return true;\n const ancestorRect = getElementRect(ancestor);\n const elRect = el.getBoundingClientRect();\n return elRect.top >= ancestorRect.top && elRect.left >= ancestorRect.left && elRect.bottom <= ancestorRect.bottom && elRect.right <= ancestorRect.right;\n}\nvar OVERFLOW_RE = /auto|scroll|overlay|hidden|clip/;\nfunction isOverflowElement(el) {\n const win = getWindow(el);\n const { overflow, overflowX, overflowY, display } = win.getComputedStyle(el);\n return OVERFLOW_RE.test(overflow + overflowY + overflowX) && ![\"inline\", \"contents\"].includes(display);\n}\nfunction isScrollable(el) {\n return el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth;\n}\nfunction scrollIntoView(el, options) {\n const { rootEl, ...scrollOptions } = options || {};\n if (!el || !rootEl) return;\n if (!isOverflowElement(rootEl) || !isScrollable(rootEl)) return;\n el.scrollIntoView(scrollOptions);\n}\nfunction getScrollPosition(element) {\n if (isHTMLElement(element)) {\n return { scrollLeft: element.scrollLeft, scrollTop: element.scrollTop };\n }\n return { scrollLeft: element.scrollX, scrollTop: element.scrollY };\n}\n\n// src/point.ts\nfunction getRelativePoint(point, element) {\n const { left, top, width, height } = element.getBoundingClientRect();\n const offset = { x: point.x - left, y: point.y - top };\n const percent = { x: clamp(offset.x / width), y: clamp(offset.y / height) };\n function getPercentValue(options = {}) {\n const { dir = \"ltr\", orientation = \"horizontal\", inverted } = options;\n const invertX = typeof inverted === \"object\" ? inverted.x : inverted;\n const invertY = typeof inverted === \"object\" ? inverted.y : inverted;\n if (orientation === \"horizontal\") {\n return dir === \"rtl\" || invertX ? 1 - percent.x : percent.x;\n }\n return invertY ? 1 - percent.y : percent.y;\n }\n return { offset, percent, getPercentValue };\n}\n\n// src/pointer-lock.ts\nfunction requestPointerLock(doc, fn) {\n const body = doc.body;\n const supported = \"pointerLockElement\" in doc || \"mozPointerLockElement\" in doc;\n const isLocked = () => !!doc.pointerLockElement;\n function onPointerChange() {\n fn?.(isLocked());\n }\n function onPointerError(event) {\n if (isLocked()) fn?.(false);\n console.error(\"PointerLock error occurred:\", event);\n doc.exitPointerLock();\n }\n if (!supported) return;\n try {\n body.requestPointerLock();\n } catch {\n }\n const cleanup = [\n addDomEvent(doc, \"pointerlockchange\", onPointerChange, false),\n addDomEvent(doc, \"pointerlockerror\", onPointerError, false)\n ];\n return () => {\n cleanup.forEach((cleanup2) => cleanup2());\n doc.exitPointerLock();\n };\n}\n\n// src/text-selection.ts\nvar state = \"default\";\nvar userSelect = \"\";\nvar elementMap = /* @__PURE__ */ new WeakMap();\nfunction disableTextSelectionImpl(options = {}) {\n const { target, doc } = options;\n const docNode = doc ?? document;\n const rootEl = docNode.documentElement;\n if (isIos()) {\n if (state === \"default\") {\n userSelect = rootEl.style.webkitUserSelect;\n rootEl.style.webkitUserSelect = \"none\";\n }\n state = \"disabled\";\n } else if (target) {\n elementMap.set(target, target.style.userSelect);\n target.style.userSelect = \"none\";\n }\n return () => restoreTextSelection({ target, doc: docNode });\n}\nfunction restoreTextSelection(options = {}) {\n const { target, doc } = options;\n const docNode = doc ?? document;\n const rootEl = docNode.documentElement;\n if (isIos()) {\n if (state !== \"disabled\") return;\n state = \"restoring\";\n setTimeout(() => {\n nextTick(() => {\n if (state === \"restoring\") {\n if (rootEl.style.webkitUserSelect === \"none\") {\n rootEl.style.webkitUserSelect = userSelect || \"\";\n }\n userSelect = \"\";\n state = \"default\";\n }\n });\n }, 300);\n } else {\n if (target && elementMap.has(target)) {\n const prevUserSelect = elementMap.get(target);\n if (target.style.userSelect === \"none\") {\n target.style.userSelect = prevUserSelect ?? \"\";\n }\n if (target.getAttribute(\"style\") === \"\") {\n target.removeAttribute(\"style\");\n }\n elementMap.delete(target);\n }\n }\n}\nfunction disableTextSelection(options = {}) {\n const { defer, target, ...restOptions } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof target === \"function\" ? target() : target;\n cleanups.push(disableTextSelectionImpl({ ...restOptions, target: node }));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/pointer-move.ts\nfunction trackPointerMove(doc, handlers) {\n const { onPointerMove, onPointerUp } = handlers;\n const handleMove = (event) => {\n const point = getEventPoint(event);\n const distance = Math.sqrt(point.x ** 2 + point.y ** 2);\n const moveBuffer = event.pointerType === \"touch\" ? 10 : 5;\n if (distance < moveBuffer) return;\n if (event.pointerType === \"mouse\" && event.button === 0) {\n onPointerUp();\n return;\n }\n onPointerMove({ point, event });\n };\n const cleanups = [\n addDomEvent(doc, \"pointermove\", handleMove, false),\n addDomEvent(doc, \"pointerup\", onPointerUp, false),\n addDomEvent(doc, \"pointercancel\", onPointerUp, false),\n addDomEvent(doc, \"contextmenu\", onPointerUp, false),\n disableTextSelection({ doc })\n ];\n return () => {\n cleanups.forEach((cleanup) => cleanup());\n };\n}\n\n// src/press.ts\nfunction trackPress(options) {\n const {\n pointerNode,\n keyboardNode = pointerNode,\n onPress,\n onPressStart,\n onPressEnd,\n isValidKey = (e) => e.key === \"Enter\"\n } = options;\n if (!pointerNode) return noop;\n const win = getWindow(pointerNode);\n const doc = getDocument(pointerNode);\n let removeStartListeners = noop;\n let removeEndListeners = noop;\n let removeAccessibleListeners = noop;\n const getInfo = (event) => ({\n point: getEventPoint(event),\n event\n });\n function startPress(event) {\n onPressStart?.(getInfo(event));\n }\n function cancelPress(event) {\n onPressEnd?.(getInfo(event));\n }\n const startPointerPress = (startEvent) => {\n removeEndListeners();\n const endPointerPress = (endEvent) => {\n const target = getEventTarget(endEvent);\n if (contains(pointerNode, target)) {\n onPress?.(getInfo(endEvent));\n } else {\n onPressEnd?.(getInfo(endEvent));\n }\n };\n const removePointerUpListener = addDomEvent(win, \"pointerup\", endPointerPress, { passive: !onPress, once: true });\n const removePointerCancelListener = addDomEvent(win, \"pointercancel\", cancelPress, {\n passive: !onPressEnd,\n once: true\n });\n removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n if (doc.activeElement === keyboardNode && startEvent.pointerType === \"mouse\") {\n startEvent.preventDefault();\n }\n startPress(startEvent);\n };\n const removePointerListener = addDomEvent(pointerNode, \"pointerdown\", startPointerPress, { passive: !onPressStart });\n const removeFocusListener = addDomEvent(keyboardNode, \"focus\", startAccessiblePress);\n removeStartListeners = pipe(removePointerListener, removeFocusListener);\n function startAccessiblePress() {\n const handleKeydown = (keydownEvent) => {\n if (!isValidKey(keydownEvent)) return;\n const handleKeyup = (keyupEvent) => {\n if (!isValidKey(keyupEvent)) return;\n const evt2 = new win.PointerEvent(\"pointerup\");\n const info = getInfo(evt2);\n onPress?.(info);\n onPressEnd?.(info);\n };\n removeEndListeners();\n removeEndListeners = addDomEvent(keyboardNode, \"keyup\", handleKeyup);\n const evt = new win.PointerEvent(\"pointerdown\");\n startPress(evt);\n };\n const handleBlur = () => {\n const evt = new win.PointerEvent(\"pointercancel\");\n cancelPress(evt);\n };\n const removeKeydownListener = addDomEvent(keyboardNode, \"keydown\", handleKeydown);\n const removeBlurListener = addDomEvent(keyboardNode, \"blur\", handleBlur);\n removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n }\n return () => {\n removeStartListeners();\n removeEndListeners();\n removeAccessibleListeners();\n };\n}\n\n// src/proxy-tab-focus.ts\nfunction proxyTabFocusImpl(container, options = {}) {\n const { triggerElement, onFocus, onFocusEnter } = options;\n const doc = container?.ownerDocument || document;\n const body = doc.body;\n function onKeyDown(event) {\n if (event.key !== \"Tab\") return;\n let elementToFocus = null;\n const [firstTabbable, lastTabbable] = getTabbableEdges(container, true);\n const nextTabbableAfterTrigger = getNextTabbable(body, triggerElement);\n const noTabbableElements = !firstTabbable && !lastTabbable;\n if (event.shiftKey && nextTabbableAfterTrigger === doc.activeElement) {\n onFocusEnter?.();\n elementToFocus = lastTabbable;\n } else if (event.shiftKey && (doc.activeElement === firstTabbable || noTabbableElements)) {\n elementToFocus = triggerElement;\n } else if (!event.shiftKey && doc.activeElement === triggerElement) {\n onFocusEnter?.();\n elementToFocus = firstTabbable;\n } else if (!event.shiftKey && (doc.activeElement === lastTabbable || noTabbableElements)) {\n elementToFocus = nextTabbableAfterTrigger;\n }\n if (!elementToFocus) return;\n event.preventDefault();\n if (typeof onFocus === \"function\") {\n onFocus(elementToFocus);\n } else {\n elementToFocus.focus();\n }\n }\n return addDomEvent(doc, \"keydown\", onKeyDown, true);\n}\nfunction proxyTabFocus(container, options) {\n const { defer, triggerElement, ...restOptions } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof container === \"function\" ? container() : container;\n const trigger = typeof triggerElement === \"function\" ? triggerElement() : triggerElement;\n cleanups.push(proxyTabFocusImpl(node, { triggerElement: trigger, ...restOptions }));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/query.ts\nfunction queryAll(root, selector) {\n return Array.from(root?.querySelectorAll(selector) ?? []);\n}\nfunction query(root, selector) {\n return root?.querySelector(selector) ?? null;\n}\nvar defaultItemToId = (v) => v.id;\nfunction itemById(v, id, itemToId = defaultItemToId) {\n return v.find((item) => itemToId(item) === id);\n}\nfunction indexOfId(v, id, itemToId = defaultItemToId) {\n const item = itemById(v, id, itemToId);\n return item ? v.indexOf(item) : -1;\n}\nfunction nextById(v, id, loop = true) {\n let idx = indexOfId(v, id);\n idx = loop ? (idx + 1) % v.length : Math.min(idx + 1, v.length - 1);\n return v[idx];\n}\nfunction prevById(v, id, loop = true) {\n let idx = indexOfId(v, id);\n if (idx === -1) return loop ? v[v.length - 1] : null;\n idx = loop ? (idx - 1 + v.length) % v.length : Math.max(0, idx - 1);\n return v[idx];\n}\n\n// src/resize-observer.ts\nfunction trackElementRect(elements, options) {\n const { onEntry, measure, box = \"border-box\" } = options;\n const elems = (Array.isArray(elements) ? elements : [elements]).filter(isHTMLElement);\n const win = getWindow(elems[0]);\n const trigger = (entries) => {\n const rects = elems.map((el) => measure(el));\n onEntry({ rects, entries });\n };\n trigger([]);\n const obs = new win.ResizeObserver(trigger);\n elems.forEach((el) => obs.observe(el, { box }));\n return () => obs.disconnect();\n}\n\n// src/scope.ts\nfunction createScope(methods) {\n const dom = {\n getRootNode: (ctx) => ctx.getRootNode?.() ?? document,\n getDoc: (ctx) => getDocument(dom.getRootNode(ctx)),\n getWin: (ctx) => dom.getDoc(ctx).defaultView ?? window,\n getActiveElement: (ctx) => getActiveElement(dom.getRootNode(ctx)),\n isActiveElement: (ctx, elem) => elem === dom.getActiveElement(ctx),\n getById: (ctx, id) => dom.getRootNode(ctx).getElementById(id),\n setValue: (elem, value) => {\n if (elem == null || value == null) return;\n setElementValue(elem, value.toString());\n }\n };\n return { ...dom, ...methods };\n}\n\n// src/searchable.ts\nvar sanitize = (str) => str.split(\"\").map((char) => {\n const code = char.charCodeAt(0);\n if (code > 0 && code < 128) return char;\n if (code >= 128 && code <= 255) return `/x${code.toString(16)}`.replace(\"/\", \"\\\\\");\n return \"\";\n}).join(\"\").trim();\nvar getValueText = (el) => {\n return sanitize(el.dataset?.valuetext ?? el.textContent ?? \"\");\n};\nvar match = (valueText, query2) => {\n return valueText.trim().toLowerCase().startsWith(query2.toLowerCase());\n};\nfunction getByText(v, text, currentId, itemToId = defaultItemToId) {\n const index = currentId ? indexOfId(v, currentId, itemToId) : -1;\n let items = currentId ? wrap(v, index) : v;\n const isSingleKey = text.length === 1;\n if (isSingleKey) {\n items = items.filter((item) => itemToId(item) !== currentId);\n }\n return items.find((item) => match(getValueText(item), text));\n}\n\n// src/set.ts\nfunction setAttribute(el, attr, v) {\n const prev = el.getAttribute(attr);\n const exists = prev != null;\n el.setAttribute(attr, v);\n return () => {\n if (!exists) {\n el.removeAttribute(attr);\n } else {\n el.setAttribute(attr, prev);\n }\n };\n}\nfunction setProperty(el, prop, v) {\n const exists = prop in el;\n const prev = el[prop];\n el[prop] = v;\n return () => {\n if (!exists) {\n delete el[prop];\n } else {\n el[prop] = prev;\n }\n };\n}\nfunction setStyle(el, style) {\n if (!el) return noop;\n const prev = Object.keys(style).reduce((acc, key) => {\n acc[key] = el.style.getPropertyValue(key);\n return acc;\n }, {});\n Object.assign(el.style, style);\n return () => {\n Object.assign(el.style, prev);\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n };\n}\nfunction setStyleProperty(el, prop, value) {\n if (!el) return noop;\n const prev = el.style.getPropertyValue(prop);\n el.style.setProperty(prop, value);\n return () => {\n el.style.setProperty(prop, prev);\n if (el.style.length === 0) {\n el.removeAttribute(\"style\");\n }\n };\n}\n\n// src/typeahead.ts\nfunction getByTypeaheadImpl(baseItems, options) {\n const { state: state2, activeId, key, timeout = 350, itemToId } = options;\n const search = state2.keysSoFar + key;\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const query2 = isRepeated ? search[0] : search;\n let items = baseItems.slice();\n const next = getByText(items, query2, activeId, itemToId);\n function cleanup() {\n clearTimeout(state2.timer);\n state2.timer = -1;\n }\n function update(value) {\n state2.keysSoFar = value;\n cleanup();\n if (value !== \"\") {\n state2.timer = +setTimeout(() => {\n update(\"\");\n cleanup();\n }, timeout);\n }\n }\n update(search);\n return next;\n}\nvar getByTypeahead = /* @__PURE__ */ Object.assign(getByTypeaheadImpl, {\n defaultOptions: { keysSoFar: \"\", timer: -1 },\n isValidEvent: isValidTypeaheadEvent\n});\nfunction isValidTypeaheadEvent(event) {\n return event.key.length === 1 && !event.ctrlKey && !event.metaKey;\n}\n\n// src/visual-viewport.ts\nfunction trackVisualViewport(doc, fn) {\n const win = doc?.defaultView || window;\n const onResize = () => {\n fn?.(getViewportSize(win));\n };\n onResize();\n return addDomEvent(win.visualViewport ?? win, \"resize\", onResize);\n}\nfunction getViewportSize(win) {\n return {\n width: win.visualViewport?.width || win.innerWidth,\n height: win.visualViewport?.height || win.innerHeight\n };\n}\n\n// src/visually-hidden.ts\nvar visuallyHiddenStyle = {\n border: \"0\",\n clip: \"rect(0 0 0 0)\",\n height: \"1px\",\n margin: \"-1px\",\n overflow: \"hidden\",\n padding: \"0\",\n position: \"absolute\",\n width: \"1px\",\n whiteSpace: \"nowrap\",\n wordWrap: \"normal\"\n};\nfunction setVisuallyHidden(el) {\n Object.assign(el.style, visuallyHiddenStyle);\n}\n\n// src/wait-for.ts\nvar fps = 1e3 / 60;\nfunction waitForElement(query2, cb) {\n const el = query2();\n if (isHTMLElement(el) && el.isConnected) {\n cb(el);\n return () => void 0;\n } else {\n const timerId = setInterval(() => {\n const el2 = query2();\n if (isHTMLElement(el2) && el2.isConnected) {\n cb(el2);\n clearInterval(timerId);\n }\n }, fps);\n return () => clearInterval(timerId);\n }\n}\nfunction waitForElements(queries, cb) {\n const cleanups = [];\n queries?.forEach((query2) => {\n const clean = waitForElement(query2, cb);\n cleanups.push(clean);\n });\n return () => {\n cleanups.forEach((fn) => fn());\n };\n}\n\nexport { MAX_Z_INDEX, addDomEvent, ariaAttr, clickIfLink, contains, createScope, dataAttr, defaultItemToId, disableTextSelection, dispatchInputCheckedEvent, dispatchInputValueEvent, getActiveElement, getBeforeInputValue, getByText, getByTypeahead, getComputedStyle, getDataUrl, getDocument, getDocumentElement, getEventKey, getEventPoint, getEventStep, getEventTarget, getFirstFocusable, getFirstTabbable, getFocusables, getInitialFocus, getLastTabbable, getNativeEvent, getNearestOverflowAncestor, getNextTabbable, getNodeName, getOverflowAncestors, getParentNode, getPlatform, getRelativePoint, getScrollPosition, getTabIndex, getTabbableEdges, getTabbables, getUserAgent, getWindow, indexOfId, isAnchorElement, isAndroid, isApple, isCaretAtStart, isChrome, isComposingEvent, isContextMenuEvent, isCtrlOrMetaKey, isDocument, isDom, isDownloadingEvent, isEditableElement, isElementVisible, isFirefox, isFocusable, isHTMLElement, isIPad, isIPhone, isInView, isInputElement, isIos, isKeyboardClick, isLeftClick, isMac, isModifierKey, isNode, isOpeningInNewTab, isOverflowElement, isPrintableKey, isRootElement, isSafari, isSelfTarget, isShadowRoot, isTabbable, isTouchDevice, isTouchEvent, isValidTabEvent, isVirtualClick, isVirtualPointerEvent, isVisualViewport, isWebKit, isWindow, itemById, nextById, nextTick, observeAttributes, observeChildren, prevById, proxyTabFocus, query, queryAll, queueBeforeEvent, raf, requestPointerLock, restoreTextSelection, scrollIntoView, setAttribute, setCaretToEnd, setElementChecked, setElementValue, setProperty, setStyle, setStyleProperty, setVisuallyHidden, trackElementRect, trackFormControl, trackPointerMove, trackPress, trackVisualViewport, visuallyHiddenStyle, waitForElement, waitForElements };\n","import { callAll, isEqual, isString } from '@zag-js/utils';\nimport { getActiveElement, getDocument } from '@zag-js/dom-query';\n\n// src/merge-props.ts\nvar clsx = (...args) => args.map((str) => str?.trim?.()).filter(Boolean).join(\" \");\nvar CSS_REGEX = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g;\nvar serialize = (style) => {\n const res = {};\n let match;\n while (match = CSS_REGEX.exec(style)) {\n res[match[1]] = match[2];\n }\n return res;\n};\nvar css = (a, b) => {\n if (isString(a)) {\n if (isString(b)) return `${a};${b}`;\n a = serialize(a);\n } else if (isString(b)) {\n b = serialize(b);\n }\n return Object.assign({}, a ?? {}, b ?? {});\n};\nfunction mergeProps(...args) {\n let result = {};\n for (let props of args) {\n for (let key in result) {\n if (key.startsWith(\"on\") && typeof result[key] === \"function\" && typeof props[key] === \"function\") {\n result[key] = callAll(props[key], result[key]);\n continue;\n }\n if (key === \"className\" || key === \"class\") {\n result[key] = clsx(result[key], props[key]);\n continue;\n }\n if (key === \"style\") {\n result[key] = css(result[key], props[key]);\n continue;\n }\n result[key] = props[key] !== void 0 ? props[key] : result[key];\n }\n for (let key in props) {\n if (result[key] === void 0) {\n result[key] = props[key];\n }\n }\n }\n return result;\n}\nfunction memo(getDeps, fn, opts) {\n let deps = [];\n let result;\n return (depArgs) => {\n const newDeps = getDeps(depArgs);\n const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => !isEqual(deps[index], dep));\n if (!depsChanged) return result;\n deps = newDeps;\n result = fn(...newDeps);\n opts?.onChange?.(result);\n return result;\n };\n}\n\n// src/create-machine.ts\nfunction createGuards() {\n return {\n and: (...guards) => {\n return function andGuard(params) {\n return guards.every((str) => params.guard(str));\n };\n },\n or: (...guards) => {\n return function orGuard(params) {\n return guards.some((str) => params.guard(str));\n };\n },\n not: (guard) => {\n return function notGuard(params) {\n return !params.guard(guard);\n };\n }\n };\n}\nfunction createMachine(config) {\n return config;\n}\nfunction setup() {\n return {\n guards: createGuards(),\n createMachine: (config) => {\n return createMachine(config);\n },\n choose: (transitions) => {\n return function chooseFn({ choose }) {\n return choose(transitions)?.actions;\n };\n }\n };\n}\n\n// src/types.ts\nvar MachineStatus = /* @__PURE__ */ ((MachineStatus2) => {\n MachineStatus2[\"NotStarted\"] = \"Not Started\";\n MachineStatus2[\"Started\"] = \"Started\";\n MachineStatus2[\"Stopped\"] = \"Stopped\";\n return MachineStatus2;\n})(MachineStatus || {});\nvar INIT_STATE = \"__init__\";\nfunction createScope(props) {\n const getRootNode = () => props.getRootNode?.() ?? document;\n const getDoc = () => getDocument(getRootNode());\n const getWin = () => getDoc().defaultView ?? window;\n const getActiveElementFn = () => getActiveElement(getRootNode());\n const isActiveElement = (elem) => elem === getActiveElementFn();\n const getById = (id) => getRootNode().getElementById(id);\n return {\n ...props,\n getRootNode,\n getDoc,\n getWin,\n getActiveElement: getActiveElementFn,\n isActiveElement,\n getById\n };\n}\n\nexport { INIT_STATE, MachineStatus, createGuards, createMachine, createScope, memo, mergeProps, setup };\n","// src/prop-types.ts\nfunction createNormalizer(fn) {\n return new Proxy({}, {\n get(_target, key) {\n if (key === \"style\")\n return (props) => {\n return fn({ style: props }).style;\n };\n return fn;\n }\n });\n}\n\n// src/create-props.ts\nvar createProps = () => (props) => Array.from(new Set(props));\n\nexport { createNormalizer, createProps };\n","\"use client\";\n\nimport { createScope, MachineStatus, INIT_STATE } from '@zag-js/core';\nexport { mergeProps } from '@zag-js/core';\nimport { compact, ensure, isFunction, warn, toArray, isString, identity } from '@zag-js/utils';\nimport * as React from 'react';\nimport { useMemo, useRef, useLayoutEffect, useEffect, useState } from 'react';\nimport { flushSync, createPortal } from 'react-dom';\nimport { createNormalizer } from '@zag-js/types';\nimport { jsx } from 'react/jsx-runtime';\n\n// src/index.ts\nvar useSafeLayoutEffect = typeof globalThis.document !== \"undefined\" ? useLayoutEffect : useEffect;\n\n// src/bindable.ts\nfunction useBindable(props) {\n const initial = props().value ?? props().defaultValue;\n const eq = props().isEqual ?? Object.is;\n const [initialValue] = useState(initial);\n const [value, setValue] = useState(initialValue);\n const controlled = props().value !== void 0;\n const valueRef = useRef(value);\n valueRef.current = controlled ? props().value : value;\n const prevValue = useRef(valueRef.current);\n useSafeLayoutEffect(() => {\n prevValue.current = valueRef.current;\n }, [value, props().value]);\n const setFn = (value2) => {\n const prev = prevValue.current;\n const next = isFunction(value2) ? value2(prev) : value2;\n if (props().debug) {\n console.log(`[bindable > ${props().debug}] setValue`, { next, prev });\n }\n if (!controlled) setValue(next);\n if (!eq(next, prev)) {\n props().onChange?.(next, prev);\n }\n };\n function get() {\n return controlled ? props().value : value;\n }\n return {\n initial: initialValue,\n ref: valueRef,\n get,\n set(value2) {\n const exec = props().sync ? flushSync : identity;\n exec(() => setFn(value2));\n },\n invoke(nextValue, prevValue2) {\n props().onChange?.(nextValue, prevValue2);\n },\n hash(value2) {\n return props().hash?.(value2) ?? String(value2);\n }\n };\n}\nuseBindable.cleanup = (fn) => {\n useEffect(() => fn, []);\n};\nuseBindable.ref = (defaultValue) => {\n const value = useRef(defaultValue);\n return {\n get: () => value.current,\n set: (next) => {\n value.current = next;\n }\n };\n};\nfunction useRefs(refs) {\n const ref = useRef(refs);\n return {\n get(key) {\n return ref.current[key];\n },\n set(key, value) {\n ref.current[key] = value;\n }\n };\n}\nvar useTrack = (deps, effect) => {\n const render = useRef(false);\n const called = useRef(false);\n useEffect(() => {\n const mounted = render.current;\n const run = mounted && called.current;\n if (run) return effect();\n called.current = true;\n }, [...(deps ?? []).map((d) => typeof d === \"function\" ? d() : d)]);\n useEffect(() => {\n render.current = true;\n return () => {\n render.current = false;\n };\n }, []);\n};\n\n// src/machine.ts\nfunction useMachine(machine, userProps = {}) {\n const scope = useMemo(() => {\n const { id, ids, getRootNode } = userProps;\n return createScope({ id, ids, getRootNode });\n }, [userProps]);\n const debug = (...args) => {\n if (machine.debug) console.log(...args);\n };\n const props = machine.props?.({ props: compact(userProps), scope }) ?? userProps;\n const prop = useProp(props);\n const context = machine.context?.({\n prop,\n bindable: useBindable,\n scope,\n flush,\n getContext() {\n return ctx;\n },\n getComputed() {\n return computed;\n },\n getRefs() {\n return refs;\n }\n });\n const contextRef = useLiveRef(context);\n const ctx = {\n get(key) {\n return contextRef.current?.[key].ref.current;\n },\n set(key, value) {\n contextRef.current?.[key].set(value);\n },\n initial(key) {\n return contextRef.current?.[key].initial;\n },\n hash(key) {\n const current = contextRef.current?.[key].get();\n return contextRef.current?.[key].hash(current);\n }\n };\n const effects = useRef(/* @__PURE__ */ new Map());\n const transitionRef = useRef(null);\n const previousEventRef = useRef(null);\n const eventRef = useRef({ type: \"\" });\n const getEvent = () => ({\n ...eventRef.current,\n current() {\n return eventRef.current;\n },\n previous() {\n return previousEventRef.current;\n }\n });\n const getState = () => ({\n ...state,\n matches(...values) {\n return values.includes(state.ref.current);\n },\n hasTag(tag) {\n return !!machine.states[state.ref.current]?.tags?.includes(tag);\n }\n });\n const refs = useRefs(machine.refs?.({ prop, context: ctx }) ?? {});\n const getParams = () => ({\n state: getState(),\n context: ctx,\n event: getEvent(),\n prop,\n send,\n action,\n guard,\n track: useTrack,\n refs,\n computed,\n flush,\n scope,\n choose\n });\n const action = (keys) => {\n const strs = isFunction(keys) ? keys(getParams()) : keys;\n if (!strs) return;\n const fns = strs.map((s) => {\n const fn = machine.implementations?.actions?.[s];\n if (!fn) warn(`[zag-js] No implementation found for action \"${JSON.stringify(s)}\"`);\n return fn;\n });\n for (const fn of fns) {\n fn?.(getParams());\n }\n };\n const guard = (str) => {\n if (isFunction(str)) return str(getParams());\n return machine.implementations?.guards?.[str](getParams());\n };\n const effect = (keys) => {\n const strs = isFunction(keys) ? keys(getParams()) : keys;\n if (!strs) return;\n const fns = strs.map((s) => {\n const fn = machine.implementations?.effects?.[s];\n if (!fn) warn(`[zag-js] No implementation found for effect \"${JSON.stringify(s)}\"`);\n return fn;\n });\n const cleanups = [];\n for (const fn of fns) {\n const cleanup = fn?.(getParams());\n if (cleanup) cleanups.push(cleanup);\n }\n return () => cleanups.forEach((fn) => fn?.());\n };\n const choose = (transitions) => {\n return toArray(transitions).find((t) => {\n let result = !t.guard;\n if (isString(t.guard)) result = !!guard(t.guard);\n else if (isFunction(t.guard)) result = t.guard(getParams());\n return result;\n });\n };\n const computed = (key) => {\n ensure(machine.computed, () => `[zag-js] No computed object found on machine`);\n const fn = machine.computed[key];\n return fn({\n context: ctx,\n event: getEvent(),\n prop,\n refs,\n scope,\n computed\n });\n };\n const state = useBindable(() => ({\n defaultValue: machine.initialState({ prop }),\n onChange(nextState, prevState) {\n if (prevState) {\n const exitEffects = effects.current.get(prevState);\n exitEffects?.();\n effects.current.delete(prevState);\n }\n if (prevState) {\n action(machine.states[prevState]?.exit);\n }\n action(transitionRef.current?.actions);\n const cleanup = effect(machine.states[nextState]?.effects);\n if (cleanup) effects.current.set(nextState, cleanup);\n if (prevState === INIT_STATE) {\n action(machine.entry);\n const cleanup2 = effect(machine.effects);\n if (cleanup2) effects.current.set(INIT_STATE, cleanup2);\n }\n action(machine.states[nextState]?.entry);\n }\n }));\n const hydratedStateRef = useRef(void 0);\n const statusRef = useRef(MachineStatus.NotStarted);\n useSafeLayoutEffect(() => {\n queueMicrotask(() => {\n const started = statusRef.current === MachineStatus.Started;\n statusRef.current = MachineStatus.Started;\n debug(started ? \"rehydrating...\" : \"initializing...\");\n const initialState = hydratedStateRef.current ?? state.initial;\n state.invoke(initialState, started ? state.get() : INIT_STATE);\n });\n const fns = effects.current;\n const currentState = state.ref.current;\n return () => {\n debug(\"unmounting...\");\n hydratedStateRef.current = currentState;\n statusRef.current = MachineStatus.Stopped;\n fns.forEach((fn) => fn?.());\n effects.current = /* @__PURE__ */ new Map();\n transitionRef.current = null;\n queueMicrotask(() => {\n action(machine.exit);\n });\n };\n }, []);\n const getCurrentState = () => {\n if (\"ref\" in state) return state.ref.current;\n return state.get();\n };\n const send = (event) => {\n queueMicrotask(() => {\n if (statusRef.current !== MachineStatus.Started) return;\n previousEventRef.current = eventRef.current;\n eventRef.current = event;\n debug(\"send\", event);\n let currentState = getCurrentState();\n const transitions = (\n // @ts-ignore\n machine.states[currentState].on?.[event.type] ?? // @ts-ignore\n machine.on?.[event.type]\n );\n const transition = choose(transitions);\n if (!transition) return;\n transitionRef.current = transition;\n const target = transition.target ?? currentState;\n debug(\"transition\", transition);\n const changed = target !== currentState;\n if (changed) {\n flushSync(() => state.set(target));\n } else if (transition.reenter && !changed) {\n state.invoke(currentState, currentState);\n } else {\n action(transition.actions ?? []);\n }\n });\n };\n machine.watch?.(getParams());\n return {\n state: getState(),\n send,\n context: ctx,\n prop,\n scope,\n refs,\n computed,\n event: getEvent(),\n getStatus: () => statusRef.current\n };\n}\nfunction useLiveRef(value) {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\nfunction useProp(value) {\n const ref = useLiveRef(value);\n return function get(key) {\n return ref.current[key];\n };\n}\nfunction flush(fn) {\n queueMicrotask(() => {\n flushSync(() => fn());\n });\n}\nvar normalizeProps = createNormalizer((v) => v);\nvar Portal = (props) => {\n const { children, container, disabled, getRootNode } = props;\n const isServer = typeof window === \"undefined\";\n if (isServer || disabled) return /* @__PURE__ */ jsx(React.Fragment, { children });\n const doc = getRootNode?.().ownerDocument ?? document;\n const mountNode = container?.current ?? doc.body;\n return /* @__PURE__ */ jsx(React.Fragment, { children: React.Children.map(children, (child) => createPortal(child, mountNode)) });\n};\n\nexport { Portal, normalizeProps, useMachine };\n","function composeRefs(...refs) {\n return (node) => {\n const cleanUps = [];\n for (const ref of refs) {\n if (typeof ref === \"function\") {\n const cb = ref(node);\n if (typeof cb === \"function\") {\n cleanUps.push(cb);\n }\n } else if (ref) {\n ref.current = node;\n }\n }\n if (cleanUps.length) {\n return () => {\n for (const cleanUp of cleanUps) {\n cleanUp();\n }\n };\n }\n };\n}\n\nexport { composeRefs };\n","import { mergeProps } from '@zag-js/core';\nimport { memo, forwardRef, createElement, Children, isValidElement, cloneElement } from 'react';\nimport { composeRefs } from '../utils/compose-refs.js';\n\nfunction getRef(element) {\n let getter = Object.getOwnPropertyDescriptor(element.props, \"ref\")?.get;\n let mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.ref;\n }\n getter = Object.getOwnPropertyDescriptor(element, \"ref\")?.get;\n mayWarn = getter && \"isReactWarning\" in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n return element.props.ref || element.ref;\n}\nconst withAsChild = (Component) => {\n const Comp = memo(\n forwardRef((props, ref) => {\n const { asChild, children, ...restProps } = props;\n if (!asChild) {\n return createElement(Component, { ...restProps, ref }, children);\n }\n const onlyChild = Children.only(children);\n if (!isValidElement(onlyChild)) {\n return null;\n }\n const childRef = getRef(onlyChild);\n return cloneElement(onlyChild, {\n ...mergeProps(restProps, onlyChild.props),\n ref: ref ? composeRefs(ref, childRef) : childRef\n });\n })\n );\n Comp.displayName = Component.displayName || Component.name;\n return Comp;\n};\nconst jsxFactory = () => {\n const cache = /* @__PURE__ */ new Map();\n return new Proxy(withAsChild, {\n apply(_target, _thisArg, argArray) {\n return withAsChild(argArray[0]);\n },\n get(_, element) {\n const asElement = element;\n if (!cache.has(asElement)) {\n cache.set(asElement, withAsChild(asElement));\n }\n return cache.get(asElement);\n }\n });\n};\nconst ark = jsxFactory();\n\nexport { ark, jsxFactory };\n","'use client';\nconst createSplitProps = () => (props, keys) => keys.reduce(\n (previousValue, currentValue) => {\n const [target, source] = previousValue;\n const key = currentValue;\n if (source[key] !== void 0) {\n target[key] = source[key];\n }\n delete source[key];\n return [target, source];\n },\n [{}, { ...props }]\n);\n\nexport { createSplitProps };\n","// src/create-anatomy.ts\nvar createAnatomy = (name, parts = []) => ({\n parts: (...values) => {\n if (isEmpty(parts)) {\n return createAnatomy(name, values);\n }\n throw new Error(\"createAnatomy().parts(...) should only be called once. Did you mean to use .extendWith(...) ?\");\n },\n extendWith: (...values) => createAnatomy(name, [...parts, ...values]),\n rename: (newName) => createAnatomy(newName, parts),\n keys: () => parts,\n build: () => [...new Set(parts)].reduce(\n (prev, part) => Object.assign(prev, {\n [part]: {\n selector: [\n `&[data-scope=\"${toKebabCase(name)}\"][data-part=\"${toKebabCase(part)}\"]`,\n `& [data-scope=\"${toKebabCase(name)}\"][data-part=\"${toKebabCase(part)}\"]`\n ].join(\", \"),\n attrs: { \"data-scope\": toKebabCase(name), \"data-part\": toKebabCase(part) }\n }\n }),\n {}\n )\n});\nvar toKebabCase = (value) => value.replace(/([A-Z])([A-Z])/g, \"$1-$2\").replace(/([a-z])([A-Z])/g, \"$1-$2\").replace(/[\\s_]+/g, \"-\").toLowerCase();\nvar isEmpty = (v) => v.length === 0;\n\nexport { createAnatomy };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [EnvironmentContextProvider, useEnvironmentContext] = createContext({\n name: \"EnvironmentContext\",\n hookName: \"useEnvironmentContext\",\n providerName: \"<EnvironmentProvider />\",\n strict: false,\n defaultValue: {\n getRootNode: () => document,\n getDocument: () => document,\n getWindow: () => window\n }\n});\n\nexport { EnvironmentContextProvider, useEnvironmentContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [LocaleContextProvider, useLocaleContext] = createContext({\n name: \"LocaleContext\",\n hookName: \"useLocaleContext\",\n providerName: \"<LocaleProvider />\",\n strict: false,\n defaultValue: { dir: \"ltr\", locale: \"en-US\" }\n});\n\nexport { LocaleContextProvider, useLocaleContext };\n","/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","function hasWindow() {\n return typeof window !== 'undefined';\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\nfunction getWindow(node) {\n var _node$ownerDocument;\n return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n var _ref;\n return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n if (!hasWindow()) {\n return false;\n }\n return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n if (!hasWindow() || typeof ShadowRoot === 'undefined') {\n return false;\n }\n return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n return [':popover-open', ':modal'].some(selector => {\n try {\n return element.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\nfunction isContainingBlock(elementOrCss) {\n const webkit = isWebKit();\n const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n // https://drafts.csswg.org/css-transforms-2/#individual-transforms\n return ['transform', 'translate', 'scale', 'rotate', 'perspective'].some(value => css[value] ? css[value] !== 'none' : false) || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'translate', 'scale', 'rotate', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else if (isTopLayer(currentNode)) {\n return null;\n }\n currentNode = getParentNode(currentNode);\n }\n return null;\n}\nfunction isWebKit() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.scrollX,\n scrollTop: element.scrollY\n };\n}\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n var _node$ownerDocument2;\n if (list === void 0) {\n list = [];\n }\n if (traverseIframes === void 0) {\n traverseIframes = true;\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n const frameElement = getFrameElement(win);\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], frameElement && traverseIframes ? getOverflowAncestors(frameElement) : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\nfunction getFrameElement(win) {\n return win.parent && Object.getPrototypeOf(win.parent) ? win.frameElement : null;\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getFrameElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n","import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getFrameElement, getNodeScroll, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n const win = getWindow(element);\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentWin = win;\n let currentIFrame = getFrameElement(currentWin);\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = getFrameElement(currentWin);\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\n// If <html> has a CSS width greater than the viewport, then this will be\n// incorrect for RTL.\nfunction getWindowScrollBarX(element, rect) {\n const leftScroll = getNodeScroll(element).scrollLeft;\n if (!rect) {\n return getBoundingClientRect(getDocumentElement(element)).left + leftScroll;\n }\n return rect.left + leftScroll;\n}\n\nfunction getHTMLOffset(documentElement, scroll, ignoreScrollbarX) {\n if (ignoreScrollbarX === void 0) {\n ignoreScrollbarX = false;\n }\n const htmlRect = documentElement.getBoundingClientRect();\n const x = htmlRect.left + scroll.scrollLeft - (ignoreScrollbarX ? 0 :\n // RTL <body> scrollbar.\n getWindowScrollBarX(documentElement, htmlRect));\n const y = htmlRect.top + scroll.scrollTop;\n return {\n x,\n y\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n elements,\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isFixed = strategy === 'fixed';\n const documentElement = getDocumentElement(offsetParent);\n const topLayer = elements ? isTopLayer(elements.floating) : false;\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createCoords(1);\n const offsets = createCoords(0);\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll, true) : createCoords(0);\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x + htmlOffset.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y + htmlOffset.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isWebKit();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y,\n width: clippingAncestor.width,\n height: clippingAncestor.height\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n const {\n width,\n height\n } = getCssDimensions(element);\n return {\n width,\n height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isOffsetParentAnElement) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n // If the <body> scrollbar appears on the left (e.g. RTL systems). Use\n // Firefox with layout.scrollbar.side = 3 in about:config to test this.\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n const htmlOffset = documentElement && !isOffsetParentAnElement && !isFixed ? getHTMLOffset(documentElement, scroll) : createCoords(0);\n const x = rect.left + scroll.scrollLeft - offsets.x - htmlOffset.x;\n const y = rect.top + scroll.scrollTop - offsets.y - htmlOffset.y;\n return {\n x,\n y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction isStaticPositioned(element) {\n return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n let rawOffsetParent = element.offsetParent;\n\n // Firefox returns the <html> element as the offsetParent if it's non-static,\n // while Chrome and Safari return the <body> element. The <body> element must\n // be used to perform the correct calculations even if the <html> element is\n // non-static.\n if (getDocumentElement(element) === rawOffsetParent) {\n rawOffsetParent = rawOffsetParent.ownerDocument.body;\n }\n return rawOffsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const win = getWindow(element);\n if (isTopLayer(element)) {\n return win;\n }\n if (!isHTMLElement(element)) {\n let svgOffsetParent = getParentNode(element);\n while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n return svgOffsetParent;\n }\n svgOffsetParent = getParentNode(svgOffsetParent);\n }\n return win;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n return win;\n }\n return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n const floatingDimensions = await getDimensionsFn(data.floating);\n return {\n reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n floating: {\n x: 0,\n y: 0,\n width: floatingDimensions.width,\n height: floatingDimensions.height\n }\n };\n};\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement,\n getClippingRect,\n getOffsetParent,\n getElementRects,\n getClientRects,\n getDimensions,\n getScale,\n isElement,\n isRTL\n};\n\nfunction rectsAreEqual(a, b) {\n return a.x === b.x && a.y === b.y && a.width === b.width && a.height === b.height;\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 elementRectForRootMargin = element.getBoundingClientRect();\n const {\n left,\n top,\n width,\n height\n } = elementRectForRootMargin;\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 if (ratio === 1 && !rectsAreEqual(elementRectForRootMargin, element.getBoundingClientRect())) {\n // It's possible that even though the ratio is reported as 1, the\n // element is not actually fully within the IntersectionObserver's root\n // area anymore. This can happen under performance constraints. This may\n // be a bug in the browser's IntersectionObserver implementation. To\n // work around this, we compare the element's bounding rect now with\n // what it was at the time we created the IntersectionObserver. If they\n // are not equal then the element moved, so we refresh.\n refresh();\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n var _resizeObserver;\n (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && !rectsAreEqual(prevRefRect, nextRefRect)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n var _resizeObserver2;\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo == null || cleanupIo();\n (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n","import { autoUpdate, offset, flip, shift, limitShift, arrow, size, hide, computePosition } from '@floating-ui/dom';\nimport { raf, isHTMLElement, getWindow, getComputedStyle } from '@zag-js/dom-query';\nimport { noop, isNull, compact, runIfFn } from '@zag-js/utils';\n\n// src/get-placement.ts\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 { ...rect, toJSON: () => rect };\n}\nfunction getDOMRect(anchorRect) {\n if (!anchorRect) return createDOMRect();\n const { x, y, width, height } = anchorRect;\n return createDOMRect(x, y, width, height);\n}\nfunction getAnchorElement(anchorElement, getAnchorRect) {\n return {\n contextElement: isHTMLElement(anchorElement) ? anchorElement : void 0,\n getBoundingClientRect: () => {\n const anchor = anchorElement;\n const anchorRect = getAnchorRect?.(anchor);\n if (anchorRect || !anchor) {\n return getDOMRect(anchorRect);\n }\n return anchor.getBoundingClientRect();\n }\n };\n}\n\n// src/middleware.ts\nvar toVar = (value) => ({ variable: value, reference: `var(${value})` });\nvar cssVars = {\n arrowSize: toVar(\"--arrow-size\"),\n arrowSizeHalf: toVar(\"--arrow-size-half\"),\n arrowBg: toVar(\"--arrow-background\"),\n transformOrigin: toVar(\"--transform-origin\"),\n arrowOffset: toVar(\"--arrow-offset\")\n};\nvar getTransformOrigin = (arrow2) => ({\n top: \"bottom center\",\n \"top-start\": arrow2 ? `${arrow2.x}px bottom` : \"left bottom\",\n \"top-end\": arrow2 ? `${arrow2.x}px bottom` : \"right bottom\",\n bottom: \"top center\",\n \"bottom-start\": arrow2 ? `${arrow2.x}px top` : \"top left\",\n \"bottom-end\": arrow2 ? `${arrow2.x}px top` : \"top right\",\n left: \"right center\",\n \"left-start\": arrow2 ? `right ${arrow2.y}px` : \"right top\",\n \"left-end\": arrow2 ? `right ${arrow2.y}px` : \"right bottom\",\n right: \"left center\",\n \"right-start\": arrow2 ? `left ${arrow2.y}px` : \"left top\",\n \"right-end\": arrow2 ? `left ${arrow2.y}px` : \"left bottom\"\n});\nvar transformOriginMiddleware = {\n name: \"transformOrigin\",\n fn({ placement, elements, middlewareData }) {\n const { arrow: arrow2 } = middlewareData;\n const transformOrigin = getTransformOrigin(arrow2)[placement];\n const { floating } = elements;\n floating.style.setProperty(cssVars.transformOrigin.variable, transformOrigin);\n return {\n data: { transformOrigin }\n };\n }\n};\nvar rectMiddleware = {\n name: \"rects\",\n fn({ rects }) {\n return {\n data: rects\n };\n }\n};\nvar shiftArrowMiddleware = (arrowEl) => {\n if (!arrowEl) return;\n return {\n name: \"shiftArrow\",\n fn({ placement, middlewareData }) {\n if (!middlewareData.arrow) return {};\n const { x, y } = middlewareData.arrow;\n const dir = placement.split(\"-\")[0];\n Object.assign(arrowEl.style, {\n left: x != null ? `${x}px` : \"\",\n top: y != null ? `${y}px` : \"\",\n [dir]: `calc(100% + ${cssVars.arrowOffset.reference})`\n });\n return {};\n }\n };\n};\n\n// src/placement.ts\nfunction isValidPlacement(v) {\n return /^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(v);\n}\nfunction getPlacementDetails(placement) {\n const [side, align] = placement.split(\"-\");\n return { side, align, hasAlign: align != null };\n}\nfunction getPlacementSide(placement) {\n return placement.split(\"-\")[0];\n}\n\n// src/get-placement.ts\nvar defaultOptions = {\n strategy: \"absolute\",\n placement: \"bottom\",\n listeners: true,\n gutter: 8,\n flip: true,\n slide: true,\n overlap: false,\n sameWidth: false,\n fitViewport: false,\n overflowPadding: 8,\n arrowPadding: 4\n};\nfunction roundByDpr(win, value) {\n const dpr = win.devicePixelRatio || 1;\n return Math.round(value * dpr) / dpr;\n}\nfunction getBoundaryMiddleware(opts) {\n return runIfFn(opts.boundary);\n}\nfunction getArrowMiddleware(arrowElement, opts) {\n if (!arrowElement) return;\n return arrow({\n element: arrowElement,\n padding: opts.arrowPadding\n });\n}\nfunction getOffsetMiddleware(arrowElement, opts) {\n if (isNull(opts.offset ?? opts.gutter)) return;\n return offset(({ placement }) => {\n const arrowOffset = (arrowElement?.clientHeight || 0) / 2;\n const gutter = opts.offset?.mainAxis ?? opts.gutter;\n const mainAxis = typeof gutter === \"number\" ? gutter + arrowOffset : gutter ?? arrowOffset;\n const { hasAlign } = getPlacementDetails(placement);\n const shift2 = !hasAlign ? opts.shift : void 0;\n const crossAxis = opts.offset?.crossAxis ?? shift2;\n return compact({\n crossAxis,\n mainAxis,\n alignmentAxis: opts.shift\n });\n });\n}\nfunction getFlipMiddleware(opts) {\n if (!opts.flip) return;\n return flip({\n boundary: getBoundaryMiddleware(opts),\n padding: opts.overflowPadding,\n fallbackPlacements: opts.flip === true ? void 0 : opts.flip\n });\n}\nfunction getShiftMiddleware(opts) {\n if (!opts.slide && !opts.overlap) return;\n return shift({\n boundary: getBoundaryMiddleware(opts),\n mainAxis: opts.slide,\n crossAxis: opts.overlap,\n padding: opts.overflowPadding,\n limiter: limitShift()\n });\n}\nfunction getSizeMiddleware(opts) {\n return size({\n padding: opts.overflowPadding,\n apply({ elements, rects, availableHeight, availableWidth }) {\n const floating = elements.floating;\n const referenceWidth = Math.round(rects.reference.width);\n availableWidth = Math.floor(availableWidth);\n availableHeight = Math.floor(availableHeight);\n floating.style.setProperty(\"--reference-width\", `${referenceWidth}px`);\n floating.style.setProperty(\"--available-width\", `${availableWidth}px`);\n floating.style.setProperty(\"--available-height\", `${availableHeight}px`);\n }\n });\n}\nfunction hideWhenDetachedMiddleware(opts) {\n if (!opts.hideWhenDetached) return;\n return hide({ strategy: \"referenceHidden\", boundary: opts.boundary?.() ?? \"clippingAncestors\" });\n}\nfunction getAutoUpdateOptions(opts) {\n if (!opts) return {};\n if (opts === true) {\n return { ancestorResize: true, ancestorScroll: true, elementResize: true, layoutShift: true };\n }\n return opts;\n}\nfunction getPlacementImpl(referenceOrVirtual, floating, opts = {}) {\n const reference = getAnchorElement(referenceOrVirtual, opts.getAnchorRect);\n if (!floating || !reference) return;\n const options = Object.assign({}, defaultOptions, opts);\n const arrowEl = floating.querySelector(\"[data-part=arrow]\");\n const middleware = [\n getOffsetMiddleware(arrowEl, options),\n getFlipMiddleware(options),\n getShiftMiddleware(options),\n getArrowMiddleware(arrowEl, options),\n shiftArrowMiddleware(arrowEl),\n transformOriginMiddleware,\n getSizeMiddleware(options),\n hideWhenDetachedMiddleware(options),\n rectMiddleware\n ];\n const { placement, strategy, onComplete, onPositioned } = options;\n const updatePosition = async () => {\n if (!reference || !floating) return;\n const pos = await computePosition(reference, floating, {\n placement,\n middleware,\n strategy\n });\n onComplete?.(pos);\n onPositioned?.({ placed: true });\n const win = getWindow(floating);\n const x = roundByDpr(win, pos.x);\n const y = roundByDpr(win, pos.y);\n floating.style.setProperty(\"--x\", `${x}px`);\n floating.style.setProperty(\"--y\", `${y}px`);\n if (options.hideWhenDetached) {\n const isHidden = pos.middlewareData.hide?.referenceHidden;\n if (isHidden) {\n floating.style.setProperty(\"visibility\", \"hidden\");\n floating.style.setProperty(\"pointer-events\", \"none\");\n } else {\n floating.style.removeProperty(\"visibility\");\n floating.style.removeProperty(\"pointer-events\");\n }\n }\n const contentEl = floating.firstElementChild;\n if (contentEl) {\n const styles = getComputedStyle(contentEl);\n floating.style.setProperty(\"--z-index\", styles.zIndex);\n }\n };\n const update = async () => {\n if (opts.updatePosition) {\n await opts.updatePosition({ updatePosition });\n onPositioned?.({ placed: true });\n } else {\n await updatePosition();\n }\n };\n const autoUpdateOptions = getAutoUpdateOptions(options.listeners);\n const cancelAutoUpdate = options.listeners ? autoUpdate(reference, floating, update, autoUpdateOptions) : noop;\n update();\n return () => {\n cancelAutoUpdate?.();\n onPositioned?.({ placed: false });\n };\n}\nfunction getPlacement(referenceOrFn, floatingOrFn, opts = {}) {\n const { defer, ...options } = opts;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const reference = typeof referenceOrFn === \"function\" ? referenceOrFn() : referenceOrFn;\n const floating = typeof floatingOrFn === \"function\" ? floatingOrFn() : floatingOrFn;\n cleanups.push(getPlacementImpl(reference, floating, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\n// src/get-styles.ts\nvar ARROW_FLOATING_STYLE = {\n bottom: \"rotate(45deg)\",\n left: \"rotate(135deg)\",\n top: \"rotate(225deg)\",\n right: \"rotate(315deg)\"\n};\nfunction getPlacementStyles(options = {}) {\n const { placement, sameWidth, fitViewport, strategy = \"absolute\" } = options;\n return {\n arrow: {\n position: \"absolute\",\n width: cssVars.arrowSize.reference,\n height: cssVars.arrowSize.reference,\n [cssVars.arrowSizeHalf.variable]: `calc(${cssVars.arrowSize.reference} / 2)`,\n [cssVars.arrowOffset.variable]: `calc(${cssVars.arrowSizeHalf.reference} * -1)`\n },\n arrowTip: {\n // @ts-expect-error - Fix this\n transform: placement ? ARROW_FLOATING_STYLE[placement.split(\"-\")[0]] : void 0,\n background: cssVars.arrowBg.reference,\n top: \"0\",\n left: \"0\",\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: \"inherit\"\n },\n floating: {\n position: strategy,\n isolation: \"isolate\",\n minWidth: sameWidth ? void 0 : \"max-content\",\n width: sameWidth ? \"var(--reference-width)\" : void 0,\n maxWidth: fitViewport ? \"var(--available-width)\" : void 0,\n maxHeight: fitViewport ? \"var(--available-height)\" : void 0,\n pointerEvents: !placement ? \"none\" : void 0,\n top: \"0px\",\n left: \"0px\",\n // move off-screen if placement is not defined\n transform: placement ? \"translate3d(var(--x), var(--y), 0)\" : \"translate3d(0, -100vh, 0)\",\n zIndex: \"var(--z-index)\"\n }\n };\n}\n\nexport { getPlacement, getPlacementSide, getPlacementStyles, isValidPlacement };\n","import { raf, getDocument, getWindow, isShadowRoot, addDomEvent, isTouchDevice, getEventTarget, isFocusable, isContextMenuEvent, isHTMLElement, contains, getNearestOverflowAncestor } from '@zag-js/dom-query';\nimport { callAll } from '@zag-js/utils';\n\n// src/index.ts\n\n// src/frame-utils.ts\nfunction getWindowFrames(win) {\n const frames = {\n each(cb) {\n for (let i = 0; i < win.frames?.length; i += 1) {\n const frame = win.frames[i];\n if (frame) cb(frame);\n }\n },\n addEventListener(event, listener, options) {\n frames.each((frame) => {\n try {\n frame.document.addEventListener(event, listener, options);\n } catch {\n }\n });\n return () => {\n try {\n frames.removeEventListener(event, listener, options);\n } catch {\n }\n };\n },\n removeEventListener(event, listener, options) {\n frames.each((frame) => {\n try {\n frame.document.removeEventListener(event, listener, options);\n } catch {\n }\n });\n }\n };\n return frames;\n}\nfunction getParentWindow(win) {\n const parent = win.frameElement != null ? win.parent : null;\n return {\n addEventListener: (event, listener, options) => {\n try {\n parent?.addEventListener(event, listener, options);\n } catch {\n }\n return () => {\n try {\n parent?.removeEventListener(event, listener, options);\n } catch {\n }\n };\n },\n removeEventListener: (event, listener, options) => {\n try {\n parent?.removeEventListener(event, listener, options);\n } catch {\n }\n }\n };\n}\n\n// src/index.ts\nvar POINTER_OUTSIDE_EVENT = \"pointerdown.outside\";\nvar FOCUS_OUTSIDE_EVENT = \"focus.outside\";\nfunction isComposedPathFocusable(composedPath) {\n for (const node of composedPath) {\n if (isHTMLElement(node) && isFocusable(node)) return true;\n }\n return false;\n}\nvar isPointerEvent = (event) => \"clientY\" in event;\nfunction isEventPointWithin(node, event) {\n if (!isPointerEvent(event) || !node) return false;\n const rect = node.getBoundingClientRect();\n if (rect.width === 0 || rect.height === 0) return false;\n return rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;\n}\nfunction isPointInRect(rect, point) {\n return rect.y <= point.y && point.y <= rect.y + rect.height && rect.x <= point.x && point.x <= rect.x + rect.width;\n}\nfunction isEventWithinScrollbar(event, ancestor) {\n if (!ancestor || !isPointerEvent(event)) return false;\n const isScrollableY = ancestor.scrollHeight > ancestor.clientHeight;\n const onScrollbarY = isScrollableY && event.clientX > ancestor.offsetLeft + ancestor.clientWidth;\n const isScrollableX = ancestor.scrollWidth > ancestor.clientWidth;\n const onScrollbarX = isScrollableX && event.clientY > ancestor.offsetTop + ancestor.clientHeight;\n const rect = {\n x: ancestor.offsetLeft,\n y: ancestor.offsetTop,\n width: ancestor.clientWidth + (isScrollableY ? 16 : 0),\n height: ancestor.clientHeight + (isScrollableX ? 16 : 0)\n };\n const point = {\n x: event.clientX,\n y: event.clientY\n };\n if (!isPointInRect(rect, point)) return false;\n return onScrollbarY || onScrollbarX;\n}\nfunction trackInteractOutsideImpl(node, options) {\n const { exclude, onFocusOutside, onPointerDownOutside, onInteractOutside, defer } = options;\n if (!node) return;\n const doc = getDocument(node);\n const win = getWindow(node);\n const frames = getWindowFrames(win);\n const parentWin = getParentWindow(win);\n function isEventOutside(event, target) {\n if (!isHTMLElement(target)) return false;\n if (!target.isConnected) return false;\n if (contains(node, target)) return false;\n if (isEventPointWithin(node, event)) return false;\n const triggerEl = doc.querySelector(`[aria-controls=\"${node.id}\"]`);\n if (triggerEl) {\n const triggerAncestor = getNearestOverflowAncestor(triggerEl);\n if (isEventWithinScrollbar(event, triggerAncestor)) return false;\n }\n const nodeAncestor = getNearestOverflowAncestor(node);\n if (isEventWithinScrollbar(event, nodeAncestor)) return false;\n return !exclude?.(target);\n }\n const pointerdownCleanups = /* @__PURE__ */ new Set();\n const isInShadowRoot = isShadowRoot(node?.getRootNode());\n function onPointerDown(event) {\n function handler(clickEvent) {\n const func = defer && !isTouchDevice() ? raf : (v) => v();\n const evt = clickEvent ?? event;\n const composedPath = evt?.composedPath?.() ?? [evt?.target];\n func(() => {\n const target = isInShadowRoot ? composedPath[0] : getEventTarget(event);\n if (!node || !isEventOutside(event, target)) return;\n if (onPointerDownOutside || onInteractOutside) {\n const handler2 = callAll(onPointerDownOutside, onInteractOutside);\n node.addEventListener(POINTER_OUTSIDE_EVENT, handler2, { once: true });\n }\n fireCustomEvent(node, POINTER_OUTSIDE_EVENT, {\n bubbles: false,\n cancelable: true,\n detail: {\n originalEvent: evt,\n contextmenu: isContextMenuEvent(evt),\n focusable: isComposedPathFocusable(composedPath),\n target\n }\n });\n });\n }\n if (event.pointerType === \"touch\") {\n pointerdownCleanups.forEach((fn) => fn());\n pointerdownCleanups.add(addDomEvent(doc, \"click\", handler, { once: true }));\n pointerdownCleanups.add(parentWin.addEventListener(\"click\", handler, { once: true }));\n pointerdownCleanups.add(frames.addEventListener(\"click\", handler, { once: true }));\n } else {\n handler();\n }\n }\n const cleanups = /* @__PURE__ */ new Set();\n const timer = setTimeout(() => {\n cleanups.add(addDomEvent(doc, \"pointerdown\", onPointerDown, true));\n cleanups.add(parentWin.addEventListener(\"pointerdown\", onPointerDown, true));\n cleanups.add(frames.addEventListener(\"pointerdown\", onPointerDown, true));\n }, 0);\n function onFocusin(event) {\n const func = defer ? raf : (v) => v();\n func(() => {\n const target = getEventTarget(event);\n if (!node || !isEventOutside(event, target)) return;\n if (onFocusOutside || onInteractOutside) {\n const handler = callAll(onFocusOutside, onInteractOutside);\n node.addEventListener(FOCUS_OUTSIDE_EVENT, handler, { once: true });\n }\n fireCustomEvent(node, FOCUS_OUTSIDE_EVENT, {\n bubbles: false,\n cancelable: true,\n detail: {\n originalEvent: event,\n contextmenu: false,\n focusable: isFocusable(target),\n target\n }\n });\n });\n }\n if (!isTouchDevice()) {\n cleanups.add(addDomEvent(doc, \"focusin\", onFocusin, true));\n cleanups.add(parentWin.addEventListener(\"focusin\", onFocusin, true));\n cleanups.add(frames.addEventListener(\"focusin\", onFocusin, true));\n }\n return () => {\n clearTimeout(timer);\n pointerdownCleanups.forEach((fn) => fn());\n cleanups.forEach((fn) => fn());\n };\n}\nfunction trackInteractOutside(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n cleanups.push(trackInteractOutsideImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction fireCustomEvent(el, type, init) {\n const win = el.ownerDocument.defaultView || window;\n const event = new win.CustomEvent(type, init);\n return el.dispatchEvent(event);\n}\n\nexport { trackInteractOutside };\n","import { raf, contains, getDocument, waitForElements, setStyle, addDomEvent, getEventTarget, isHTMLElement } from '@zag-js/dom-query';\nimport { trackInteractOutside } from '@zag-js/interact-outside';\nimport { isFunction, warn } from '@zag-js/utils';\n\n// src/dismissable-layer.ts\nfunction trackEscapeKeydown(node, fn) {\n const handleKeyDown = (event) => {\n if (event.key !== \"Escape\") return;\n if (event.isComposing) return;\n fn?.(event);\n };\n return addDomEvent(getDocument(node), \"keydown\", handleKeyDown, { capture: true });\n}\nvar layerStack = {\n layers: [],\n branches: [],\n count() {\n return this.layers.length;\n },\n pointerBlockingLayers() {\n return this.layers.filter((layer) => layer.pointerBlocking);\n },\n topMostPointerBlockingLayer() {\n return [...this.pointerBlockingLayers()].slice(-1)[0];\n },\n hasPointerBlockingLayer() {\n return this.pointerBlockingLayers().length > 0;\n },\n isBelowPointerBlockingLayer(node) {\n const index = this.indexOf(node);\n const highestBlockingIndex = this.topMostPointerBlockingLayer() ? this.indexOf(this.topMostPointerBlockingLayer()?.node) : -1;\n return index < highestBlockingIndex;\n },\n isTopMost(node) {\n const layer = this.layers[this.count() - 1];\n return layer?.node === node;\n },\n getNestedLayers(node) {\n return Array.from(this.layers).slice(this.indexOf(node) + 1);\n },\n isInNestedLayer(node, target) {\n return this.getNestedLayers(node).some((layer) => contains(layer.node, target));\n },\n isInBranch(target) {\n return Array.from(this.branches).some((branch) => contains(branch, target));\n },\n add(layer) {\n const num = this.layers.push(layer);\n layer.node.style.setProperty(\"--layer-index\", `${num}`);\n },\n addBranch(node) {\n this.branches.push(node);\n },\n remove(node) {\n const index = this.indexOf(node);\n if (index < 0) return;\n if (index < this.count() - 1) {\n const _layers = this.getNestedLayers(node);\n _layers.forEach((layer) => layer.dismiss());\n }\n this.layers.splice(index, 1);\n node.style.removeProperty(\"--layer-index\");\n },\n removeBranch(node) {\n const index = this.branches.indexOf(node);\n if (index >= 0) this.branches.splice(index, 1);\n },\n indexOf(node) {\n return this.layers.findIndex((layer) => layer.node === node);\n },\n dismiss(node) {\n this.layers[this.indexOf(node)]?.dismiss();\n },\n clear() {\n this.remove(this.layers[0].node);\n }\n};\nvar originalBodyPointerEvents;\nfunction assignPointerEventToLayers() {\n layerStack.layers.forEach(({ node }) => {\n node.style.pointerEvents = layerStack.isBelowPointerBlockingLayer(node) ? \"none\" : \"auto\";\n });\n}\nfunction clearPointerEvent(node) {\n node.style.pointerEvents = \"\";\n}\nfunction disablePointerEventsOutside(node, persistentElements) {\n const doc = getDocument(node);\n const cleanups = [];\n if (layerStack.hasPointerBlockingLayer() && !doc.body.hasAttribute(\"data-inert\")) {\n originalBodyPointerEvents = document.body.style.pointerEvents;\n queueMicrotask(() => {\n doc.body.style.pointerEvents = \"none\";\n doc.body.setAttribute(\"data-inert\", \"\");\n });\n }\n if (persistentElements) {\n const persistedCleanup = waitForElements(persistentElements, (el) => {\n cleanups.push(setStyle(el, { pointerEvents: \"auto\" }));\n });\n cleanups.push(persistedCleanup);\n }\n return () => {\n if (layerStack.hasPointerBlockingLayer()) return;\n queueMicrotask(() => {\n doc.body.style.pointerEvents = originalBodyPointerEvents;\n doc.body.removeAttribute(\"data-inert\");\n if (doc.body.style.length === 0) doc.body.removeAttribute(\"style\");\n });\n cleanups.forEach((fn) => fn());\n };\n}\n\n// src/dismissable-layer.ts\nfunction trackDismissableElementImpl(node, options) {\n const { warnOnMissingNode = true } = options;\n if (warnOnMissingNode && !node) {\n warn(\"[@zag-js/dismissable] node is `null` or `undefined`\");\n return;\n }\n if (!node) {\n return;\n }\n const { onDismiss, pointerBlocking, exclude: excludeContainers, debug } = options;\n const layer = { dismiss: onDismiss, node, pointerBlocking };\n layerStack.add(layer);\n assignPointerEventToLayers();\n function onPointerDownOutside(event) {\n const target = getEventTarget(event.detail.originalEvent);\n if (layerStack.isBelowPointerBlockingLayer(node) || layerStack.isInBranch(target)) return;\n options.onPointerDownOutside?.(event);\n options.onInteractOutside?.(event);\n if (event.defaultPrevented) return;\n if (debug) {\n console.log(\"onPointerDownOutside:\", event.detail.originalEvent);\n }\n onDismiss?.();\n }\n function onFocusOutside(event) {\n const target = getEventTarget(event.detail.originalEvent);\n if (layerStack.isInBranch(target)) return;\n options.onFocusOutside?.(event);\n options.onInteractOutside?.(event);\n if (event.defaultPrevented) return;\n if (debug) {\n console.log(\"onFocusOutside:\", event.detail.originalEvent);\n }\n onDismiss?.();\n }\n function onEscapeKeyDown(event) {\n if (!layerStack.isTopMost(node)) return;\n options.onEscapeKeyDown?.(event);\n if (!event.defaultPrevented && onDismiss) {\n event.preventDefault();\n onDismiss();\n }\n }\n function exclude(target) {\n if (!node) return false;\n const containers = typeof excludeContainers === \"function\" ? excludeContainers() : excludeContainers;\n const _containers = Array.isArray(containers) ? containers : [containers];\n const persistentElements = options.persistentElements?.map((fn) => fn()).filter(isHTMLElement);\n if (persistentElements) _containers.push(...persistentElements);\n return _containers.some((node2) => contains(node2, target)) || layerStack.isInNestedLayer(node, target);\n }\n const cleanups = [\n pointerBlocking ? disablePointerEventsOutside(node, options.persistentElements) : void 0,\n trackEscapeKeydown(node, onEscapeKeyDown),\n trackInteractOutside(node, { exclude, onFocusOutside, onPointerDownOutside, defer: options.defer })\n ];\n return () => {\n layerStack.remove(node);\n assignPointerEventToLayers();\n clearPointerEvent(node);\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction trackDismissableElement(nodeOrFn, options) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = isFunction(nodeOrFn) ? nodeOrFn() : nodeOrFn;\n cleanups.push(trackDismissableElementImpl(node, options));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\nfunction trackDismissableBranch(nodeOrFn, options = {}) {\n const { defer } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const node = isFunction(nodeOrFn) ? nodeOrFn() : nodeOrFn;\n if (!node) {\n warn(\"[@zag-js/dismissable] branch node is `null` or `undefined`\");\n return;\n }\n layerStack.addBranch(node);\n cleanups.push(() => {\n layerStack.removeBranch(node);\n });\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\nexport { trackDismissableBranch, trackDismissableElement };\n","'use client';\nimport { createContext } from './create-context.js';\nimport { createSplitProps } from './create-split-props.js';\n\nconst [RenderStrategyPropsProvider, useRenderStrategyPropsContext] = createContext({\n name: \"RenderStrategyContext\",\n hookName: \"useRenderStrategyContext\",\n providerName: \"<RenderStrategyPropsProvider />\"\n});\nconst splitRenderStrategyProps = (props) => createSplitProps()(props, [\"lazyMount\", \"unmountOnExit\"]);\n\nexport { RenderStrategyPropsProvider, splitRenderStrategyProps, useRenderStrategyPropsContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [CheckboxProvider, useCheckboxContext] = createContext({\n name: \"CheckboxContext\",\n hookName: \"useCheckboxContext\",\n providerName: \"<CheckboxProvider />\"\n});\n\nexport { CheckboxProvider, useCheckboxContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxControl = forwardRef((props, ref) => {\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getControlProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nCheckboxControl.displayName = \"CheckboxControl\";\n\nexport { CheckboxControl };\n","import { getWindow, getDocument, getEventTarget, isVirtualClick, isMac } from '@zag-js/dom-query';\n\n// src/index.ts\nfunction isValidKey(e) {\n return !(e.metaKey || !isMac() && e.altKey || e.ctrlKey || e.key === \"Control\" || e.key === \"Shift\" || e.key === \"Meta\");\n}\nvar nonTextInputTypes = /* @__PURE__ */ new Set([\"checkbox\", \"radio\", \"range\", \"color\", \"file\", \"image\", \"button\", \"submit\", \"reset\"]);\nfunction isKeyboardFocusEvent(isTextInput, modality, e) {\n const target = e ? getEventTarget(e) : null;\n const win = getWindow(target);\n isTextInput = isTextInput || target instanceof win.HTMLInputElement && !nonTextInputTypes.has(target?.type) || target instanceof win.HTMLTextAreaElement || target instanceof win.HTMLElement && target.isContentEditable;\n return !(isTextInput && modality === \"keyboard\" && e instanceof win.KeyboardEvent && !Reflect.has(FOCUS_VISIBLE_INPUT_KEYS, e.key));\n}\nvar currentModality = null;\nvar changeHandlers = /* @__PURE__ */ new Set();\nvar listenerMap = /* @__PURE__ */ new Map();\nvar hasEventBeforeFocus = false;\nvar hasBlurredWindowRecently = false;\nvar FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\nfunction triggerChangeHandlers(modality, e) {\n for (let handler of changeHandlers) {\n handler(modality, e);\n }\n}\nfunction handleKeyboardEvent(e) {\n hasEventBeforeFocus = true;\n if (isValidKey(e)) {\n currentModality = \"keyboard\";\n triggerChangeHandlers(\"keyboard\", e);\n }\n}\nfunction handlePointerEvent(e) {\n currentModality = \"pointer\";\n if (e.type === \"mousedown\" || e.type === \"pointerdown\") {\n hasEventBeforeFocus = true;\n triggerChangeHandlers(\"pointer\", e);\n }\n}\nfunction handleClickEvent(e) {\n if (isVirtualClick(e)) {\n hasEventBeforeFocus = true;\n currentModality = \"virtual\";\n }\n}\nfunction handleFocusEvent(e) {\n const target = getEventTarget(e);\n if (target === getWindow(target) || target === getDocument(target)) {\n return;\n }\n if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", e);\n }\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = false;\n}\nfunction handleWindowBlur() {\n hasEventBeforeFocus = false;\n hasBlurredWindowRecently = true;\n}\nfunction setupGlobalFocusEvents(root) {\n if (typeof window === \"undefined\" || listenerMap.get(getWindow(root))) {\n return;\n }\n const win = getWindow(root);\n const doc = getDocument(root);\n let focus = win.HTMLElement.prototype.focus;\n win.HTMLElement.prototype.focus = function() {\n currentModality = \"virtual\";\n triggerChangeHandlers(\"virtual\", null);\n hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n doc.addEventListener(\"keydown\", handleKeyboardEvent, true);\n doc.addEventListener(\"keyup\", handleKeyboardEvent, true);\n doc.addEventListener(\"click\", handleClickEvent, true);\n win.addEventListener(\"focus\", handleFocusEvent, true);\n win.addEventListener(\"blur\", handleWindowBlur, false);\n if (typeof win.PointerEvent !== \"undefined\") {\n doc.addEventListener(\"pointerdown\", handlePointerEvent, true);\n doc.addEventListener(\"pointermove\", handlePointerEvent, true);\n doc.addEventListener(\"pointerup\", handlePointerEvent, true);\n } else {\n doc.addEventListener(\"mousedown\", handlePointerEvent, true);\n doc.addEventListener(\"mousemove\", handlePointerEvent, true);\n doc.addEventListener(\"mouseup\", handlePointerEvent, true);\n }\n win.addEventListener(\n \"beforeunload\",\n () => {\n tearDownWindowFocusTracking(root);\n },\n { once: true }\n );\n listenerMap.set(win, { focus });\n}\nvar tearDownWindowFocusTracking = (root, loadListener) => {\n const win = getWindow(root);\n const doc = getDocument(root);\n if (!listenerMap.has(win)) {\n return;\n }\n win.HTMLElement.prototype.focus = listenerMap.get(win).focus;\n doc.removeEventListener(\"keydown\", handleKeyboardEvent, true);\n doc.removeEventListener(\"keyup\", handleKeyboardEvent, true);\n doc.removeEventListener(\"click\", handleClickEvent, true);\n win.removeEventListener(\"focus\", handleFocusEvent, true);\n win.removeEventListener(\"blur\", handleWindowBlur, false);\n if (typeof win.PointerEvent !== \"undefined\") {\n doc.removeEventListener(\"pointerdown\", handlePointerEvent, true);\n doc.removeEventListener(\"pointermove\", handlePointerEvent, true);\n doc.removeEventListener(\"pointerup\", handlePointerEvent, true);\n } else {\n doc.removeEventListener(\"mousedown\", handlePointerEvent, true);\n doc.removeEventListener(\"mousemove\", handlePointerEvent, true);\n doc.removeEventListener(\"mouseup\", handlePointerEvent, true);\n }\n listenerMap.delete(win);\n};\nfunction getInteractionModality() {\n return currentModality;\n}\nfunction setInteractionModality(modality) {\n currentModality = modality;\n triggerChangeHandlers(modality, null);\n}\nfunction trackInteractionModality(props) {\n const { onChange, root } = props;\n setupGlobalFocusEvents(root);\n onChange({ modality: currentModality });\n const handler = () => onChange({ modality: currentModality });\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n}\nfunction isFocusVisible() {\n return currentModality === \"keyboard\";\n}\nfunction trackFocusVisible(props = {}) {\n const { isTextInput, autoFocus, onChange, root } = props;\n setupGlobalFocusEvents(root);\n onChange?.({ isFocusVisible: autoFocus || isFocusVisible(), modality: currentModality });\n const handler = (modality, e) => {\n if (!isKeyboardFocusEvent(!!isTextInput, modality, e)) return;\n onChange?.({ isFocusVisible: isFocusVisible(), modality });\n };\n changeHandlers.add(handler);\n return () => {\n changeHandlers.delete(handler);\n };\n}\n\nexport { getInteractionModality, isFocusVisible, listenerMap, setInteractionModality, trackFocusVisible, trackInteractionModality };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { dispatchInputCheckedEvent, setElementChecked, trackFormControl, trackPress, dataAttr, visuallyHiddenStyle, getEventTarget } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/checkbox.anatomy.ts\nvar anatomy = createAnatomy(\"checkbox\").parts(\"root\", \"label\", \"control\", \"indicator\");\nvar parts = anatomy.build();\n\n// src/checkbox.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `checkbox:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `checkbox:${ctx.id}:label`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `checkbox:${ctx.id}:control`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `checkbox:${ctx.id}:input`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\n\n// src/checkbox.connect.ts\nfunction connect(service, normalize) {\n const { send, context, prop, computed, scope } = service;\n const disabled = prop(\"disabled\");\n const readOnly = prop(\"readOnly\");\n const invalid = prop(\"invalid\");\n const focused = !disabled && context.get(\"focused\");\n const focusVisible = !disabled && context.get(\"focusVisible\");\n const checked = computed(\"checked\");\n const indeterminate = computed(\"indeterminate\");\n const dataAttrs = {\n \"data-active\": dataAttr(context.get(\"active\")),\n \"data-focus\": dataAttr(focused),\n \"data-focus-visible\": dataAttr(focusVisible),\n \"data-readonly\": dataAttr(readOnly),\n \"data-hover\": dataAttr(context.get(\"hovered\")),\n \"data-disabled\": dataAttr(disabled),\n \"data-state\": indeterminate ? \"indeterminate\" : checked ? \"checked\" : \"unchecked\",\n \"data-invalid\": dataAttr(invalid)\n };\n return {\n checked,\n disabled,\n indeterminate,\n focused,\n checkedState: checked,\n setChecked(checked2) {\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: false });\n },\n toggleChecked() {\n send({ type: \"CHECKED.TOGGLE\", checked, isTrusted: false });\n },\n getRootProps() {\n return normalize.label({\n ...parts.root.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n htmlFor: getHiddenInputId(scope),\n onPointerMove() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: true } });\n },\n onPointerLeave() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: false } });\n },\n onClick(event) {\n const target = getEventTarget(event);\n if (target === getHiddenInputEl(scope)) {\n event.stopPropagation();\n }\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getLabelId(scope)\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getControlId(scope),\n \"aria-hidden\": true\n });\n },\n getIndicatorProps() {\n return normalize.element({\n ...parts.indicator.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n hidden: !indeterminate && !checked\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n id: getHiddenInputId(scope),\n type: \"checkbox\",\n required: prop(\"required\"),\n defaultChecked: checked,\n disabled,\n \"aria-labelledby\": getLabelId(scope),\n \"aria-invalid\": invalid,\n name: prop(\"name\"),\n form: prop(\"form\"),\n value: prop(\"value\"),\n style: visuallyHiddenStyle,\n onFocus() {\n const focusVisible2 = isFocusVisible();\n send({ type: \"CONTEXT.SET\", context: { focused: true, focusVisible: focusVisible2 } });\n },\n onBlur() {\n send({ type: \"CONTEXT.SET\", context: { focused: false, focusVisible: false } });\n },\n onClick(event) {\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const checked2 = event.currentTarget.checked;\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: true });\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n value: \"on\",\n ...props2,\n defaultChecked: !!props2.defaultChecked\n };\n },\n initialState() {\n return \"ready\";\n },\n context({ prop, bindable }) {\n return {\n checked: bindable(() => ({\n defaultValue: prop(\"defaultChecked\"),\n value: prop(\"checked\"),\n onChange(checked) {\n prop(\"onCheckedChange\")?.({ checked });\n }\n })),\n fieldsetDisabled: bindable(() => ({ defaultValue: false })),\n focusVisible: bindable(() => ({ defaultValue: false })),\n active: bindable(() => ({ defaultValue: false })),\n focused: bindable(() => ({ defaultValue: false })),\n hovered: bindable(() => ({ defaultValue: false }))\n };\n },\n watch({ track, context, prop, action }) {\n track([() => prop(\"disabled\")], () => {\n action([\"removeFocusIfNeeded\"]);\n });\n track([() => context.get(\"checked\")], () => {\n action([\"syncInputElement\"]);\n });\n },\n effects: [\"trackFormControlState\", \"trackPressEvent\", \"trackFocusVisible\"],\n on: {\n \"CHECKED.TOGGLE\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"toggleChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"toggleChecked\"]\n }\n ],\n \"CHECKED.SET\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"setChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"setChecked\"]\n }\n ],\n \"CONTEXT.SET\": {\n actions: [\"setContext\"]\n }\n },\n computed: {\n indeterminate: ({ context }) => isIndeterminate(context.get(\"checked\")),\n checked: ({ context }) => isChecked(context.get(\"checked\")),\n disabled: ({ context, prop }) => !!prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n },\n states: {\n ready: {}\n },\n implementations: {\n guards: {\n isTrusted: ({ event }) => !!event.isTrusted\n },\n effects: {\n trackPressEvent({ context, computed, scope }) {\n if (computed(\"disabled\")) return;\n return trackPress({\n pointerNode: getRootEl(scope),\n keyboardNode: getHiddenInputEl(scope),\n isValidKey: (event) => event.key === \" \",\n onPress: () => context.set(\"active\", false),\n onPressStart: () => context.set(\"active\", true),\n onPressEnd: () => context.set(\"active\", false)\n });\n },\n trackFocusVisible({ computed, scope }) {\n if (computed(\"disabled\")) return;\n return trackFocusVisible({ root: scope.getRootNode?.() });\n },\n trackFormControlState({ context, scope }) {\n return trackFormControl(getHiddenInputEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n context.set(\"checked\", context.initial(\"checked\"));\n }\n });\n }\n },\n actions: {\n setContext({ context, event }) {\n for (const key in event.context) {\n context.set(key, event.context[key]);\n }\n },\n syncInputElement({ context, computed, scope }) {\n const inputEl = getHiddenInputEl(scope);\n if (!inputEl) return;\n setElementChecked(inputEl, computed(\"checked\"));\n inputEl.indeterminate = isIndeterminate(context.get(\"checked\"));\n },\n removeFocusIfNeeded({ context, prop }) {\n if (prop(\"disabled\") && context.get(\"focused\")) {\n context.set(\"focused\", false);\n context.set(\"focusVisible\", false);\n }\n },\n setChecked({ context, event }) {\n context.set(\"checked\", event.checked);\n },\n toggleChecked({ context, computed }) {\n const checked = isIndeterminate(computed(\"checked\")) ? true : !computed(\"checked\");\n context.set(\"checked\", checked);\n },\n dispatchChangeEvent({ computed, scope }) {\n queueMicrotask(() => {\n const inputEl = getHiddenInputEl(scope);\n dispatchInputCheckedEvent(inputEl, { checked: computed(\"checked\") });\n });\n }\n }\n }\n});\nfunction isIndeterminate(checked) {\n return checked === \"indeterminate\";\n}\nfunction isChecked(checked) {\n return isIndeterminate(checked) ? false : !!checked;\n}\nvar props = createProps()([\n \"defaultChecked\",\n \"checked\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport { anatomy } from '@zag-js/checkbox';\n\nconst checkboxAnatomy = anatomy.extendWith(\"group\");\n\nexport { checkboxAnatomy };\n","'use client';\nimport { useState, useCallback } from 'react';\n\nfunction useControllableState(props) {\n const { value, onChange, defaultValue } = props;\n const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);\n const controlled = value !== void 0;\n const currentValue = controlled ? value : uncontrolledValue;\n const setValue = useCallback(\n (value2) => {\n if (controlled) {\n return onChange?.(value2);\n }\n setUncontrolledValue(value2);\n return onChange?.(value2);\n },\n [controlled, onChange]\n );\n return [currentValue, setValue];\n}\n\nexport { useControllableState };\n","'use client';\nimport { useCallback, useRef } from 'react';\n\nfunction useEvent(callback, opts = {}) {\n const { sync = false } = opts;\n const callbackRef = useLatestRef(callback);\n return useCallback(\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n (...args) => {\n if (sync) return queueMicrotask(() => callbackRef.current?.(...args));\n return callbackRef.current?.(...args);\n },\n [sync, callbackRef]\n );\n}\nfunction useLatestRef(value) {\n const ref = useRef(value);\n ref.current = value;\n return ref;\n}\n\nexport { useEvent };\n","'use client';\nimport { useControllableState } from '../../utils/use-controllable-state.js';\nimport { useEvent } from '../../utils/use-event.js';\n\nfunction useCheckboxGroup(props = {}) {\n const { defaultValue, value: controlledValue, onValueChange, disabled, readOnly, name, invalid } = props;\n const interactive = !(disabled || readOnly);\n const onChangeProp = useEvent(onValueChange, { sync: true });\n const [value, setValue] = useControllableState({\n value: controlledValue,\n defaultValue: defaultValue || [],\n onChange: onChangeProp\n });\n const isChecked = (val) => {\n return value.some((v) => String(v) === String(val));\n };\n const toggleValue = (val) => {\n isChecked(val) ? removeValue(val) : addValue(val);\n };\n const addValue = (val) => {\n if (!interactive) return;\n if (isChecked(val)) return;\n setValue(value.concat(val));\n };\n const removeValue = (val) => {\n if (!interactive) return;\n setValue(value.filter((v) => String(v) !== String(val)));\n };\n const getItemProps = (props2) => {\n return {\n checked: props2.value != null ? isChecked(props2.value) : void 0,\n onCheckedChange() {\n if (props2.value != null) {\n toggleValue(props2.value);\n }\n },\n name,\n disabled,\n readOnly,\n invalid\n };\n };\n return {\n isChecked,\n value,\n name,\n disabled: !!disabled,\n readOnly: !!readOnly,\n invalid: !!invalid,\n setValue,\n addValue,\n toggleValue,\n getItemProps\n };\n}\n\nexport { useCheckboxGroup };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [CheckboxGroupContextProvider, useCheckboxGroupContext] = createContext({\n name: \"CheckboxGroupContext\",\n hookName: \"useCheckboxGroupContext\",\n providerName: \"<CheckboxGroupProvider />\",\n strict: false\n});\n\nexport { CheckboxGroupContextProvider, useCheckboxGroupContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { checkboxAnatomy } from './checkbox.anatomy.js';\nimport { useCheckboxGroup } from './use-checkbox-group.js';\nimport { CheckboxGroupContextProvider } from './use-checkbox-group-context.js';\n\nconst CheckboxGroup = forwardRef((props, ref) => {\n const [checkboxGroupProps, localProps] = createSplitProps()(props, [\n \"defaultValue\",\n \"value\",\n \"onValueChange\",\n \"disabled\",\n \"invalid\",\n \"readOnly\",\n \"name\"\n ]);\n const checkboxGroup = useCheckboxGroup(checkboxGroupProps);\n return /* @__PURE__ */ jsx(CheckboxGroupContextProvider, { value: checkboxGroup, children: /* @__PURE__ */ jsx(ark.div, { ref, role: \"group\", ...localProps, ...checkboxAnatomy.build().group.attrs }) });\n});\nCheckboxGroup.displayName = \"CheckboxGroup\";\n\nexport { CheckboxGroup };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [FieldProvider, useFieldContext] = createContext({\n name: \"FieldContext\",\n hookName: \"useFieldContext\",\n providerName: \"<FieldProvider />\",\n strict: false\n});\n\nexport { FieldProvider, useFieldContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from '../field/use-field-context.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxHiddenInput = forwardRef((props, ref) => {\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getHiddenInputProps(), props);\n const field = useFieldContext();\n return /* @__PURE__ */ jsx(ark.input, { \"aria-describedby\": field?.ariaDescribedby, ...mergedProps, ref });\n});\nCheckboxHiddenInput.displayName = \"CheckboxHiddenInput\";\n\nexport { CheckboxHiddenInput };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxIndicator = forwardRef((props, ref) => {\n const { indeterminate, ...rest } = props;\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getIndicatorProps(), rest);\n const isVisible = indeterminate ? checkbox.indeterminate : checkbox.checked;\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, hidden: !isVisible, ref });\n});\nCheckboxIndicator.displayName = \"CheckboxIndicator\";\n\nexport { CheckboxIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useCheckboxContext } from './use-checkbox-context.js';\n\nconst CheckboxLabel = forwardRef((props, ref) => {\n const checkbox = useCheckboxContext();\n const mergedProps = mergeProps(checkbox.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nCheckboxLabel.displayName = \"CheckboxLabel\";\n\nexport { CheckboxLabel };\n","'use client';\nimport * as checkbox from '@zag-js/checkbox';\nimport { mergeProps, useMachine, normalizeProps } from '@zag-js/react';\nimport { useMemo, useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\nimport { useFieldContext } from '../field/use-field-context.js';\nimport { useCheckboxGroupContext } from './use-checkbox-group-context.js';\n\nconst useCheckbox = (ownProps = {}) => {\n const checkboxGroup = useCheckboxGroupContext();\n const field = useFieldContext();\n const props = useMemo(() => {\n return mergeProps(ownProps, checkboxGroup?.getItemProps({ value: ownProps.value }) ?? {});\n }, [ownProps, checkboxGroup]);\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n ids: {\n label: field?.ids.label,\n hiddenInput: field?.ids.control\n },\n dir,\n disabled: field?.disabled,\n readOnly: field?.readOnly,\n invalid: field?.invalid,\n required: field?.required,\n getRootNode,\n ...props\n };\n const service = useMachine(checkbox.machine, machineProps);\n return checkbox.connect(service, normalizeProps);\n};\n\nexport { useCheckbox };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useCheckbox } from './use-checkbox.js';\nimport { CheckboxProvider } from './use-checkbox-context.js';\n\nconst CheckboxRoot = forwardRef((props, ref) => {\n const [useCheckboxProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"defaultChecked\",\n \"disabled\",\n \"form\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n ]);\n const checkbox = useCheckbox(useCheckboxProps);\n const mergedProps = mergeProps(checkbox.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(CheckboxProvider, { value: checkbox, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nCheckboxRoot.displayName = \"CheckboxRoot\";\n\nexport { CheckboxRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { CheckboxProvider } from './use-checkbox-context.js';\n\nconst CheckboxRootProvider = forwardRef((props, ref) => {\n const [{ value: checkbox }, localProps] = createSplitProps()(props, [\"value\"]);\n const mergedProps = mergeProps(checkbox.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(CheckboxProvider, { value: checkbox, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nCheckboxRootProvider.displayName = \"CheckboxRootProvider\";\n\nexport { CheckboxRootProvider };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [PresenceProvider, usePresenceContext] = createContext({\n name: \"PresenceContext\",\n hookName: \"usePresenceContext\",\n providerName: \"<PresenceProvider />\"\n});\n\nexport { PresenceProvider, usePresenceContext };\n","'use client';\nimport { createSplitProps } from '../../utils/create-split-props.js';\n\nconst splitPresenceProps = (props) => createSplitProps()(props, [\n \"immediate\",\n \"lazyMount\",\n \"onExitComplete\",\n \"present\",\n \"skipAnimationOnMount\",\n \"unmountOnExit\"\n]);\n\nexport { splitPresenceProps };\n","import { setStyle, nextTick, raf, getComputedStyle, getEventTarget } from '@zag-js/dom-query';\nimport { createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/presence.connect.ts\nfunction connect(service, _normalize) {\n const { state, send, context } = service;\n const present = state.matches(\"mounted\", \"unmountSuspended\");\n return {\n skip: !context.get(\"initial\"),\n present,\n setNode(node) {\n if (!node) return;\n send({ type: \"NODE.SET\", node });\n },\n unmount() {\n send({ type: \"UNMOUNT\" });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2 }) {\n return { ...props2, present: !!props2.present };\n },\n initialState({ prop }) {\n return prop(\"present\") ? \"mounted\" : \"unmounted\";\n },\n refs() {\n return {\n node: null,\n styles: null\n };\n },\n context({ bindable }) {\n return {\n unmountAnimationName: bindable(() => ({ defaultValue: null })),\n prevAnimationName: bindable(() => ({ defaultValue: null })),\n present: bindable(() => ({ defaultValue: false })),\n initial: bindable(() => ({\n sync: true,\n defaultValue: false\n }))\n };\n },\n exit: [\"clearInitial\", \"cleanupNode\"],\n watch({ track, action, prop }) {\n track([() => prop(\"present\")], () => {\n action([\"setInitial\", \"syncPresence\"]);\n });\n },\n on: {\n \"NODE.SET\": {\n actions: [\"setNode\", \"setStyles\"]\n }\n },\n states: {\n mounted: {\n on: {\n UNMOUNT: {\n target: \"unmounted\",\n actions: [\"clearPrevAnimationName\", \"invokeOnExitComplete\"]\n },\n \"UNMOUNT.SUSPEND\": {\n target: \"unmountSuspended\"\n }\n }\n },\n unmountSuspended: {\n effects: [\"trackAnimationEvents\"],\n on: {\n MOUNT: {\n target: \"mounted\",\n actions: [\"setPrevAnimationName\"]\n },\n UNMOUNT: {\n target: \"unmounted\",\n actions: [\"clearPrevAnimationName\", \"invokeOnExitComplete\"]\n }\n }\n },\n unmounted: {\n on: {\n MOUNT: {\n target: \"mounted\",\n actions: [\"setPrevAnimationName\"]\n }\n }\n }\n },\n implementations: {\n actions: {\n setInitial: ({ context }) => {\n if (context.get(\"initial\")) return;\n queueMicrotask(() => {\n context.set(\"initial\", true);\n });\n },\n clearInitial: ({ context }) => {\n context.set(\"initial\", false);\n },\n cleanupNode: ({ refs }) => {\n refs.set(\"node\", null);\n refs.set(\"styles\", null);\n },\n invokeOnExitComplete: ({ prop }) => {\n prop(\"onExitComplete\")?.();\n },\n setNode: ({ refs, event }) => {\n refs.set(\"node\", event.node);\n },\n setStyles: ({ refs, event }) => {\n refs.set(\"styles\", getComputedStyle(event.node));\n },\n syncPresence: ({ context, refs, send, prop }) => {\n const presentProp = prop(\"present\");\n if (presentProp) {\n return send({ type: \"MOUNT\", src: \"presence.changed\" });\n }\n const node = refs.get(\"node\");\n if (!presentProp && node?.ownerDocument.visibilityState === \"hidden\") {\n return send({ type: \"UNMOUNT\", src: \"visibilitychange\" });\n }\n raf(() => {\n const animationName = getAnimationName(refs.get(\"styles\"));\n context.set(\"unmountAnimationName\", animationName);\n if (animationName === \"none\" || animationName === context.get(\"prevAnimationName\") || refs.get(\"styles\")?.display === \"none\" || refs.get(\"styles\")?.animationDuration === \"0s\") {\n send({ type: \"UNMOUNT\", src: \"presence.changed\" });\n } else {\n send({ type: \"UNMOUNT.SUSPEND\" });\n }\n });\n },\n setPrevAnimationName: ({ context, refs }) => {\n raf(() => {\n context.set(\"prevAnimationName\", getAnimationName(refs.get(\"styles\")));\n });\n },\n clearPrevAnimationName: ({ context }) => {\n context.set(\"prevAnimationName\", null);\n }\n },\n effects: {\n trackAnimationEvents: ({ context, refs, send }) => {\n const node = refs.get(\"node\");\n if (!node) return;\n const onStart = (event) => {\n const target = event.composedPath?.()?.[0] ?? event.target;\n if (target === node) {\n context.set(\"prevAnimationName\", getAnimationName(refs.get(\"styles\")));\n }\n };\n const onEnd = (event) => {\n const animationName = getAnimationName(refs.get(\"styles\"));\n const target = getEventTarget(event);\n if (target === node && animationName === context.get(\"unmountAnimationName\")) {\n send({ type: \"UNMOUNT\", src: \"animationend\" });\n }\n };\n node.addEventListener(\"animationstart\", onStart);\n node.addEventListener(\"animationcancel\", onEnd);\n node.addEventListener(\"animationend\", onEnd);\n const cleanupStyles = setStyle(node, { animationFillMode: \"forwards\" });\n return () => {\n node.removeEventListener(\"animationstart\", onStart);\n node.removeEventListener(\"animationcancel\", onEnd);\n node.removeEventListener(\"animationend\", onEnd);\n nextTick(() => cleanupStyles());\n };\n }\n }\n }\n});\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nvar props = createProps()([\"onExitComplete\", \"present\", \"immediate\"]);\n\nexport { connect, machine, props };\n","'use client';\nimport * as presence from '@zag-js/presence';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useRef } from 'react';\nimport { useEvent } from '../../utils/use-event.js';\n\nconst usePresence = (props = {}) => {\n const { lazyMount, unmountOnExit, present, skipAnimationOnMount = false, ...rest } = props;\n const wasEverPresent = useRef(false);\n const machineProps = {\n ...rest,\n present,\n onExitComplete: useEvent(props.onExitComplete)\n };\n const service = useMachine(presence.machine, machineProps);\n const api = presence.connect(service, normalizeProps);\n if (api.present) {\n wasEverPresent.current = true;\n }\n const unmounted = !api.present && !wasEverPresent.current && lazyMount || unmountOnExit && !api.present && wasEverPresent.current;\n const getPresenceProps = () => ({\n \"data-state\": api.skip && skipAnimationOnMount ? void 0 : present ? \"open\" : \"closed\",\n hidden: !api.present\n });\n return {\n ref: api.setNode,\n getPresenceProps,\n present: api.present,\n unmounted\n };\n};\n\nexport { usePresence };\n","import { compact, isEqual, chunk, prevIndex, nextIndex, isObject, hasProp } from '@zag-js/utils';\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar fallback = {\n itemToValue(item) {\n if (typeof item === \"string\") return item;\n if (isObject(item) && hasProp(item, \"value\")) return item.value;\n return \"\";\n },\n itemToString(item) {\n if (typeof item === \"string\") return item;\n if (isObject(item) && hasProp(item, \"label\")) return item.label;\n return fallback.itemToValue(item);\n },\n isItemDisabled(item) {\n if (isObject(item) && hasProp(item, \"disabled\")) return !!item.disabled;\n return false;\n }\n};\nvar ListCollection = class _ListCollection {\n constructor(options) {\n this.options = options;\n /**\n * The items in the collection\n */\n __publicField(this, \"items\");\n __publicField(this, \"copy\", (items) => {\n return new _ListCollection({ ...this.options, items: items ?? [...this.items] });\n });\n __publicField(this, \"isEqual\", (other) => {\n return isEqual(this.items, other.items);\n });\n /**\n * Function to update the collection items\n */\n __publicField(this, \"setItems\", (items) => {\n return this.copy(items);\n });\n /**\n * Returns all the values in the collection\n */\n __publicField(this, \"getValues\", (items = this.items) => {\n return Array.from(items).map((item) => this.getItemValue(item)).filter(Boolean);\n });\n /**\n * Get the item based on its value\n */\n __publicField(this, \"find\", (value) => {\n if (value == null) return null;\n const index = this.items.findIndex((item) => this.getItemValue(item) === value);\n return index != null ? this.items[index] : null;\n });\n /**\n * Get the items based on its values\n */\n __publicField(this, \"findMany\", (values) => {\n return Array.from(values).map((value) => this.find(value)).filter((item) => item != null);\n });\n /**\n * Get the item based on its index\n */\n __publicField(this, \"at\", (index) => {\n return this.items[index] ?? null;\n });\n __publicField(this, \"sortFn\", (valueA, valueB) => {\n const indexA = this.indexOf(valueA);\n const indexB = this.indexOf(valueB);\n return (indexA ?? 0) - (indexB ?? 0);\n });\n /**\n * Sort the values based on their index\n */\n __publicField(this, \"sort\", (values) => {\n return [...values].sort(this.sortFn.bind(this));\n });\n /**\n * Convert an item to a value\n */\n __publicField(this, \"getItemValue\", (item) => {\n if (item == null) return null;\n return this.options.itemToValue?.(item) ?? fallback.itemToValue(item);\n });\n /**\n * Whether an item is disabled\n */\n __publicField(this, \"getItemDisabled\", (item) => {\n if (item == null) return false;\n return this.options.isItemDisabled?.(item) ?? fallback.isItemDisabled(item);\n });\n /**\n * Convert an item to a string\n */\n __publicField(this, \"stringifyItem\", (item) => {\n if (item == null) return null;\n return this.options.itemToString?.(item) ?? fallback.itemToString(item);\n });\n /**\n * Convert a value to a string\n */\n __publicField(this, \"stringify\", (value) => {\n if (value == null) return null;\n return this.stringifyItem(this.find(value));\n });\n /**\n * Convert an array of items to a string\n */\n __publicField(this, \"stringifyItems\", (items, separator = \", \") => {\n return Array.from(items).map((item) => this.stringifyItem(item)).filter(Boolean).join(separator);\n });\n /**\n * Convert an array of items to a string\n */\n __publicField(this, \"stringifyMany\", (value, separator) => {\n return this.stringifyItems(this.findMany(value), separator);\n });\n /**\n * Whether the collection has a value\n */\n __publicField(this, \"has\", (value) => {\n return this.indexOf(value) !== -1;\n });\n /**\n * Whether the collection has an item\n */\n __publicField(this, \"hasItem\", (item) => {\n if (item == null) return false;\n return this.has(this.getItemValue(item));\n });\n /**\n * Returns the next value in the collection\n */\n __publicField(this, \"getNextValue\", (value, step = 1, clamp = false) => {\n let index = this.indexOf(value);\n if (index === -1) return null;\n index = clamp ? Math.min(index + step, this.size - 1) : index + step;\n while (index <= this.size && this.getItemDisabled(this.at(index))) index++;\n return this.getItemValue(this.at(index));\n });\n /**\n * Returns the previous value in the collection\n */\n __publicField(this, \"getPreviousValue\", (value, step = 1, clamp = false) => {\n let index = this.indexOf(value);\n if (index === -1) return null;\n index = clamp ? Math.max(index - step, 0) : index - step;\n while (index >= 0 && this.getItemDisabled(this.at(index))) index--;\n return this.getItemValue(this.at(index));\n });\n /**\n * Get the index of an item based on its key\n */\n __publicField(this, \"indexOf\", (value) => {\n if (value == null) return -1;\n return this.items.findIndex((item) => this.getItemValue(item) === value);\n });\n __publicField(this, \"getByText\", (text, current) => {\n let items = current != null ? wrap(this.items, this.indexOf(current)) : this.items;\n const isSingleKey = text.length === 1;\n if (isSingleKey) items = items.filter((item) => this.getItemValue(item) !== current);\n return items.find((item) => match(this.stringifyItem(item), text));\n });\n /**\n * Search for a value based on a query\n */\n __publicField(this, \"search\", (queryString, options) => {\n const { state, currentValue, timeout = 350 } = options;\n const search = state.keysSoFar + queryString;\n const isRepeated = search.length > 1 && Array.from(search).every((char) => char === search[0]);\n const query = isRepeated ? search[0] : search;\n const item = this.getByText(query, currentValue);\n const value = this.getItemValue(item);\n function cleanup() {\n clearTimeout(state.timer);\n state.timer = -1;\n }\n function update(value2) {\n state.keysSoFar = value2;\n cleanup();\n if (value2 !== \"\") {\n state.timer = +setTimeout(() => {\n update(\"\");\n cleanup();\n }, timeout);\n }\n }\n update(search);\n return value;\n });\n __publicField(this, \"update\", (value, item) => {\n let index = this.items.findIndex((item2) => this.getItemValue(item2) === value);\n if (index === -1) return this;\n return this.copy([...this.items.slice(0, index), item, ...this.items.slice(index + 1)]);\n });\n __publicField(this, \"insert\", (index, ...items) => {\n return this.copy(insert(this.items, index, ...items));\n });\n __publicField(this, \"insertBefore\", (value, ...items) => {\n let toIndex = this.indexOf(value);\n if (toIndex === -1) {\n if (this.items.length === 0) toIndex = 0;\n else return this;\n }\n return this.copy(insert(this.items, toIndex, ...items));\n });\n __publicField(this, \"insertAfter\", (value, ...items) => {\n let toIndex = this.indexOf(value);\n if (toIndex === -1) {\n if (this.items.length === 0) toIndex = 0;\n else return this;\n }\n return this.copy(insert(this.items, toIndex + 1, ...items));\n });\n __publicField(this, \"prepend\", (...items) => {\n return this.copy(insert(this.items, 0, ...items));\n });\n __publicField(this, \"append\", (...items) => {\n return this.copy(insert(this.items, this.items.length, ...items));\n });\n __publicField(this, \"remove\", (...itemsOrValues) => {\n const values = itemsOrValues.map(\n (itemOrValue) => typeof itemOrValue === \"string\" ? itemOrValue : this.getItemValue(itemOrValue)\n );\n return this.copy(\n this.items.filter((item) => {\n const value = this.getItemValue(item);\n if (value == null) return false;\n return !values.includes(value);\n })\n );\n });\n __publicField(this, \"move\", (value, toIndex) => {\n const fromIndex = this.indexOf(value);\n if (fromIndex === -1) return this;\n return this.copy(move(this.items, [fromIndex], toIndex));\n });\n __publicField(this, \"reorder\", (fromIndex, toIndex) => {\n return this.copy(move(this.items, [fromIndex], toIndex));\n });\n __publicField(this, \"compareValue\", (a, b) => {\n const indexA = this.indexOf(a);\n const indexB = this.indexOf(b);\n if (indexA < indexB) return -1;\n if (indexA > indexB) return 1;\n return 0;\n });\n __publicField(this, \"range\", (from, to) => {\n let keys = [];\n let key = from;\n while (key != null) {\n let item = this.find(key);\n if (item) keys.push(key);\n if (key === to) return keys;\n key = this.getNextValue(key);\n }\n return [];\n });\n __publicField(this, \"getValueRange\", (from, to) => {\n if (from && to) {\n if (this.compareValue(from, to) <= 0) {\n return this.range(from, to);\n }\n return this.range(to, from);\n }\n return [];\n });\n __publicField(this, \"toString\", () => {\n let result = \"\";\n for (const item of this.items) {\n const value = this.getItemValue(item);\n const label = this.stringifyItem(item);\n const disabled = this.getItemDisabled(item);\n const itemString = [value, label, disabled].filter(Boolean).join(\":\");\n result += itemString + \",\";\n }\n return result;\n });\n __publicField(this, \"toJSON\", () => {\n return {\n size: this.size,\n first: this.firstValue,\n last: this.lastValue\n };\n });\n this.items = [...options.items];\n }\n /**\n * Returns the number of items in the collection\n */\n get size() {\n return this.items.length;\n }\n /**\n * Returns the first value in the collection\n */\n get firstValue() {\n let index = 0;\n while (this.getItemDisabled(this.at(index))) index++;\n return this.getItemValue(this.at(index));\n }\n /**\n * Returns the last value in the collection\n */\n get lastValue() {\n let index = this.size - 1;\n while (this.getItemDisabled(this.at(index))) index--;\n return this.getItemValue(this.at(index));\n }\n *[Symbol.iterator]() {\n yield* this.items;\n }\n};\nvar match = (label, query) => {\n return !!label?.toLowerCase().startsWith(query.toLowerCase());\n};\nvar wrap = (v, idx) => {\n return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]);\n};\nfunction isListCollection(v) {\n return v instanceof ListCollection;\n}\nfunction insert(items, index, ...values) {\n return [...items.slice(0, index), ...values, ...items.slice(index)];\n}\nfunction move(items, indices, toIndex) {\n indices = [...indices].sort((a, b) => a - b);\n const itemsToMove = indices.map((i) => items[i]);\n for (let i = indices.length - 1; i >= 0; i--) {\n items = [...items.slice(0, indices[i]), ...items.slice(indices[i] + 1)];\n }\n toIndex = Math.max(0, toIndex - indices.filter((i) => i < toIndex).length);\n return [...items.slice(0, toIndex), ...itemsToMove, ...items.slice(toIndex)];\n}\n\n// src/grid-collection.ts\nvar GridCollection = class extends ListCollection {\n constructor(options) {\n const { columnCount } = options;\n super(options);\n __publicField(this, \"columnCount\");\n /**\n * Returns the row data in the grid\n */\n __publicField(this, \"getRows\", () => {\n return chunk([...this.items], this.columnCount);\n });\n /**\n * Returns the number of rows in the grid\n */\n __publicField(this, \"getRowCount\", () => {\n return this.getRows().length;\n });\n /**\n * Returns the index of the specified row and column in the grid\n */\n __publicField(this, \"getCellIndex\", (row, column) => {\n return row * this.columnCount + column;\n });\n /**\n * Returns the item at the specified row and column in the grid\n */\n __publicField(this, \"getCell\", (row, column) => {\n return this.at(this.getCellIndex(row, column));\n });\n /**\n * Returns the row and column index for a given value\n */\n __publicField(this, \"getValueCell\", (value) => {\n const index = this.indexOf(value);\n if (index === -1) return null;\n const row = Math.floor(index / this.columnCount);\n const column = index % this.columnCount;\n return { row, column };\n });\n /**\n * Returns the value of the last enabled column in a row\n */\n __publicField(this, \"getLastEnabledColumnIndex\", (row) => {\n for (let col = this.columnCount - 1; col >= 0; col--) {\n const cell = this.getCell(row, col);\n if (cell && !this.getItemDisabled(cell)) {\n return col;\n }\n }\n return null;\n });\n /**\n * Returns the index of the first enabled column in a row\n */\n __publicField(this, \"getFirstEnabledColumnIndex\", (row) => {\n for (let col = 0; col < this.columnCount; col++) {\n const cell = this.getCell(row, col);\n if (cell && !this.getItemDisabled(cell)) {\n return col;\n }\n }\n return null;\n });\n /**\n * Returns the value of the previous row in the grid, based on the current value\n */\n __publicField(this, \"getPreviousRowValue\", (value, loop = false) => {\n const currentCell = this.getValueCell(value);\n if (currentCell === null) return null;\n const rows = this.getRows();\n const rowCount = this.getRowCount();\n let prevRowIndex = currentCell.row;\n let prevColumnIndex = currentCell.column;\n for (let i = 1; i <= rowCount; i++) {\n prevRowIndex = prevIndex(rows, prevRowIndex, { loop });\n const prevRow = rows[prevRowIndex];\n if (!prevRow) continue;\n const prevCell = prevRow[prevColumnIndex];\n if (!prevCell) {\n const lastColumnIndex = this.getLastEnabledColumnIndex(prevRowIndex);\n if (lastColumnIndex != null) {\n prevColumnIndex = lastColumnIndex;\n }\n }\n const cell = this.getCell(prevRowIndex, prevColumnIndex);\n if (!this.getItemDisabled(cell)) {\n return this.getItemValue(cell);\n }\n }\n return this.firstValue;\n });\n /**\n * Returns the value of the next row in the grid, based on the current value\n */\n __publicField(this, \"getNextRowValue\", (value, loop = false) => {\n const currentCell = this.getValueCell(value);\n if (currentCell === null) return null;\n const rows = this.getRows();\n const rowCount = this.getRowCount();\n let nextRowIndex = currentCell.row;\n let nextColumnIndex = currentCell.column;\n for (let i = 1; i <= rowCount; i++) {\n nextRowIndex = nextIndex(rows, nextRowIndex, { loop });\n const nextRow = rows[nextRowIndex];\n if (!nextRow) continue;\n const nextCell = nextRow[nextColumnIndex];\n if (!nextCell) {\n const lastColumnIndex = this.getLastEnabledColumnIndex(nextRowIndex);\n if (lastColumnIndex != null) {\n nextColumnIndex = lastColumnIndex;\n }\n }\n const cell = this.getCell(nextRowIndex, nextColumnIndex);\n if (!this.getItemDisabled(cell)) {\n return this.getItemValue(cell);\n }\n }\n return this.lastValue;\n });\n this.columnCount = columnCount;\n }\n};\nfunction isGridCollection(v) {\n return v instanceof GridCollection;\n}\n\n// src/tree-visit.ts\nfunction access(node, indexPath, options) {\n for (let i = 0; i < indexPath.length; i++) node = options.getChildren(node, indexPath.slice(i + 1))[indexPath[i]];\n return node;\n}\nfunction ancestorIndexPaths(indexPaths) {\n const sortedPaths = sortIndexPaths(indexPaths);\n const result = [];\n const seen = /* @__PURE__ */ new Set();\n for (const indexPath of sortedPaths) {\n const key = indexPath.join();\n if (!seen.has(key)) {\n seen.add(key);\n result.push(indexPath);\n }\n }\n return result;\n}\nfunction compareIndexPaths(a, b) {\n for (let i = 0; i < Math.min(a.length, b.length); i++) {\n if (a[i] < b[i]) return -1;\n if (a[i] > b[i]) return 1;\n }\n return a.length - b.length;\n}\nfunction sortIndexPaths(indexPaths) {\n return indexPaths.sort(compareIndexPaths);\n}\nfunction find(node, options) {\n let found;\n visit(node, {\n ...options,\n onEnter: (child, indexPath) => {\n if (options.predicate(child, indexPath)) {\n found = child;\n return \"stop\";\n }\n }\n });\n return found;\n}\nfunction findIndexPath(node, options) {\n let found;\n visit(node, {\n onEnter: (child, indexPath) => {\n if (options.predicate(child, indexPath)) {\n found = [...indexPath];\n return \"stop\";\n }\n },\n getChildren: options.getChildren\n });\n return found;\n}\nfunction reduce(node, options) {\n let result = options.initialResult;\n visit(node, {\n ...options,\n onEnter: (child, indexPath) => {\n result = options.nextResult(result, child, indexPath);\n }\n });\n return result;\n}\nfunction flatMap(node, options) {\n return reduce(node, {\n ...options,\n initialResult: [],\n nextResult: (result, child, indexPath) => {\n result.push(...options.transform(child, indexPath));\n return result;\n }\n });\n}\nfunction insertOperation(index, nodes) {\n return { type: \"insert\", index, nodes };\n}\nfunction removeOperation(indexes) {\n return { type: \"remove\", indexes };\n}\nfunction replaceOperation() {\n return { type: \"replace\" };\n}\nfunction splitIndexPath(indexPath) {\n return [indexPath.slice(0, -1), indexPath[indexPath.length - 1]];\n}\nfunction getInsertionOperations(indexPath, nodes, operations = /* @__PURE__ */ new Map()) {\n const [parentIndexPath, index] = splitIndexPath(indexPath);\n for (let i = parentIndexPath.length - 1; i >= 0; i--) {\n const parentKey = parentIndexPath.slice(0, i).join();\n switch (operations.get(parentKey)?.type) {\n case \"remove\":\n continue;\n }\n operations.set(parentKey, replaceOperation());\n }\n const operation = operations.get(parentIndexPath.join());\n switch (operation?.type) {\n case \"remove\":\n operations.set(parentIndexPath.join(), {\n type: \"removeThenInsert\",\n removeIndexes: operation.indexes,\n insertIndex: index,\n insertNodes: nodes\n });\n break;\n default:\n operations.set(parentIndexPath.join(), insertOperation(index, nodes));\n }\n return operations;\n}\nfunction getRemovalOperations(indexPaths) {\n const operations = /* @__PURE__ */ new Map();\n const indexesToRemove = /* @__PURE__ */ new Map();\n for (const indexPath of indexPaths) {\n const parentKey = indexPath.slice(0, -1).join();\n const value = indexesToRemove.get(parentKey) ?? [];\n value.push(indexPath[indexPath.length - 1]);\n indexesToRemove.set(\n parentKey,\n value.sort((a, b) => a - b)\n );\n }\n for (const indexPath of indexPaths) {\n for (let i = indexPath.length - 2; i >= 0; i--) {\n const parentKey = indexPath.slice(0, i).join();\n if (!operations.has(parentKey)) {\n operations.set(parentKey, replaceOperation());\n }\n }\n }\n for (const [parentKey, indexes] of indexesToRemove) {\n operations.set(parentKey, removeOperation(indexes));\n }\n return operations;\n}\nfunction getReplaceOperations(indexPath, node) {\n const operations = /* @__PURE__ */ new Map();\n const [parentIndexPath, index] = splitIndexPath(indexPath);\n for (let i = parentIndexPath.length - 1; i >= 0; i--) {\n const parentKey = parentIndexPath.slice(0, i).join();\n operations.set(parentKey, replaceOperation());\n }\n operations.set(parentIndexPath.join(), {\n type: \"removeThenInsert\",\n removeIndexes: [index],\n insertIndex: index,\n insertNodes: [node]\n });\n return operations;\n}\nfunction mutate(node, operations, options) {\n return map(node, {\n ...options,\n getChildren: (node2, indexPath) => {\n const key = indexPath.join();\n const operation = operations.get(key);\n switch (operation?.type) {\n case \"replace\":\n case \"remove\":\n case \"removeThenInsert\":\n case \"insert\":\n return options.getChildren(node2, indexPath);\n default:\n return [];\n }\n },\n transform: (node2, children, indexPath) => {\n const key = indexPath.join();\n const operation = operations.get(key);\n switch (operation?.type) {\n case \"remove\":\n return options.create(\n node2,\n children.filter((_, index) => !operation.indexes.includes(index)),\n indexPath\n );\n case \"removeThenInsert\":\n const updatedChildren = children.filter((_, index) => !operation.removeIndexes.includes(index));\n const adjustedIndex = operation.removeIndexes.reduce(\n (index, removedIndex) => removedIndex < index ? index - 1 : index,\n operation.insertIndex\n );\n return options.create(node2, splice(updatedChildren, adjustedIndex, 0, ...operation.insertNodes), indexPath);\n case \"insert\":\n return options.create(node2, splice(children, operation.index, 0, ...operation.nodes), indexPath);\n case \"replace\":\n return options.create(node2, children, indexPath);\n default:\n return node2;\n }\n }\n });\n}\nfunction splice(array, start, deleteCount, ...items) {\n return [...array.slice(0, start), ...items, ...array.slice(start + deleteCount)];\n}\nfunction map(node, options) {\n const childrenMap = {};\n visit(node, {\n ...options,\n onLeave: (child, indexPath) => {\n const keyIndexPath = [0, ...indexPath];\n const key = keyIndexPath.join();\n const transformed = options.transform(child, childrenMap[key] ?? [], indexPath);\n const parentKey = keyIndexPath.slice(0, -1).join();\n const parentChildren = childrenMap[parentKey] ?? [];\n parentChildren.push(transformed);\n childrenMap[parentKey] = parentChildren;\n }\n });\n return childrenMap[\"\"][0];\n}\nfunction insert2(node, options) {\n const { nodes, at } = options;\n if (at.length === 0) throw new Error(`Can't insert nodes at the root`);\n const state = getInsertionOperations(at, nodes);\n return mutate(node, state, options);\n}\nfunction replace(node, options) {\n if (options.at.length === 0) return options.node;\n const operations = getReplaceOperations(options.at, options.node);\n return mutate(node, operations, options);\n}\nfunction remove(node, options) {\n if (options.indexPaths.length === 0) return node;\n for (const indexPath of options.indexPaths) {\n if (indexPath.length === 0) throw new Error(`Can't remove the root node`);\n }\n const operations = getRemovalOperations(options.indexPaths);\n return mutate(node, operations, options);\n}\nfunction move2(node, options) {\n if (options.indexPaths.length === 0) return node;\n for (const indexPath of options.indexPaths) {\n if (indexPath.length === 0) throw new Error(`Can't move the root node`);\n }\n if (options.to.length === 0) throw new Error(`Can't move nodes to the root`);\n const _ancestorIndexPaths = ancestorIndexPaths(options.indexPaths);\n const nodesToInsert = _ancestorIndexPaths.map((indexPath) => access(node, indexPath, options));\n const operations = getInsertionOperations(options.to, nodesToInsert, getRemovalOperations(_ancestorIndexPaths));\n return mutate(node, operations, options);\n}\nfunction visit(node, options) {\n const { onEnter, onLeave, getChildren } = options;\n let indexPath = [];\n let stack = [{ node }];\n const getIndexPath = options.reuseIndexPath ? () => indexPath : () => indexPath.slice();\n while (stack.length > 0) {\n let wrapper = stack[stack.length - 1];\n if (wrapper.state === void 0) {\n const enterResult = onEnter?.(wrapper.node, getIndexPath());\n if (enterResult === \"stop\") return;\n wrapper.state = enterResult === \"skip\" ? -1 : 0;\n }\n const children = wrapper.children || getChildren(wrapper.node, getIndexPath());\n wrapper.children || (wrapper.children = children);\n if (wrapper.state !== -1) {\n if (wrapper.state < children.length) {\n let currentIndex = wrapper.state;\n indexPath.push(currentIndex);\n stack.push({ node: children[currentIndex] });\n wrapper.state = currentIndex + 1;\n continue;\n }\n const leaveResult = onLeave?.(wrapper.node, getIndexPath());\n if (leaveResult === \"stop\") return;\n }\n indexPath.pop();\n stack.pop();\n }\n}\n\n// src/tree-collection.ts\nvar TreeCollection = class {\n constructor(options) {\n this.options = options;\n __publicField(this, \"rootNode\");\n __publicField(this, \"isEqual\", (other) => {\n return isEqual(this.rootNode, other.rootNode);\n });\n __publicField(this, \"getNodeChildren\", (node) => {\n return this.options.nodeToChildren?.(node) ?? fallback2.nodeToChildren(node) ?? [];\n });\n __publicField(this, \"getNodeValue\", (node) => {\n return this.options.nodeToValue?.(node) ?? fallback2.nodeToValue(node);\n });\n __publicField(this, \"getNodeDisabled\", (node) => {\n return this.options.isNodeDisabled?.(node) ?? fallback2.isNodeDisabled(node);\n });\n __publicField(this, \"stringify\", (value) => {\n const node = this.findNode(value);\n if (!node) return null;\n return this.stringifyNode(node);\n });\n __publicField(this, \"stringifyNode\", (node) => {\n return this.options.nodeToString?.(node) ?? fallback2.nodeToString(node);\n });\n __publicField(this, \"getFirstNode\", (rootNode = this.rootNode) => {\n let firstChild;\n visit(rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (!firstChild && indexPath.length > 0 && !this.getNodeDisabled(node)) {\n firstChild = node;\n return \"stop\";\n }\n }\n });\n return firstChild;\n });\n __publicField(this, \"getLastNode\", (rootNode = this.rootNode, opts = {}) => {\n let lastChild;\n visit(rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) return \"skip\";\n if (indexPath.length > 1) return \"skip\";\n if (!this.getNodeDisabled(node)) {\n lastChild = node;\n }\n }\n });\n return lastChild;\n });\n __publicField(this, \"at\", (indexPath) => {\n return access(this.rootNode, indexPath, {\n getChildren: this.getNodeChildren\n });\n });\n __publicField(this, \"findNode\", (value, rootNode = this.rootNode) => {\n return find(rootNode, {\n getChildren: this.getNodeChildren,\n predicate: (node) => this.getNodeValue(node) === value\n });\n });\n __publicField(this, \"sort\", (values) => {\n return values.reduce(\n (acc, value) => {\n const indexPath = this.getIndexPath(value);\n if (indexPath != null) acc.push({ value, indexPath });\n return acc;\n },\n []\n ).sort((a, b) => compareIndexPaths(a.indexPath, b.indexPath)).map(({ value }) => value);\n });\n __publicField(this, \"getIndexPath\", (value) => {\n return findIndexPath(this.rootNode, {\n getChildren: this.getNodeChildren,\n predicate: (node) => this.getNodeValue(node) === value\n });\n });\n __publicField(this, \"getValue\", (indexPath) => {\n const node = this.at(indexPath);\n return node ? this.getNodeValue(node) : void 0;\n });\n __publicField(this, \"getValuePath\", (indexPath) => {\n if (!indexPath) return [];\n const valuePath = [];\n let currentPath = [...indexPath];\n while (currentPath.length > 0) {\n const node = this.at(currentPath);\n if (node) valuePath.unshift(this.getNodeValue(node));\n currentPath.pop();\n }\n return valuePath;\n });\n __publicField(this, \"getDepth\", (value) => {\n const indexPath = findIndexPath(this.rootNode, {\n getChildren: this.getNodeChildren,\n predicate: (node) => this.getNodeValue(node) === value\n });\n return indexPath?.length ?? 0;\n });\n __publicField(this, \"isRootNode\", (node) => {\n return this.getNodeValue(node) === this.getNodeValue(this.rootNode);\n });\n __publicField(this, \"contains\", (parentIndexPath, valueIndexPath) => {\n if (!parentIndexPath || !valueIndexPath) return false;\n return valueIndexPath.slice(0, parentIndexPath.length).every((_, i) => parentIndexPath[i] === valueIndexPath[i]);\n });\n __publicField(this, \"getNextNode\", (value, opts = {}) => {\n let found = false;\n let nextNode;\n visit(this.rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (this.isRootNode(node)) return;\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) {\n if (nodeValue === value) {\n found = true;\n }\n return \"skip\";\n }\n if (found && !this.getNodeDisabled(node)) {\n nextNode = node;\n return \"stop\";\n }\n if (nodeValue === value) {\n found = true;\n }\n }\n });\n return nextNode;\n });\n __publicField(this, \"getPreviousNode\", (value, opts = {}) => {\n let previousNode;\n let found = false;\n visit(this.rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (this.isRootNode(node)) return;\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) {\n return \"skip\";\n }\n if (nodeValue === value) {\n found = true;\n return \"stop\";\n }\n if (!this.getNodeDisabled(node)) {\n previousNode = node;\n }\n }\n });\n return found ? previousNode : void 0;\n });\n __publicField(this, \"getParentNodes\", (values) => {\n const result = [];\n let indexPath = this.getIndexPath(values);\n while (indexPath && indexPath.length > 0) {\n indexPath.pop();\n const parentNode = this.at(indexPath);\n if (parentNode && !this.isRootNode(parentNode)) {\n result.unshift(parentNode);\n }\n }\n return result;\n });\n __publicField(this, \"getParentIndexPath\", (indexPath) => {\n return indexPath.slice(0, -1);\n });\n __publicField(this, \"getParentNode\", (valueOrIndexPath) => {\n const indexPath = typeof valueOrIndexPath === \"string\" ? this.getIndexPath(valueOrIndexPath) : valueOrIndexPath;\n return indexPath ? this.at(this.getParentIndexPath(indexPath)) : void 0;\n });\n __publicField(this, \"visit\", (opts) => {\n const { skip, ...rest } = opts;\n visit(this.rootNode, {\n ...rest,\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n if (this.isRootNode(node)) return;\n if (skip?.({ value: this.getNodeValue(node), node, indexPath })) return \"skip\";\n return rest.onEnter?.(node, indexPath);\n }\n });\n });\n __publicField(this, \"getPreviousSibling\", (indexPath) => {\n const parentNode = this.getParentNode(indexPath);\n if (!parentNode) return;\n const siblings = this.getNodeChildren(parentNode);\n let idx = siblings.findIndex((sibling) => this.getValue(indexPath) === this.getNodeValue(sibling));\n while (--idx >= 0) {\n const sibling = siblings[idx];\n if (!this.getNodeDisabled(sibling)) return sibling;\n }\n return;\n });\n __publicField(this, \"getNextSibling\", (indexPath) => {\n const parentNode = this.getParentNode(indexPath);\n if (!parentNode) return;\n const siblings = this.getNodeChildren(parentNode);\n let idx = siblings.findIndex((sibling) => this.getValue(indexPath) === this.getNodeValue(sibling));\n while (++idx < siblings.length) {\n const sibling = siblings[idx];\n if (!this.getNodeDisabled(sibling)) return sibling;\n }\n return;\n });\n __publicField(this, \"getSiblingNodes\", (indexPath) => {\n const parentNode = this.getParentNode(indexPath);\n return parentNode ? this.getNodeChildren(parentNode) : [];\n });\n __publicField(this, \"getValues\", (rootNode = this.rootNode) => {\n const values = flatMap(rootNode, {\n getChildren: this.getNodeChildren,\n transform: (node) => [this.getNodeValue(node)]\n });\n return values.slice(1);\n });\n __publicField(this, \"isSameDepth\", (indexPath, depth) => {\n if (depth == null) return true;\n return indexPath.length === depth;\n });\n __publicField(this, \"isBranchNode\", (node) => {\n return this.getNodeChildren(node).length > 0;\n });\n __publicField(this, \"getBranchValues\", (rootNode = this.rootNode, opts = {}) => {\n let values = [];\n visit(rootNode, {\n getChildren: this.getNodeChildren,\n onEnter: (node, indexPath) => {\n const nodeValue = this.getNodeValue(node);\n if (opts.skip?.({ value: nodeValue, node, indexPath })) return \"skip\";\n if (this.getNodeChildren(node).length > 0 && this.isSameDepth(indexPath, opts.depth)) {\n values.push(this.getNodeValue(node));\n }\n }\n });\n return values.slice(1);\n });\n __publicField(this, \"flatten\", (rootNode = this.rootNode) => {\n const nodes = flatMap(rootNode, {\n getChildren: this.getNodeChildren,\n transform: (node, indexPath) => {\n const children = this.getNodeChildren(node).map((child) => this.getNodeValue(child));\n return [\n compact({\n label: this.stringifyNode(node),\n value: this.getNodeValue(node),\n indexPath,\n children: children.length > 0 ? children : void 0\n })\n ];\n }\n });\n return nodes.slice(1);\n });\n __publicField(this, \"_create\", (node, children) => {\n return compact({ ...node, children });\n });\n __publicField(this, \"_insert\", (rootNode, indexPath, nodes) => {\n return insert2(rootNode, { at: indexPath, nodes, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"_replace\", (rootNode, indexPath, node) => {\n return replace(rootNode, { at: indexPath, node, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"_move\", (rootNode, indexPaths, to) => {\n return move2(rootNode, { indexPaths, to, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"_remove\", (rootNode, indexPaths) => {\n return remove(rootNode, { indexPaths, getChildren: this.getNodeChildren, create: this._create });\n });\n __publicField(this, \"replace\", (indexPath, node) => {\n return this._replace(this.rootNode, indexPath, node);\n });\n __publicField(this, \"remove\", (indexPaths) => {\n return this._remove(this.rootNode, indexPaths);\n });\n __publicField(this, \"insertBefore\", (indexPath, nodes) => {\n const parentNode = this.getParentNode(indexPath);\n return parentNode ? this._insert(this.rootNode, indexPath, nodes) : void 0;\n });\n __publicField(this, \"insertAfter\", (indexPath, nodes) => {\n const parentNode = this.getParentNode(indexPath);\n if (!parentNode) return;\n const nextIndex2 = [...indexPath.slice(0, -1), indexPath[indexPath.length - 1] + 1];\n return this._insert(this.rootNode, nextIndex2, nodes);\n });\n __publicField(this, \"move\", (fromIndexPaths, toIndexPath) => {\n return this._move(this.rootNode, fromIndexPaths, toIndexPath);\n });\n __publicField(this, \"toJSON\", () => {\n return this.getValues(this.rootNode);\n });\n this.rootNode = options.rootNode;\n }\n};\nfunction flattenedToTree(nodes) {\n let rootNode = {\n value: \"ROOT\"\n };\n nodes.map((node) => {\n const { indexPath, label, value } = node;\n if (!indexPath.length) {\n Object.assign(rootNode, { label, value, children: [] });\n return;\n }\n rootNode = insert2(rootNode, {\n at: indexPath,\n nodes: [compact({ label, value })],\n getChildren: (node2) => node2.children ?? [],\n create: (node2, children) => {\n return compact({ ...node2, children });\n }\n });\n });\n return new TreeCollection({ rootNode });\n}\nfunction filePathToTree(paths) {\n const rootNode = {\n label: \"\",\n value: \"ROOT\",\n children: []\n };\n paths.forEach((path) => {\n const parts = path.split(\"/\");\n let currentNode = rootNode;\n parts.forEach((part) => {\n let childNode = currentNode.children?.find((child) => child.label === part);\n if (!childNode) {\n childNode = {\n value: parts.slice(0, parts.indexOf(part) + 1).join(\"/\"),\n label: part\n };\n currentNode.children || (currentNode.children = []);\n currentNode.children.push(childNode);\n }\n currentNode = childNode;\n });\n });\n return new TreeCollection({ rootNode });\n}\nvar fallback2 = {\n nodeToValue(node) {\n if (typeof node === \"string\") return node;\n if (isObject(node) && hasProp(node, \"value\")) return node.value;\n return \"\";\n },\n nodeToString(node) {\n if (typeof node === \"string\") return node;\n if (isObject(node) && hasProp(node, \"label\")) return node.label;\n return fallback2.nodeToValue(node);\n },\n isNodeDisabled(node) {\n if (isObject(node) && hasProp(node, \"disabled\")) return !!node.disabled;\n return false;\n },\n nodeToChildren(node) {\n return node.children;\n }\n};\nvar Selection = class _Selection extends Set {\n constructor(values = []) {\n super(values);\n __publicField(this, \"selectionMode\", \"single\");\n __publicField(this, \"deselectable\", true);\n __publicField(this, \"copy\", () => {\n const clone = new _Selection([...this]);\n return this.sync(clone);\n });\n __publicField(this, \"sync\", (other) => {\n other.selectionMode = this.selectionMode;\n other.deselectable = this.deselectable;\n return other;\n });\n __publicField(this, \"isEmpty\", () => {\n return this.size === 0;\n });\n __publicField(this, \"isSelected\", (value) => {\n if (this.selectionMode === \"none\" || value == null) {\n return false;\n }\n return this.has(value);\n });\n __publicField(this, \"canSelect\", (collection, value) => {\n return this.selectionMode !== \"none\" || !collection.getItemDisabled(collection.find(value));\n });\n __publicField(this, \"firstSelectedValue\", (collection) => {\n let firstValue = null;\n for (let value of this) {\n if (!firstValue || collection.compareValue(value, firstValue) < 0) {\n firstValue = value;\n }\n }\n return firstValue;\n });\n __publicField(this, \"lastSelectedValue\", (collection) => {\n let lastValue = null;\n for (let value of this) {\n if (!lastValue || collection.compareValue(value, lastValue) > 0) {\n lastValue = value;\n }\n }\n return lastValue;\n });\n __publicField(this, \"extendSelection\", (collection, anchorValue, targetValue) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (this.selectionMode === \"single\") {\n return this.replaceSelection(collection, targetValue);\n }\n const selection = this.copy();\n const lastSelected = Array.from(this).pop();\n for (let key of collection.getValueRange(anchorValue, lastSelected ?? targetValue)) {\n selection.delete(key);\n }\n for (let key of collection.getValueRange(targetValue, anchorValue)) {\n if (this.canSelect(collection, key)) {\n selection.add(key);\n }\n }\n return selection;\n });\n __publicField(this, \"toggleSelection\", (collection, value) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (this.selectionMode === \"single\" && !this.isSelected(value)) {\n return this.replaceSelection(collection, value);\n }\n const selection = this.copy();\n if (selection.has(value)) {\n selection.delete(value);\n } else if (selection.canSelect(collection, value)) {\n selection.add(value);\n }\n return selection;\n });\n __publicField(this, \"replaceSelection\", (collection, value) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (value == null) {\n return this;\n }\n if (!this.canSelect(collection, value)) {\n return this;\n }\n const selection = new _Selection([value]);\n return this.sync(selection);\n });\n __publicField(this, \"setSelection\", (values) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n let selection = new _Selection();\n for (let value of values) {\n if (value != null) {\n selection.add(value);\n if (this.selectionMode === \"single\") {\n break;\n }\n }\n }\n return this.sync(selection);\n });\n __publicField(this, \"clearSelection\", () => {\n const selection = this.copy();\n if (selection.deselectable && selection.size > 0) {\n selection.clear();\n }\n return selection;\n });\n __publicField(this, \"select\", (collection, value, forceToggle) => {\n if (this.selectionMode === \"none\") {\n return this;\n }\n if (this.selectionMode === \"single\") {\n if (this.isSelected(value) && this.deselectable) {\n return this.toggleSelection(collection, value);\n } else {\n return this.replaceSelection(collection, value);\n }\n } else if (this.selectionMode === \"multiple\" || forceToggle) {\n return this.toggleSelection(collection, value);\n } else {\n return this.replaceSelection(collection, value);\n }\n });\n __publicField(this, \"deselect\", (value) => {\n const selection = this.copy();\n selection.delete(value);\n return selection;\n });\n __publicField(this, \"isEqual\", (other) => {\n return isEqual(Array.from(this), Array.from(other));\n });\n }\n};\n\nexport { GridCollection, ListCollection, Selection, TreeCollection, filePathToTree, flattenedToTree, isGridCollection, isListCollection };\n","import { ListCollection, filePathToTree, TreeCollection } from '@zag-js/collection';\n\nconst createListCollection = (options) => new ListCollection(options);\nconst createTreeCollection = (options) => new TreeCollection(options);\nconst createFileTreeCollection = (paths) => filePathToTree(paths);\n\nexport { createFileTreeCollection, createListCollection, createTreeCollection };\n","// src/walk-tree-outside.ts\nvar counterMap = /* @__PURE__ */ new WeakMap();\nvar uncontrolledNodes = /* @__PURE__ */ new WeakMap();\nvar markerMap = {};\nvar lockCount = 0;\nvar unwrapHost = (node) => node && (node.host || unwrapHost(node.parentNode));\nvar correctTargets = (parent, targets) => targets.map((target) => {\n if (parent.contains(target)) return target;\n const correctedTarget = unwrapHost(target);\n if (correctedTarget && parent.contains(correctedTarget)) {\n return correctedTarget;\n }\n console.error(\"[zag-js > ariaHidden] target\", target, \"in not contained inside\", parent, \". Doing nothing\");\n return null;\n}).filter((x) => Boolean(x));\nvar isIgnoredNode = (node) => {\n if (node.localName === \"next-route-announcer\") return true;\n if (node.localName === \"script\") return true;\n if (node.hasAttribute(\"aria-live\")) return true;\n return node.matches(\"[data-live-announcer]\");\n};\nvar walkTreeOutside = (originalTarget, props) => {\n const { parentNode, markerName, controlAttribute} = props;\n const targets = correctTargets(parentNode, Array.isArray(originalTarget) ? originalTarget : [originalTarget]);\n markerMap[markerName] || (markerMap[markerName] = /* @__PURE__ */ new WeakMap());\n const markerCounter = markerMap[markerName];\n const hiddenNodes = [];\n const elementsToKeep = /* @__PURE__ */ new Set();\n const elementsToStop = new Set(targets);\n const keep = (el) => {\n if (!el || elementsToKeep.has(el)) return;\n elementsToKeep.add(el);\n keep(el.parentNode);\n };\n targets.forEach(keep);\n const deep = (parent) => {\n if (!parent || elementsToStop.has(parent)) {\n return;\n }\n Array.prototype.forEach.call(parent.children, (node) => {\n if (elementsToKeep.has(node)) {\n deep(node);\n } else {\n try {\n if (isIgnoredNode(node)) return;\n const attr = node.getAttribute(controlAttribute);\n const alreadyHidden = attr === \"true\" ;\n const counterValue = (counterMap.get(node) || 0) + 1;\n const markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n hiddenNodes.push(node);\n if (counterValue === 1 && alreadyHidden) {\n uncontrolledNodes.set(node, true);\n }\n if (markerValue === 1) {\n node.setAttribute(markerName, \"\");\n }\n if (!alreadyHidden) {\n node.setAttribute(controlAttribute, \"true\" );\n }\n } catch (e) {\n console.error(\"[zag-js > ariaHidden] cannot operate on \", node, e);\n }\n }\n });\n };\n deep(parentNode);\n elementsToKeep.clear();\n lockCount++;\n return () => {\n hiddenNodes.forEach((node) => {\n const counterValue = counterMap.get(node) - 1;\n const markerValue = markerCounter.get(node) - 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n if (!counterValue) {\n if (!uncontrolledNodes.has(node)) {\n node.removeAttribute(controlAttribute);\n }\n uncontrolledNodes.delete(node);\n }\n if (!markerValue) {\n node.removeAttribute(markerName);\n }\n });\n lockCount--;\n if (!lockCount) {\n counterMap = /* @__PURE__ */ new WeakMap();\n counterMap = /* @__PURE__ */ new WeakMap();\n uncontrolledNodes = /* @__PURE__ */ new WeakMap();\n markerMap = {};\n }\n };\n};\n\n// src/aria-hidden.ts\nvar getParentNode = (originalTarget) => {\n const target = Array.isArray(originalTarget) ? originalTarget[0] : originalTarget;\n return target.ownerDocument.body;\n};\nvar hideOthers = (originalTarget, parentNode = getParentNode(originalTarget), markerName = \"data-aria-hidden\") => {\n if (!parentNode) return;\n return walkTreeOutside(originalTarget, {\n parentNode,\n markerName,\n controlAttribute: \"aria-hidden\"});\n};\n\n// src/index.ts\nvar raf = (fn) => {\n const frameId = requestAnimationFrame(() => fn());\n return () => cancelAnimationFrame(frameId);\n};\nfunction ariaHidden(targetsOrFn, options = {}) {\n const { defer = true } = options;\n const func = defer ? raf : (v) => v();\n const cleanups = [];\n cleanups.push(\n func(() => {\n const targets = typeof targetsOrFn === \"function\" ? targetsOrFn() : targetsOrFn;\n const elements = targets.filter(Boolean);\n if (elements.length === 0) return;\n cleanups.push(hideOthers(elements));\n })\n );\n return () => {\n cleanups.forEach((fn) => fn?.());\n };\n}\n\nexport { ariaHidden };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [DialogProvider, useDialogContext] = createContext({\n name: \"DialogContext\",\n hookName: \"useDialogContext\",\n providerName: \"<DialogProvider />\"\n});\n\nexport { DialogProvider, useDialogContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogBackdrop = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const renderStrategyProps = useRenderStrategyPropsContext();\n const presence = usePresence({ ...renderStrategyProps, present: dialog.open });\n const mergedProps = mergeProps(dialog.getBackdropProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nDialogBackdrop.displayName = \"DialogBackdrop\";\n\nexport { DialogBackdrop };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogCloseTrigger = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getCloseTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nDialogCloseTrigger.displayName = \"DialogCloseTrigger\";\n\nexport { DialogCloseTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogContent = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(dialog.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nDialogContent.displayName = \"DialogContent\";\n\nexport { DialogContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogDescription = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getDescriptionProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nDialogDescription.displayName = \"DialogDescription\";\n\nexport { DialogDescription };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogPositioner = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nDialogPositioner.displayName = \"DialogPositioner\";\n\nexport { DialogPositioner };\n","import { getDocument, getTabbables, getFocusables, isTabbable, getTabIndex, addDomEvent, raf, getEventTarget, isDocument, isFocusable, getActiveElement } from '@zag-js/dom-query';\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar activeFocusTraps = {\n activateTrap(trapStack, trap) {\n if (trapStack.length > 0) {\n const activeTrap = trapStack[trapStack.length - 1];\n if (activeTrap !== trap) {\n activeTrap.pause();\n }\n }\n const trapIndex = trapStack.indexOf(trap);\n if (trapIndex === -1) {\n trapStack.push(trap);\n } else {\n trapStack.splice(trapIndex, 1);\n trapStack.push(trap);\n }\n },\n deactivateTrap(trapStack, trap) {\n const trapIndex = trapStack.indexOf(trap);\n if (trapIndex !== -1) {\n trapStack.splice(trapIndex, 1);\n }\n if (trapStack.length > 0) {\n trapStack[trapStack.length - 1].unpause();\n }\n }\n};\nvar sharedTrapStack = [];\nvar FocusTrap = class {\n constructor(elements, options) {\n __publicField(this, \"trapStack\");\n __publicField(this, \"config\");\n __publicField(this, \"doc\");\n __publicField(this, \"state\", {\n containers: [],\n containerGroups: [],\n tabbableGroups: [],\n nodeFocusedBeforeActivation: null,\n mostRecentlyFocusedNode: null,\n active: false,\n paused: false,\n delayInitialFocusTimer: void 0,\n recentNavEvent: void 0\n });\n __publicField(this, \"listenerCleanups\", []);\n __publicField(this, \"handleFocus\", (event) => {\n const target = getEventTarget(event);\n const targetContained = this.findContainerIndex(target, event) >= 0;\n if (targetContained || isDocument(target)) {\n if (targetContained) {\n this.state.mostRecentlyFocusedNode = target;\n }\n } else {\n event.stopImmediatePropagation();\n let nextNode;\n let navAcrossContainers = true;\n if (this.state.mostRecentlyFocusedNode) {\n if (getTabIndex(this.state.mostRecentlyFocusedNode) > 0) {\n const mruContainerIdx = this.findContainerIndex(this.state.mostRecentlyFocusedNode);\n const { tabbableNodes } = this.state.containerGroups[mruContainerIdx];\n if (tabbableNodes.length > 0) {\n const mruTabIdx = tabbableNodes.findIndex((node) => node === this.state.mostRecentlyFocusedNode);\n if (mruTabIdx >= 0) {\n if (this.config.isKeyForward(this.state.recentNavEvent)) {\n if (mruTabIdx + 1 < tabbableNodes.length) {\n nextNode = tabbableNodes[mruTabIdx + 1];\n navAcrossContainers = false;\n }\n } else {\n if (mruTabIdx - 1 >= 0) {\n nextNode = tabbableNodes[mruTabIdx - 1];\n navAcrossContainers = false;\n }\n }\n }\n }\n } else {\n if (!this.state.containerGroups.some((g) => g.tabbableNodes.some((n) => getTabIndex(n) > 0))) {\n navAcrossContainers = false;\n }\n }\n } else {\n navAcrossContainers = false;\n }\n if (navAcrossContainers) {\n nextNode = this.findNextNavNode({\n // move FROM the MRU node, not event-related node (which will be the node that is\n // outside the trap causing the focus escape we're trying to fix)\n target: this.state.mostRecentlyFocusedNode,\n isBackward: this.config.isKeyBackward(this.state.recentNavEvent)\n });\n }\n if (nextNode) {\n this.tryFocus(nextNode);\n } else {\n this.tryFocus(this.state.mostRecentlyFocusedNode || this.getInitialFocusNode());\n }\n }\n this.state.recentNavEvent = void 0;\n });\n __publicField(this, \"handlePointerDown\", (event) => {\n const target = getEventTarget(event);\n if (this.findContainerIndex(target, event) >= 0) {\n return;\n }\n if (valueOrHandler(this.config.clickOutsideDeactivates, event)) {\n this.deactivate({ returnFocus: this.config.returnFocusOnDeactivate });\n return;\n }\n if (valueOrHandler(this.config.allowOutsideClick, event)) {\n return;\n }\n event.preventDefault();\n });\n __publicField(this, \"handleClick\", (event) => {\n const target = getEventTarget(event);\n if (this.findContainerIndex(target, event) >= 0) {\n return;\n }\n if (valueOrHandler(this.config.clickOutsideDeactivates, event)) {\n return;\n }\n if (valueOrHandler(this.config.allowOutsideClick, event)) {\n return;\n }\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n __publicField(this, \"handleTabKey\", (event) => {\n if (this.config.isKeyForward(event) || this.config.isKeyBackward(event)) {\n this.state.recentNavEvent = event;\n const isBackward = this.config.isKeyBackward(event);\n const destinationNode = this.findNextNavNode({ event, isBackward });\n if (!destinationNode) return;\n if (isTabEvent(event)) {\n event.preventDefault();\n }\n this.tryFocus(destinationNode);\n }\n });\n __publicField(this, \"handleEscapeKey\", (event) => {\n if (isEscapeEvent(event) && valueOrHandler(this.config.escapeDeactivates, event) !== false) {\n event.preventDefault();\n this.deactivate();\n }\n });\n __publicField(this, \"_mutationObserver\");\n __publicField(this, \"setupMutationObserver\", () => {\n const win = this.doc.defaultView || window;\n this._mutationObserver = new win.MutationObserver((mutations) => {\n const isFocusedNodeRemoved = mutations.some((mutation) => {\n const removedNodes = Array.from(mutation.removedNodes);\n return removedNodes.some((node) => node === this.state.mostRecentlyFocusedNode);\n });\n if (isFocusedNodeRemoved) {\n this.tryFocus(this.getInitialFocusNode());\n }\n });\n });\n __publicField(this, \"updateObservedNodes\", () => {\n this._mutationObserver?.disconnect();\n if (this.state.active && !this.state.paused) {\n this.state.containers.map((container) => {\n this._mutationObserver?.observe(container, { subtree: true, childList: true });\n });\n }\n });\n __publicField(this, \"getInitialFocusNode\", () => {\n let node = this.getNodeForOption(\"initialFocus\", { hasFallback: true });\n if (node === false) {\n return false;\n }\n if (node === void 0 || node && !isFocusable(node)) {\n if (this.findContainerIndex(this.doc.activeElement) >= 0) {\n node = this.doc.activeElement;\n } else {\n const firstTabbableGroup = this.state.tabbableGroups[0];\n const firstTabbableNode = firstTabbableGroup && firstTabbableGroup.firstTabbableNode;\n node = firstTabbableNode || this.getNodeForOption(\"fallbackFocus\");\n }\n } else if (node === null) {\n node = this.getNodeForOption(\"fallbackFocus\");\n }\n if (!node) {\n throw new Error(\"Your focus-trap needs to have at least one focusable element\");\n }\n if (!node.isConnected) {\n node = this.getNodeForOption(\"fallbackFocus\");\n }\n return node;\n });\n __publicField(this, \"tryFocus\", (node) => {\n if (node === false) return;\n if (node === getActiveElement(this.doc)) return;\n if (!node || !node.focus) {\n this.tryFocus(this.getInitialFocusNode());\n return;\n }\n node.focus({ preventScroll: !!this.config.preventScroll });\n this.state.mostRecentlyFocusedNode = node;\n if (isSelectableInput(node)) {\n node.select();\n }\n });\n __publicField(this, \"deactivate\", (deactivateOptions) => {\n if (!this.state.active) return this;\n const options = {\n onDeactivate: this.config.onDeactivate,\n onPostDeactivate: this.config.onPostDeactivate,\n checkCanReturnFocus: this.config.checkCanReturnFocus,\n ...deactivateOptions\n };\n clearTimeout(this.state.delayInitialFocusTimer);\n this.state.delayInitialFocusTimer = void 0;\n this.removeListeners();\n this.state.active = false;\n this.state.paused = false;\n this.updateObservedNodes();\n activeFocusTraps.deactivateTrap(this.trapStack, this);\n const onDeactivate = this.getOption(options, \"onDeactivate\");\n const onPostDeactivate = this.getOption(options, \"onPostDeactivate\");\n const checkCanReturnFocus = this.getOption(options, \"checkCanReturnFocus\");\n const returnFocus = this.getOption(options, \"returnFocus\", \"returnFocusOnDeactivate\");\n onDeactivate?.();\n const finishDeactivation = () => {\n delay(() => {\n if (returnFocus) {\n const returnFocusNode = this.getReturnFocusNode(this.state.nodeFocusedBeforeActivation);\n this.tryFocus(returnFocusNode);\n }\n onPostDeactivate?.();\n });\n };\n if (returnFocus && checkCanReturnFocus) {\n const returnFocusNode = this.getReturnFocusNode(this.state.nodeFocusedBeforeActivation);\n checkCanReturnFocus(returnFocusNode).then(finishDeactivation, finishDeactivation);\n return this;\n }\n finishDeactivation();\n return this;\n });\n __publicField(this, \"pause\", (pauseOptions) => {\n if (this.state.paused || !this.state.active) {\n return this;\n }\n const onPause = this.getOption(pauseOptions, \"onPause\");\n const onPostPause = this.getOption(pauseOptions, \"onPostPause\");\n this.state.paused = true;\n onPause?.();\n this.removeListeners();\n this.updateObservedNodes();\n onPostPause?.();\n return this;\n });\n __publicField(this, \"unpause\", (unpauseOptions) => {\n if (!this.state.paused || !this.state.active) {\n return this;\n }\n const onUnpause = this.getOption(unpauseOptions, \"onUnpause\");\n const onPostUnpause = this.getOption(unpauseOptions, \"onPostUnpause\");\n this.state.paused = false;\n onUnpause?.();\n this.updateTabbableNodes();\n this.addListeners();\n this.updateObservedNodes();\n onPostUnpause?.();\n return this;\n });\n __publicField(this, \"updateContainerElements\", (containerElements) => {\n this.state.containers = Array.isArray(containerElements) ? containerElements.filter(Boolean) : [containerElements].filter(Boolean);\n if (this.state.active) {\n this.updateTabbableNodes();\n }\n this.updateObservedNodes();\n return this;\n });\n __publicField(this, \"getReturnFocusNode\", (previousActiveElement) => {\n const node = this.getNodeForOption(\"setReturnFocus\", {\n params: [previousActiveElement]\n });\n return node ? node : node === false ? false : previousActiveElement;\n });\n __publicField(this, \"getOption\", (configOverrideOptions, optionName, configOptionName) => {\n return configOverrideOptions && configOverrideOptions[optionName] !== void 0 ? configOverrideOptions[optionName] : (\n // @ts-expect-error\n this.config[configOptionName || optionName]\n );\n });\n __publicField(this, \"getNodeForOption\", (optionName, { hasFallback = false, params = [] } = {}) => {\n let optionValue = this.config[optionName];\n if (typeof optionValue === \"function\") optionValue = optionValue(...params);\n if (optionValue === true) optionValue = void 0;\n if (!optionValue) {\n if (optionValue === void 0 || optionValue === false) {\n return optionValue;\n }\n throw new Error(`\\`${optionName}\\` was specified but was not a node, or did not return a node`);\n }\n let node = optionValue;\n if (typeof optionValue === \"string\") {\n try {\n node = this.doc.querySelector(optionValue);\n } catch (err) {\n throw new Error(`\\`${optionName}\\` appears to be an invalid selector; error=\"${err.message}\"`);\n }\n if (!node) {\n if (!hasFallback) {\n throw new Error(`\\`${optionName}\\` as selector refers to no known node`);\n }\n }\n }\n return node;\n });\n __publicField(this, \"findNextNavNode\", (opts) => {\n const { event, isBackward = false } = opts;\n const target = opts.target || getEventTarget(event);\n this.updateTabbableNodes();\n let destinationNode = null;\n if (this.state.tabbableGroups.length > 0) {\n const containerIndex = this.findContainerIndex(target, event);\n const containerGroup = containerIndex >= 0 ? this.state.containerGroups[containerIndex] : void 0;\n if (containerIndex < 0) {\n if (isBackward) {\n destinationNode = this.state.tabbableGroups[this.state.tabbableGroups.length - 1].lastTabbableNode;\n } else {\n destinationNode = this.state.tabbableGroups[0].firstTabbableNode;\n }\n } else if (isBackward) {\n let startOfGroupIndex = this.state.tabbableGroups.findIndex(\n ({ firstTabbableNode }) => target === firstTabbableNode\n );\n if (startOfGroupIndex < 0 && (containerGroup?.container === target || isFocusable(target) && !isTabbable(target) && !containerGroup?.nextTabbableNode(target, false))) {\n startOfGroupIndex = containerIndex;\n }\n if (startOfGroupIndex >= 0) {\n const destinationGroupIndex = startOfGroupIndex === 0 ? this.state.tabbableGroups.length - 1 : startOfGroupIndex - 1;\n const destinationGroup = this.state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.lastTabbableNode : destinationGroup.lastDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup?.nextTabbableNode(target, false);\n }\n } else {\n let lastOfGroupIndex = this.state.tabbableGroups.findIndex(\n ({ lastTabbableNode }) => target === lastTabbableNode\n );\n if (lastOfGroupIndex < 0 && (containerGroup?.container === target || isFocusable(target) && !isTabbable(target) && !containerGroup?.nextTabbableNode(target))) {\n lastOfGroupIndex = containerIndex;\n }\n if (lastOfGroupIndex >= 0) {\n const destinationGroupIndex = lastOfGroupIndex === this.state.tabbableGroups.length - 1 ? 0 : lastOfGroupIndex + 1;\n const destinationGroup = this.state.tabbableGroups[destinationGroupIndex];\n destinationNode = getTabIndex(target) >= 0 ? destinationGroup.firstTabbableNode : destinationGroup.firstDomTabbableNode;\n } else if (!isTabEvent(event)) {\n destinationNode = containerGroup?.nextTabbableNode(target);\n }\n }\n } else {\n destinationNode = this.getNodeForOption(\"fallbackFocus\");\n }\n return destinationNode;\n });\n this.trapStack = options.trapStack || sharedTrapStack;\n const config = {\n returnFocusOnDeactivate: true,\n escapeDeactivates: true,\n delayInitialFocus: true,\n isKeyForward(e) {\n return isTabEvent(e) && !e.shiftKey;\n },\n isKeyBackward(e) {\n return isTabEvent(e) && e.shiftKey;\n },\n ...options\n };\n this.doc = config.document || getDocument(Array.isArray(elements) ? elements[0] : elements);\n this.config = config;\n this.updateContainerElements(elements);\n this.setupMutationObserver();\n }\n get active() {\n return this.state.active;\n }\n get paused() {\n return this.state.paused;\n }\n findContainerIndex(element, event) {\n const composedPath = typeof event?.composedPath === \"function\" ? event.composedPath() : void 0;\n return this.state.containerGroups.findIndex(\n ({ container, tabbableNodes }) => container.contains(element) || composedPath?.includes(container) || tabbableNodes.find((node) => node === element)\n );\n }\n updateTabbableNodes() {\n this.state.containerGroups = this.state.containers.map((container) => {\n const tabbableNodes = getTabbables(container);\n const focusableNodes = getFocusables(container);\n const firstTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[0] : void 0;\n const lastTabbableNode = tabbableNodes.length > 0 ? tabbableNodes[tabbableNodes.length - 1] : void 0;\n const firstDomTabbableNode = focusableNodes.find((node) => isTabbable(node));\n const lastDomTabbableNode = focusableNodes.slice().reverse().find((node) => isTabbable(node));\n const posTabIndexesFound = !!tabbableNodes.find((node) => getTabIndex(node) > 0);\n function nextTabbableNode(node, forward = true) {\n const nodeIdx = tabbableNodes.indexOf(node);\n if (nodeIdx < 0) {\n if (forward) {\n return focusableNodes.slice(focusableNodes.indexOf(node) + 1).find((el) => isTabbable(el));\n }\n return focusableNodes.slice(0, focusableNodes.indexOf(node)).reverse().find((el) => isTabbable(el));\n }\n return tabbableNodes[nodeIdx + (forward ? 1 : -1)];\n }\n return {\n container,\n tabbableNodes,\n focusableNodes,\n posTabIndexesFound,\n firstTabbableNode,\n lastTabbableNode,\n firstDomTabbableNode,\n lastDomTabbableNode,\n nextTabbableNode\n };\n });\n this.state.tabbableGroups = this.state.containerGroups.filter((group) => group.tabbableNodes.length > 0);\n if (this.state.tabbableGroups.length <= 0 && !this.getNodeForOption(\"fallbackFocus\")) {\n throw new Error(\n \"Your focus-trap must have at least one container with at least one tabbable node in it at all times\"\n );\n }\n if (this.state.containerGroups.find((g) => g.posTabIndexesFound) && this.state.containerGroups.length > 1) {\n throw new Error(\n \"At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.\"\n );\n }\n }\n addListeners() {\n if (!this.state.active) return;\n activeFocusTraps.activateTrap(this.trapStack, this);\n this.state.delayInitialFocusTimer = this.config.delayInitialFocus ? delay(() => {\n this.tryFocus(this.getInitialFocusNode());\n }) : this.tryFocus(this.getInitialFocusNode());\n this.listenerCleanups.push(\n addDomEvent(this.doc, \"focusin\", this.handleFocus, true),\n addDomEvent(this.doc, \"mousedown\", this.handlePointerDown, { capture: true, passive: false }),\n addDomEvent(this.doc, \"touchstart\", this.handlePointerDown, { capture: true, passive: false }),\n addDomEvent(this.doc, \"click\", this.handleClick, { capture: true, passive: false }),\n addDomEvent(this.doc, \"keydown\", this.handleTabKey, { capture: true, passive: false }),\n addDomEvent(this.doc, \"keydown\", this.handleEscapeKey)\n );\n return this;\n }\n removeListeners() {\n if (!this.state.active) return;\n this.listenerCleanups.forEach((cleanup) => cleanup());\n this.listenerCleanups = [];\n return this;\n }\n activate(activateOptions) {\n if (this.state.active) {\n return this;\n }\n const onActivate = this.getOption(activateOptions, \"onActivate\");\n const onPostActivate = this.getOption(activateOptions, \"onPostActivate\");\n const checkCanFocusTrap = this.getOption(activateOptions, \"checkCanFocusTrap\");\n if (!checkCanFocusTrap) {\n this.updateTabbableNodes();\n }\n this.state.active = true;\n this.state.paused = false;\n this.state.nodeFocusedBeforeActivation = this.doc.activeElement || null;\n onActivate?.();\n const finishActivation = () => {\n if (checkCanFocusTrap) {\n this.updateTabbableNodes();\n }\n this.addListeners();\n this.updateObservedNodes();\n onPostActivate?.();\n };\n if (checkCanFocusTrap) {\n checkCanFocusTrap(this.state.containers.concat()).then(finishActivation, finishActivation);\n return this;\n }\n finishActivation();\n return this;\n }\n};\nvar isTabEvent = (event) => event.key === \"Tab\";\nvar valueOrHandler = (value, ...params) => typeof value === \"function\" ? value(...params) : value;\nvar isEscapeEvent = (event) => !event.isComposing && event.key === \"Escape\";\nvar delay = (fn) => setTimeout(fn, 0);\nvar isSelectableInput = (node) => node.localName === \"input\" && \"select\" in node && typeof node.select === \"function\";\n\n// src/index.ts\nfunction trapFocus(el, options = {}) {\n let trap;\n const cleanup = raf(() => {\n const contentEl = typeof el === \"function\" ? el() : el;\n if (!contentEl) return;\n trap = new FocusTrap(contentEl, {\n escapeDeactivates: false,\n allowOutsideClick: true,\n preventScroll: true,\n returnFocusOnDeactivate: true,\n delayInitialFocus: false,\n fallbackFocus: contentEl,\n ...options,\n document: getDocument(contentEl)\n });\n try {\n trap.activate();\n } catch {\n }\n });\n return function destroy() {\n trap?.deactivate();\n cleanup();\n };\n}\n\nexport { FocusTrap, trapFocus };\n","import { setStyleProperty, setStyle, isIos } from '@zag-js/dom-query';\n\n// src/index.ts\nvar LOCK_CLASSNAME = \"data-scroll-lock\";\nfunction getPaddingProperty(documentElement) {\n const documentLeft = documentElement.getBoundingClientRect().left;\n const scrollbarX = Math.round(documentLeft) + documentElement.scrollLeft;\n return scrollbarX ? \"paddingLeft\" : \"paddingRight\";\n}\nfunction preventBodyScroll(_document) {\n const doc = _document ?? document;\n const win = doc.defaultView ?? window;\n const { documentElement, body } = doc;\n const locked = body.hasAttribute(LOCK_CLASSNAME);\n if (locked) return;\n body.setAttribute(LOCK_CLASSNAME, \"\");\n const scrollbarWidth = win.innerWidth - documentElement.clientWidth;\n const setScrollbarWidthProperty = () => setStyleProperty(documentElement, \"--scrollbar-width\", `${scrollbarWidth}px`);\n const paddingProperty = getPaddingProperty(documentElement);\n const setBodyStyle = () => setStyle(body, {\n overflow: \"hidden\",\n [paddingProperty]: `${scrollbarWidth}px`\n });\n const setBodyStyleIOS = () => {\n const { scrollX, scrollY, visualViewport } = win;\n const offsetLeft = visualViewport?.offsetLeft ?? 0;\n const offsetTop = visualViewport?.offsetTop ?? 0;\n const restoreStyle = setStyle(body, {\n position: \"fixed\",\n overflow: \"hidden\",\n top: `${-(scrollY - Math.floor(offsetTop))}px`,\n left: `${-(scrollX - Math.floor(offsetLeft))}px`,\n right: \"0\",\n [paddingProperty]: `${scrollbarWidth}px`\n });\n return () => {\n restoreStyle?.();\n win.scrollTo({ left: scrollX, top: scrollY, behavior: \"instant\" });\n };\n };\n const cleanups = [setScrollbarWidthProperty(), isIos() ? setBodyStyleIOS() : setBodyStyle()];\n return () => {\n cleanups.forEach((fn) => fn?.());\n body.removeAttribute(LOCK_CLASSNAME);\n };\n}\n\nexport { preventBodyScroll };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { ariaHidden } from '@zag-js/aria-hidden';\nimport { createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { raf, getComputedStyle } from '@zag-js/dom-query';\nimport { trapFocus } from '@zag-js/focus-trap';\nimport { preventBodyScroll } from '@zag-js/remove-scroll';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/dialog.anatomy.ts\nvar anatomy = createAnatomy(\"dialog\").parts(\n \"trigger\",\n \"backdrop\",\n \"positioner\",\n \"content\",\n \"title\",\n \"description\",\n \"closeTrigger\"\n);\nvar parts = anatomy.build();\n\n// src/dialog.dom.ts\nvar getPositionerId = (ctx) => ctx.ids?.positioner ?? `dialog:${ctx.id}:positioner`;\nvar getBackdropId = (ctx) => ctx.ids?.backdrop ?? `dialog:${ctx.id}:backdrop`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `dialog:${ctx.id}:content`;\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `dialog:${ctx.id}:trigger`;\nvar getTitleId = (ctx) => ctx.ids?.title ?? `dialog:${ctx.id}:title`;\nvar getDescriptionId = (ctx) => ctx.ids?.description ?? `dialog:${ctx.id}:description`;\nvar getCloseTriggerId = (ctx) => ctx.ids?.closeTrigger ?? `dialog:${ctx.id}:close`;\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));\nvar getBackdropEl = (ctx) => ctx.getById(getBackdropId(ctx));\nvar getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));\nvar getTitleEl = (ctx) => ctx.getById(getTitleId(ctx));\nvar getDescriptionEl = (ctx) => ctx.getById(getDescriptionId(ctx));\nvar getCloseTriggerEl = (ctx) => ctx.getById(getCloseTriggerId(ctx));\n\n// src/dialog.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, prop, scope } = service;\n const ariaLabel = prop(\"aria-label\");\n const open = state.matches(\"open\");\n return {\n open,\n setOpen(nextOpen) {\n const open2 = state.matches(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n getTriggerProps() {\n return normalize.button({\n ...parts.trigger.attrs,\n dir: prop(\"dir\"),\n id: getTriggerId(scope),\n \"aria-haspopup\": \"dialog\",\n type: \"button\",\n \"aria-expanded\": open,\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-controls\": getContentId(scope),\n onClick(event) {\n if (event.defaultPrevented) return;\n send({ type: \"TOGGLE\" });\n }\n });\n },\n getBackdropProps() {\n return normalize.element({\n ...parts.backdrop.attrs,\n dir: prop(\"dir\"),\n hidden: !open,\n id: getBackdropId(scope),\n \"data-state\": open ? \"open\" : \"closed\"\n });\n },\n getPositionerProps() {\n return normalize.element({\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n id: getPositionerId(scope),\n style: {\n pointerEvents: open ? void 0 : \"none\"\n }\n });\n },\n getContentProps() {\n const rendered = context.get(\"rendered\");\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n role: prop(\"role\"),\n hidden: !open,\n id: getContentId(scope),\n tabIndex: -1,\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-modal\": true,\n \"aria-label\": ariaLabel || void 0,\n \"aria-labelledby\": ariaLabel || !rendered.title ? void 0 : getTitleId(scope),\n \"aria-describedby\": rendered.description ? getDescriptionId(scope) : void 0\n });\n },\n getTitleProps() {\n return normalize.element({\n ...parts.title.attrs,\n dir: prop(\"dir\"),\n id: getTitleId(scope)\n });\n },\n getDescriptionProps() {\n return normalize.element({\n ...parts.description.attrs,\n dir: prop(\"dir\"),\n id: getDescriptionId(scope)\n });\n },\n getCloseTriggerProps() {\n return normalize.button({\n ...parts.closeTrigger.attrs,\n dir: prop(\"dir\"),\n id: getCloseTriggerId(scope),\n type: \"button\",\n onClick(event) {\n if (event.defaultPrevented) return;\n event.stopPropagation();\n send({ type: \"CLOSE\" });\n }\n });\n }\n };\n}\nvar machine = createMachine({\n props({ props: props2, scope }) {\n const alertDialog = props2.role === \"alertdialog\";\n const initialFocusEl = alertDialog ? () => getCloseTriggerEl(scope) : void 0;\n return {\n role: \"dialog\",\n modal: true,\n trapFocus: true,\n preventScroll: true,\n closeOnInteractOutside: !alertDialog,\n closeOnEscape: true,\n restoreFocus: true,\n initialFocusEl,\n ...props2\n };\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"closed\";\n },\n context({ bindable }) {\n return {\n rendered: bindable(() => ({\n defaultValue: { title: true, description: true }\n }))\n };\n },\n watch({ track, action, prop }) {\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n },\n states: {\n open: {\n entry: [\"checkRenderedElements\", \"syncZIndex\"],\n effects: [\"trackDismissableElement\", \"trapFocus\", \"preventScroll\", \"hideContentBelow\"],\n on: {\n \"CONTROLLED.CLOSE\": {\n target: \"closed\"\n },\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ],\n TOGGLE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"closed\",\n actions: [\"invokeOnClose\"]\n }\n ]\n }\n },\n closed: {\n on: {\n \"CONTROLLED.OPEN\": {\n target: \"open\"\n },\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ],\n TOGGLE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\"]\n }\n ]\n }\n }\n },\n implementations: {\n guards: {\n isOpenControlled: ({ prop }) => prop(\"open\") != void 0\n },\n effects: {\n trackDismissableElement({ scope, send, prop }) {\n const getContentEl2 = () => getContentEl(scope);\n return trackDismissableElement(getContentEl2, {\n defer: true,\n pointerBlocking: prop(\"modal\"),\n exclude: [getTriggerEl(scope)],\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event);\n if (!prop(\"closeOnInteractOutside\")) {\n event.preventDefault();\n }\n },\n persistentElements: prop(\"persistentElements\"),\n onFocusOutside: prop(\"onFocusOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onEscapeKeyDown(event) {\n prop(\"onEscapeKeyDown\")?.(event);\n if (!prop(\"closeOnEscape\")) {\n event.preventDefault();\n }\n },\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\" });\n }\n });\n },\n preventScroll({ scope, prop }) {\n if (!prop(\"preventScroll\")) return;\n return preventBodyScroll(scope.getDoc());\n },\n trapFocus({ scope, prop }) {\n if (!prop(\"trapFocus\") || !prop(\"modal\")) return;\n const contentEl = () => getContentEl(scope);\n return trapFocus(contentEl, {\n preventScroll: true,\n returnFocusOnDeactivate: !!prop(\"restoreFocus\"),\n initialFocus: prop(\"initialFocusEl\"),\n setReturnFocus: (el) => prop(\"finalFocusEl\")?.() ?? el\n });\n },\n hideContentBelow({ scope, prop }) {\n if (!prop(\"modal\")) return;\n const getElements = () => [getContentEl(scope)];\n return ariaHidden(getElements, { defer: true });\n }\n },\n actions: {\n checkRenderedElements({ context, scope }) {\n raf(() => {\n context.set(\"rendered\", {\n title: !!getTitleEl(scope),\n description: !!getDescriptionEl(scope)\n });\n });\n },\n syncZIndex({ scope }) {\n raf(() => {\n const contentEl = getContentEl(scope);\n if (!contentEl) return;\n const styles = getComputedStyle(contentEl);\n const elems = [getPositionerEl(scope), getBackdropEl(scope)];\n elems.forEach((node) => {\n node?.style.setProperty(\"--z-index\", styles.zIndex);\n });\n });\n },\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n toggleVisibility({ prop, send, event }) {\n send({\n type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\",\n previousEvent: event\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"aria-label\",\n \"closeOnEscape\",\n \"closeOnInteractOutside\",\n \"dir\",\n \"finalFocusEl\",\n \"getRootNode\",\n \"getRootNode\",\n \"id\",\n \"id\",\n \"ids\",\n \"initialFocusEl\",\n \"modal\",\n \"onEscapeKeyDown\",\n \"onFocusOutside\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"defaultOpen\",\n \"open\",\n \"persistentElements\",\n \"preventScroll\",\n \"restoreFocus\",\n \"role\",\n \"trapFocus\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport * as dialog from '@zag-js/dialog';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useDialog = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n getRootNode,\n dir,\n ...props\n };\n const service = useMachine(dialog.machine, machineProps);\n return dialog.connect(service, normalizeProps);\n};\n\nexport { useDialog };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useDialog } from './use-dialog.js';\nimport { DialogProvider } from './use-dialog-context.js';\n\nconst DialogRoot = (props) => {\n const [presenceProps, { children, ...localProps }] = splitPresenceProps(props);\n const [renderStrategyProps] = splitRenderStrategyProps(presenceProps);\n const dialog = useDialog(localProps);\n const presence = usePresence(mergeProps({ present: dialog.open }, presenceProps));\n return /* @__PURE__ */ jsx(DialogProvider, { value: dialog, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children }) }) });\n};\n\nexport { DialogRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogTitle = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getTitleProps(), props);\n return /* @__PURE__ */ jsx(ark.h2, { ...mergedProps, ref });\n});\nDialogTitle.displayName = \"DialogTitle\";\n\nexport { DialogTitle };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useDialogContext } from './use-dialog-context.js';\n\nconst DialogTrigger = forwardRef((props, ref) => {\n const dialog = useDialogContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(\n {\n ...dialog.getTriggerProps(),\n \"aria-controls\": presence.unmounted ? void 0 : dialog.getTriggerProps()[\"aria-controls\"]\n },\n props\n );\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nDialogTrigger.displayName = \"DialogTrigger\";\n\nexport { DialogTrigger };\n","'use client';\nimport { jsx, Fragment } from 'react/jsx-runtime';\nimport { isShadowRoot, getDocument } from '@zag-js/dom-query';\nimport { useState, useSyncExternalStore, useEffect, Children } from 'react';\nimport { createPortal } from 'react-dom';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\n\nconst Portal = (props) => {\n const { children, disabled } = props;\n const [container, setContainer] = useState(props.container?.current);\n const isServer = useSyncExternalStore(\n subscribe,\n () => false,\n () => true\n );\n const { getRootNode } = useEnvironmentContext();\n useEffect(() => {\n setContainer(() => props.container?.current);\n }, [props.container]);\n if (isServer || disabled) return /* @__PURE__ */ jsx(Fragment, { children });\n const mountNode = container ?? getPortalNode(getRootNode);\n return /* @__PURE__ */ jsx(Fragment, { children: Children.map(children, (child) => createPortal(child, mountNode)) });\n};\nconst getPortalNode = (cb) => {\n const node = cb?.();\n const rootNode = node.getRootNode();\n if (isShadowRoot(rootNode)) return rootNode;\n return getDocument(node).body;\n};\nconst subscribe = () => () => {\n};\n\nexport { Portal };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [RadioGroupProvider, useRadioGroupContext] = createContext({\n name: \"RadioGroupContext\",\n hookName: \"useRadioGroupContext\",\n providerName: \"<RadioGroupProvider />\"\n});\n\nexport { RadioGroupProvider, useRadioGroupContext };\n","'use client';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\n\nconst RadioGroupContext = (props) => props.children(useRadioGroupContext());\n\nexport { RadioGroupContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [RadioGroupItemProvider, useRadioGroupItemContext] = createContext({\n name: \"RadioGroupItemContext\",\n hookName: \"useRadioGroupItemContext\",\n providerName: \"<RadioGroupItemProvider />\"\n});\n\nexport { RadioGroupItemProvider, useRadioGroupItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [RadioGroupItemPropsProvider, useRadioGroupItemPropsContext] = createContext({\n name: \"RadioGroupItemPropsContext\",\n hookName: \"useRadioGroupItemPropsContext\",\n providerName: \"<RadioGroupItemPropsProvider />\"\n});\n\nexport { RadioGroupItemPropsProvider, useRadioGroupItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { RadioGroupItemProvider } from './use-radio-group-item-context.js';\nimport { RadioGroupItemPropsProvider } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\"value\", \"disabled\", \"invalid\"]);\n const radioGroup = useRadioGroupContext();\n const mergedProps = mergeProps(radioGroup.getItemProps(itemProps), localProps);\n const itemState = radioGroup.getItemState(itemProps);\n return /* @__PURE__ */ jsx(RadioGroupItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(RadioGroupItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) }) });\n});\nRadioGroupItem.displayName = \"RadioGroupItem\";\n\nexport { RadioGroupItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { useRadioGroupItemPropsContext } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItemControl = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const itemProps = useRadioGroupItemPropsContext();\n const mergedProps = mergeProps(radioGroup.getItemControlProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nRadioGroupItemControl.displayName = \"RadioGroupItemControl\";\n\nexport { RadioGroupItemControl };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { useRadioGroupItemPropsContext } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItemHiddenInput = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const itemProps = useRadioGroupItemPropsContext();\n const mergedProps = mergeProps(radioGroup.getItemHiddenInputProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.input, { ...mergedProps, ref });\n});\nRadioGroupItemHiddenInput.displayName = \"RadioGroupItemHiddenInput\";\n\nexport { RadioGroupItemHiddenInput };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\nimport { useRadioGroupItemPropsContext } from './use-radio-group-item-props-context.js';\n\nconst RadioGroupItemText = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const itemProps = useRadioGroupItemPropsContext();\n const mergedProps = mergeProps(radioGroup.getItemTextProps(itemProps), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nRadioGroupItemText.displayName = \"RadioGroupItemText\";\n\nexport { RadioGroupItemText };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useRadioGroupContext } from './use-radio-group-context.js';\n\nconst RadioGroupLabel = forwardRef((props, ref) => {\n const radioGroup = useRadioGroupContext();\n const mergedProps = mergeProps(radioGroup.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref });\n});\nRadioGroupLabel.displayName = \"RadioGroupLabel\";\n\nexport { RadioGroupLabel };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { dispatchInputCheckedEvent, trackElementRect, trackFormControl, queryAll, dataAttr, visuallyHiddenStyle, isSafari } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { isString, createSplitProps } from '@zag-js/utils';\nimport { createProps } from '@zag-js/types';\n\n// src/radio-group.anatomy.ts\nvar anatomy = createAnatomy(\"radio-group\").parts(\n \"root\",\n \"label\",\n \"item\",\n \"itemText\",\n \"itemControl\",\n \"indicator\"\n);\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `radio-group:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `radio-group:${ctx.id}:label`;\nvar getItemId = (ctx, value) => ctx.ids?.item?.(value) ?? `radio-group:${ctx.id}:radio:${value}`;\nvar getItemHiddenInputId = (ctx, value) => ctx.ids?.itemHiddenInput?.(value) ?? `radio-group:${ctx.id}:radio:input:${value}`;\nvar getItemControlId = (ctx, value) => ctx.ids?.itemControl?.(value) ?? `radio-group:${ctx.id}:radio:control:${value}`;\nvar getItemLabelId = (ctx, value) => ctx.ids?.itemLabel?.(value) ?? `radio-group:${ctx.id}:radio:label:${value}`;\nvar getIndicatorId = (ctx) => ctx.ids?.indicator ?? `radio-group:${ctx.id}:indicator`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getItemHiddenInputEl = (ctx, value) => ctx.getById(getItemHiddenInputId(ctx, value));\nvar getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));\nvar getFirstEnabledInputEl = (ctx) => getRootEl(ctx)?.querySelector(\"input:not(:disabled)\");\nvar getFirstEnabledAndCheckedInputEl = (ctx) => getRootEl(ctx)?.querySelector(\"input:not(:disabled):checked\");\nvar getInputEls = (ctx) => {\n const ownerId = CSS.escape(getRootId(ctx));\n const selector = `input[type=radio][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getRootEl(ctx), selector);\n};\nvar getRadioEl = (ctx, value) => {\n if (!value) return;\n return ctx.getById(getItemId(ctx, value));\n};\nvar getOffsetRect = (el) => ({\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n});\nvar resolveRect = (rect) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`\n});\n\n// src/radio-group.connect.ts\nfunction connect(service, normalize) {\n const { context, send, computed, prop, scope } = service;\n const groupDisabled = computed(\"isDisabled\");\n const readOnly = prop(\"readOnly\");\n function getItemState(props2) {\n const focused = context.get(\"focusedValue\") === props2.value;\n const focusVisible = focused && isFocusVisible();\n return {\n value: props2.value,\n invalid: !!props2.invalid,\n disabled: !!props2.disabled || groupDisabled,\n checked: context.get(\"value\") === props2.value,\n focused,\n focusVisible,\n hovered: context.get(\"hoveredValue\") === props2.value,\n active: context.get(\"activeValue\") === props2.value\n };\n }\n function getItemDataAttrs(props2) {\n const itemState = getItemState(props2);\n return {\n \"data-focus\": dataAttr(itemState.focused),\n \"data-focus-visible\": dataAttr(itemState.focusVisible),\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-readonly\": dataAttr(readOnly),\n \"data-state\": itemState.checked ? \"checked\" : \"unchecked\",\n \"data-hover\": dataAttr(itemState.hovered),\n \"data-invalid\": dataAttr(itemState.invalid),\n \"data-orientation\": prop(\"orientation\"),\n \"data-ssr\": dataAttr(context.get(\"ssr\"))\n };\n }\n const focus = () => {\n const nodeToFocus = getFirstEnabledAndCheckedInputEl(scope) ?? getFirstEnabledInputEl(scope);\n nodeToFocus?.focus();\n };\n return {\n focus,\n value: context.get(\"value\"),\n setValue(value) {\n send({ type: \"SET_VALUE\", value, isTrusted: false });\n },\n clearValue() {\n send({ type: \"SET_VALUE\", value: null, isTrusted: false });\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n role: \"radiogroup\",\n id: getRootId(scope),\n \"aria-labelledby\": getLabelId(scope),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(groupDisabled),\n \"aria-orientation\": prop(\"orientation\"),\n dir: prop(\"dir\"),\n style: {\n position: \"relative\"\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(groupDisabled),\n id: getLabelId(scope),\n onClick: focus\n });\n },\n getItemState,\n getItemProps(props2) {\n const itemState = getItemState(props2);\n return normalize.label({\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n id: getItemId(scope, props2.value),\n htmlFor: getItemHiddenInputId(scope, props2.value),\n ...getItemDataAttrs(props2),\n onPointerMove() {\n if (itemState.disabled) return;\n if (itemState.hovered) return;\n send({ type: \"SET_HOVERED\", value: props2.value, hovered: true });\n },\n onPointerLeave() {\n if (itemState.disabled) return;\n send({ type: \"SET_HOVERED\", value: null });\n },\n onPointerDown(event) {\n if (itemState.disabled) return;\n if (itemState.focused && event.pointerType === \"mouse\") {\n event.preventDefault();\n }\n send({ type: \"SET_ACTIVE\", value: props2.value, active: true });\n },\n onPointerUp() {\n if (itemState.disabled) return;\n send({ type: \"SET_ACTIVE\", value: null });\n },\n onClick() {\n if (!itemState.disabled && isSafari()) {\n getItemHiddenInputEl(scope, props2.value)?.focus();\n }\n }\n });\n },\n getItemTextProps(props2) {\n return normalize.element({\n ...parts.itemText.attrs,\n dir: prop(\"dir\"),\n id: getItemLabelId(scope, props2.value),\n ...getItemDataAttrs(props2)\n });\n },\n getItemControlProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n ...parts.itemControl.attrs,\n dir: prop(\"dir\"),\n id: getItemControlId(scope, props2.value),\n \"data-active\": dataAttr(itemState.active),\n \"aria-hidden\": true,\n ...getItemDataAttrs(props2)\n });\n },\n getItemHiddenInputProps(props2) {\n const itemState = getItemState(props2);\n return normalize.input({\n \"data-ownedby\": getRootId(scope),\n id: getItemHiddenInputId(scope, props2.value),\n type: \"radio\",\n name: prop(\"name\") || prop(\"id\"),\n form: prop(\"form\"),\n value: props2.value,\n onClick(event) {\n if (readOnly) {\n event.preventDefault();\n return;\n }\n if (event.currentTarget.checked) {\n send({ type: \"SET_VALUE\", value: props2.value, isTrusted: true });\n }\n },\n onBlur() {\n send({ type: \"SET_FOCUSED\", value: null, focused: false });\n },\n onFocus() {\n send({ type: \"SET_FOCUSED\", value: props2.value, focused: true });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (event.key === \" \") {\n send({ type: \"SET_ACTIVE\", value: props2.value, active: true });\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented) return;\n if (event.key === \" \") {\n send({ type: \"SET_ACTIVE\", value: null });\n }\n },\n disabled: itemState.disabled,\n defaultChecked: itemState.checked,\n style: visuallyHiddenStyle\n });\n },\n getIndicatorProps() {\n const rect = context.get(\"indicatorRect\");\n return normalize.element({\n id: getIndicatorId(scope),\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n hidden: context.get(\"value\") == null,\n \"data-disabled\": dataAttr(groupDisabled),\n \"data-orientation\": prop(\"orientation\"),\n style: {\n \"--transition-property\": \"left, top, width, height\",\n \"--left\": rect?.left,\n \"--top\": rect?.top,\n \"--width\": rect?.width,\n \"--height\": rect?.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: context.get(\"canIndicatorTransition\") ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [prop(\"orientation\") === \"horizontal\" ? \"left\" : \"top\"]: prop(\"orientation\") === \"horizontal\" ? \"var(--left)\" : \"var(--top)\"\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n orientation: \"vertical\",\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n activeValue: bindable(() => ({\n defaultValue: null\n })),\n focusedValue: bindable(() => ({\n defaultValue: null\n })),\n hoveredValue: bindable(() => ({\n defaultValue: null\n })),\n indicatorRect: bindable(() => ({\n defaultValue: {}\n })),\n canIndicatorTransition: bindable(() => ({\n defaultValue: false\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n })),\n ssr: bindable(() => ({\n defaultValue: true\n }))\n };\n },\n refs() {\n return {\n indicatorCleanup: null\n };\n },\n computed: {\n isDisabled: ({ prop, context }) => !!prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n },\n entry: [\"syncIndicatorRect\", \"syncSsr\"],\n exit: [\"cleanupObserver\"],\n effects: [\"trackFormControlState\", \"trackFocusVisible\"],\n watch({ track, action, context }) {\n track([() => context.get(\"value\")], () => {\n action([\"setIndicatorTransition\", \"syncIndicatorRect\", \"syncInputElements\"]);\n });\n },\n on: {\n SET_VALUE: [\n {\n guard: not(\"isTrusted\"),\n actions: [\"setValue\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"setValue\"]\n }\n ],\n SET_HOVERED: {\n actions: [\"setHovered\"]\n },\n SET_ACTIVE: {\n actions: [\"setActive\"]\n },\n SET_FOCUSED: {\n actions: [\"setFocused\"]\n }\n },\n states: {\n idle: {}\n },\n implementations: {\n guards: {\n isTrusted: ({ event }) => !!event.isTrusted\n },\n effects: {\n trackFormControlState({ context, scope }) {\n return trackFormControl(getRootEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n context.set(\"value\", context.initial(\"value\"));\n }\n });\n },\n trackFocusVisible({ scope }) {\n return trackFocusVisible({ root: scope.getRootNode?.() });\n }\n },\n actions: {\n setValue({ context, event }) {\n context.set(\"value\", event.value);\n },\n setHovered({ context, event }) {\n context.set(\"hoveredValue\", event.value);\n },\n setActive({ context, event }) {\n context.set(\"activeValue\", event.value);\n },\n setFocused({ context, event }) {\n context.set(\"focusedValue\", event.value);\n },\n syncInputElements({ context, scope }) {\n const inputs = getInputEls(scope);\n inputs.forEach((input) => {\n input.checked = input.value === context.get(\"value\");\n });\n },\n setIndicatorTransition({ context }) {\n context.set(\"canIndicatorTransition\", isString(context.get(\"value\")));\n },\n cleanupObserver({ refs }) {\n refs.get(\"indicatorCleanup\")?.();\n },\n syncSsr({ context }) {\n context.set(\"ssr\", false);\n },\n syncIndicatorRect({ context, scope, refs }) {\n refs.get(\"indicatorCleanup\")?.();\n if (!getIndicatorEl(scope)) return;\n const value = context.get(\"value\");\n const radioEl = getRadioEl(scope, value);\n if (value == null || !radioEl) {\n context.set(\"canIndicatorTransition\", false);\n context.set(\"indicatorRect\", {});\n return;\n }\n const indicatorCleanup = trackElementRect([radioEl], {\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n context.set(\"indicatorRect\", resolveRect(rects[0]));\n }\n });\n refs.set(\"indicatorCleanup\", indicatorCleanup);\n },\n dispatchChangeEvent({ context, scope }) {\n const inputEls = getInputEls(scope);\n inputEls.forEach((inputEl) => {\n const checked = inputEl.value === context.get(\"value\");\n if (checked === inputEl.checked) return;\n dispatchInputCheckedEvent(inputEl, { checked });\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"name\",\n \"onValueChange\",\n \"orientation\",\n \"readOnly\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"value\", \"disabled\", \"invalid\"]);\nvar splitItemProps = createSplitProps(itemProps);\n\nexport { anatomy, connect, itemProps, machine, props, splitItemProps, splitProps };\n","'use client';\nimport * as radio from '@zag-js/radio-group';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useRadioGroup = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(radio.machine, machineProps);\n return radio.connect(service, normalizeProps);\n};\n\nexport { useRadioGroup };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useRadioGroup } from './use-radio-group.js';\nimport { RadioGroupProvider } from './use-radio-group-context.js';\n\nconst RadioGroupRoot = forwardRef((props, ref) => {\n const [useRadioGroupProps, localProps] = createSplitProps()(props, [\n \"defaultValue\",\n \"disabled\",\n \"form\",\n \"id\",\n \"ids\",\n \"name\",\n \"onValueChange\",\n \"orientation\",\n \"readOnly\",\n \"value\"\n ]);\n const radioGroup = useRadioGroup(useRadioGroupProps);\n const mergedProps = mergeProps(radioGroup.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { value: radioGroup, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nRadioGroupRoot.displayName = \"RadioGroupRoot\";\n\nexport { RadioGroupRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { RadioGroupProvider } from './use-radio-group-context.js';\n\nconst RadioGroupRootProvider = forwardRef((props, ref) => {\n const [{ value: radioGroup }, localProps] = createSplitProps()(props, [\"value\"]);\n const mergedProps = mergeProps(radioGroup.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(RadioGroupProvider, { value: radioGroup, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) });\n});\nRadioGroupRootProvider.displayName = \"RadioGroupRootProvider\";\n\nexport { RadioGroupRootProvider };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SelectProvider, useSelectContext] = createContext({\n name: \"SelectContext\",\n hookName: \"useSelectContext\",\n providerName: \"<SelectProvider />\"\n});\n\nexport { SelectProvider, useSelectContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectContent = forwardRef((props, ref) => {\n const select = useSelectContext();\n const presence = usePresenceContext();\n const mergedProps = mergeProps(select.getContentProps(), presence.getPresenceProps(), props);\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) });\n});\nSelectContent.displayName = \"SelectContent\";\n\nexport { SelectContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectControl = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getControlProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nSelectControl.displayName = \"SelectControl\";\n\nexport { SelectControl };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SelectItemProvider, useSelectItemContext] = createContext({\n name: \"SelectItemContext\",\n hookName: \"useSelectItemContext\",\n providerName: \"<SelectItemProvider />\"\n});\n\nexport { SelectItemProvider, useSelectItemContext };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SelectItemPropsProvider, useSelectItemPropsContext] = createContext({\n name: \"SelectItemPropsContext\",\n hookName: \"useSelectItemPropsContext\",\n providerName: \"<SelectItemPropsProvider />\"\n});\n\nexport { SelectItemPropsProvider, useSelectItemPropsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\nimport { SelectItemProvider } from './use-select-item-context.js';\nimport { SelectItemPropsProvider } from './use-select-item-props-context.js';\n\nconst SelectItem = forwardRef((props, ref) => {\n const [itemProps, localProps] = createSplitProps()(props, [\"item\", \"persistFocus\"]);\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getItemProps(itemProps), localProps);\n const itemState = select.getItemState(itemProps);\n return /* @__PURE__ */ jsx(SelectItemPropsProvider, { value: itemProps, children: /* @__PURE__ */ jsx(SelectItemProvider, { value: itemState, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nSelectItem.displayName = \"SelectItem\";\n\nexport { SelectItem };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectLabel = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref });\n});\nSelectLabel.displayName = \"SelectLabel\";\n\nexport { SelectLabel };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { usePresenceContext } from '../presence/use-presence-context.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectPositioner = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getPositionerProps(), props);\n const presence = usePresenceContext();\n if (presence.unmounted) {\n return null;\n }\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nSelectPositioner.displayName = \"SelectPositioner\";\n\nexport { SelectPositioner };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { ListCollection } from '@zag-js/collection';\nimport { raf, getInitialFocus, observeAttributes, trackFormControl, getByTypeahead, scrollIntoView, isSelfTarget, isValidTabEvent, getEventKey, getEventTarget, isEditableElement, visuallyHiddenStyle, dataAttr, ariaAttr } from '@zag-js/dom-query';\nimport { getPlacement, getPlacementStyles } from '@zag-js/popper';\nimport { addOrRemove, isEqual, createSplitProps, ensure } from '@zag-js/utils';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { createProps } from '@zag-js/types';\n\n// src/select.anatomy.ts\nvar anatomy = createAnatomy(\"select\").parts(\n \"label\",\n \"positioner\",\n \"trigger\",\n \"indicator\",\n \"clearTrigger\",\n \"item\",\n \"itemText\",\n \"itemIndicator\",\n \"itemGroup\",\n \"itemGroupLabel\",\n \"list\",\n \"content\",\n \"root\",\n \"control\",\n \"valueText\"\n);\nvar parts = anatomy.build();\nvar collection = (options) => {\n return new ListCollection(options);\n};\ncollection.empty = () => {\n return new ListCollection({ items: [] });\n};\n\n// src/select.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `select:${ctx.id}`;\nvar getContentId = (ctx) => ctx.ids?.content ?? `select:${ctx.id}:content`;\nvar getTriggerId = (ctx) => ctx.ids?.trigger ?? `select:${ctx.id}:trigger`;\nvar getClearTriggerId = (ctx) => ctx.ids?.clearTrigger ?? `select:${ctx.id}:clear-trigger`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `select:${ctx.id}:label`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `select:${ctx.id}:control`;\nvar getItemId = (ctx, id) => ctx.ids?.item?.(id) ?? `select:${ctx.id}:option:${id}`;\nvar getHiddenSelectId = (ctx) => ctx.ids?.hiddenSelect ?? `select:${ctx.id}:select`;\nvar getPositionerId = (ctx) => ctx.ids?.positioner ?? `select:${ctx.id}:positioner`;\nvar getItemGroupId = (ctx, id) => ctx.ids?.itemGroup?.(id) ?? `select:${ctx.id}:optgroup:${id}`;\nvar getItemGroupLabelId = (ctx, id) => ctx.ids?.itemGroupLabel?.(id) ?? `select:${ctx.id}:optgroup-label:${id}`;\nvar getHiddenSelectEl = (ctx) => ctx.getById(getHiddenSelectId(ctx));\nvar getContentEl = (ctx) => ctx.getById(getContentId(ctx));\nvar getTriggerEl = (ctx) => ctx.getById(getTriggerId(ctx));\nvar getClearTriggerEl = (ctx) => ctx.getById(getClearTriggerId(ctx));\nvar getPositionerEl = (ctx) => ctx.getById(getPositionerId(ctx));\nvar getItemEl = (ctx, id) => ctx.getById(getItemId(ctx, id));\n\n// src/select.connect.ts\nfunction connect(service, normalize) {\n const { context, prop, scope, state, computed, send } = service;\n const disabled = prop(\"disabled\") || context.get(\"fieldsetDisabled\");\n const invalid = prop(\"invalid\");\n const readOnly = prop(\"readOnly\");\n const composite = prop(\"composite\");\n const collection2 = prop(\"collection\");\n const open = state.hasTag(\"open\");\n const focused = state.matches(\"focused\");\n const highlightedValue = context.get(\"highlightedValue\");\n const highlightedItem = context.get(\"highlightedItem\");\n const selectedItems = context.get(\"selectedItems\");\n const currentPlacement = context.get(\"currentPlacement\");\n const isTypingAhead = computed(\"isTypingAhead\");\n const interactive = computed(\"isInteractive\");\n const ariaActiveDescendant = highlightedValue ? getItemId(scope, highlightedValue) : void 0;\n function getItemState(props2) {\n const _disabled = collection2.getItemDisabled(props2.item);\n const value = collection2.getItemValue(props2.item);\n ensure(value, () => `[zag-js] No value found for item ${JSON.stringify(props2.item)}`);\n return {\n value,\n disabled: Boolean(disabled || _disabled),\n highlighted: highlightedValue === value,\n selected: context.get(\"value\").includes(value)\n };\n }\n const popperStyles = getPlacementStyles({\n ...prop(\"positioning\"),\n placement: currentPlacement\n });\n return {\n open,\n focused,\n empty: context.get(\"value\").length === 0,\n highlightedItem,\n highlightedValue,\n selectedItems,\n hasSelectedItems: computed(\"hasSelectedItems\"),\n value: context.get(\"value\"),\n valueAsString: context.get(\"valueAsString\"),\n collection: collection2,\n multiple: !!prop(\"multiple\"),\n disabled: !!disabled,\n reposition(options = {}) {\n send({ type: \"POSITIONING.SET\", options });\n },\n focus() {\n getTriggerEl(scope)?.focus({ preventScroll: true });\n },\n setOpen(nextOpen) {\n const open2 = state.hasTag(\"open\");\n if (open2 === nextOpen) return;\n send({ type: nextOpen ? \"OPEN\" : \"CLOSE\" });\n },\n selectValue(value) {\n send({ type: \"ITEM.SELECT\", value });\n },\n setValue(value) {\n send({ type: \"VALUE.SET\", value });\n },\n selectAll() {\n send({ type: \"VALUE.SET\", value: collection2.getValues() });\n },\n highlightValue(value) {\n send({ type: \"HIGHLIGHTED_VALUE.SET\", value });\n },\n clearValue(value) {\n if (value) {\n send({ type: \"ITEM.CLEAR\", value });\n } else {\n send({ type: \"VALUE.CLEAR\" });\n }\n },\n getItemState,\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly)\n });\n },\n getLabelProps() {\n return normalize.label({\n dir: prop(\"dir\"),\n id: getLabelId(scope),\n ...parts.label.attrs,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly),\n htmlFor: getHiddenSelectId(scope),\n onClick(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n getTriggerEl(scope)?.focus({ preventScroll: true });\n }\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n dir: prop(\"dir\"),\n id: getControlId(scope),\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-focus\": dataAttr(focused),\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid)\n });\n },\n getValueTextProps() {\n return normalize.element({\n ...parts.valueText.attrs,\n dir: prop(\"dir\"),\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-focus\": dataAttr(focused)\n });\n },\n getTriggerProps() {\n return normalize.button({\n id: getTriggerId(scope),\n disabled,\n dir: prop(\"dir\"),\n type: \"button\",\n role: \"combobox\",\n \"aria-controls\": getContentId(scope),\n \"aria-expanded\": open,\n \"aria-haspopup\": \"listbox\",\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-invalid\": invalid,\n \"aria-labelledby\": getLabelId(scope),\n ...parts.trigger.attrs,\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly),\n \"data-placement\": currentPlacement,\n \"data-placeholder-shown\": dataAttr(!computed(\"hasSelectedItems\")),\n onClick(event) {\n if (!interactive) return;\n if (event.defaultPrevented) return;\n send({ type: \"TRIGGER.CLICK\" });\n },\n onFocus() {\n send({ type: \"TRIGGER.FOCUS\" });\n },\n onBlur() {\n send({ type: \"TRIGGER.BLUR\" });\n },\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!interactive) return;\n const keyMap = {\n ArrowUp() {\n send({ type: \"TRIGGER.ARROW_UP\" });\n },\n ArrowDown(event2) {\n send({ type: event2.altKey ? \"OPEN\" : \"TRIGGER.ARROW_DOWN\" });\n },\n ArrowLeft() {\n send({ type: \"TRIGGER.ARROW_LEFT\" });\n },\n ArrowRight() {\n send({ type: \"TRIGGER.ARROW_RIGHT\" });\n },\n Home() {\n send({ type: \"TRIGGER.HOME\" });\n },\n End() {\n send({ type: \"TRIGGER.END\" });\n },\n Enter() {\n send({ type: \"TRIGGER.ENTER\" });\n },\n Space(event2) {\n if (isTypingAhead) {\n send({ type: \"TRIGGER.TYPEAHEAD\", key: event2.key });\n } else {\n send({ type: \"TRIGGER.ENTER\" });\n }\n }\n };\n const exec = keyMap[getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: \"vertical\"\n })];\n if (exec) {\n exec(event);\n event.preventDefault();\n return;\n }\n if (getByTypeahead.isValidEvent(event)) {\n send({ type: \"TRIGGER.TYPEAHEAD\", key: event.key });\n event.preventDefault();\n }\n }\n });\n },\n getIndicatorProps() {\n return normalize.element({\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"aria-hidden\": true,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-disabled\": dataAttr(disabled),\n \"data-invalid\": dataAttr(invalid),\n \"data-readonly\": dataAttr(readOnly)\n });\n },\n getItemProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n id: getItemId(scope, itemState.value),\n role: \"option\",\n ...parts.item.attrs,\n dir: prop(\"dir\"),\n \"data-value\": itemState.value,\n \"aria-selected\": itemState.selected,\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n \"data-highlighted\": dataAttr(itemState.highlighted),\n \"data-disabled\": dataAttr(itemState.disabled),\n \"aria-disabled\": ariaAttr(itemState.disabled),\n onPointerMove(event) {\n if (itemState.disabled || event.pointerType !== \"mouse\") return;\n if (itemState.value === highlightedValue) return;\n send({ type: \"ITEM.POINTER_MOVE\", value: itemState.value });\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (itemState.disabled) return;\n send({ type: \"ITEM.CLICK\", src: \"pointerup\", value: itemState.value });\n },\n onPointerLeave(event) {\n if (itemState.disabled) return;\n if (props2.persistFocus) return;\n if (event.pointerType !== \"mouse\") return;\n const pointerMoved = service.event.previous()?.type.includes(\"POINTER\");\n if (!pointerMoved) return;\n send({ type: \"ITEM.POINTER_LEAVE\" });\n }\n });\n },\n getItemTextProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n ...parts.itemText.attrs,\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n \"data-disabled\": dataAttr(itemState.disabled),\n \"data-highlighted\": dataAttr(itemState.highlighted)\n });\n },\n getItemIndicatorProps(props2) {\n const itemState = getItemState(props2);\n return normalize.element({\n \"aria-hidden\": true,\n ...parts.itemIndicator.attrs,\n \"data-state\": itemState.selected ? \"checked\" : \"unchecked\",\n hidden: !itemState.selected\n });\n },\n getItemGroupLabelProps(props2) {\n const { htmlFor } = props2;\n return normalize.element({\n ...parts.itemGroupLabel.attrs,\n id: getItemGroupLabelId(scope, htmlFor),\n dir: prop(\"dir\"),\n role: \"presentation\"\n });\n },\n getItemGroupProps(props2) {\n const { id } = props2;\n return normalize.element({\n ...parts.itemGroup.attrs,\n \"data-disabled\": dataAttr(disabled),\n id: getItemGroupId(scope, id),\n \"aria-labelledby\": getItemGroupLabelId(scope, id),\n role: \"group\",\n dir: prop(\"dir\")\n });\n },\n getClearTriggerProps() {\n return normalize.button({\n ...parts.clearTrigger.attrs,\n id: getClearTriggerId(scope),\n type: \"button\",\n \"aria-label\": \"Clear value\",\n \"data-invalid\": dataAttr(invalid),\n disabled,\n hidden: !computed(\"hasSelectedItems\"),\n dir: prop(\"dir\"),\n onClick(event) {\n if (event.defaultPrevented) return;\n send({ type: \"CLEAR.CLICK\" });\n }\n });\n },\n getHiddenSelectProps() {\n const value = context.get(\"value\");\n const defaultValue = prop(\"multiple\") ? value : value?.[0];\n return normalize.select({\n name: prop(\"name\"),\n form: prop(\"form\"),\n disabled,\n multiple: prop(\"multiple\"),\n required: prop(\"required\"),\n \"aria-hidden\": true,\n id: getHiddenSelectId(scope),\n defaultValue,\n style: visuallyHiddenStyle,\n tabIndex: -1,\n // Some browser extensions will focus the hidden select.\n // Let's forward the focus to the trigger.\n onFocus() {\n getTriggerEl(scope)?.focus({ preventScroll: true });\n },\n \"aria-labelledby\": getLabelId(scope)\n });\n },\n getPositionerProps() {\n return normalize.element({\n ...parts.positioner.attrs,\n dir: prop(\"dir\"),\n id: getPositionerId(scope),\n style: popperStyles.floating\n });\n },\n getContentProps() {\n return normalize.element({\n hidden: !open,\n dir: prop(\"dir\"),\n id: getContentId(scope),\n role: composite ? \"listbox\" : \"dialog\",\n ...parts.content.attrs,\n \"data-state\": open ? \"open\" : \"closed\",\n \"data-placement\": currentPlacement,\n \"data-activedescendant\": ariaActiveDescendant,\n \"aria-activedescendant\": composite ? ariaActiveDescendant : void 0,\n \"aria-multiselectable\": prop(\"multiple\") && composite ? true : void 0,\n \"aria-labelledby\": getLabelId(scope),\n tabIndex: 0,\n onKeyDown(event) {\n if (!interactive) return;\n if (!isSelfTarget(event)) return;\n if (event.key === \"Tab\") {\n const valid = isValidTabEvent(event);\n if (!valid) {\n event.preventDefault();\n return;\n }\n }\n const keyMap = {\n ArrowUp() {\n send({ type: \"CONTENT.ARROW_UP\" });\n },\n ArrowDown() {\n send({ type: \"CONTENT.ARROW_DOWN\" });\n },\n Home() {\n send({ type: \"CONTENT.HOME\" });\n },\n End() {\n send({ type: \"CONTENT.END\" });\n },\n Enter() {\n send({ type: \"ITEM.CLICK\", src: \"keydown.enter\" });\n },\n Space(event2) {\n if (isTypingAhead) {\n send({ type: \"CONTENT.TYPEAHEAD\", key: event2.key });\n } else {\n keyMap.Enter?.(event2);\n }\n }\n };\n const exec = keyMap[getEventKey(event)];\n if (exec) {\n exec(event);\n event.preventDefault();\n return;\n }\n const target = getEventTarget(event);\n if (isEditableElement(target)) {\n return;\n }\n if (getByTypeahead.isValidEvent(event)) {\n send({ type: \"CONTENT.TYPEAHEAD\", key: event.key });\n event.preventDefault();\n }\n }\n });\n },\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n tabIndex: 0,\n role: !composite ? \"listbox\" : void 0,\n \"aria-labelledby\": getTriggerId(scope),\n \"aria-activedescendant\": !composite ? ariaActiveDescendant : void 0,\n \"aria-multiselectable\": !composite && prop(\"multiple\") ? true : void 0\n });\n }\n };\n}\nvar { and, not, or } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n loopFocus: false,\n closeOnSelect: !props2.multiple,\n composite: true,\n defaultValue: [],\n ...props2,\n collection: props2.collection ?? collection.empty(),\n positioning: {\n placement: \"bottom-start\",\n gutter: 8,\n ...props2.positioning\n }\n };\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n isEqual,\n onChange(value) {\n const items = prop(\"collection\").findMany(value);\n return prop(\"onValueChange\")?.({ value, items });\n }\n })),\n highlightedValue: bindable(() => ({\n defaultValue: prop(\"defaultHighlightedValue\") || null,\n value: prop(\"highlightedValue\"),\n onChange(value) {\n prop(\"onHighlightChange\")?.({\n highlightedValue: value,\n highlightedItem: prop(\"collection\").find(value),\n highlightedIndex: prop(\"collection\").indexOf(value)\n });\n }\n })),\n currentPlacement: bindable(() => ({\n defaultValue: void 0\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n })),\n highlightedItem: bindable(() => ({\n defaultValue: null\n })),\n selectedItems: bindable(() => {\n const value = prop(\"value\") ?? prop(\"defaultValue\") ?? [];\n const items = prop(\"collection\").findMany(value);\n return { defaultValue: items };\n }),\n valueAsString: bindable(() => {\n const value = prop(\"value\") ?? prop(\"defaultValue\") ?? [];\n return { defaultValue: prop(\"collection\").stringifyMany(value) };\n })\n };\n },\n refs() {\n return {\n typeahead: { ...getByTypeahead.defaultOptions }\n };\n },\n computed: {\n hasSelectedItems: ({ context }) => context.get(\"value\").length > 0,\n isTypingAhead: ({ refs }) => refs.get(\"typeahead\").keysSoFar !== \"\",\n isDisabled: ({ prop, context }) => !!prop(\"disabled\") || !!context.get(\"fieldsetDisabled\"),\n isInteractive: ({ prop }) => !(prop(\"disabled\") || prop(\"readOnly\"))\n },\n initialState({ prop }) {\n const open = prop(\"open\") || prop(\"defaultOpen\");\n return open ? \"open\" : \"idle\";\n },\n entry: [\"syncSelectElement\"],\n watch({ context, prop, track, action }) {\n track([() => context.get(\"value\").toString()], () => {\n action([\"syncSelectedItems\", \"syncSelectElement\", \"dispatchChangeEvent\"]);\n });\n track([() => prop(\"open\")], () => {\n action([\"toggleVisibility\"]);\n });\n track([() => context.get(\"highlightedValue\")], () => {\n action([\"syncHighlightedItem\"]);\n });\n track([() => prop(\"collection\").toString()], () => {\n action([\"syncCollection\"]);\n });\n },\n on: {\n \"HIGHLIGHTED_VALUE.SET\": {\n actions: [\"setHighlightedItem\"]\n },\n \"ITEM.SELECT\": {\n actions: [\"selectItem\"]\n },\n \"ITEM.CLEAR\": {\n actions: [\"clearItem\"]\n },\n \"VALUE.SET\": {\n actions: [\"setSelectedItems\"]\n },\n \"VALUE.CLEAR\": {\n actions: [\"clearSelectedItems\"]\n },\n \"CLEAR.CLICK\": {\n actions: [\"clearSelectedItems\", \"focusTriggerEl\"]\n }\n },\n effects: [\"trackFormControlState\"],\n states: {\n idle: {\n tags: [\"closed\"],\n on: {\n \"CONTROLLED.OPEN\": [\n {\n guard: \"isTriggerClickEvent\",\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightFirstSelectedItem\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\"]\n }\n ],\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"invokeOnOpen\", \"setInitialFocus\", \"highlightFirstSelectedItem\"]\n }\n ],\n \"TRIGGER.FOCUS\": {\n target: \"focused\"\n },\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\"]\n }\n ]\n }\n },\n focused: {\n tags: [\"closed\"],\n on: {\n \"CONTROLLED.OPEN\": [\n {\n guard: \"isTriggerClickEvent\",\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightFirstSelectedItem\"]\n },\n {\n guard: \"isTriggerArrowUpEvent\",\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightComputedLastItem\"]\n },\n {\n guard: or(\"isTriggerArrowDownEvent\", \"isTriggerEnterEvent\"),\n target: \"open\",\n actions: [\"setInitialFocus\", \"highlightComputedFirstItem\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\"]\n }\n ],\n OPEN: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\"]\n }\n ],\n \"TRIGGER.BLUR\": {\n target: \"idle\"\n },\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightFirstSelectedItem\"]\n }\n ],\n \"TRIGGER.ENTER\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightComputedFirstItem\"]\n }\n ],\n \"TRIGGER.ARROW_UP\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightComputedLastItem\"]\n }\n ],\n \"TRIGGER.ARROW_DOWN\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnOpen\"]\n },\n {\n target: \"open\",\n actions: [\"setInitialFocus\", \"invokeOnOpen\", \"highlightComputedFirstItem\"]\n }\n ],\n \"TRIGGER.ARROW_LEFT\": [\n {\n guard: and(not(\"multiple\"), \"hasSelectedItems\"),\n actions: [\"selectPreviousItem\"]\n },\n {\n guard: not(\"multiple\"),\n actions: [\"selectLastItem\"]\n }\n ],\n \"TRIGGER.ARROW_RIGHT\": [\n {\n guard: and(not(\"multiple\"), \"hasSelectedItems\"),\n actions: [\"selectNextItem\"]\n },\n {\n guard: not(\"multiple\"),\n actions: [\"selectFirstItem\"]\n }\n ],\n \"TRIGGER.HOME\": {\n guard: not(\"multiple\"),\n actions: [\"selectFirstItem\"]\n },\n \"TRIGGER.END\": {\n guard: not(\"multiple\"),\n actions: [\"selectLastItem\"]\n },\n \"TRIGGER.TYPEAHEAD\": {\n guard: not(\"multiple\"),\n actions: [\"selectMatchingItem\"]\n }\n }\n },\n open: {\n tags: [\"open\"],\n exit: [\"scrollContentToTop\"],\n effects: [\"trackDismissableElement\", \"computePlacement\", \"scrollToHighlightedItem\"],\n on: {\n \"CONTROLLED.CLOSE\": {\n target: \"focused\",\n actions: [\"focusTriggerEl\", \"clearHighlightedItem\"]\n },\n CLOSE: [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"focused\",\n actions: [\"invokeOnClose\", \"focusTriggerEl\", \"clearHighlightedItem\"]\n }\n ],\n \"TRIGGER.CLICK\": [\n {\n guard: \"isOpenControlled\",\n actions: [\"invokeOnClose\"]\n },\n {\n target: \"focused\",\n actions: [\"invokeOnClose\", \"clearHighlightedItem\"]\n }\n ],\n \"ITEM.CLICK\": [\n {\n guard: and(\"closeOnSelect\", \"isOpenControlled\"),\n actions: [\"selectHighlightedItem\", \"invokeOnClose\"]\n },\n {\n guard: \"closeOnSelect\",\n target: \"focused\",\n actions: [\"selectHighlightedItem\", \"invokeOnClose\", \"focusTriggerEl\", \"clearHighlightedItem\"]\n },\n {\n actions: [\"selectHighlightedItem\"]\n }\n ],\n \"CONTENT.HOME\": {\n actions: [\"highlightFirstItem\"]\n },\n \"CONTENT.END\": {\n actions: [\"highlightLastItem\"]\n },\n \"CONTENT.ARROW_DOWN\": [\n {\n guard: and(\"hasHighlightedItem\", \"loop\", \"isLastItemHighlighted\"),\n actions: [\"highlightFirstItem\"]\n },\n {\n guard: \"hasHighlightedItem\",\n actions: [\"highlightNextItem\"]\n },\n {\n actions: [\"highlightFirstItem\"]\n }\n ],\n \"CONTENT.ARROW_UP\": [\n {\n guard: and(\"hasHighlightedItem\", \"loop\", \"isFirstItemHighlighted\"),\n actions: [\"highlightLastItem\"]\n },\n {\n guard: \"hasHighlightedItem\",\n actions: [\"highlightPreviousItem\"]\n },\n {\n actions: [\"highlightLastItem\"]\n }\n ],\n \"CONTENT.TYPEAHEAD\": {\n actions: [\"highlightMatchingItem\"]\n },\n \"ITEM.POINTER_MOVE\": {\n actions: [\"highlightItem\"]\n },\n \"ITEM.POINTER_LEAVE\": {\n actions: [\"clearHighlightedItem\"]\n },\n \"POSITIONING.SET\": {\n actions: [\"reposition\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n loop: ({ prop }) => !!prop(\"loopFocus\"),\n multiple: ({ prop }) => !!prop(\"multiple\"),\n hasSelectedItems: ({ computed }) => !!computed(\"hasSelectedItems\"),\n hasHighlightedItem: ({ context }) => context.get(\"highlightedValue\") != null,\n isFirstItemHighlighted: ({ context, prop }) => context.get(\"highlightedValue\") === prop(\"collection\").firstValue,\n isLastItemHighlighted: ({ context, prop }) => context.get(\"highlightedValue\") === prop(\"collection\").lastValue,\n closeOnSelect: ({ prop, event }) => !!(event.closeOnSelect ?? prop(\"closeOnSelect\")),\n // guard assertions (for controlled mode)\n isOpenControlled: ({ prop }) => prop(\"open\") !== void 0,\n isTriggerClickEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.CLICK\",\n isTriggerEnterEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.ENTER\",\n isTriggerArrowUpEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.ARROW_UP\",\n isTriggerArrowDownEvent: ({ event }) => event.previousEvent?.type === \"TRIGGER.ARROW_DOWN\"\n },\n effects: {\n trackFormControlState({ context, scope }) {\n return trackFormControl(getHiddenSelectEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n const value = context.initial(\"value\");\n context.set(\"value\", value);\n }\n });\n },\n trackDismissableElement({ scope, send, prop }) {\n const contentEl = () => getContentEl(scope);\n let restoreFocus = true;\n return trackDismissableElement(contentEl, {\n defer: true,\n exclude: [getTriggerEl(scope), getClearTriggerEl(scope)],\n onFocusOutside: prop(\"onFocusOutside\"),\n onPointerDownOutside: prop(\"onPointerDownOutside\"),\n onInteractOutside(event) {\n prop(\"onInteractOutside\")?.(event);\n restoreFocus = !(event.detail.focusable || event.detail.contextmenu);\n },\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\", restoreFocus });\n }\n });\n },\n computePlacement({ context, prop, scope }) {\n const positioning = prop(\"positioning\");\n context.set(\"currentPlacement\", positioning.placement);\n const triggerEl = () => getTriggerEl(scope);\n const positionerEl = () => getPositionerEl(scope);\n return getPlacement(triggerEl, positionerEl, {\n defer: true,\n ...positioning,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n scrollToHighlightedItem({ context, prop, scope, event }) {\n const exec = (immediate) => {\n const highlightedValue = context.get(\"highlightedValue\");\n if (highlightedValue == null) return;\n if (event.current().type.includes(\"POINTER\")) return;\n const optionEl = getItemEl(scope, highlightedValue);\n const contentEl2 = getContentEl(scope);\n const scrollToIndexFn = prop(\"scrollToIndexFn\");\n if (scrollToIndexFn) {\n const highlightedIndex = prop(\"collection\").indexOf(highlightedValue);\n scrollToIndexFn?.({ index: highlightedIndex, immediate });\n return;\n }\n scrollIntoView(optionEl, { rootEl: contentEl2, block: \"nearest\" });\n };\n raf(() => exec(true));\n const contentEl = () => getContentEl(scope);\n return observeAttributes(contentEl, {\n defer: true,\n attributes: [\"data-activedescendant\"],\n callback() {\n exec(false);\n }\n });\n }\n },\n actions: {\n reposition({ context, prop, scope, event }) {\n const positionerEl = () => getPositionerEl(scope);\n getPlacement(getTriggerEl(scope), positionerEl, {\n ...prop(\"positioning\"),\n ...event.options,\n defer: true,\n listeners: false,\n onComplete(data) {\n context.set(\"currentPlacement\", data.placement);\n }\n });\n },\n toggleVisibility({ send, prop, event }) {\n send({ type: prop(\"open\") ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\", previousEvent: event });\n },\n highlightPreviousItem({ context, prop }) {\n const highlightedValue = context.get(\"highlightedValue\");\n if (highlightedValue == null) return;\n const value = prop(\"collection\").getPreviousValue(highlightedValue, 1, prop(\"loopFocus\"));\n context.set(\"highlightedValue\", value);\n },\n highlightNextItem({ context, prop }) {\n const highlightedValue = context.get(\"highlightedValue\");\n if (highlightedValue == null) return;\n const value = prop(\"collection\").getNextValue(highlightedValue, 1, prop(\"loopFocus\"));\n context.set(\"highlightedValue\", value);\n },\n highlightFirstItem({ context, prop }) {\n const value = prop(\"collection\").firstValue;\n context.set(\"highlightedValue\", value);\n },\n highlightLastItem({ context, prop }) {\n const value = prop(\"collection\").lastValue;\n context.set(\"highlightedValue\", value);\n },\n setInitialFocus({ scope }) {\n raf(() => {\n const element = getInitialFocus({\n root: getContentEl(scope)\n });\n element?.focus({ preventScroll: true });\n });\n },\n focusTriggerEl({ event, scope }) {\n const restoreFocus = event.restoreFocus ?? event.previousEvent?.restoreFocus;\n if (restoreFocus != null && !restoreFocus) return;\n raf(() => {\n const element = getTriggerEl(scope);\n element?.focus({ preventScroll: true });\n });\n },\n selectHighlightedItem({ context, prop, event }) {\n let value = event.value ?? context.get(\"highlightedValue\");\n if (value == null) return;\n const nullable = prop(\"deselectable\") && !prop(\"multiple\") && context.get(\"value\").includes(value);\n value = nullable ? null : value;\n context.set(\"value\", (prev) => {\n if (value == null) return [];\n if (prop(\"multiple\")) return addOrRemove(prev, value);\n return [value];\n });\n },\n highlightComputedFirstItem({ context, prop, computed }) {\n const collection2 = prop(\"collection\");\n const value = computed(\"hasSelectedItems\") ? collection2.sort(context.get(\"value\"))[0] : collection2.firstValue;\n context.set(\"highlightedValue\", value);\n },\n highlightComputedLastItem({ context, prop, computed }) {\n const collection2 = prop(\"collection\");\n const value = computed(\"hasSelectedItems\") ? collection2.sort(context.get(\"value\"))[0] : collection2.lastValue;\n context.set(\"highlightedValue\", value);\n },\n highlightFirstSelectedItem({ context, prop, computed }) {\n if (!computed(\"hasSelectedItems\")) return;\n const value = prop(\"collection\").sort(context.get(\"value\"))[0];\n context.set(\"highlightedValue\", value);\n },\n highlightItem({ context, event }) {\n context.set(\"highlightedValue\", event.value);\n },\n highlightMatchingItem({ context, prop, event, refs }) {\n const value = prop(\"collection\").search(event.key, {\n state: refs.get(\"typeahead\"),\n currentValue: context.get(\"highlightedValue\")\n });\n if (value == null) return;\n context.set(\"highlightedValue\", value);\n },\n setHighlightedItem({ context, event }) {\n context.set(\"highlightedValue\", event.value);\n },\n clearHighlightedItem({ context }) {\n context.set(\"highlightedValue\", null);\n },\n selectItem({ context, prop, event }) {\n const nullable = prop(\"deselectable\") && !prop(\"multiple\") && context.get(\"value\").includes(event.value);\n const value = nullable ? null : event.value;\n context.set(\"value\", (prev) => {\n if (value == null) return [];\n if (prop(\"multiple\")) return addOrRemove(prev, value);\n return [value];\n });\n },\n clearItem({ context, event }) {\n context.set(\"value\", (prev) => prev.filter((v) => v !== event.value));\n },\n setSelectedItems({ context, event }) {\n context.set(\"value\", event.value);\n },\n clearSelectedItems({ context }) {\n context.set(\"value\", []);\n },\n selectPreviousItem({ context, prop }) {\n const [firstItem] = context.get(\"value\");\n const value = prop(\"collection\").getPreviousValue(firstItem);\n if (value) context.set(\"value\", [value]);\n },\n selectNextItem({ context, prop }) {\n const [firstItem] = context.get(\"value\");\n const value = prop(\"collection\").getNextValue(firstItem);\n if (value) context.set(\"value\", [value]);\n },\n selectFirstItem({ context, prop }) {\n const value = prop(\"collection\").firstValue;\n if (value) context.set(\"value\", [value]);\n },\n selectLastItem({ context, prop }) {\n const value = prop(\"collection\").lastValue;\n if (value) context.set(\"value\", [value]);\n },\n selectMatchingItem({ context, prop, event, refs }) {\n const value = prop(\"collection\").search(event.key, {\n state: refs.get(\"typeahead\"),\n currentValue: context.get(\"value\")[0]\n });\n if (value == null) return;\n context.set(\"value\", [value]);\n },\n scrollContentToTop({ prop, scope }) {\n if (prop(\"scrollToIndexFn\")) {\n prop(\"scrollToIndexFn\")?.({ index: 0, immediate: true });\n } else {\n getContentEl(scope)?.scrollTo(0, 0);\n }\n },\n invokeOnOpen({ prop }) {\n prop(\"onOpenChange\")?.({ open: true });\n },\n invokeOnClose({ prop }) {\n prop(\"onOpenChange\")?.({ open: false });\n },\n syncSelectElement({ context, prop, scope }) {\n const selectEl = getHiddenSelectEl(scope);\n if (!selectEl) return;\n if (context.get(\"value\").length === 0 && !prop(\"multiple\")) {\n selectEl.selectedIndex = -1;\n return;\n }\n for (const option of selectEl.options) {\n option.selected = context.get(\"value\").includes(option.value);\n }\n },\n syncCollection({ context, prop }) {\n const collection2 = prop(\"collection\");\n const highlightedItem = collection2.find(context.get(\"highlightedValue\"));\n if (highlightedItem) context.set(\"highlightedItem\", highlightedItem);\n const selectedItems = collection2.findMany(context.get(\"value\"));\n context.set(\"selectedItems\", selectedItems);\n const valueAsString = collection2.stringifyItems(selectedItems);\n context.set(\"valueAsString\", valueAsString);\n },\n syncSelectedItems({ context, prop }) {\n const collection2 = prop(\"collection\");\n const prevSelectedItems = context.get(\"selectedItems\");\n const value = context.get(\"value\");\n const selectedItems = value.map((value2) => {\n const item = prevSelectedItems.find((item2) => collection2.getItemValue(item2) === value2);\n return item || collection2.find(value2);\n });\n context.set(\"selectedItems\", selectedItems);\n context.set(\"valueAsString\", collection2.stringifyItems(selectedItems));\n },\n syncHighlightedItem({ context, prop }) {\n const collection2 = prop(\"collection\");\n const highlightedValue = context.get(\"highlightedValue\");\n const highlightedItem = highlightedValue ? collection2.find(highlightedValue) : null;\n context.set(\"highlightedItem\", highlightedItem);\n },\n dispatchChangeEvent({ scope }) {\n queueMicrotask(() => {\n const node = getHiddenSelectEl(scope);\n if (!node) return;\n const win = scope.getWin();\n const changeEvent = new win.Event(\"change\", { bubbles: true, composed: true });\n node.dispatchEvent(changeEvent);\n });\n }\n }\n }\n});\nvar props = createProps()([\n \"closeOnSelect\",\n \"collection\",\n \"dir\",\n \"disabled\",\n \"deselectable\",\n \"form\",\n \"getRootNode\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"loopFocus\",\n \"multiple\",\n \"name\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onValueChange\",\n \"defaultOpen\",\n \"open\",\n \"composite\",\n \"positioning\",\n \"required\",\n \"readOnly\",\n \"scrollToIndexFn\",\n \"value\",\n \"defaultValue\",\n \"defaultHighlightedValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"item\", \"persistFocus\"]);\nvar splitItemProps = createSplitProps(itemProps);\nvar itemGroupProps = createProps()([\"id\"]);\nvar splitItemGroupProps = createSplitProps(itemGroupProps);\nvar itemGroupLabelProps = createProps()([\"htmlFor\"]);\nvar splitItemGroupLabelProps = createSplitProps(itemGroupLabelProps);\n\nexport { anatomy, collection, connect, itemGroupLabelProps, itemGroupProps, itemProps, machine, props, splitItemGroupLabelProps, splitItemGroupProps, splitItemProps, splitProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as select from '@zag-js/select';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\nimport { useFieldContext } from '../field/use-field-context.js';\n\nconst useSelect = (props) => {\n const id = useId();\n const { dir } = useLocaleContext();\n const { getRootNode } = useEnvironmentContext();\n const field = useFieldContext();\n const machineProps = {\n id,\n ids: {\n label: field?.ids.label,\n hiddenSelect: field?.ids.control\n },\n disabled: field?.disabled,\n readOnly: field?.readOnly,\n invalid: field?.invalid,\n required: field?.required,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(select.machine, machineProps);\n return select.connect(service, normalizeProps);\n};\n\nexport { useSelect };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { splitPresenceProps } from '../presence/split-presence-props.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useSelect } from './use-select.js';\nimport { SelectProvider } from './use-select-context.js';\n\nconst SelectImpl = (props, ref) => {\n const [presenceProps, selectProps] = splitPresenceProps(props);\n const [useSelectProps, localProps] = createSplitProps()(selectProps, [\n \"closeOnSelect\",\n \"collection\",\n \"composite\",\n \"defaultHighlightedValue\",\n \"defaultOpen\",\n \"defaultValue\",\n \"deselectable\",\n \"disabled\",\n \"form\",\n \"highlightedValue\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"loopFocus\",\n \"multiple\",\n \"name\",\n \"onFocusOutside\",\n \"onHighlightChange\",\n \"onInteractOutside\",\n \"onOpenChange\",\n \"onPointerDownOutside\",\n \"onValueChange\",\n \"open\",\n \"positioning\",\n \"readOnly\",\n \"required\",\n \"scrollToIndexFn\",\n \"value\"\n ]);\n const select = useSelect(useSelectProps);\n const presence = usePresence(mergeProps({ present: select.open }, presenceProps));\n const mergedProps = mergeProps(select.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(SelectProvider, { value: select, children: /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n};\nconst SelectRoot = forwardRef(SelectImpl);\n\nexport { SelectRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectTrigger = forwardRef((props, ref) => {\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nSelectTrigger.displayName = \"SelectTrigger\";\n\nexport { SelectTrigger };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSelectContext } from './use-select-context.js';\n\nconst SelectValueText = forwardRef((props, ref) => {\n const { children, placeholder, ...localprops } = props;\n const select = useSelectContext();\n const mergedProps = mergeProps(select.getValueTextProps(), localprops);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref, children: children || select.valueAsString || placeholder });\n});\nSelectValueText.displayName = \"SelectValueText\";\n\nexport { SelectValueText };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [SwitchProvider, useSwitchContext] = createContext({\n name: \"SwitchContext\",\n hookName: \"useSwitchContext\",\n providerName: \"<SwitchProvider />\"\n});\n\nexport { SwitchProvider, useSwitchContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchControl = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getControlProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nSwitchControl.displayName = \"SwitchControl\";\n\nexport { SwitchControl };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useFieldContext } from '../field/use-field-context.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchHiddenInput = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getHiddenInputProps(), props);\n const field = useFieldContext();\n return /* @__PURE__ */ jsx(ark.input, { \"aria-describedby\": field?.ariaDescribedby, ...mergedProps, ref });\n});\nSwitchHiddenInput.displayName = \"SwitchHiddenInput\";\n\nexport { SwitchHiddenInput };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchLabel = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getLabelProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nSwitchLabel.displayName = \"SwitchLabel\";\n\nexport { SwitchLabel };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { dispatchInputCheckedEvent, setElementChecked, trackFormControl, trackPress, dataAttr, visuallyHiddenStyle, getEventTarget, isSafari } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/switch.anatomy.ts\nvar anatomy = createAnatomy(\"switch\").parts(\"root\", \"label\", \"control\", \"thumb\");\nvar parts = anatomy.build();\n\n// src/switch.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `switch:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `switch:${ctx.id}:label`;\nvar getThumbId = (ctx) => ctx.ids?.thumb ?? `switch:${ctx.id}:thumb`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `switch:${ctx.id}:control`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `switch:${ctx.id}:input`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\n\n// src/switch.connect.ts\nfunction connect(service, normalize) {\n const { context, send, prop, scope } = service;\n const disabled = prop(\"disabled\");\n const readOnly = prop(\"readOnly\");\n const checked = !!context.get(\"checked\");\n const focused = !disabled && context.get(\"focused\");\n const focusVisible = !disabled && context.get(\"focusVisible\");\n const dataAttrs = {\n \"data-active\": dataAttr(context.get(\"active\")),\n \"data-focus\": dataAttr(focused),\n \"data-focus-visible\": dataAttr(focusVisible),\n \"data-readonly\": dataAttr(readOnly),\n \"data-hover\": dataAttr(context.get(\"hovered\")),\n \"data-disabled\": dataAttr(disabled),\n \"data-state\": checked ? \"checked\" : \"unchecked\",\n \"data-invalid\": dataAttr(prop(\"invalid\"))\n };\n return {\n checked,\n disabled,\n focused,\n setChecked(checked2) {\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: false });\n },\n toggleChecked() {\n send({ type: \"CHECKED.TOGGLE\", checked, isTrusted: false });\n },\n getRootProps() {\n return normalize.label({\n ...parts.root.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getRootId(scope),\n htmlFor: getHiddenInputId(scope),\n onPointerMove() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: true } });\n },\n onPointerLeave() {\n if (disabled) return;\n send({ type: \"CONTEXT.SET\", context: { hovered: false } });\n },\n onClick(event) {\n if (disabled) return;\n const target = getEventTarget(event);\n if (target === getHiddenInputEl(scope)) {\n event.stopPropagation();\n }\n if (isSafari()) {\n getHiddenInputEl(scope)?.focus();\n }\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getLabelId(scope)\n });\n },\n getThumbProps() {\n return normalize.element({\n ...parts.thumb.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getThumbId(scope),\n \"aria-hidden\": true\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n ...dataAttrs,\n dir: prop(\"dir\"),\n id: getControlId(scope),\n \"aria-hidden\": true\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n id: getHiddenInputId(scope),\n type: \"checkbox\",\n required: prop(\"required\"),\n defaultChecked: checked,\n disabled,\n \"aria-labelledby\": getLabelId(scope),\n \"aria-invalid\": prop(\"invalid\"),\n name: prop(\"name\"),\n form: prop(\"form\"),\n value: prop(\"value\"),\n style: visuallyHiddenStyle,\n onFocus() {\n const focusVisible2 = isFocusVisible();\n send({ type: \"CONTEXT.SET\", context: { focused: true, focusVisible: focusVisible2 } });\n },\n onBlur() {\n send({ type: \"CONTEXT.SET\", context: { focused: false, focusVisible: false } });\n },\n onClick(event) {\n if (readOnly) {\n event.preventDefault();\n return;\n }\n const checked2 = event.currentTarget.checked;\n send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: true });\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n defaultChecked: false,\n label: \"switch\",\n value: \"on\",\n ...props2\n };\n },\n initialState() {\n return \"ready\";\n },\n context({ prop, bindable }) {\n return {\n checked: bindable(() => ({\n defaultValue: prop(\"defaultChecked\"),\n value: prop(\"checked\"),\n onChange(value) {\n prop(\"onCheckedChange\")?.({ checked: value });\n }\n })),\n fieldsetDisabled: bindable(() => ({\n defaultValue: false\n })),\n focusVisible: bindable(() => ({\n defaultValue: false\n })),\n active: bindable(() => ({\n defaultValue: false\n })),\n focused: bindable(() => ({\n defaultValue: false\n })),\n hovered: bindable(() => ({\n defaultValue: false\n }))\n };\n },\n computed: {\n isDisabled: ({ context, prop }) => prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n },\n watch({ track, prop, context, action }) {\n track([() => prop(\"disabled\")], () => {\n action([\"removeFocusIfNeeded\"]);\n });\n track([() => context.get(\"checked\")], () => {\n action([\"syncInputElement\"]);\n });\n },\n effects: [\"trackFormControlState\", \"trackPressEvent\", \"trackFocusVisible\"],\n on: {\n \"CHECKED.TOGGLE\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"toggleChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"toggleChecked\"]\n }\n ],\n \"CHECKED.SET\": [\n {\n guard: not(\"isTrusted\"),\n actions: [\"setChecked\", \"dispatchChangeEvent\"]\n },\n {\n actions: [\"setChecked\"]\n }\n ],\n \"CONTEXT.SET\": {\n actions: [\"setContext\"]\n }\n },\n states: {\n ready: {}\n },\n implementations: {\n guards: {\n isTrusted: ({ event }) => !!event.isTrusted\n },\n effects: {\n trackPressEvent({ computed, scope, context }) {\n if (computed(\"isDisabled\")) return;\n return trackPress({\n pointerNode: getRootEl(scope),\n keyboardNode: getHiddenInputEl(scope),\n isValidKey: (event) => event.key === \" \",\n onPress: () => context.set(\"active\", false),\n onPressStart: () => context.set(\"active\", true),\n onPressEnd: () => context.set(\"active\", false)\n });\n },\n trackFocusVisible({ computed, scope }) {\n if (computed(\"isDisabled\")) return;\n return trackFocusVisible({ root: scope.getRootNode() });\n },\n trackFormControlState({ context, send, scope }) {\n return trackFormControl(getHiddenInputEl(scope), {\n onFieldsetDisabledChange(disabled) {\n context.set(\"fieldsetDisabled\", disabled);\n },\n onFormReset() {\n const checked = context.initial(\"checked\");\n send({ type: \"CHECKED.SET\", checked: !!checked, src: \"form-reset\" });\n }\n });\n }\n },\n actions: {\n setContext({ context, event }) {\n for (const key in event.context) {\n context.set(key, event.context[key]);\n }\n },\n syncInputElement({ context, scope }) {\n const inputEl = getHiddenInputEl(scope);\n if (!inputEl) return;\n setElementChecked(inputEl, !!context.get(\"checked\"));\n },\n removeFocusIfNeeded({ context, prop }) {\n if (prop(\"disabled\")) {\n context.set(\"focused\", false);\n }\n },\n setChecked({ context, event }) {\n context.set(\"checked\", event.checked);\n },\n toggleChecked({ context }) {\n context.set(\"checked\", !context.get(\"checked\"));\n },\n dispatchChangeEvent({ context, scope }) {\n const inputEl = getHiddenInputEl(scope);\n dispatchInputCheckedEvent(inputEl, { checked: context.get(\"checked\") });\n }\n }\n }\n});\nvar props = createProps()([\n \"checked\",\n \"defaultChecked\",\n \"dir\",\n \"disabled\",\n \"form\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"label\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as zagSwitch from '@zag-js/switch';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\nimport { useFieldContext } from '../field/use-field-context.js';\n\nconst useSwitch = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const field = useFieldContext();\n const machineProps = {\n id,\n ids: {\n label: field?.ids.label,\n hiddenInput: field?.ids.control\n },\n dir,\n disabled: field?.disabled,\n readOnly: field?.readOnly,\n invalid: field?.invalid,\n required: field?.required,\n getRootNode,\n ...props\n };\n const service = useMachine(zagSwitch.machine, machineProps);\n return zagSwitch.connect(service, normalizeProps);\n};\n\nexport { useSwitch };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useSwitch } from './use-switch.js';\nimport { SwitchProvider } from './use-switch-context.js';\n\nconst SwitchRoot = forwardRef((props, ref) => {\n const [switchProps, localProps] = createSplitProps()(props, [\n \"checked\",\n \"defaultChecked\",\n \"disabled\",\n \"form\",\n \"id\",\n \"ids\",\n \"invalid\",\n \"label\",\n \"name\",\n \"onCheckedChange\",\n \"readOnly\",\n \"required\",\n \"value\"\n ]);\n const switchContext = useSwitch(switchProps);\n const mergedProps = mergeProps(switchContext.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(SwitchProvider, { value: switchContext, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nSwitchRoot.displayName = \"SwitchRoot\";\n\nexport { SwitchRoot };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { SwitchProvider } from './use-switch-context.js';\n\nconst SwitchRootProvider = forwardRef((props, ref) => {\n const [{ value: api }, localProps] = createSplitProps()(props, [\"value\"]);\n const mergedProps = mergeProps(api.getRootProps(), localProps);\n return /* @__PURE__ */ jsx(SwitchProvider, { value: api, children: /* @__PURE__ */ jsx(ark.label, { ...mergedProps, ref }) });\n});\nSwitchRootProvider.displayName = \"SwitchRootProvider\";\n\nexport { SwitchRootProvider };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useSwitchContext } from './use-switch-context.js';\n\nconst SwitchThumb = forwardRef((props, ref) => {\n const switchContext = useSwitchContext();\n const mergedProps = mergeProps(switchContext.getThumbProps(), props);\n return /* @__PURE__ */ jsx(ark.span, { ...mergedProps, ref });\n});\nSwitchThumb.displayName = \"SwitchThumb\";\n\nexport { SwitchThumb };\n","'use client';\nimport { useState, useEffect } from 'react';\n\nfunction useDebounce(value, delay) {\n const [debouncedValue, setDebouncedValue] = useState(value);\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedValue(value);\n }, delay);\n return () => {\n clearTimeout(timer);\n };\n }, [value, delay]);\n return debouncedValue;\n}\n\nexport { useDebounce };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [TabsProvider, useTabsContext] = createContext({\n name: \"TabsContext\",\n hookName: \"useTabsContext\",\n providerName: \"<TabsProvider />\"\n});\n\nexport { TabsProvider, useTabsContext };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { composeRefs } from '../../utils/compose-refs.js';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { useRenderStrategyPropsContext } from '../../utils/render-strategy.js';\nimport { useDebounce } from '../../utils/use-debounce.js';\nimport { ark } from '../factory.js';\nimport { usePresence } from '../presence/use-presence.js';\nimport { PresenceProvider } from '../presence/use-presence-context.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabContent = forwardRef((props, ref) => {\n const [contentProps, localProps] = createSplitProps()(props, [\"value\"]);\n const tabs = useTabsContext();\n const renderStrategyProps = useRenderStrategyPropsContext();\n const presence = usePresence({\n ...renderStrategyProps,\n present: useDebounce(tabs.value === props.value, 0),\n immediate: true\n });\n const mergedProps = mergeProps(tabs.getContentProps(contentProps), presence.getPresenceProps(), localProps);\n return /* @__PURE__ */ jsx(PresenceProvider, { value: presence, children: presence.unmounted ? null : /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref: composeRefs(presence.ref, ref) }) });\n});\nTabContent.displayName = \"TabContent\";\n\nexport { TabContent };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabIndicator = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getIndicatorProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabIndicator.displayName = \"TabIndicator\";\n\nexport { TabIndicator };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabList = forwardRef((props, ref) => {\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getListProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nTabList.displayName = \"TabList\";\n\nexport { TabList };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { ark } from '../factory.js';\nimport { useTabsContext } from './use-tabs-context.js';\n\nconst TabTrigger = forwardRef((props, ref) => {\n const [tabProps, localProps] = createSplitProps()(props, [\"disabled\", \"value\"]);\n const tabs = useTabsContext();\n const mergedProps = mergeProps(tabs.getTriggerProps(tabProps), localProps);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n});\nTabTrigger.displayName = \"TabTrigger\";\n\nexport { TabTrigger };\n","import { createAnatomy } from '@zag-js/anatomy';\nimport { isAnchorElement, trackElementRect, nextTick, raf, getFocusables, prevById, nextById, clickIfLink, itemById, queryAll, dataAttr, isSafari, isSelfTarget, isComposingEvent, getEventKey } from '@zag-js/dom-query';\nimport { last, first, createSplitProps } from '@zag-js/utils';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/tabs.anatomy.ts\nvar anatomy = createAnatomy(\"tabs\").parts(\"root\", \"list\", \"trigger\", \"content\", \"indicator\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `tabs:${ctx.id}`;\nvar getListId = (ctx) => ctx.ids?.list ?? `tabs:${ctx.id}:list`;\nvar getContentId = (ctx, id) => ctx.ids?.content ?? `tabs:${ctx.id}:content-${id}`;\nvar getTriggerId = (ctx, id) => ctx.ids?.trigger ?? `tabs:${ctx.id}:trigger-${id}`;\nvar getIndicatorId = (ctx) => ctx.ids?.indicator ?? `tabs:${ctx.id}:indicator`;\nvar getListEl = (ctx) => ctx.getById(getListId(ctx));\nvar getContentEl = (ctx, id) => ctx.getById(getContentId(ctx, id));\nvar getTriggerEl = (ctx, id) => ctx.getById(getTriggerId(ctx, id));\nvar getIndicatorEl = (ctx) => ctx.getById(getIndicatorId(ctx));\nvar getElements = (ctx) => {\n const ownerId = CSS.escape(getListId(ctx));\n const selector = `[role=tab][data-ownedby='${ownerId}']:not([disabled])`;\n return queryAll(getListEl(ctx), selector);\n};\nvar getFirstTriggerEl = (ctx) => first(getElements(ctx));\nvar getLastTriggerEl = (ctx) => last(getElements(ctx));\nvar getNextTriggerEl = (ctx, opts) => nextById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getPrevTriggerEl = (ctx, opts) => prevById(getElements(ctx), getTriggerId(ctx, opts.value), opts.loopFocus);\nvar getOffsetRect = (el) => {\n return {\n left: el?.offsetLeft ?? 0,\n top: el?.offsetTop ?? 0,\n width: el?.offsetWidth ?? 0,\n height: el?.offsetHeight ?? 0\n };\n};\nvar getRectById = (ctx, id) => {\n const tab = itemById(getElements(ctx), getTriggerId(ctx, id));\n return resolveRect(getOffsetRect(tab));\n};\nvar resolveRect = (rect) => ({\n width: `${rect.width}px`,\n height: `${rect.height}px`,\n left: `${rect.left}px`,\n top: `${rect.top}px`\n});\n\n// src/tabs.connect.ts\nfunction connect(service, normalize) {\n const { state, send, context, prop, scope } = service;\n const translations = prop(\"translations\");\n const focused = state.matches(\"focused\");\n const isVertical = prop(\"orientation\") === \"vertical\";\n const isHorizontal = prop(\"orientation\") === \"horizontal\";\n const composite = prop(\"composite\");\n function getTriggerState(props2) {\n return {\n selected: context.get(\"value\") === props2.value,\n focused: context.get(\"focusedValue\") === props2.value,\n disabled: !!props2.disabled\n };\n }\n return {\n value: context.get(\"value\"),\n focusedValue: context.get(\"focusedValue\"),\n setValue(value) {\n send({ type: \"SET_VALUE\", value });\n },\n clearValue() {\n send({ type: \"CLEAR_VALUE\" });\n },\n setIndicatorRect(value) {\n const id = getTriggerId(scope, value);\n send({ type: \"SET_INDICATOR_RECT\", id });\n },\n syncTabIndex() {\n send({ type: \"SYNC_TAB_INDEX\" });\n },\n selectNext(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectNext\" });\n send({ type: \"ARROW_NEXT\", src: \"selectNext\" });\n },\n selectPrev(fromValue) {\n send({ type: \"TAB_FOCUS\", value: fromValue, src: \"selectPrev\" });\n send({ type: \"ARROW_PREV\", src: \"selectPrev\" });\n },\n focus() {\n const value = context.get(\"value\");\n if (!value) return;\n getTriggerEl(scope, value)?.focus();\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n id: getRootId(scope),\n \"data-orientation\": prop(\"orientation\"),\n \"data-focus\": dataAttr(focused),\n dir: prop(\"dir\")\n });\n },\n getListProps() {\n return normalize.element({\n ...parts.list.attrs,\n id: getListId(scope),\n role: \"tablist\",\n dir: prop(\"dir\"),\n \"data-focus\": dataAttr(focused),\n \"aria-orientation\": prop(\"orientation\"),\n \"data-orientation\": prop(\"orientation\"),\n \"aria-label\": translations?.listLabel,\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (!isSelfTarget(event)) return;\n if (isComposingEvent(event)) return;\n const keyMap = {\n ArrowDown() {\n if (isHorizontal) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowDown\" });\n },\n ArrowUp() {\n if (isHorizontal) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowUp\" });\n },\n ArrowLeft() {\n if (isVertical) return;\n send({ type: \"ARROW_PREV\", key: \"ArrowLeft\" });\n },\n ArrowRight() {\n if (isVertical) return;\n send({ type: \"ARROW_NEXT\", key: \"ArrowRight\" });\n },\n Home() {\n send({ type: \"HOME\" });\n },\n End() {\n send({ type: \"END\" });\n },\n Enter() {\n send({ type: \"ENTER\" });\n }\n };\n let key = getEventKey(event, {\n dir: prop(\"dir\"),\n orientation: prop(\"orientation\")\n });\n const exec = keyMap[key];\n if (exec) {\n event.preventDefault();\n exec(event);\n }\n }\n });\n },\n getTriggerState,\n getTriggerProps(props2) {\n const { value, disabled } = props2;\n const triggerState = getTriggerState(props2);\n return normalize.button({\n ...parts.trigger.attrs,\n role: \"tab\",\n type: \"button\",\n disabled,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n \"data-disabled\": dataAttr(disabled),\n \"aria-disabled\": disabled,\n \"data-value\": value,\n \"aria-selected\": triggerState.selected,\n \"data-selected\": dataAttr(triggerState.selected),\n \"data-focus\": dataAttr(triggerState.focused),\n \"aria-controls\": triggerState.selected ? getContentId(scope, value) : void 0,\n \"data-ownedby\": getListId(scope),\n \"data-ssr\": dataAttr(context.get(\"ssr\")),\n id: getTriggerId(scope, value),\n tabIndex: triggerState.selected && composite ? 0 : -1,\n onFocus() {\n send({ type: \"TAB_FOCUS\", value });\n },\n onBlur(event) {\n const target = event.relatedTarget;\n if (target?.getAttribute(\"role\") !== \"tab\") {\n send({ type: \"TAB_BLUR\" });\n }\n },\n onClick(event) {\n if (event.defaultPrevented) return;\n if (disabled) return;\n if (isSafari()) {\n event.currentTarget.focus();\n }\n send({ type: \"TAB_CLICK\", value });\n }\n });\n },\n getContentProps(props2) {\n const { value } = props2;\n const selected = context.get(\"value\") === value;\n return normalize.element({\n ...parts.content.attrs,\n dir: prop(\"dir\"),\n id: getContentId(scope, value),\n tabIndex: composite ? 0 : -1,\n \"aria-labelledby\": getTriggerId(scope, value),\n role: \"tabpanel\",\n \"data-ownedby\": getListId(scope),\n \"data-selected\": dataAttr(selected),\n \"data-orientation\": prop(\"orientation\"),\n hidden: !selected\n });\n },\n getIndicatorProps() {\n const indicatorRect = context.get(\"indicatorRect\");\n const indicatorTransition = context.get(\"indicatorTransition\");\n return normalize.element({\n id: getIndicatorId(scope),\n ...parts.indicator.attrs,\n dir: prop(\"dir\"),\n \"data-orientation\": prop(\"orientation\"),\n style: {\n \"--transition-property\": \"left, right, top, bottom, width, height\",\n \"--left\": indicatorRect.left,\n \"--top\": indicatorRect.top,\n \"--width\": indicatorRect.width,\n \"--height\": indicatorRect.height,\n position: \"absolute\",\n willChange: \"var(--transition-property)\",\n transitionProperty: \"var(--transition-property)\",\n transitionDuration: indicatorTransition ? \"var(--transition-duration, 150ms)\" : \"0ms\",\n transitionTimingFunction: \"var(--transition-timing-function)\",\n [isHorizontal ? \"left\" : \"top\"]: isHorizontal ? \"var(--left)\" : \"var(--top)\"\n }\n });\n }\n };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n props({ props: props2 }) {\n return {\n dir: \"ltr\",\n orientation: \"horizontal\",\n activationMode: \"automatic\",\n loopFocus: true,\n composite: true,\n navigate(details) {\n clickIfLink(details.node);\n },\n defaultValue: null,\n ...props2\n };\n },\n initialState() {\n return \"idle\";\n },\n context({ prop, bindable }) {\n return {\n value: bindable(() => ({\n defaultValue: prop(\"defaultValue\"),\n value: prop(\"value\"),\n onChange(value) {\n prop(\"onValueChange\")?.({ value });\n }\n })),\n focusedValue: bindable(() => ({\n defaultValue: prop(\"value\") || prop(\"defaultValue\"),\n sync: true,\n onChange(value) {\n prop(\"onFocusChange\")?.({ focusedValue: value });\n }\n })),\n ssr: bindable(() => ({ defaultValue: true })),\n indicatorTransition: bindable(() => ({ defaultValue: false })),\n indicatorRect: bindable(() => ({\n defaultValue: { left: \"0px\", top: \"0px\", width: \"0px\", height: \"0px\" }\n }))\n };\n },\n watch({ context, prop, track, action }) {\n track([() => context.get(\"value\")], () => {\n action([\"allowIndicatorTransition\", \"syncIndicatorRect\", \"syncTabIndex\", \"navigateIfNeeded\"]);\n });\n track([() => prop(\"dir\"), () => prop(\"orientation\")], () => {\n action([\"syncIndicatorRect\"]);\n });\n },\n on: {\n SET_VALUE: {\n actions: [\"setValue\"]\n },\n CLEAR_VALUE: {\n actions: [\"clearValue\"]\n },\n SET_INDICATOR_RECT: {\n actions: [\"setIndicatorRect\"]\n },\n SYNC_TAB_INDEX: {\n actions: [\"syncTabIndex\"]\n }\n },\n entry: [\"syncIndicatorRect\", \"syncTabIndex\", \"syncSsr\"],\n exit: [\"cleanupObserver\"],\n states: {\n idle: {\n on: {\n TAB_FOCUS: {\n target: \"focused\",\n actions: [\"setFocusedValue\"]\n },\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"]\n }\n }\n },\n focused: {\n on: {\n TAB_CLICK: {\n target: \"focused\",\n actions: [\"setFocusedValue\", \"setValue\"]\n },\n ARROW_PREV: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusPrevTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusPrevTab\"]\n }\n ],\n ARROW_NEXT: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusNextTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusNextTab\"]\n }\n ],\n HOME: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusFirstTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusFirstTab\"]\n }\n ],\n END: [\n {\n guard: \"selectOnFocus\",\n actions: [\"focusLastTab\", \"selectFocusedTab\"]\n },\n {\n actions: [\"focusLastTab\"]\n }\n ],\n ENTER: {\n guard: not(\"selectOnFocus\"),\n actions: [\"selectFocusedTab\"]\n },\n TAB_FOCUS: {\n actions: [\"setFocusedValue\"]\n },\n TAB_BLUR: {\n target: \"idle\",\n actions: [\"clearFocusedValue\"]\n }\n }\n }\n },\n implementations: {\n guards: {\n selectOnFocus: ({ prop }) => prop(\"activationMode\") === \"automatic\"\n },\n actions: {\n selectFocusedTab({ context, prop }) {\n raf(() => {\n const focusedValue = context.get(\"focusedValue\");\n if (!focusedValue) return;\n const nullable = prop(\"deselectable\") && context.get(\"value\") === focusedValue;\n const value = nullable ? null : focusedValue;\n context.set(\"value\", value);\n });\n },\n setFocusedValue({ context, event, flush }) {\n if (event.value == null) return;\n flush(() => {\n context.set(\"focusedValue\", event.value);\n });\n },\n clearFocusedValue({ context }) {\n context.set(\"focusedValue\", null);\n },\n setValue({ context, event, prop }) {\n const nullable = prop(\"deselectable\") && context.get(\"value\") === context.get(\"focusedValue\");\n context.set(\"value\", nullable ? null : event.value);\n },\n clearValue({ context }) {\n context.set(\"value\", null);\n },\n focusFirstTab({ scope }) {\n raf(() => {\n getFirstTriggerEl(scope)?.focus();\n });\n },\n focusLastTab({ scope }) {\n raf(() => {\n getLastTriggerEl(scope)?.focus();\n });\n },\n focusNextTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getNextTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n focusPrevTab({ context, prop, scope, event }) {\n const focusedValue = event.value ?? context.get(\"focusedValue\");\n if (!focusedValue) return;\n const triggerEl = getPrevTriggerEl(scope, {\n value: focusedValue,\n loopFocus: prop(\"loopFocus\")\n });\n raf(() => {\n if (prop(\"composite\")) {\n triggerEl?.focus();\n } else if (triggerEl?.dataset.value != null) {\n context.set(\"focusedValue\", triggerEl.dataset.value);\n }\n });\n },\n syncTabIndex({ context, scope }) {\n raf(() => {\n const value = context.get(\"value\");\n if (!value) return;\n const contentEl = getContentEl(scope, value);\n if (!contentEl) return;\n const focusables = getFocusables(contentEl);\n if (focusables.length > 0) {\n contentEl.removeAttribute(\"tabindex\");\n } else {\n contentEl.setAttribute(\"tabindex\", \"0\");\n }\n });\n },\n cleanupObserver({ refs }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n },\n allowIndicatorTransition({ context }) {\n context.set(\"indicatorTransition\", true);\n },\n setIndicatorRect({ context, event, scope }) {\n const value = event.id ?? context.get(\"value\");\n const indicatorEl = getIndicatorEl(scope);\n if (!indicatorEl) return;\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n if (!triggerEl) return;\n context.set(\"indicatorRect\", getRectById(scope, value));\n nextTick(() => {\n context.set(\"indicatorTransition\", false);\n });\n },\n syncSsr({ context }) {\n context.set(\"ssr\", false);\n },\n syncIndicatorRect({ context, refs, scope }) {\n const cleanup = refs.get(\"indicatorCleanup\");\n if (cleanup) cleanup();\n const value = context.get(\"value\");\n if (!value) {\n context.set(\"indicatorTransition\", false);\n return;\n }\n const triggerEl = getTriggerEl(scope, value);\n const indicatorEl = getIndicatorEl(scope);\n if (!triggerEl || !indicatorEl) return;\n const indicatorCleanup = trackElementRect([triggerEl], {\n measure(el) {\n return getOffsetRect(el);\n },\n onEntry({ rects }) {\n const [rect] = rects;\n context.set(\"indicatorRect\", resolveRect(rect));\n }\n });\n refs.set(\"indicatorCleanup\", indicatorCleanup);\n },\n navigateIfNeeded({ context, prop, scope }) {\n const value = context.get(\"value\");\n if (!value) return;\n const triggerEl = getTriggerEl(scope, value);\n if (!isAnchorElement(triggerEl)) return;\n prop(\"navigate\")?.({ value, node: triggerEl });\n }\n }\n }\n});\nvar props = createProps()([\n \"activationMode\",\n \"composite\",\n \"deselectable\",\n \"dir\",\n \"getRootNode\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\",\n \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar triggerProps = createProps()([\"disabled\", \"value\"]);\nvar splitTriggerProps = createSplitProps(triggerProps);\nvar contentProps = createProps()([\"value\"]);\nvar splitContentProps = createSplitProps(contentProps);\n\nexport { anatomy, connect, contentProps, machine, props, splitContentProps, splitProps, splitTriggerProps, triggerProps };\n","'use client';\nimport { useMachine, normalizeProps } from '@zag-js/react';\nimport * as tabs from '@zag-js/tabs';\nimport { useId } from 'react';\nimport { useEnvironmentContext } from '../../providers/environment/use-environment-context.js';\nimport { useLocaleContext } from '../../providers/locale/use-locale-context.js';\n\nconst useTabs = (props) => {\n const id = useId();\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const machineProps = {\n id,\n dir,\n getRootNode,\n ...props\n };\n const service = useMachine(tabs.machine, machineProps);\n return tabs.connect(service, normalizeProps);\n};\n\nexport { useTabs };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { createSplitProps } from '../../utils/create-split-props.js';\nimport { splitRenderStrategyProps, RenderStrategyPropsProvider } from '../../utils/render-strategy.js';\nimport { ark } from '../factory.js';\nimport { useTabs } from './use-tabs.js';\nimport { TabsProvider } from './use-tabs-context.js';\n\nconst TabsRoot = forwardRef((props, ref) => {\n const [renderStrategyProps, tabsProps] = splitRenderStrategyProps(props);\n const [useTabsProps, localprops] = createSplitProps()(tabsProps, [\n \"activationMode\",\n \"composite\",\n \"defaultValue\",\n \"deselectable\",\n \"id\",\n \"ids\",\n \"loopFocus\",\n \"navigate\",\n \"onFocusChange\",\n \"onValueChange\",\n \"orientation\",\n \"translations\",\n \"value\"\n ]);\n const tabs = useTabs(useTabsProps);\n const mergedProps = mergeProps(tabs.getRootProps(), localprops);\n return /* @__PURE__ */ jsx(TabsProvider, { value: tabs, children: /* @__PURE__ */ jsx(RenderStrategyPropsProvider, { value: renderStrategyProps, children: /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref }) }) });\n});\nTabsRoot.displayName = \"TabsRoot\";\n\nexport { TabsRoot };\n"],"names":["getErrorMessage","hook","provider","createContext","options","name","strict","hookName","providerName","errorMessage","defaultValue","Context","createContext$1","useContext$1","context","useContext","error","_a","toArray","v","first","last","has","add","items","remove","t","addOrRemove","item","isArrayLike","value","isArrayEqual","a","b","i","isEqual","keys","length","key","isArray","isObjectLike","isObject","isString","isFunction","isNull","hasProp","obj","prop","fnToString","runIfFn","res","identity","noop","callAll","fns","fn","compact","isPlainObject2","filtered","warn","m","ensure","c","wrap","idx","_","index","pipe","arg","acc","dataAttr","guard","ariaAttr","ELEMENT_NODE","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","isHTMLElement","el","isDocument","isWindow","getNodeName","node","isRootElement","isNode","isShadowRoot","isInputElement","isAnchorElement","isElementVisible","TEXTAREA_SELECT_REGEX","isEditableElement","e","contains","parent","child","rootNode","next","getDocument","getDocumentElement","getWindow","_c","_b","getActiveElement","activeElement","getParentNode","result","styleCache","getComputedStyle","isDom","getPlatform","agent","getUserAgent","ua2","brand","version","pt","ua","vn","isTouchDevice","isIPhone","isIPad","isMac","isIos","isApple","isSafari","isFirefox","isAndroid","getComposedPath","event","_d","getEventTarget","composedPath","isSelfTarget","isComposingEvent","getNativeEvent","isVirtualClick","isContextMenuEvent","isTouchEvent","keyMap","rtlKeyMap","getEventKey","dir","orientation","getEventPoint","type","point","addDomEvent","target","eventName","handler","getDescriptor","property","proto","setElementChecked","checked","dispatchInputCheckedEvent","bubbles","win","getClosestForm","isFormElement","trackFormReset","callback","form","onReset","trackFieldsetDisabled","fieldset","obs","trackFormControl","onFieldsetDisabledChange","onFormReset","cleanups","cleanup","isFrame","hasTabIndex","hasNegativeTabIndex","focusableSelector","getFocusables","container","includeContainer","elements","isFocusable","focusableElements","element","frameBody","getTabbables","tabbableElements","isTabbable","allFrameTabbable","getTabbableEdges","getTabIndex","getInitialFocus","root","getInitialEl","filter","enabled","tabbables","isValidTabEvent","firstTabbable","lastTabbable","doc","nextTick","set","raf2","fn2","id","raf","queueBeforeEvent","cb","cancelTimer","exec","observeAttributesImpl","attributes","changes","change","observeAttributes","nodeOrFn","func","clickIfLink","click","getNearestOverflowAncestor","parentNode","isOverflowElement","OVERFLOW_RE","overflow","overflowX","overflowY","display","isScrollable","scrollIntoView","rootEl","scrollOptions","trackPress","pointerNode","keyboardNode","onPress","onPressStart","onPressEnd","isValidKey","removeStartListeners","removeEndListeners","removeAccessibleListeners","getInfo","startPress","cancelPress","removePointerListener","startEvent","removePointerUpListener","endEvent","removePointerCancelListener","removeFocusListener","startAccessiblePress","handleKeydown","keydownEvent","handleKeyup","keyupEvent","evt2","info","evt","handleBlur","removeKeydownListener","removeBlurListener","queryAll","selector","defaultItemToId","itemById","itemToId","indexOfId","nextById","loop","prevById","trackElementRect","onEntry","measure","box","elems","trigger","entries","rects","sanitize","str","char","code","getValueText","match","valueText","query2","getByText","text","currentId","setStyle","style","prev","setStyleProperty","getByTypeaheadImpl","baseItems","state2","activeId","timeout","search","update","getByTypeahead","isValidTypeaheadEvent","visuallyHiddenStyle","fps","waitForElement","timerId","el2","waitForElements","queries","clean","clsx","args","CSS_REGEX","serialize","css","mergeProps","props","createGuards","guards","params","MachineStatus","MachineStatus2","INIT_STATE","createScope","getRootNode","getDoc","getWin","getActiveElementFn","elem","createNormalizer","_target","createProps","useSafeLayoutEffect","useLayoutEffect","useEffect","useBindable","initial","eq","initialValue","useState","setValue","controlled","valueRef","useRef","prevValue","setFn","value2","get","flushSync","nextValue","prevValue2","useRefs","refs","ref","useTrack","deps","effect","render","called","d","useMachine","machine","userProps","scope","useMemo","ids","debug","useProp","flush","ctx","computed","contextRef","useLiveRef","current","effects","transitionRef","previousEventRef","eventRef","getEvent","getState","state","values","tag","_e","getParams","send","action","choose","strs","s","transitions","nextState","prevState","exitEffects","cleanup2","hydratedStateRef","statusRef","started","initialState","currentState","getCurrentState","transition","changed","_f","normalizeProps","composeRefs","cleanUps","cleanUp","getRef","getter","mayWarn","withAsChild","Component","Comp","memo","forwardRef","asChild","children","restProps","createElement","onlyChild","Children","isValidElement","childRef","cloneElement","jsxFactory","cache","_thisArg","argArray","asElement","ark","createSplitProps","previousValue","currentValue","source","createAnatomy","parts","isEmpty","newName","part","toKebabCase","EnvironmentContextProvider","useEnvironmentContext","LocaleContextProvider","useLocaleContext","sides","min","max","round","floor","createCoords","oppositeSideMap","oppositeAlignmentMap","clamp","start","end","evaluate","param","getSide","placement","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getSideList","side","isStart","lr","rl","tb","bt","getOppositeAxisPlacements","flipAlignment","direction","list","expandPaddingObject","padding","getPaddingObject","rectToClientRect","rect","x","y","width","height","computeCoordsFromPlacement","_ref","reference","floating","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","computePosition","config","strategy","middleware","platform","validMiddleware","statefulPlacement","middlewareData","resetCount","nextX","nextY","data","reset","detectOverflow","_await$platform$isEle","boundary","rootBoundary","elementContext","altBoundary","paddingObject","clippingClientRect","offsetParent","offsetScale","elementClientRect","arrow","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","center","offset","shouldAddOffset","alignmentOffset","flip","_middlewareData$arrow","_middlewareData$flip","initialPlacement","checkMainAxis","checkCrossAxis","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","detectOverflowOptions","initialSideAxis","isBasePlacement","fallbackPlacements","hasFallbackAxisSideDirection","placements","overflows","overflowsData","_middlewareData$flip2","_overflowsData$filter","nextIndex","nextPlacement","resetPlacement","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","hide","offsets","convertValueToCoords","mainAxisMulti","crossAxisMulti","rawValue","mainAxis","crossAxis","_middlewareData$offse","diffCoords","shift","limiter","mainAxisCoord","crossAxisCoord","minSide","maxSide","limitedCoords","limitShift","rawOffset","computedOffset","len","limitMin","limitMax","_middlewareData$offse2","isOriginSide","size","_state$middlewareData","_state$middlewareData2","apply","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableHeight","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","hasWindow","_node$ownerDocument","isElement","isTableElement","isTopLayer","isContainingBlock","elementOrCss","webkit","isWebKit","getContainingBlock","currentNode","isLastTraversableNode","getNodeScroll","getOverflowAncestors","traverseIframes","_node$ownerDocument2","scrollableAncestor","isBody","frameElement","getFrameElement","getCssDimensions","hasOffset","offsetWidth","offsetHeight","shouldFallback","unwrapElement","getScale","domElement","$","noOffsets","getVisualOffsets","shouldAddVisualOffsets","isFixed","floatingOffsetParent","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scale","visualOffsets","offsetWin","currentWin","currentIFrame","iframeScale","iframeRect","left","top","getWindowScrollBarX","leftScroll","getHTMLOffset","documentElement","scroll","ignoreScrollbarX","htmlRect","convertOffsetParentRelativeRectToViewportRelativeRect","topLayer","isOffsetParentAnElement","offsetRect","htmlOffset","getClientRects","getDocumentRect","html","body","getViewportRect","visualViewport","visualViewportBased","getInnerBoundingClientRect","getClientRectFromClippingAncestor","clippingAncestor","hasFixedPositionAncestor","stopNode","getClippingElementAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingRect","clippingAncestors","firstClippingAncestor","clippingRect","accRect","getDimensions","getRectRelativeToOffsetParent","isStaticPositioned","getTrueOffsetParent","polyfill","rawOffsetParent","getOffsetParent","svgOffsetParent","getElementRects","getOffsetParentFn","getDimensionsFn","floatingDimensions","isRTL","rectsAreEqual","observeMove","onMove","io","timeoutId","_io","refresh","skip","threshold","elementRectForRootMargin","insetTop","insetRight","insetBottom","insetLeft","isFirstUpdate","handleObserve","ratio","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","animationFrame","referenceEl","ancestors","cleanupIo","reobserveFrame","resizeObserver","firstEntry","_resizeObserver","frameId","prevRefRect","frameLoop","nextRefRect","_resizeObserver2","offset$1","shift$1","flip$1","size$1","hide$1","arrow$1","limitShift$1","mergedOptions","platformWithCache","computePosition$1","createDOMRect","getDOMRect","anchorRect","getAnchorElement","anchorElement","getAnchorRect","anchor","toVar","cssVars","getTransformOrigin","arrow2","transformOriginMiddleware","transformOrigin","rectMiddleware","shiftArrowMiddleware","arrowEl","getPlacementDetails","align","defaultOptions","roundByDpr","dpr","getBoundaryMiddleware","opts","getArrowMiddleware","arrowElement","getOffsetMiddleware","arrowOffset","gutter","hasAlign","shift2","getFlipMiddleware","getShiftMiddleware","getSizeMiddleware","referenceWidth","hideWhenDetachedMiddleware","getAutoUpdateOptions","getPlacementImpl","referenceOrVirtual","onComplete","onPositioned","updatePosition","pos","contentEl","styles","autoUpdateOptions","cancelAutoUpdate","getPlacement","referenceOrFn","floatingOrFn","defer","ARROW_FLOATING_STYLE","getPlacementStyles","sameWidth","fitViewport","getWindowFrames","frames","frame","listener","getParentWindow","POINTER_OUTSIDE_EVENT","FOCUS_OUTSIDE_EVENT","isComposedPathFocusable","isPointerEvent","isEventPointWithin","isPointInRect","isEventWithinScrollbar","isScrollableY","onScrollbarY","isScrollableX","onScrollbarX","trackInteractOutsideImpl","exclude","onFocusOutside","onPointerDownOutside","onInteractOutside","parentWin","isEventOutside","triggerEl","triggerAncestor","nodeAncestor","pointerdownCleanups","isInShadowRoot","onPointerDown","clickEvent","handler2","fireCustomEvent","timer","onFocusin","trackInteractOutside","init","trackEscapeKeydown","handleKeyDown","layerStack","layer","highestBlockingIndex","branch","num","originalBodyPointerEvents","assignPointerEventToLayers","clearPointerEvent","disablePointerEventsOutside","persistentElements","persistedCleanup","trackDismissableElementImpl","warnOnMissingNode","onDismiss","pointerBlocking","excludeContainers","onEscapeKeyDown","containers","_containers","node2","trackDismissableElement","RenderStrategyPropsProvider","useRenderStrategyPropsContext","splitRenderStrategyProps","CheckboxProvider","useCheckboxContext","CheckboxControl","checkbox","mergedProps","jsx","nonTextInputTypes","isKeyboardFocusEvent","isTextInput","modality","FOCUS_VISIBLE_INPUT_KEYS","currentModality","changeHandlers","listenerMap","hasEventBeforeFocus","hasBlurredWindowRecently","triggerChangeHandlers","handleKeyboardEvent","handlePointerEvent","handleClickEvent","handleFocusEvent","handleWindowBlur","setupGlobalFocusEvents","focus","tearDownWindowFocusTracking","loadListener","isFocusVisible","trackFocusVisible","autoFocus","onChange","anatomy","getRootId","getLabelId","getControlId","getHiddenInputId","getRootEl","getHiddenInputEl","connect","service","normalize","disabled","readOnly","invalid","focused","focusVisible","indeterminate","dataAttrs","checked2","focusVisible2","not","props2","bindable","track","isIndeterminate","isChecked","inputEl","checkboxAnatomy","useControllableState","uncontrolledValue","setUncontrolledValue","useCallback","useEvent","sync","callbackRef","useLatestRef","useCheckboxGroup","controlledValue","onValueChange","interactive","onChangeProp","val","toggleValue","removeValue","addValue","CheckboxGroupContextProvider","useCheckboxGroupContext","CheckboxGroup","checkboxGroupProps","localProps","checkboxGroup","FieldProvider","useFieldContext","CheckboxHiddenInput","field","CheckboxIndicator","rest","isVisible","CheckboxLabel","useCheckbox","ownProps","useId","machineProps","checkbox.machine","checkbox.connect","CheckboxRoot","useCheckboxProps","CheckboxRootProvider","PresenceProvider","usePresenceContext","splitPresenceProps","_normalize","present","presentProp","animationName","getAnimationName","onStart","onEnd","cleanupStyles","usePresence","lazyMount","unmountOnExit","skipAnimationOnMount","wasEverPresent","presence.machine","api","presence.connect","unmounted","getPresenceProps","__defProp","__defNormalProp","__publicField","fallback","ListCollection","_ListCollection","other","valueA","valueB","indexA","indexB","separator","step","queryString","query","item2","insert","toIndex","itemsOrValues","itemOrValue","fromIndex","move","from","to","label","itemString","indices","itemsToMove","createListCollection","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","targets","correctedTarget","isIgnoredNode","walkTreeOutside","originalTarget","markerName","controlAttribute","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","alreadyHidden","counterValue","markerValue","hideOthers","ariaHidden","targetsOrFn","DialogProvider","useDialogContext","DialogBackdrop","dialog","renderStrategyProps","presence","DialogCloseTrigger","DialogContent","DialogDescription","DialogPositioner","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","sharedTrapStack","FocusTrap","targetContained","nextNode","navAcrossContainers","mruContainerIdx","tabbableNodes","mruTabIdx","g","n","valueOrHandler","isBackward","destinationNode","isTabEvent","isEscapeEvent","mutations","mutation","firstTabbableGroup","isSelectableInput","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","delay","returnFocusNode","pauseOptions","onPause","onPostPause","unpauseOptions","onUnpause","onPostUnpause","containerElements","previousActiveElement","configOverrideOptions","optionName","configOptionName","hasFallback","optionValue","err","containerIndex","containerGroup","startOfGroupIndex","firstTabbableNode","destinationGroupIndex","destinationGroup","lastOfGroupIndex","lastTabbableNode","focusableNodes","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","nextTabbableNode","forward","nodeIdx","group","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","trapFocus","LOCK_CLASSNAME","getPaddingProperty","documentLeft","preventBodyScroll","_document","scrollbarWidth","setScrollbarWidthProperty","paddingProperty","setBodyStyle","setBodyStyleIOS","scrollX","scrollY","offsetLeft","offsetTop","restoreStyle","getPositionerId","getBackdropId","getContentId","getTriggerId","getTitleId","getDescriptionId","getCloseTriggerId","getContentEl","getPositionerEl","getBackdropEl","getTriggerEl","getTitleEl","getDescriptionEl","getCloseTriggerEl","ariaLabel","open","nextOpen","rendered","alertDialog","useDialog","dialog.machine","dialog.connect","DialogRoot","presenceProps","DialogTitle","DialogTrigger","Portal","setContainer","isServer","useSyncExternalStore","subscribe","Fragment","mountNode","getPortalNode","createPortal","RadioGroupProvider","useRadioGroupContext","RadioGroupContext","RadioGroupItemProvider","useRadioGroupItemContext","RadioGroupItemPropsProvider","useRadioGroupItemPropsContext","RadioGroupItem","itemProps","radioGroup","itemState","RadioGroupItemControl","RadioGroupItemHiddenInput","RadioGroupItemText","RadioGroupLabel","getItemId","getItemHiddenInputId","getItemControlId","getItemLabelId","getIndicatorId","getItemHiddenInputEl","getIndicatorEl","getFirstEnabledInputEl","getFirstEnabledAndCheckedInputEl","getInputEls","getRadioEl","getOffsetRect","resolveRect","groupDisabled","getItemState","getItemDataAttrs","nodeToFocus","input","radioEl","indicatorCleanup","useRadioGroup","radio.machine","radio.connect","RadioGroupRoot","useRadioGroupProps","RadioGroupRootProvider","SelectProvider","useSelectContext","SelectContent","select","SelectControl","SelectItemProvider","useSelectItemContext","SelectItemPropsProvider","useSelectItemPropsContext","SelectItem","SelectLabel","SelectPositioner","collection","getClearTriggerId","getHiddenSelectId","getItemGroupId","getItemGroupLabelId","getHiddenSelectEl","getClearTriggerEl","getItemEl","composite","collection2","highlightedValue","highlightedItem","selectedItems","currentPlacement","isTypingAhead","ariaActiveDescendant","_disabled","popperStyles","event2","htmlFor","and","or","restoreFocus","positioning","immediate","optionEl","contentEl2","scrollToIndexFn","highlightedIndex","positionerEl","firstItem","selectEl","option","valueAsString","prevSelectedItems","changeEvent","useSelect","select.machine","select.connect","SelectImpl","selectProps","useSelectProps","SelectRoot","SelectTrigger","SelectValueText","placeholder","localprops","SwitchProvider","useSwitchContext","SwitchControl","switchContext","SwitchHiddenInput","SwitchLabel","getThumbId","useSwitch","zagSwitch.machine","zagSwitch.connect","SwitchRoot","switchProps","SwitchRootProvider","SwitchThumb","useDebounce","debouncedValue","setDebouncedValue","TabsProvider","useTabsContext","TabContent","contentProps","tabs","TabIndicator","TabList","TabTrigger","tabProps","getListId","getListEl","getElements","getFirstTriggerEl","getLastTriggerEl","getNextTriggerEl","getPrevTriggerEl","getRectById","tab","translations","isHorizontal","getTriggerState","fromValue","triggerState","selected","indicatorRect","indicatorTransition","details","focusedValue","nullable","indicatorEl","useTabs","tabs.machine","tabs.connect","TabsRoot","tabsProps","useTabsProps"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101]}
|