@arturoliveira/vesta-ui 0.1.0

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../src/lib/utils.ts","../src/components/Button/Button.tsx","../src/components/Card/Card.tsx","../node_modules/@ark-ui/react/dist/utils/create-context.js","../node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-context.js","../node_modules/proxy-compare/dist/index.js","../node_modules/@zag-js/store/dist/index.mjs","../node_modules/@zag-js/utils/dist/index.mjs","../node_modules/@zag-js/core/dist/index.mjs","../node_modules/@zag-js/types/dist/index.mjs","../node_modules/@zag-js/react/dist/index.mjs","../node_modules/@ark-ui/react/dist/utils/compose-refs.js","../node_modules/@ark-ui/react/dist/components/factory.js","../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-control.js","../node_modules/@ark-ui/react/dist/utils/create-split-props.js","../node_modules/@zag-js/anatomy/dist/index.mjs","../node_modules/@zag-js/dom-query/dist/index.mjs","../node_modules/@zag-js/focus-visible/dist/index.mjs","../node_modules/@zag-js/checkbox/dist/index.mjs","../node_modules/@ark-ui/react/dist/utils/use-event.js","../node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox-group-context.js","../node_modules/@ark-ui/react/dist/components/field/use-field-context.js","../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-hidden-input.js","../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-indicator.js","../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-label.js","../node_modules/@ark-ui/react/dist/providers/environment/use-environment-context.js","../node_modules/@ark-ui/react/dist/providers/locale/use-locale-context.js","../node_modules/@ark-ui/react/dist/components/checkbox/use-checkbox.js","../node_modules/@ark-ui/react/dist/components/checkbox/checkbox-root.js","../src/components/Checkbox/Checkbox.tsx","../node_modules/@ark-ui/react/dist/utils/render-strategy.js","../node_modules/@zag-js/presence/dist/index.mjs","../node_modules/@ark-ui/react/dist/components/presence/use-presence.js","../node_modules/@ark-ui/react/dist/components/dialog/use-dialog-context.js","../node_modules/@ark-ui/react/dist/components/dialog/dialog-backdrop.js","../node_modules/@ark-ui/react/dist/components/dialog/dialog-close-trigger.js","../node_modules/@ark-ui/react/dist/components/presence/use-presence-context.js","../node_modules/@ark-ui/react/dist/components/dialog/dialog-content.js","../node_modules/@ark-ui/react/dist/components/dialog/dialog-description.js","../node_modules/@ark-ui/react/dist/components/dialog/dialog-positioner.js","../node_modules/@ark-ui/react/dist/components/presence/split-presence-props.js","../node_modules/@zag-js/aria-hidden/dist/index.mjs","../node_modules/@zag-js/interact-outside/dist/index.mjs","../node_modules/@zag-js/dismissable/dist/index.mjs","../node_modules/@zag-js/focus-trap/dist/index.mjs","../node_modules/@zag-js/remove-scroll/dist/index.mjs","../node_modules/@zag-js/dialog/dist/index.mjs","../node_modules/@ark-ui/react/dist/components/dialog/use-dialog.js","../node_modules/@ark-ui/react/dist/components/dialog/dialog-root.js","../node_modules/@ark-ui/react/dist/components/dialog/dialog-title.js","../node_modules/@ark-ui/react/dist/components/dialog/dialog-trigger.js","../node_modules/@ark-ui/react/dist/components/portal/portal.js","../src/components/Dialog/Dialog.tsx","../src/components/Input/Input.tsx","../src/components/Progress/Progress.tsx","../src/components/Table/Table.tsx","../src/components/ProductsTable/ProductsTable.tsx","../src/components/Select/SelectContent.tsx","../src/components/Select/SelectHiddenSelect.tsx","../src/components/Select/SelectItem.tsx","../src/components/Select/SelectItemGroup.tsx","../src/components/Select/SelectItemGroupLabel.tsx","../src/components/Select/SelectLabel.tsx","../src/components/Select/SelectContext.tsx","../src/components/Select/SelectRoot.tsx","../src/components/Select/SelectTrigger.tsx","../src/components/Select/Select.tsx","../node_modules/@zag-js/toast/dist/index.mjs","../node_modules/@ark-ui/react/dist/components/toast/create-toaster.js","../node_modules/@ark-ui/react/dist/components/toast/use-toast-context.js","../node_modules/@ark-ui/react/dist/components/toast/toast-action-trigger.js","../node_modules/@ark-ui/react/dist/components/toast/toast-close-trigger.js","../node_modules/@ark-ui/react/dist/components/toast/toast-description.js","../node_modules/@ark-ui/react/dist/components/toast/toast-root.js","../node_modules/@ark-ui/react/dist/components/toast/toast-title.js","../node_modules/@ark-ui/react/dist/components/toast/toaster.js","../src/components/Toast/Toast.tsx"],"sourcesContent":["import { type ClassValue, clsx } from 'clsx';\nimport { twMerge } from 'tailwind-merge';\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n","import type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { cn } from '../../lib/utils';\n\ninterface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n children: ReactNode;\n variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';\n size?: 'default' | 'sm' | 'lg' | 'icon';\n asChild?: boolean;\n loading?: boolean;\n}\n\nconst buttonVariants = {\n variant: {\n default: 'bg-primary text-primary-foreground hover:bg-primary/90',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90',\n outline: 'border border-input bg-background hover:bg-accent hover:text-accent-foreground',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-10 px-4 py-2',\n sm: 'h-9 rounded-md px-3',\n lg: 'h-11 rounded-md px-8',\n icon: 'h-10 w-10',\n },\n};\n\nexport function Button({\n className,\n variant = 'default',\n size = 'default',\n children,\n loading = false,\n disabled,\n ...props\n}: ButtonProps) {\n return (\n <button\n className={cn(\n // Base styles\n 'inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium',\n 'ring-offset-background transition-colors',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:pointer-events-none disabled:opacity-50',\n '[&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n\n // Variants\n buttonVariants.variant[variant],\n\n // Sizes\n buttonVariants.size[size],\n\n className,\n )}\n disabled={disabled || loading}\n {...props}\n >\n {loading && (\n <svg\n className=\"animate-spin h-4 w-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n )}\n {children}\n </button>\n );\n}\n\nexport type { ButtonProps };\n","import type { HTMLAttributes } from 'react';\nimport { cn } from '../../lib/utils';\n\ninterface CardProps extends HTMLAttributes<HTMLDivElement> {}\n\nfunction Card({ className, ...props }: CardProps) {\n return (\n <div\n className={cn('rounded-lg border border-border bg-card text-card-foreground', className)}\n {...props}\n />\n );\n}\n\ninterface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {}\n\nfunction CardHeader({ className, ...props }: CardHeaderProps) {\n return <div className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />;\n}\n\ninterface CardTitleProps extends HTMLAttributes<HTMLHeadingElement> {}\n\nfunction CardTitle({ className, ...props }: CardTitleProps) {\n return (\n <h3\n className={cn('text-2xl font-semibold leading-none tracking-tight', className)}\n {...props}\n />\n );\n}\n\ninterface CardDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {}\n\nfunction CardDescription({ className, ...props }: CardDescriptionProps) {\n return <p className={cn('text-sm text-muted-foreground', className)} {...props} />;\n}\n\ninterface CardContentProps extends HTMLAttributes<HTMLDivElement> {}\n\nfunction CardContent({ className, ...props }: CardContentProps) {\n return <div className={cn('p-6 pt-0', className)} {...props} />;\n}\n\ninterface CardFooterProps extends HTMLAttributes<HTMLDivElement> {}\n\nfunction CardFooter({ className, ...props }: CardFooterProps) {\n return <div className={cn('flex items-center p-6 pt-0', className)} {...props} />;\n}\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\nexport type {\n CardProps,\n CardHeaderProps,\n CardFooterProps,\n CardTitleProps,\n CardDescriptionProps,\n CardContentProps,\n};\n","'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","'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","/* eslint @typescript-eslint/no-explicit-any: off */\n// symbols\nconst TRACK_MEMO_SYMBOL = Symbol();\nconst GET_ORIGINAL_SYMBOL = Symbol();\n// properties\nconst AFFECTED_PROPERTY = 'a';\nconst IS_TARGET_COPIED_PROPERTY = 'f';\nconst PROXY_PROPERTY = 'p';\nconst PROXY_CACHE_PROPERTY = 'c';\nconst TARGET_CACHE_PROPERTY = 't';\nconst HAS_KEY_PROPERTY = 'h';\nconst ALL_OWN_KEYS_PROPERTY = 'w';\nconst HAS_OWN_KEY_PROPERTY = 'o';\nconst KEYS_PROPERTY = 'k';\n// function to create a new bare proxy\nlet newProxy = (target, handler) => new Proxy(target, handler);\n// get object prototype\nconst getProto = Object.getPrototypeOf;\nconst objectsToTrack = new WeakMap();\n// check if obj is a plain object or an array\nconst isObjectToTrack = (obj) => obj &&\n (objectsToTrack.has(obj)\n ? objectsToTrack.get(obj)\n : getProto(obj) === Object.prototype || getProto(obj) === Array.prototype);\n// check if it is object\nconst isObject = (x) => typeof x === 'object' && x !== null;\n// Properties that are both non-configurable and non-writable will break\n// the proxy get trap when we try to return a recursive/child compare proxy\n// from them. We can avoid this by making a copy of the target object with\n// all descriptors marked as configurable, see `copyTargetObject`.\n// See: https://github.com/dai-shi/proxy-compare/pull/8\nconst needsToCopyTargetObject = (obj) => Object.values(Object.getOwnPropertyDescriptors(obj)).some((descriptor) => !descriptor.configurable && !descriptor.writable);\n// Make a copy with all descriptors marked as configurable.\nconst copyTargetObject = (obj) => {\n if (Array.isArray(obj)) {\n // Arrays need a special way to copy\n return Array.from(obj);\n }\n // For non-array objects, we create a new object keeping the prototype\n // with changing all configurable options (otherwise, proxies will complain)\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n Object.values(descriptors).forEach((desc) => {\n desc.configurable = true;\n });\n return Object.create(getProto(obj), descriptors);\n};\nconst createProxyHandler = (origObj, isTargetCopied) => {\n const state = {\n [IS_TARGET_COPIED_PROPERTY]: isTargetCopied,\n };\n let trackObject = false; // for trackMemo\n const recordUsage = (type, key) => {\n if (!trackObject) {\n let used = state[AFFECTED_PROPERTY].get(origObj);\n if (!used) {\n used = {};\n state[AFFECTED_PROPERTY].set(origObj, used);\n }\n if (type === ALL_OWN_KEYS_PROPERTY) {\n used[ALL_OWN_KEYS_PROPERTY] = true;\n }\n else {\n let set = used[type];\n if (!set) {\n set = new Set();\n used[type] = set;\n }\n set.add(key);\n }\n }\n };\n const recordObjectAsUsed = () => {\n trackObject = true;\n state[AFFECTED_PROPERTY].delete(origObj);\n };\n const handler = {\n get(target, key) {\n if (key === GET_ORIGINAL_SYMBOL) {\n return origObj;\n }\n recordUsage(KEYS_PROPERTY, key);\n return createProxy(Reflect.get(target, key), state[AFFECTED_PROPERTY], state[PROXY_CACHE_PROPERTY], state[TARGET_CACHE_PROPERTY]);\n },\n has(target, key) {\n if (key === TRACK_MEMO_SYMBOL) {\n recordObjectAsUsed();\n return true;\n }\n recordUsage(HAS_KEY_PROPERTY, key);\n return Reflect.has(target, key);\n },\n getOwnPropertyDescriptor(target, key) {\n recordUsage(HAS_OWN_KEY_PROPERTY, key);\n return Reflect.getOwnPropertyDescriptor(target, key);\n },\n ownKeys(target) {\n recordUsage(ALL_OWN_KEYS_PROPERTY);\n return Reflect.ownKeys(target);\n },\n };\n if (isTargetCopied) {\n handler.set = handler.deleteProperty = () => false;\n }\n return [handler, state];\n};\nconst getOriginalObject = (obj) => \n// unwrap proxy\nobj[GET_ORIGINAL_SYMBOL] ||\n // otherwise\n obj;\n/**\n * Create a proxy.\n *\n * This function will create a proxy at top level and proxy nested objects as you access them,\n * in order to keep track of which properties were accessed via get/has proxy handlers:\n *\n * NOTE: Printing of WeakMap is hard to inspect and not very readable\n * for this purpose you can use the `affectedToPathList` helper.\n *\n * @param {object} obj - Object that will be wrapped on the proxy.\n * @param {WeakMap<object, unknown>} affected -\n * WeakMap that will hold the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap<object, unknown>} [proxyCache] -\n * WeakMap that will help keep referential identity for proxies.\n * @returns {Proxy<object>} - Object wrapped in a proxy.\n *\n * @example\n * import { createProxy } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n * const proxy = createProxy(original, affected);\n *\n * proxy.a // Will mark as used and track its value.\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"a\"\n *\n * proxy.d // Will mark \"d\" as accessed to track and proxy itself ({ e: \"3\" }).\n * // This will update the affected WeakMap with original as key\n * // and a Set with \"d\"\n */\nexport const createProxy = (obj, affected, proxyCache, targetCache) => {\n if (!isObjectToTrack(obj))\n return obj;\n let targetAndCopied = targetCache && targetCache.get(obj);\n if (!targetAndCopied) {\n const target = getOriginalObject(obj);\n if (needsToCopyTargetObject(target)) {\n targetAndCopied = [target, copyTargetObject(target)];\n }\n else {\n targetAndCopied = [target];\n }\n targetCache === null || targetCache === void 0 ? void 0 : targetCache.set(obj, targetAndCopied);\n }\n const [target, copiedTarget] = targetAndCopied;\n let handlerAndState = proxyCache && proxyCache.get(target);\n if (!handlerAndState ||\n handlerAndState[1][IS_TARGET_COPIED_PROPERTY] !== !!copiedTarget) {\n handlerAndState = createProxyHandler(target, !!copiedTarget);\n handlerAndState[1][PROXY_PROPERTY] = newProxy(copiedTarget || target, handlerAndState[0]);\n if (proxyCache) {\n proxyCache.set(target, handlerAndState);\n }\n }\n handlerAndState[1][AFFECTED_PROPERTY] = affected;\n handlerAndState[1][PROXY_CACHE_PROPERTY] = proxyCache;\n handlerAndState[1][TARGET_CACHE_PROPERTY] = targetCache;\n return handlerAndState[1][PROXY_PROPERTY];\n};\nconst isAllOwnKeysChanged = (prevObj, nextObj) => {\n const prevKeys = Reflect.ownKeys(prevObj);\n const nextKeys = Reflect.ownKeys(nextObj);\n return (prevKeys.length !== nextKeys.length ||\n prevKeys.some((k, i) => k !== nextKeys[i]));\n};\n/**\n * Compare changes on objects.\n *\n * This will compare the affected properties on tracked objects inside the proxy\n * to check if there were any changes made to it,\n * by default if no property was accessed on the proxy it will attempt to do a\n * reference equality check for the objects provided (Object.is(a, b)). If you access a property\n * on the proxy, then isChanged will only compare the affected properties.\n *\n * @param {object} prevObj - The previous object to compare.\n * @param {object} nextObj - Object to compare with the previous one.\n * @param {WeakMap<object, unknown>} affected -\n * WeakMap that holds the tracking of which properties in the proxied object were accessed.\n * @param {WeakMap<object, unknown>} [cache] -\n * WeakMap that holds a cache of the comparisons for better performance with repetitive comparisons,\n * and to avoid infinite loop with circular structures.\n * @returns {boolean} - Boolean indicating if the affected property on the object has changed.\n *\n * @example\n * import { createProxy, isChanged } from 'proxy-compare';\n *\n * const obj = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(obj, affected);\n *\n * proxy.a\n *\n * isChanged(obj, { a: \"1\" }, affected) // false\n *\n * proxy.a = \"2\"\n *\n * isChanged(obj, { a: \"1\" }, affected) // true\n */\nexport const isChanged = (prevObj, nextObj, affected, cache, // for object with cycles\nisEqual = Object.is) => {\n if (isEqual(prevObj, nextObj)) {\n return false;\n }\n if (!isObject(prevObj) || !isObject(nextObj))\n return true;\n const used = affected.get(getOriginalObject(prevObj));\n if (!used)\n return true;\n if (cache) {\n const hit = cache.get(prevObj);\n if (hit === nextObj) {\n return false;\n }\n // for object with cycles\n cache.set(prevObj, nextObj);\n }\n let changed = null;\n for (const key of used[HAS_KEY_PROPERTY] || []) {\n changed = Reflect.has(prevObj, key) !== Reflect.has(nextObj, key);\n if (changed)\n return changed;\n }\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n changed = isAllOwnKeysChanged(prevObj, nextObj);\n if (changed)\n return changed;\n }\n else {\n for (const key of used[HAS_OWN_KEY_PROPERTY] || []) {\n const hasPrev = !!Reflect.getOwnPropertyDescriptor(prevObj, key);\n const hasNext = !!Reflect.getOwnPropertyDescriptor(nextObj, key);\n changed = hasPrev !== hasNext;\n if (changed)\n return changed;\n }\n }\n for (const key of used[KEYS_PROPERTY] || []) {\n changed = isChanged(prevObj[key], nextObj[key], affected, cache, isEqual);\n if (changed)\n return changed;\n }\n if (changed === null)\n throw new Error('invalid used');\n return changed;\n};\n// explicitly track object with memo\nexport const trackMemo = (obj) => {\n if (isObjectToTrack(obj)) {\n return TRACK_MEMO_SYMBOL in obj;\n }\n return false;\n};\n/**\n * Unwrap proxy to get the original object.\n *\n * Used to retrieve the original object used to create the proxy instance with `createProxy`.\n *\n * @param {Proxy<object>} obj - The proxy wrapper of the originial object.\n * @returns {object | null} - Return either the unwrapped object if exists.\n *\n * @example\n * import { createProxy, getUntracked } from 'proxy-compare';\n *\n * const original = { a: \"1\", c: \"2\", d: { e: \"3\" } };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n * const originalFromProxy = getUntracked(proxy)\n *\n * Object.is(original, originalFromProxy) // true\n * isChanged(original, originalFromProxy, affected) // false\n */\nexport const getUntracked = (obj) => {\n if (isObjectToTrack(obj)) {\n return obj[GET_ORIGINAL_SYMBOL] || null;\n }\n return null;\n};\n/**\n * Mark object to be tracked.\n *\n * This function marks an object that will be passed into `createProxy`\n * as marked to track or not. By default only Array and Object are marked to track,\n * so this is useful for example to mark a class instance to track or to mark a object\n * to be untracked when creating your proxy.\n *\n * @param obj - Object to mark as tracked or not.\n * @param mark - Boolean indicating whether you want to track this object or not.\n * @returns - No return.\n *\n * @example\n * import { createProxy, markToTrack, isChanged } from 'proxy-compare';\n *\n * const nested = { e: \"3\" }\n *\n * markToTrack(nested, false)\n *\n * const original = { a: \"1\", c: \"2\", d: nested };\n * const affected = new WeakMap();\n *\n * const proxy = createProxy(original, affected);\n *\n * proxy.d.e\n *\n * isChanged(original, { d: { e: \"3\" } }, affected) // true\n */\nexport const markToTrack = (obj, mark = true) => {\n objectsToTrack.set(obj, mark);\n};\n/**\n * Convert `affected` to path list\n *\n * `affected` is a weak map which is not printable.\n * This function is can convert it to printable path list.\n * It's for debugging purpose.\n *\n * @param obj - An object that is used with `createProxy`.\n * @param affected - A weak map that is used with `createProxy`.\n * @param onlyWithValues - An optional boolean to exclude object getters.\n * @returns - An array of paths.\n */\nexport const affectedToPathList = (obj, affected, onlyWithValues) => {\n const list = [];\n const seen = new WeakSet();\n const walk = (x, path) => {\n var _a, _b, _c;\n if (seen.has(x)) {\n // for object with cycles\n return;\n }\n if (isObject(x)) {\n seen.add(x);\n }\n const used = isObject(x) && affected.get(getOriginalObject(x));\n if (used) {\n (_a = used[HAS_KEY_PROPERTY]) === null || _a === void 0 ? void 0 : _a.forEach((key) => {\n const segment = `:has(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n if (used[ALL_OWN_KEYS_PROPERTY] === true) {\n const segment = ':ownKeys';\n list.push(path ? [...path, segment] : [segment]);\n }\n else {\n (_b = used[HAS_OWN_KEY_PROPERTY]) === null || _b === void 0 ? void 0 : _b.forEach((key) => {\n const segment = `:hasOwn(${String(key)})`;\n list.push(path ? [...path, segment] : [segment]);\n });\n }\n (_c = used[KEYS_PROPERTY]) === null || _c === void 0 ? void 0 : _c.forEach((key) => {\n if (!onlyWithValues ||\n 'value' in (Object.getOwnPropertyDescriptor(x, key) || {})) {\n walk(x[key], path ? [...path, key] : [key]);\n }\n });\n }\n else if (path) {\n list.push(path);\n }\n };\n walk(obj);\n return list;\n};\n/**\n * replace newProxy function.\n *\n * This can be used if you want to use proxy-polyfill.\n * Note that proxy-polyfill can't polyfill everything.\n * Use it at your own risk.\n */\nexport const replaceNewProxy = (fn) => {\n newProxy = fn;\n};\n","import { markToTrack, getUntracked } from 'proxy-compare';\n\n// src/global.ts\nfunction glob() {\n if (typeof globalThis !== \"undefined\") return globalThis;\n if (typeof self !== \"undefined\") return self;\n if (typeof window !== \"undefined\") return window;\n if (typeof global !== \"undefined\") return global;\n}\nfunction globalRef(key, value) {\n const g = glob();\n if (!g) return value();\n g[key] || (g[key] = value());\n return g[key];\n}\nvar refSet = globalRef(\"__zag__refSet\", () => /* @__PURE__ */ new WeakSet());\n\n// src/utils.ts\nvar isReactElement = (x) => typeof x === \"object\" && x !== null && \"$$typeof\" in x && \"props\" in x;\nvar isVueElement = (x) => typeof x === \"object\" && x !== null && \"__v_isVNode\" in x;\nvar isDOMElement = (x) => typeof x === \"object\" && x !== null && \"nodeType\" in x && typeof x.nodeName === \"string\";\nvar isElement = (x) => isReactElement(x) || isVueElement(x) || isDOMElement(x);\nvar isObject = (x) => x !== null && typeof x === \"object\";\nvar canProxy = (x) => isObject(x) && !refSet.has(x) && (Array.isArray(x) || !(Symbol.iterator in x)) && !isElement(x) && !(x instanceof WeakMap) && !(x instanceof WeakSet) && !(x instanceof Error) && !(x instanceof Number) && !(x instanceof Date) && !(x instanceof String) && !(x instanceof RegExp) && !(x instanceof ArrayBuffer) && !(x instanceof Promise);\nvar isDev = () => process.env.NODE_ENV !== \"production\";\n\n// src/clone.ts\nfunction set(obj, key, val) {\n if (typeof val.value === \"object\" && !canProxy(val.value)) val.value = clone(val.value);\n if (!val.enumerable || val.get || val.set || !val.configurable || !val.writable || key === \"__proto__\") {\n Object.defineProperty(obj, key, val);\n } else obj[key] = val.value;\n}\nfunction clone(x) {\n if (typeof x !== \"object\") return x;\n var i = 0, k, list, tmp, str = Object.prototype.toString.call(x);\n if (str === \"[object Object]\") {\n tmp = Object.create(Object.getPrototypeOf(x) || null);\n } else if (str === \"[object Array]\") {\n tmp = Array(x.length);\n } else if (str === \"[object Set]\") {\n tmp = /* @__PURE__ */ new Set();\n x.forEach(function(val) {\n tmp.add(clone(val));\n });\n } else if (str === \"[object Map]\") {\n tmp = /* @__PURE__ */ new Map();\n x.forEach(function(val, key) {\n tmp.set(clone(key), clone(val));\n });\n } else if (str === \"[object Date]\") {\n tmp = /* @__PURE__ */ new Date(+x);\n } else if (str === \"[object RegExp]\") {\n tmp = new RegExp(x.source, x.flags);\n } else if (str === \"[object DataView]\") {\n tmp = new x.constructor(clone(x.buffer));\n } else if (str === \"[object ArrayBuffer]\") {\n tmp = x.slice(0);\n } else if (str === \"[object Blob]\") {\n tmp = x.slice();\n } else if (str.slice(-6) === \"Array]\") {\n tmp = new x.constructor(x);\n }\n if (tmp) {\n for (list = Object.getOwnPropertySymbols(x); i < list.length; i++) {\n set(tmp, list[i], Object.getOwnPropertyDescriptor(x, list[i]));\n }\n for (i = 0, list = Object.getOwnPropertyNames(x); i < list.length; i++) {\n if (Object.hasOwnProperty.call(tmp, k = list[i]) && tmp[k] === x[k]) continue;\n set(tmp, k, Object.getOwnPropertyDescriptor(x, k));\n }\n }\n return tmp || x;\n}\nvar proxyStateMap = globalRef(\"__zag__proxyStateMap\", () => /* @__PURE__ */ new WeakMap());\nvar buildProxyFunction = (objectIs = Object.is, newProxy = (target, handler) => new Proxy(target, handler), snapCache = /* @__PURE__ */ new WeakMap(), createSnapshot = (target, version) => {\n const cache = snapCache.get(target);\n if (cache?.[0] === version) {\n return cache[1];\n }\n const snap = Array.isArray(target) ? [] : Object.create(Object.getPrototypeOf(target));\n markToTrack(snap, true);\n snapCache.set(target, [version, snap]);\n Reflect.ownKeys(target).forEach((key) => {\n const value = Reflect.get(target, key);\n if (refSet.has(value)) {\n markToTrack(value, false);\n snap[key] = value;\n } else if (proxyStateMap.has(value)) {\n snap[key] = snapshot(value);\n } else {\n snap[key] = value;\n }\n });\n return Object.freeze(snap);\n}, proxyCache = /* @__PURE__ */ new WeakMap(), versionHolder = [1, 1], proxyFunction2 = (initialObject) => {\n if (!isObject(initialObject)) {\n throw new Error(\"object required\");\n }\n const found = proxyCache.get(initialObject);\n if (found) {\n return found;\n }\n let version = versionHolder[0];\n const listeners = /* @__PURE__ */ new Set();\n const notifyUpdate = (op, nextVersion = ++versionHolder[0]) => {\n if (version !== nextVersion) {\n version = nextVersion;\n listeners.forEach((listener) => listener(op, nextVersion));\n }\n };\n let checkVersion = versionHolder[1];\n const ensureVersion = (nextCheckVersion = ++versionHolder[1]) => {\n if (checkVersion !== nextCheckVersion && !listeners.size) {\n checkVersion = nextCheckVersion;\n propProxyStates.forEach(([propProxyState]) => {\n const propVersion = propProxyState[1](nextCheckVersion);\n if (propVersion > version) {\n version = propVersion;\n }\n });\n }\n return version;\n };\n const createPropListener = (prop) => (op, nextVersion) => {\n const newOp = [...op];\n newOp[1] = [prop, ...newOp[1]];\n notifyUpdate(newOp, nextVersion);\n };\n const propProxyStates = /* @__PURE__ */ new Map();\n const addPropListener = (prop, propProxyState) => {\n if (isDev() && propProxyStates.has(prop)) {\n throw new Error(\"prop listener already exists\");\n }\n if (listeners.size) {\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n } else {\n propProxyStates.set(prop, [propProxyState]);\n }\n };\n const removePropListener = (prop) => {\n const entry = propProxyStates.get(prop);\n if (entry) {\n propProxyStates.delete(prop);\n entry[1]?.();\n }\n };\n const addListener = (listener) => {\n listeners.add(listener);\n if (listeners.size === 1) {\n propProxyStates.forEach(([propProxyState, prevRemove], prop) => {\n if (isDev() && prevRemove) {\n throw new Error(\"remove already exists\");\n }\n const remove = propProxyState[3](createPropListener(prop));\n propProxyStates.set(prop, [propProxyState, remove]);\n });\n }\n const removeListener = () => {\n listeners.delete(listener);\n if (listeners.size === 0) {\n propProxyStates.forEach(([propProxyState, remove], prop) => {\n if (remove) {\n remove();\n propProxyStates.set(prop, [propProxyState]);\n }\n });\n }\n };\n return removeListener;\n };\n const baseObject = Array.isArray(initialObject) ? [] : Object.create(Object.getPrototypeOf(initialObject));\n const handler = {\n deleteProperty(target, prop) {\n const prevValue = Reflect.get(target, prop);\n removePropListener(prop);\n const deleted = Reflect.deleteProperty(target, prop);\n if (deleted) {\n notifyUpdate([\"delete\", [prop], prevValue]);\n }\n return deleted;\n },\n set(target, prop, value, receiver) {\n const hasPrevValue = Reflect.has(target, prop);\n const prevValue = Reflect.get(target, prop, receiver);\n if (hasPrevValue && (objectIs(prevValue, value) || proxyCache.has(value) && objectIs(prevValue, proxyCache.get(value)))) {\n return true;\n }\n removePropListener(prop);\n if (isObject(value)) {\n value = getUntracked(value) || value;\n }\n let nextValue = value;\n if (Object.getOwnPropertyDescriptor(target, prop)?.set) ; else {\n if (!proxyStateMap.has(value) && canProxy(value)) {\n nextValue = proxy(value);\n }\n const childProxyState = !refSet.has(nextValue) && proxyStateMap.get(nextValue);\n if (childProxyState) {\n addPropListener(prop, childProxyState);\n }\n }\n Reflect.set(target, prop, nextValue, receiver);\n notifyUpdate([\"set\", [prop], value, prevValue]);\n return true;\n }\n };\n const proxyObject = newProxy(baseObject, handler);\n proxyCache.set(initialObject, proxyObject);\n const proxyState = [baseObject, ensureVersion, createSnapshot, addListener];\n proxyStateMap.set(proxyObject, proxyState);\n Reflect.ownKeys(initialObject).forEach((key) => {\n const desc = Object.getOwnPropertyDescriptor(initialObject, key);\n if (desc.get || desc.set) {\n Object.defineProperty(baseObject, key, desc);\n } else {\n proxyObject[key] = initialObject[key];\n }\n });\n return proxyObject;\n}) => [\n // public functions\n proxyFunction2,\n // shared state\n proxyStateMap,\n refSet,\n // internal things\n objectIs,\n newProxy,\n canProxy,\n snapCache,\n createSnapshot,\n proxyCache,\n versionHolder\n];\nvar [proxyFunction] = buildProxyFunction();\nfunction proxy(initialObject = {}) {\n return proxyFunction(initialObject);\n}\nfunction subscribe(proxyObject, callback, notifyInSync) {\n const proxyState = proxyStateMap.get(proxyObject);\n if (isDev() && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n let promise;\n const ops = [];\n const addListener = proxyState[3];\n let isListenerActive = false;\n const listener = (op) => {\n ops.push(op);\n if (notifyInSync) {\n callback(ops.splice(0));\n return;\n }\n if (!promise) {\n promise = Promise.resolve().then(() => {\n promise = void 0;\n if (isListenerActive) {\n callback(ops.splice(0));\n }\n });\n }\n };\n const removeListener = addListener(listener);\n isListenerActive = true;\n return () => {\n isListenerActive = false;\n removeListener();\n };\n}\nfunction snapshot(proxyObject) {\n const proxyState = proxyStateMap.get(proxyObject);\n if (isDev() && !proxyState) {\n console.warn(\"Please use proxy object\");\n }\n const [target, ensureVersion, createSnapshot] = proxyState;\n return createSnapshot(target, ensureVersion());\n}\nfunction ref(obj) {\n refSet.add(obj);\n return obj;\n}\n\n// src/proxy-computed.ts\nfunction proxyWithComputed(initialObject, computedFns) {\n const keys = Object.keys(computedFns);\n keys.forEach((key) => {\n if (Object.getOwnPropertyDescriptor(initialObject, key)) {\n throw new Error(\"object property already defined\");\n }\n const computedFn = computedFns[key];\n const { get, set: set2 } = typeof computedFn === \"function\" ? { get: computedFn } : computedFn;\n const desc = {};\n desc.get = () => get(snapshot(proxyObject));\n if (set2) {\n desc.set = (newValue) => set2(proxyObject, newValue);\n }\n Object.defineProperty(initialObject, key, desc);\n });\n const proxyObject = proxy(initialObject);\n return proxyObject;\n}\n\nexport { clone, globalRef, proxy, proxyWithComputed, ref, snapshot, subscribe };\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};\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/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 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 typeof fn === \"function\" ? 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};\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/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);\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/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}\n\nexport { add, addOrRemove, callAll, cast, chunk, clampPercent, clampValue, clear, compact, createSplitProps, decrementValue, first, fromLength, getClosestValue, getClosestValueIndex, getMaxValueAtIndex, getMinValueAtIndex, getNextStepValue, getPercentValue, getPreviousStepValue, getValuePercent, getValueRanges, getValueSetterAtIndex, getValueTransformer, has, hasProp, 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, setValueAtIndex, snapValueToStep, splitProps, toArray, toFixedNumber, tryCatch, uniq, uuid, warn, wrap };\n","import { clone, snapshot, proxy, proxyWithComputed, subscribe, ref } from '@zag-js/store';\nexport { proxy, ref, snapshot, subscribe } from '@zag-js/store';\nimport { isPlainObject, compact, uuid, cast, callAll, isString, isFunction, noop, isObject, runIfFn, invariant, clear, isArray, hasProp, warn, isDev, isNumber } 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);\nfunction deepMerge(source, ...objects) {\n if (!isPlainObject(source)) {\n throw new TypeError(\"Source argument must be a plain object\");\n }\n for (const obj of objects) {\n if (!isPlainObject(obj)) continue;\n const target = compact(obj);\n for (const key in target) {\n if (!Object.prototype.hasOwnProperty.call(target, key)) continue;\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") continue;\n const sourceVal = source[key];\n const targetVal = obj[key];\n if (isPlainObject(targetVal)) {\n source[key] = isPlainObject(sourceVal) ? deepMerge(sourceVal, targetVal) : { ...targetVal };\n } else {\n source[key] = targetVal;\n }\n }\n }\n return source;\n}\nfunction toEvent(event) {\n const obj = isString(event) ? { type: event } : event;\n return obj;\n}\nfunction toArray(value) {\n if (!value) return [];\n return isArray(value) ? value.slice() : [value];\n}\nfunction isGuardHelper(value) {\n return isObject(value) && value.predicate != null;\n}\n\n// src/guard-utils.ts\nvar Truthy = () => true;\nfunction exec(guardMap, ctx, event, meta) {\n return (guard) => {\n if (isString(guard)) {\n return !!guardMap[guard]?.(ctx, event, meta);\n }\n if (isFunction(guard)) {\n return guard(ctx, event, meta);\n }\n return guard.predicate(guardMap)(ctx, event, meta);\n };\n}\nfunction or(...conditions) {\n return {\n predicate: (guardMap) => (ctx, event, meta) => conditions.map(exec(guardMap, ctx, event, meta)).some(Boolean)\n };\n}\nfunction and(...conditions) {\n return {\n predicate: (guardMap) => (ctx, event, meta) => conditions.map(exec(guardMap, ctx, event, meta)).every(Boolean)\n };\n}\nfunction not(condition) {\n return {\n predicate: (guardMap) => (ctx, event, meta) => {\n return !exec(guardMap, ctx, event, meta)(condition);\n }\n };\n}\nfunction stateIn(...values) {\n return (_ctx, _evt, meta) => meta.state.matches(...values);\n}\nvar guards = { or, and, not, stateIn };\nfunction choose(actions) {\n return {\n predicate: (guardMap) => (ctx, event, meta) => actions.find((def) => {\n const guard = def.guard ?? Truthy;\n return exec(guardMap, ctx, event, meta)(guard);\n })?.actions\n };\n}\nfunction determineGuardFn(guard, guardMap) {\n guard = guard ?? Truthy;\n return (context, event, meta) => {\n if (isString(guard)) {\n const value = guardMap[guard];\n return isFunction(value) ? value(context, event, meta) : value;\n }\n if (isGuardHelper(guard)) {\n return guard.predicate(guardMap)(context, event, meta);\n }\n return guard?.(context, event, meta);\n };\n}\nfunction determineActionsFn(values, guardMap) {\n return (context, event, meta) => {\n if (isGuardHelper(values)) {\n return values.predicate(guardMap)(context, event, meta);\n }\n return values;\n };\n}\nfunction createProxy(config) {\n const computedContext = config.computed ?? cast({});\n const initialContext = config.context ?? cast({});\n const initialTags = config.initial ? config.states?.[config.initial]?.tags : [];\n const state = proxy({\n value: config.initial ?? \"\",\n previousValue: \"\",\n event: cast({}),\n previousEvent: cast({}),\n context: proxyWithComputed(initialContext, computedContext),\n done: false,\n tags: initialTags ?? [],\n hasTag(tag) {\n return this.tags.includes(tag);\n },\n matches(...value) {\n return value.includes(this.value);\n },\n can(event) {\n return cast(this).nextEvents.includes(event);\n },\n get nextEvents() {\n const stateEvents = config.states?.[this.value]?.[\"on\"] ?? {};\n const globalEvents = config?.on ?? {};\n return Object.keys({ ...stateEvents, ...globalEvents });\n },\n get changed() {\n if (this.event.value === \"machine.init\" /* Init */ || !this.previousValue) return false;\n return this.value !== this.previousValue;\n }\n });\n return cast(state);\n}\nfunction determineDelayFn(delay, delaysMap) {\n return (context, event) => {\n if (isNumber(delay)) return delay;\n if (isFunction(delay)) {\n return delay(context, event);\n }\n if (isString(delay)) {\n const value = Number.parseFloat(delay);\n if (!Number.isNaN(value)) {\n return value;\n }\n if (delaysMap) {\n const valueOrFn = delaysMap?.[delay];\n invariant(\n valueOrFn == null,\n `[@zag-js/core > determine-delay] Cannot determine delay for \\`${delay}\\`. It doesn't exist in \\`options.delays\\``\n );\n return isFunction(valueOrFn) ? valueOrFn(context, event) : valueOrFn;\n }\n }\n };\n}\nfunction toTarget(target) {\n return isString(target) ? { target } : target;\n}\nfunction determineTransitionFn(transitions, guardMap) {\n return (context, event, meta) => {\n return toArray(transitions).map(toTarget).find((transition) => {\n const determineGuard = determineGuardFn(transition.guard, guardMap);\n const guard = determineGuard(context, event, meta);\n return guard ?? transition.target ?? transition.actions;\n });\n };\n}\n\n// src/machine.ts\nvar Machine = class {\n // Let's get started!\n constructor(config, options) {\n __publicField(this, \"status\", \"Not Started\" /* NotStarted */);\n __publicField(this, \"state\");\n __publicField(this, \"initialState\");\n __publicField(this, \"initialContext\");\n __publicField(this, \"id\");\n __publicField(this, \"type\", \"machine\" /* Machine */);\n // Cleanup function map (per state)\n __publicField(this, \"activityEvents\", /* @__PURE__ */ new Map());\n __publicField(this, \"delayedEvents\", /* @__PURE__ */ new Map());\n // state update listeners the user can opt-in for\n __publicField(this, \"stateListeners\", /* @__PURE__ */ new Set());\n __publicField(this, \"doneListeners\", /* @__PURE__ */ new Set());\n __publicField(this, \"contextWatchers\", /* @__PURE__ */ new Set());\n // Cleanup functions (for `subscribe`)\n __publicField(this, \"removeStateListener\", noop);\n // For Parent <==> Spawned Actor relationship\n __publicField(this, \"parent\");\n __publicField(this, \"children\", /* @__PURE__ */ new Map());\n // A map of guard, action, delay implementations\n __publicField(this, \"guardMap\");\n __publicField(this, \"actionMap\");\n __publicField(this, \"delayMap\");\n __publicField(this, \"activityMap\");\n __publicField(this, \"sync\");\n __publicField(this, \"options\");\n __publicField(this, \"config\");\n // created actions\n __publicField(this, \"_created\", () => {\n if (!this.config.created) return;\n const event = toEvent(\"machine.created\" /* Created */);\n this.executeActions(this.config.created, event);\n });\n // Starts the interpreted machine.\n __publicField(this, \"start\", (init) => {\n this.state.value = \"\";\n this.state.tags = [];\n if (this.status === \"Running\" /* Running */) {\n return this;\n }\n this.status = \"Running\" /* Running */;\n this.removeStateListener = subscribe(\n this.state,\n () => {\n this.stateListeners.forEach((listener) => {\n listener(this.stateSnapshot);\n });\n },\n this.sync\n );\n this.setupContextWatchers();\n this.executeActivities(toEvent(\"machine.start\" /* Start */), toArray(this.config.activities), \"machine.start\" /* Start */);\n this.executeActions(this.config.entry, toEvent(\"machine.start\" /* Start */));\n const event = toEvent(\"machine.init\" /* Init */);\n const target = isObject(init) ? init.value : init;\n const context = isObject(init) ? init.context : void 0;\n if (context) {\n this.setContext(context);\n }\n const transition = {\n target: target ?? this.config.initial\n };\n const next = this.getNextStateInfo(transition, event);\n this.initialState = next;\n this.performStateChangeEffects(this.state.value, next, event);\n return this;\n });\n __publicField(this, \"setupContextWatchers\", () => {\n const { watch } = this.config;\n if (!watch) return;\n let prev = snapshot(this.state.context);\n const cleanup = subscribe(this.state.context, () => {\n const next = snapshot(this.state.context);\n for (const [key, fn] of Object.entries(watch)) {\n const isEqual = this.options.compareFns?.[key] ?? Object.is;\n if (isEqual(prev[key], next[key])) continue;\n this.executeActions(fn, this.state.event);\n }\n prev = next;\n });\n this.contextWatchers.add(cleanup);\n });\n // Stops the interpreted machine\n __publicField(this, \"stop\", () => {\n if (this.status === \"Stopped\" /* Stopped */) return;\n this.performExitEffects(this.state.value, toEvent(\"machine.stop\" /* Stop */));\n this.executeActions(this.config.exit, toEvent(\"machine.stop\" /* Stop */));\n this.setState(\"\");\n this.setEvent(\"machine.stop\" /* Stop */);\n this.stopStateListeners();\n this.stopChildren();\n this.stopActivities();\n this.stopDelayedEvents();\n this.stopContextWatchers();\n this.status = \"Stopped\" /* Stopped */;\n return this;\n });\n __publicField(this, \"stopStateListeners\", () => {\n this.removeStateListener();\n this.stateListeners.clear();\n });\n __publicField(this, \"stopContextWatchers\", () => {\n this.contextWatchers.forEach((fn) => fn());\n this.contextWatchers.clear();\n });\n __publicField(this, \"stopDelayedEvents\", () => {\n this.delayedEvents.forEach((state) => {\n state.forEach((stop) => stop());\n });\n this.delayedEvents.clear();\n });\n // Cleanup running activities (e.g `setInterval`, invoked callbacks, promises)\n __publicField(this, \"stopActivities\", (state) => {\n if (state) {\n this.activityEvents.get(state)?.forEach((stop) => stop());\n this.activityEvents.get(state)?.clear();\n this.activityEvents.delete(state);\n } else {\n this.activityEvents.forEach((state2) => {\n state2.forEach((stop) => stop());\n state2.clear();\n });\n this.activityEvents.clear();\n }\n });\n /**\n * Function to send event to spawned child machine or actor\n */\n __publicField(this, \"sendChild\", (evt, to) => {\n const event = toEvent(evt);\n const id = runIfFn(to, this.contextSnapshot);\n const child = this.children.get(id);\n if (!child) {\n invariant(`[@zag-js/core] Cannot send '${event.type}' event to unknown child`);\n }\n child.send(event);\n });\n /**\n * Function to stop a running child machine or actor\n */\n __publicField(this, \"stopChild\", (id) => {\n if (!this.children.has(id)) {\n invariant(`[@zag-js/core > stop-child] Cannot stop unknown child ${id}`);\n }\n this.children.get(id).stop();\n this.children.delete(id);\n });\n __publicField(this, \"removeChild\", (id) => {\n this.children.delete(id);\n });\n // Stop and delete spawned actors\n __publicField(this, \"stopChildren\", () => {\n this.children.forEach((child) => child.stop());\n this.children.clear();\n });\n __publicField(this, \"setParent\", (parent) => {\n this.parent = parent;\n });\n __publicField(this, \"spawn\", (src, id) => {\n const actor = runIfFn(src);\n if (id) actor.id = id;\n actor.type = \"machine.actor\" /* Actor */;\n actor.setParent(this);\n this.children.set(actor.id, cast(actor));\n actor.onDone(() => {\n this.removeChild(actor.id);\n }).start();\n return cast(ref(actor));\n });\n __publicField(this, \"stopActivity\", (key) => {\n if (!this.state.value) return;\n const cleanups = this.activityEvents.get(this.state.value);\n cleanups?.get(key)?.();\n cleanups?.delete(key);\n });\n __publicField(this, \"addActivityCleanup\", (state, key, cleanup) => {\n if (!state) return;\n if (!this.activityEvents.has(state)) {\n this.activityEvents.set(state, /* @__PURE__ */ new Map([[key, cleanup]]));\n } else {\n this.activityEvents.get(state)?.set(key, cleanup);\n }\n });\n __publicField(this, \"setState\", (target) => {\n this.state.previousValue = this.state.value;\n this.state.value = target;\n const stateNode = this.getStateNode(target);\n if (target == null) {\n clear(this.state.tags);\n } else {\n this.state.tags = toArray(stateNode?.tags);\n }\n });\n /**\n * To used within side effects for React or Vue to update context\n */\n __publicField(this, \"setContext\", (context) => {\n if (!context) return;\n deepMerge(this.state.context, context);\n });\n __publicField(this, \"setOptions\", (options) => {\n const opts = compact(options);\n this.actionMap = { ...this.actionMap, ...opts.actions };\n this.delayMap = { ...this.delayMap, ...opts.delays };\n this.activityMap = { ...this.activityMap, ...opts.activities };\n this.guardMap = { ...this.guardMap, ...opts.guards };\n });\n __publicField(this, \"getStateNode\", (state) => {\n if (!state) return;\n return this.config.states?.[state];\n });\n __publicField(this, \"getNextStateInfo\", (transitions, event) => {\n const transition = this.determineTransition(transitions, event);\n const isTargetless = !transition?.target;\n const target = transition?.target ?? this.state.value;\n const changed = this.state.value !== target;\n const stateNode = this.getStateNode(target);\n const reenter = !isTargetless && !changed && !transition?.internal;\n const info = {\n reenter,\n transition,\n stateNode,\n target,\n changed\n };\n this.log(\"NextState:\", `[${event.type}]`, this.state.value, \"---->\", info.target);\n return info;\n });\n __publicField(this, \"getAfterActions\", (transition, delay) => {\n let id;\n const current = this.state.value;\n return {\n entry: () => {\n id = globalThis.setTimeout(() => {\n const next = this.getNextStateInfo(transition, this.state.event);\n this.performStateChangeEffects(current, next, this.state.event);\n }, delay);\n },\n exit: () => {\n globalThis.clearTimeout(id);\n }\n };\n });\n /**\n * All `after` events leverage `setTimeout` and `clearTimeout`,\n * we invoke the `clearTimeout` on exit and `setTimeout` on entry.\n *\n * To achieve this, we split the `after` definition into `entry` and `exit`\n * functions and append them to the state's `entry` and `exit` actions\n */\n __publicField(this, \"getDelayedEventActions\", (state) => {\n const stateNode = this.getStateNode(state);\n const event = this.state.event;\n if (!stateNode || !stateNode.after) return;\n const entries = [];\n const exits = [];\n if (isArray(stateNode.after)) {\n const transition = this.determineTransition(stateNode.after, event);\n if (!transition) return;\n if (!hasProp(transition, \"delay\")) {\n throw new Error(`[@zag-js/core > after] Delay is required for after transition: ${JSON.stringify(transition)}`);\n }\n const determineDelay = determineDelayFn(transition.delay, this.delayMap);\n const __delay = determineDelay(this.contextSnapshot, event);\n const actions = this.getAfterActions(transition, __delay);\n entries.push(actions.entry);\n exits.push(actions.exit);\n return { entries, exits };\n }\n if (isObject(stateNode.after)) {\n for (const delay in stateNode.after) {\n const transition = stateNode.after[delay];\n const determineDelay = determineDelayFn(delay, this.delayMap);\n const __delay = determineDelay(this.contextSnapshot, event);\n const actions = this.getAfterActions(transition, __delay);\n entries.push(actions.entry);\n exits.push(actions.exit);\n }\n }\n return { entries, exits };\n });\n /**\n * Function to executes defined actions. It can accept actions as string\n * (referencing `options.actions`) or actual functions.\n */\n __publicField(this, \"executeActions\", (actions, event) => {\n const pickedActions = determineActionsFn(actions, this.guardMap)(this.contextSnapshot, event, this.guardMeta);\n for (const action of toArray(pickedActions)) {\n const fn = isString(action) ? this.actionMap?.[action] : action;\n warn(\n isString(action) && !fn,\n `[@zag-js/core > execute-actions] No implementation found for action: \\`${action}\\``\n );\n fn?.(this.state.context, event, this.meta);\n }\n });\n /**\n * Function to execute running activities and registers\n * their cleanup function internally (to be called later on when we exit the state)\n */\n __publicField(this, \"executeActivities\", (event, activities, state) => {\n for (const activity of activities) {\n const fn = isString(activity) ? this.activityMap?.[activity] : activity;\n if (!fn) {\n warn(`[@zag-js/core > execute-activity] No implementation found for activity: \\`${activity}\\``);\n continue;\n }\n const cleanup = fn(this.state.context, event, this.meta);\n if (cleanup) {\n const key = isString(activity) ? activity : activity.name || uuid();\n this.addActivityCleanup(state ?? this.state.value, key, cleanup);\n }\n }\n });\n /**\n * Normalizes the `every` definition to transition. `every` can be:\n * - An array of possible actions to run (we need to pick the first match based on guard)\n * - An object of intervals and actions\n */\n __publicField(this, \"createEveryActivities\", (every, callbackfn) => {\n if (!every) return;\n if (isArray(every)) {\n const picked = toArray(every).find((transition) => {\n const delayOrFn = transition.delay;\n const determineDelay2 = determineDelayFn(delayOrFn, this.delayMap);\n const delay2 = determineDelay2(this.contextSnapshot, this.state.event);\n const determineGuard = determineGuardFn(transition.guard, this.guardMap);\n const guard = determineGuard(this.contextSnapshot, this.state.event, this.guardMeta);\n return guard ?? delay2 != null;\n });\n if (!picked) return;\n const determineDelay = determineDelayFn(picked.delay, this.delayMap);\n const delay = determineDelay(this.contextSnapshot, this.state.event);\n const activity = () => {\n const id = globalThis.setInterval(() => {\n this.executeActions(picked.actions, this.state.event);\n }, delay);\n return () => {\n globalThis.clearInterval(id);\n };\n };\n callbackfn(activity);\n } else {\n for (const interval in every) {\n const actions = every?.[interval];\n const determineDelay = determineDelayFn(interval, this.delayMap);\n const delay = determineDelay(this.contextSnapshot, this.state.event);\n const activity = () => {\n const id = globalThis.setInterval(() => {\n this.executeActions(actions, this.state.event);\n }, delay);\n return () => {\n globalThis.clearInterval(id);\n };\n };\n callbackfn(activity);\n }\n }\n });\n __publicField(this, \"setEvent\", (event) => {\n this.state.previousEvent = this.state.event;\n this.state.event = ref(toEvent(event));\n });\n __publicField(this, \"performExitEffects\", (current, event) => {\n const currentState = this.state.value;\n if (currentState === \"\") return;\n const stateNode = current ? this.getStateNode(current) : void 0;\n this.stopActivities(currentState);\n const _exit = determineActionsFn(stateNode?.exit, this.guardMap)(this.contextSnapshot, event, this.guardMeta);\n const exitActions = toArray(_exit);\n const afterExitActions = this.delayedEvents.get(currentState);\n if (afterExitActions) {\n exitActions.push(...afterExitActions);\n }\n this.executeActions(exitActions, event);\n this.delayedEvents.delete(currentState);\n });\n __publicField(this, \"performEntryEffects\", (next, event) => {\n const stateNode = this.getStateNode(next);\n const activities = toArray(stateNode?.activities);\n this.createEveryActivities(stateNode?.every, (activity) => {\n activities.unshift(activity);\n });\n if (activities.length > 0) {\n this.executeActivities(event, activities);\n }\n const pickedActions = determineActionsFn(stateNode?.entry, this.guardMap)(\n this.contextSnapshot,\n event,\n this.guardMeta\n );\n const entryActions = toArray(pickedActions);\n const afterActions = this.getDelayedEventActions(next);\n if (stateNode?.after && afterActions) {\n this.delayedEvents.set(next, afterActions?.exits);\n entryActions.push(...afterActions.entries);\n }\n this.executeActions(entryActions, event);\n if (stateNode?.type === \"final\") {\n this.state.done = true;\n this.doneListeners.forEach((listener) => {\n listener(this.stateSnapshot);\n });\n this.stop();\n }\n });\n __publicField(this, \"performTransitionEffects\", (transitions, event) => {\n const transition = this.determineTransition(transitions, event);\n this.executeActions(transition?.actions, event);\n });\n /**\n * Performs all the requires side-effects or reactions when\n * we move from state A => state B.\n *\n * The Effect order:\n * Exit actions (current state) => Transition actions => Go to state => Entry actions (next state)\n */\n __publicField(this, \"performStateChangeEffects\", (current, next, event) => {\n this.setEvent(event);\n const changed = next.changed || next.reenter;\n if (changed) {\n this.performExitEffects(current, event);\n }\n this.performTransitionEffects(next.transition, event);\n this.setState(next.target);\n if (changed) {\n this.performEntryEffects(next.target, event);\n }\n });\n __publicField(this, \"determineTransition\", (transition, event) => {\n const fn = determineTransitionFn(transition, this.guardMap);\n return fn?.(this.contextSnapshot, event, this.guardMeta);\n });\n /**\n * Function to send event to parent machine from spawned child\n */\n __publicField(this, \"sendParent\", (evt) => {\n if (!this.parent) {\n invariant(\"[@zag-js/core > send-parent] Cannot send event to an unknown parent\");\n }\n const event = toEvent(evt);\n this.parent?.send(event);\n });\n __publicField(this, \"log\", (...args) => {\n if (isDev() && this.options.debug) {\n console.log(...args);\n }\n });\n /**\n * Function to send an event to current machine\n */\n __publicField(this, \"send\", (evt) => {\n const event = toEvent(evt);\n this.transition(this.state.value, event);\n });\n __publicField(this, \"transition\", (state, evt) => {\n const stateNode = isString(state) ? this.getStateNode(state) : state?.stateNode;\n const event = toEvent(evt);\n if (!stateNode && !this.config.on) {\n const msg = this.status === \"Stopped\" /* Stopped */ ? \"[@zag-js/core > transition] Cannot transition a stopped machine\" : `[@zag-js/core > transition] State does not have a definition for \\`state\\`: ${state}, \\`event\\`: ${event.type}`;\n warn(msg);\n return;\n }\n const transitions = (\n // @ts-expect-error - Fix this\n stateNode?.on?.[event.type] ?? this.config.on?.[event.type]\n );\n const next = this.getNextStateInfo(transitions, event);\n this.performStateChangeEffects(this.state.value, next, event);\n return next.stateNode;\n });\n __publicField(this, \"subscribe\", (listener) => {\n this.stateListeners.add(listener);\n if (this.status === \"Running\" /* Running */) {\n listener(this.stateSnapshot);\n }\n return () => {\n this.stateListeners.delete(listener);\n };\n });\n __publicField(this, \"onDone\", (listener) => {\n this.doneListeners.add(listener);\n return this;\n });\n __publicField(this, \"onTransition\", (listener) => {\n this.stateListeners.add(listener);\n if (this.status === \"Running\" /* Running */) {\n listener(this.stateSnapshot);\n }\n return this;\n });\n this.config = clone(config);\n this.options = clone(options ?? {});\n this.id = this.config.id ?? `machine-${uuid()}`;\n this.guardMap = this.options?.guards ?? {};\n this.actionMap = this.options?.actions ?? {};\n this.delayMap = this.options?.delays ?? {};\n this.activityMap = this.options?.activities ?? {};\n this.sync = this.options?.sync ?? false;\n this.state = createProxy(this.config);\n this.initialContext = snapshot(this.state.context);\n }\n // immutable state value\n get stateSnapshot() {\n return cast(snapshot(this.state));\n }\n getState() {\n return this.stateSnapshot;\n }\n // immutable context value\n get contextSnapshot() {\n return this.stateSnapshot.context;\n }\n /**\n * A reference to the instance methods of the machine.\n * Useful when spawning child machines and managing the communication between them.\n */\n get self() {\n const self = this;\n return {\n id: this.id,\n send: this.send.bind(this),\n sendParent: this.sendParent.bind(this),\n sendChild: this.sendChild.bind(this),\n stop: this.stop.bind(this),\n stopChild: this.stopChild.bind(this),\n spawn: this.spawn.bind(this),\n stopActivity: this.stopActivity.bind(this),\n get state() {\n return self.stateSnapshot;\n },\n get initialContext() {\n return self.initialContext;\n },\n get initialState() {\n return self.initialState?.target ?? \"\";\n }\n };\n }\n get meta() {\n return {\n state: this.stateSnapshot,\n guards: this.guardMap,\n send: this.send.bind(this),\n self: this.self,\n initialContext: this.initialContext,\n initialState: this.initialState?.target ?? \"\",\n getState: () => this.stateSnapshot,\n getAction: (key) => this.actionMap[key],\n getGuard: (key) => this.guardMap[key]\n };\n }\n get guardMeta() {\n return {\n state: this.stateSnapshot\n };\n }\n get [Symbol.toStringTag]() {\n return \"Machine\";\n }\n getHydrationState() {\n const state = this.getState();\n return {\n value: state.value,\n tags: state.tags\n };\n }\n};\nvar createMachine = (config, options) => new Machine(config, options);\nvar isMachine = (value) => {\n return value instanceof Machine || value?.type === \"machine\" /* Machine */;\n};\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}\n\nexport { Machine, choose, createMachine, deepMerge, guards, isMachine, mergeProps };\n","// src/prop-types.ts\nfunction createNormalizer(fn) {\n return new Proxy({}, {\n get() {\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","export { mergeProps } from '@zag-js/core';\nimport { createNormalizer } from '@zag-js/types';\nimport { Children, useRef, useSyncExternalStore, useCallback, useMemo, useEffect, useLayoutEffect } from 'react';\nimport { createPortal } from 'react-dom';\nimport { jsx, Fragment } from 'react/jsx-runtime';\nimport { globalRef, subscribe, snapshot } from '@zag-js/store';\nimport { isChanged, createProxy } from 'proxy-compare';\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(Fragment, { children });\n const doc = getRootNode?.().ownerDocument ?? document;\n const mountNode = container?.current ?? doc.body;\n return /* @__PURE__ */ jsx(Fragment, { children: Children.map(children, (child) => createPortal(child, mountNode)) });\n};\n\n// ../../utilities/core/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// ../../utilities/core/src/guard.ts\nvar isDev = () => process.env.NODE_ENV !== \"production\";\nvar fnToString = Function.prototype.toString;\nfnToString.call(Object);\n\n// ../../utilities/core/src/object.ts\nfunction compact(obj) {\n if (!isPlainObject(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 isPlainObject = (v) => {\n return v && typeof v === \"object\" && v.constructor === Object;\n};\nfunction useUpdateEffect(callback, deps) {\n const render = useRef(false);\n const effect = useRef(false);\n useEffect(() => {\n const mounted = render.current;\n const run = mounted && effect.current;\n if (run) {\n return callback();\n }\n effect.current = true;\n }, deps);\n useEffect(() => {\n render.current = true;\n return () => {\n render.current = false;\n };\n }, []);\n}\n\n// src/use-snapshot.ts\nvar targetCache = globalRef(\"__zag__targetCache\", () => /* @__PURE__ */ new WeakMap());\nfunction useSnapshot(service, options) {\n const { actions, context, sync: notifyInSync } = options ?? {};\n const lastSnapshot = useRef(void 0);\n const lastAffected = useRef(void 0);\n const currSnapshot = useSyncExternalStore(\n useCallback((callback) => subscribe(service.state, callback, notifyInSync), [notifyInSync]),\n () => {\n const nextSnapshot = snapshot(service.state);\n try {\n if (lastSnapshot.current && lastAffected.current && !isChanged(lastSnapshot.current, nextSnapshot, lastAffected.current, /* @__PURE__ */ new WeakMap())) {\n return lastSnapshot.current;\n }\n } catch {\n }\n return nextSnapshot;\n },\n () => snapshot(service.state)\n );\n service.setOptions({ actions });\n const ctx = useMemo(() => compact(context ?? {}), [context]);\n useUpdateEffect(() => {\n const entries = Object.entries(ctx);\n const previousCtx = service.contextSnapshot ?? {};\n const equality = entries.map(([key, value]) => ({\n key,\n curr: value,\n prev: previousCtx[key],\n equal: isEqual(previousCtx[key], value)\n }));\n const allEqual = equality.every(({ equal }) => equal);\n if (!allEqual) {\n service.setContext(ctx);\n }\n }, [ctx]);\n const currAffected = /* @__PURE__ */ new WeakMap();\n useEffect(() => {\n lastSnapshot.current = currSnapshot;\n lastAffected.current = currAffected;\n });\n const proxyCache = useMemo(() => /* @__PURE__ */ new WeakMap(), []);\n return createProxy(currSnapshot, currAffected, proxyCache, targetCache);\n}\n\n// src/use-actor.ts\nfunction useActor(service) {\n const state = useSnapshot(service);\n return [state, service.send];\n}\nfunction useConstant(fn) {\n const ref = useRef(void 0);\n if (!ref.current) ref.current = { v: fn() };\n return ref.current.v;\n}\nvar useSafeLayoutEffect = typeof document !== \"undefined\" ? useLayoutEffect : useEffect;\n\n// src/use-service.ts\nfunction useService(machine, options) {\n const { state: hydratedState, context } = options ?? {};\n const service = useConstant(() => {\n const instance = typeof machine === \"function\" ? machine() : machine;\n if (context) instance.setContext(context);\n instance._created();\n return instance;\n });\n const snapshotRef = useRef(void 0);\n useSafeLayoutEffect(() => {\n const stateInit = hydratedState ?? snapshotRef.current;\n service.start(stateInit);\n return () => {\n if (isDev()) {\n snapshotRef.current = service.getHydrationState();\n }\n service.stop();\n };\n }, []);\n return service;\n}\n\n// src/use-machine.ts\nfunction useMachine(machine, options) {\n const service = useService(machine, options);\n const state = useSnapshot(service, options);\n return [state, service.send, service];\n}\n\nexport { Portal, normalizeProps, useActor, useMachine };\n","function setRef(ref, value) {\n if (typeof ref === \"function\") {\n ref(value);\n } else if (ref !== null && ref !== void 0) {\n ref.current = value;\n }\n}\nfunction composeRefs(...refs) {\n return (node) => {\n for (const ref of refs) {\n setRef(ref, node);\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';\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","'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","// 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 isMac = () => pt(/^Mac/);\nvar isSafari = () => isApple() && vn(/apple/i);\nvar isFirefox = () => ua(/firefox\\//i);\nvar isApple = () => pt(/mac|iphone|ipad|ipod/i);\nvar isIos = () => pt(/iP(hone|ad|od)|iOS/);\nvar isWebKit = () => ua(/AppleWebKit/);\nvar isAndroid = () => {\n const re = /android/i;\n return pt(re) || ua(re);\n};\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;\n}\nfunction isKeyboardClick(e) {\n return e.detail === 0 || e.clientX === 0 && e.clientY === 0;\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 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 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 cleanups2 = [trackFormReset(el, onFormReset), trackFieldsetDisabled(el, onFieldsetDisabledChange)];\n return () => cleanups2.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 set2 = /* @__PURE__ */ new Set();\n function raf2(fn2) {\n const id = globalThis.requestAnimationFrame(fn2);\n set2.add(() => globalThis.cancelAnimationFrame(id));\n }\n raf2(() => raf2(fn));\n return function cleanup() {\n set2.forEach((fn2) => fn2());\n };\n}\nfunction raf(fn) {\n const id = globalThis.requestAnimationFrame(fn);\n return () => {\n globalThis.cancelAnimationFrame(id);\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 cleanups2 = [];\n cleanups2.push(\n func(() => {\n const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n cleanups2.push(observeAttributesImpl(node, options));\n })\n );\n return () => {\n cleanups2.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 cleanups2 = [];\n cleanups2.push(\n func(() => {\n const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n cleanups2.push(observeChildrenImpl(node, options));\n })\n );\n return () => {\n cleanups2.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 cleanups2 = [];\n cleanups2.push(\n func(() => {\n const node = typeof target === \"function\" ? target() : target;\n cleanups2.push(disableTextSelectionImpl({ ...restOptions, target: node }));\n })\n );\n return () => {\n cleanups2.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 cleanups2 = [\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 cleanups2.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 });\n const removePointerCancelListener = addDomEvent(win, \"pointercancel\", cancelPress, { passive: !onPressEnd });\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 } = 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 noTabbableElements = !firstTabbable && !lastTabbable;\n if (event.shiftKey && (doc.activeElement === firstTabbable || noTabbableElements)) {\n elementToFocus = triggerElement;\n } else if (!event.shiftKey && doc.activeElement === triggerElement) {\n elementToFocus = firstTabbable;\n } else if (!event.shiftKey && (doc.activeElement === lastTabbable || noTabbableElements)) {\n elementToFocus = getNextTabbable(body, triggerElement);\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 cleanups2 = [];\n cleanups2.push(\n func(() => {\n const node = typeof container === \"function\" ? container() : container;\n const trigger = typeof triggerElement === \"function\" ? triggerElement() : triggerElement;\n cleanups2.push(proxyTabFocusImpl(node, { triggerElement: trigger, ...restOptions }));\n })\n );\n return () => {\n cleanups2.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/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\nvar cleanups = /* @__PURE__ */ new WeakMap();\nfunction set(element, key, setup) {\n if (!cleanups.has(element)) {\n cleanups.set(element, /* @__PURE__ */ new Map());\n }\n const elementCleanups = cleanups.get(element);\n const prevCleanup = elementCleanups.get(key);\n if (!prevCleanup) {\n elementCleanups.set(key, setup());\n return () => {\n elementCleanups.get(key)?.();\n elementCleanups.delete(key);\n };\n }\n const cleanup = setup();\n const nextCleanup = () => {\n cleanup();\n prevCleanup();\n elementCleanups.delete(key);\n };\n elementCleanups.set(key, nextCleanup);\n return () => {\n const isCurrent = elementCleanups.get(key) === nextCleanup;\n if (!isCurrent) return;\n cleanup();\n elementCleanups.set(key, prevCleanup);\n };\n}\nfunction setAttribute(element, attr, value) {\n const setup = () => {\n const previousValue = element.getAttribute(attr);\n element.setAttribute(attr, value);\n return () => {\n if (previousValue == null) {\n element.removeAttribute(attr);\n } else {\n element.setAttribute(attr, previousValue);\n }\n };\n };\n return set(element, attr, setup);\n}\nfunction setProperty(element, property, value) {\n const setup = () => {\n const exists = property in element;\n const previousValue = element[property];\n element[property] = value;\n return () => {\n if (!exists) {\n delete element[property];\n } else {\n element[property] = previousValue;\n }\n };\n };\n return set(element, property, setup);\n}\nfunction setStyle(element, style) {\n if (!element) return () => {\n };\n const setup = () => {\n const prevStyle = element.style.cssText;\n Object.assign(element.style, style);\n return () => {\n element.style.cssText = prevStyle;\n };\n };\n return set(element, \"style\", setup);\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 cleanups2 = [];\n queries?.forEach((query2) => {\n const clean = waitForElement(query2, cb);\n cleanups2.push(clean);\n });\n return () => {\n cleanups2.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, isComposingEvent, isContextMenuEvent, isDocument, isDom, isDownloadingEvent, isEditableElement, isElementVisible, isFirefox, isFocusable, isHTMLElement, 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, setElementChecked, setElementValue, setProperty, setStyle, setVisuallyHidden, trackFormControl, trackPointerMove, trackPress, trackVisualViewport, visuallyHiddenStyle, waitForElement, waitForElements };\n","import { getWindow, getDocument, getEventTarget, isMac } from '@zag-js/dom-query';\n\n// src/index.ts\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) return true;\n return event.detail === 0 && !event.pointerType;\n}\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 { createScope, dataAttr, getEventTarget, visuallyHiddenStyle, trackPress, trackFormControl, setElementChecked, dispatchInputCheckedEvent } from '@zag-js/dom-query';\nimport { isFocusVisible, trackFocusVisible } from '@zag-js/focus-visible';\nimport { createMachine, guards } from '@zag-js/core';\nimport { createSplitProps, compact, isEqual } from '@zag-js/utils';\nimport { createProps } from '@zag-js/types';\n\n// src/checkbox.anatomy.ts\nvar anatomy = createAnatomy(\"checkbox\").parts(\"root\", \"label\", \"control\", \"indicator\");\nvar parts = anatomy.build();\nvar dom = createScope({\n getRootId: (ctx) => ctx.ids?.root ?? `checkbox:${ctx.id}`,\n getLabelId: (ctx) => ctx.ids?.label ?? `checkbox:${ctx.id}:label`,\n getControlId: (ctx) => ctx.ids?.control ?? `checkbox:${ctx.id}:control`,\n getHiddenInputId: (ctx) => ctx.ids?.hiddenInput ?? `checkbox:${ctx.id}:input`,\n getRootEl: (ctx) => dom.getById(ctx, dom.getRootId(ctx)),\n getHiddenInputEl: (ctx) => dom.getById(ctx, dom.getHiddenInputId(ctx))\n});\nfunction connect(state, send, normalize) {\n const disabled = state.context.isDisabled;\n const readOnly = state.context.readOnly;\n const focused = !disabled && state.context.focused;\n const focusVisible = !disabled && state.context.focusVisible;\n const checked = state.context.isChecked;\n const indeterminate = state.context.isIndeterminate;\n const dataAttrs = {\n \"data-active\": dataAttr(state.context.active),\n \"data-focus\": dataAttr(focused),\n \"data-focus-visible\": dataAttr(focusVisible),\n \"data-readonly\": dataAttr(readOnly),\n \"data-hover\": dataAttr(state.context.hovered),\n \"data-disabled\": dataAttr(disabled),\n \"data-state\": indeterminate ? \"indeterminate\" : state.context.checked ? \"checked\" : \"unchecked\",\n \"data-invalid\": dataAttr(state.context.invalid)\n };\n return {\n checked,\n disabled,\n indeterminate,\n focused,\n checkedState: state.context.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: state.context.dir,\n id: dom.getRootId(state.context),\n htmlFor: dom.getHiddenInputId(state.context),\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 === dom.getHiddenInputEl(state.context)) {\n event.stopPropagation();\n }\n }\n });\n },\n getLabelProps() {\n return normalize.element({\n ...parts.label.attrs,\n ...dataAttrs,\n dir: state.context.dir,\n id: dom.getLabelId(state.context)\n });\n },\n getControlProps() {\n return normalize.element({\n ...parts.control.attrs,\n ...dataAttrs,\n dir: state.context.dir,\n id: dom.getControlId(state.context),\n \"aria-hidden\": true\n });\n },\n getIndicatorProps() {\n return normalize.element({\n ...parts.indicator.attrs,\n ...dataAttrs,\n dir: state.context.dir,\n hidden: !indeterminate && !state.context.checked\n });\n },\n getHiddenInputProps() {\n return normalize.input({\n id: dom.getHiddenInputId(state.context),\n type: \"checkbox\",\n required: state.context.required,\n defaultChecked: checked,\n disabled,\n \"aria-labelledby\": dom.getLabelId(state.context),\n \"aria-invalid\": state.context.invalid,\n name: state.context.name,\n form: state.context.form,\n value: state.context.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 } = guards;\nfunction machine(userContext) {\n const ctx = compact(userContext);\n return createMachine(\n {\n id: \"checkbox\",\n initial: \"ready\",\n context: {\n checked: false,\n value: \"on\",\n disabled: false,\n ...ctx,\n fieldsetDisabled: false,\n focusVisible: false\n },\n watch: {\n disabled: \"removeFocusIfNeeded\",\n checked: \"syncInputElement\"\n },\n activities: [\"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 isIndeterminate: (ctx2) => isIndeterminate(ctx2.checked),\n isChecked: (ctx2) => isChecked(ctx2.checked),\n isDisabled: (ctx2) => !!ctx2.disabled || ctx2.fieldsetDisabled\n },\n states: {\n ready: {}\n }\n },\n {\n guards: {\n isTrusted: (_ctx, evt) => !!evt.isTrusted\n },\n activities: {\n trackPressEvent(ctx2) {\n if (ctx2.isDisabled) return;\n return trackPress({\n pointerNode: dom.getRootEl(ctx2),\n keyboardNode: dom.getHiddenInputEl(ctx2),\n isValidKey: (event) => event.key === \" \",\n onPress: () => ctx2.active = false,\n onPressStart: () => ctx2.active = true,\n onPressEnd: () => ctx2.active = false\n });\n },\n trackFocusVisible(ctx2) {\n if (ctx2.isDisabled) return;\n return trackFocusVisible({ root: dom.getRootNode(ctx2) });\n },\n trackFormControlState(ctx2, _evt, { send, initialContext }) {\n return trackFormControl(dom.getHiddenInputEl(ctx2), {\n onFieldsetDisabledChange(disabled) {\n ctx2.fieldsetDisabled = disabled;\n },\n onFormReset() {\n send({ type: \"CHECKED.SET\", checked: !!initialContext.checked });\n }\n });\n }\n },\n actions: {\n setContext(ctx2, evt) {\n Object.assign(ctx2, evt.context);\n },\n syncInputElement(ctx2) {\n const inputEl = dom.getHiddenInputEl(ctx2);\n if (!inputEl) return;\n setElementChecked(inputEl, ctx2.isChecked);\n inputEl.indeterminate = ctx2.isIndeterminate;\n },\n removeFocusIfNeeded(ctx2) {\n if (ctx2.disabled && ctx2.focused) {\n ctx2.focused = false;\n ctx2.focusVisible = false;\n }\n },\n setChecked(ctx2, evt) {\n set.checked(ctx2, evt.checked);\n },\n toggleChecked(ctx2) {\n const checked = isIndeterminate(ctx2.checked) ? true : !ctx2.checked;\n set.checked(ctx2, checked);\n },\n dispatchChangeEvent(ctx2) {\n const inputEl = dom.getHiddenInputEl(ctx2);\n dispatchInputCheckedEvent(inputEl, { checked: isChecked(ctx2.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 invoke = {\n change: (ctx) => {\n ctx.onCheckedChange?.({ checked: ctx.checked });\n }\n};\nvar set = {\n checked: (ctx, checked) => {\n if (isEqual(ctx.checked, checked)) return;\n ctx.checked = checked;\n invoke.change(ctx);\n }\n};\nvar props = createProps()([\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 { 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 { 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 { 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(\n (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 }\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(\n (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 }\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 { 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","'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 { useEvent } from '../../utils/use-event.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 { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const initialContext = {\n id: useId(),\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 checked: props.defaultChecked,\n ...props\n };\n const context = {\n ...initialContext,\n checked: props.checked,\n onCheckedChange: useEvent(props.onCheckedChange, { sync: true })\n };\n const [state, send] = useMachine(checkbox.machine(initialContext), { context });\n return checkbox.connect(state, send, 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","import { Checkbox as ArkCheckbox } from '@ark-ui/react/checkbox';\nimport type { ReactNode } from 'react';\nimport { cn } from '../../lib/utils';\n\ninterface CheckboxProps {\n children?: ReactNode;\n checked?: boolean;\n defaultChecked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n onChange?: (checked: boolean) => void;\n name?: string;\n value?: string;\n className?: string;\n}\n\nexport function Checkbox({\n children,\n checked,\n defaultChecked,\n disabled = false,\n indeterminate = false,\n onChange,\n name,\n value,\n className,\n}: CheckboxProps) {\n return (\n <ArkCheckbox.Root\n checked={checked}\n defaultChecked={defaultChecked}\n disabled={disabled}\n onCheckedChange={(details) => onChange?.(details.checked === true)}\n name={name}\n value={value}\n className={cn(\n 'inline-flex items-center gap-2 cursor-pointer select-none text-sm',\n 'data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50',\n className,\n )}\n >\n <ArkCheckbox.Control\n className={cn(\n 'relative h-4 w-4 shrink-0 rounded-sm border border-primary ring-offset-background',\n 'data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground',\n 'data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'transition-colors',\n )}\n >\n <ArkCheckbox.Indicator className=\"absolute inset-0 flex items-center justify-center text-current\">\n {indeterminate ? (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 15 15\" fill=\"none\">\n <path\n d=\"M2.25 7.5C2.25 7.22386 2.47386 7 2.75 7H12.25C12.5261 7 12.75 7.22386 12.75 7.5C12.75 7.77614 12.5261 8 12.25 8H2.75C2.47386 8 2.25 7.77614 2.25 7.5Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n />\n </svg>\n ) : (\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 15 15\" fill=\"none\">\n <path\n d=\"M11.4669 3.72684C11.7558 3.91574 11.8369 4.30308 11.648 4.59198L7.39799 11.092C7.29783 11.2452 7.13556 11.3467 6.95402 11.3699C6.77247 11.3931 6.58989 11.3355 6.45446 11.2124L3.70446 8.71241C3.44905 8.48022 3.43023 8.08494 3.66242 7.82953C3.89461 7.57412 4.28989 7.55529 4.5453 7.78749L6.75292 9.79441L10.6018 3.90792C10.7907 3.61902 11.178 3.53795 11.4669 3.72684Z\"\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n />\n </svg>\n )}\n </ArkCheckbox.Indicator>\n </ArkCheckbox.Control>\n {children && (\n <ArkCheckbox.Label className=\"cursor-pointer leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\">\n {children}\n </ArkCheckbox.Label>\n )}\n <ArkCheckbox.HiddenInput />\n </ArkCheckbox.Root>\n );\n}\n\nexport type { CheckboxProps };\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","import { createMachine, ref } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/presence.connect.ts\nfunction connect(state, send, _normalize) {\n const present = state.matches(\"mounted\", \"unmountSuspended\");\n return {\n skip: !state.context.initial && present,\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}\nfunction machine(ctx) {\n return createMachine(\n {\n initial: ctx.present ? \"mounted\" : \"unmounted\",\n context: {\n node: null,\n styles: null,\n unmountAnimationName: null,\n prevAnimationName: null,\n present: false,\n initial: false,\n ...ctx\n },\n exit: [\"clearInitial\", \"cleanupNode\"],\n watch: {\n present: [\"setInitial\", \"syncPresence\"]\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: [\"invokeOnExitComplete\"]\n },\n \"UNMOUNT.SUSPEND\": \"unmountSuspended\"\n }\n },\n unmountSuspended: {\n activities: [\"trackAnimationEvents\"],\n after: {\n // Fallback to timeout to ensure we exit this state even if the `animationend` event\n // did not get trigger\n ANIMATION_DURATION: {\n target: \"unmounted\",\n actions: [\"invokeOnExitComplete\"]\n }\n },\n on: {\n MOUNT: {\n target: \"mounted\",\n actions: [\"setPrevAnimationName\"]\n },\n UNMOUNT: {\n target: \"unmounted\",\n actions: [\"invokeOnExitComplete\"]\n }\n }\n },\n unmounted: {\n entry: [\"clearPrevAnimationName\"],\n on: {\n MOUNT: {\n target: \"mounted\",\n actions: [\"setPrevAnimationName\"]\n }\n }\n }\n }\n },\n {\n delays: {\n ANIMATION_DURATION(ctx2) {\n return parseMs(ctx2.styles?.animationDuration) + parseMs(ctx2.styles?.animationDelay) + ANIMATION_TIMEOUT_MARGIN;\n }\n },\n actions: {\n setInitial(ctx2) {\n ctx2.initial = true;\n },\n clearInitial(ctx2) {\n ctx2.initial = false;\n },\n cleanupNode(ctx2) {\n ctx2.node = null;\n ctx2.styles = null;\n },\n invokeOnExitComplete(ctx2) {\n ctx2.onExitComplete?.();\n },\n setNode(ctx2, evt) {\n ctx2.node = ref(evt.node);\n },\n setStyles(ctx2, evt) {\n const win = evt.node.ownerDocument.defaultView || window;\n ctx2.styles = ref(win.getComputedStyle(evt.node));\n },\n syncPresence(ctx2, _evt, { send }) {\n if (ctx2.present) {\n send({ type: \"MOUNT\", src: \"presence.changed\" });\n return;\n }\n if (!ctx2.present && ctx2.node?.ownerDocument.visibilityState === \"hidden\") {\n send({ type: \"UNMOUNT\", src: \"visibilitychange\" });\n return;\n }\n const animationName = getAnimationName(ctx2.styles);\n const exec = ctx2.immediate ? queueMicrotask : requestAnimationFrame;\n exec(() => {\n ctx2.unmountAnimationName = animationName;\n if (animationName === \"none\" || animationName === ctx2.prevAnimationName || ctx2.styles?.display === \"none\" || ctx2.styles?.animationDuration === \"0s\") {\n send({ type: \"UNMOUNT\", src: \"presence.changed\" });\n } else {\n send({ type: \"UNMOUNT.SUSPEND\" });\n }\n });\n },\n setPrevAnimationName(ctx2) {\n const exec = ctx2.immediate ? queueMicrotask : requestAnimationFrame;\n exec(() => {\n ctx2.prevAnimationName = getAnimationName(ctx2.styles);\n });\n },\n clearPrevAnimationName(ctx2) {\n ctx2.prevAnimationName = null;\n }\n },\n activities: {\n trackAnimationEvents(ctx2, _evt, { send }) {\n const node = ctx2.node;\n if (!node) return;\n const onStart = (event) => {\n const target = event.composedPath?.()?.[0] ?? event.target;\n if (target === node) {\n ctx2.prevAnimationName = getAnimationName(ctx2.styles);\n }\n };\n const onEnd = (event) => {\n const animationName = getAnimationName(ctx2.styles);\n const target = event.composedPath?.()?.[0] ?? event.target;\n if (target === node && animationName === ctx2.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 return () => {\n node.removeEventListener(\"animationstart\", onStart);\n node.removeEventListener(\"animationcancel\", onEnd);\n node.removeEventListener(\"animationend\", onEnd);\n };\n }\n }\n }\n );\n}\nfunction getAnimationName(styles) {\n return styles?.animationName || \"none\";\n}\nfunction parseMs(value) {\n return parseFloat(value || \"0\") * 1e3;\n}\nvar ANIMATION_TIMEOUT_MARGIN = 16.667;\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, ...rest } = props;\n const wasEverPresent = useRef(false);\n const context = {\n ...rest,\n present,\n onExitComplete: useEvent(props.onExitComplete)\n };\n const [state, send] = useMachine(presence.machine(context), { context });\n const api = presence.connect(state, send, 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\": 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","'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(\n (props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getCloseTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n }\n);\nDialogCloseTrigger.displayName = \"DialogCloseTrigger\";\n\nexport { DialogCloseTrigger };\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 { 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(\n (props, ref) => {\n const dialog = useDialogContext();\n const mergedProps = mergeProps(dialog.getDescriptionProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n }\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","'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 \"unmountOnExit\"\n]);\n\nexport { splitPresenceProps };\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, explicitBooleanValue } = 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 = explicitBooleanValue ? attr === \"true\" : attr !== null && attr !== \"false\";\n const counterValue = (counterMap.get(node) || 0) + 1;\n const markerValue = (markerCounter.get(node) || 0) + 1;\n counterMap.set(node, counterValue);\n markerCounter.set(node, markerValue);\n 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, explicitBooleanValue ? \"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 explicitBooleanValue: true\n });\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","import { getDocument, getWindow, addDomEvent, raf, isFocusable, getEventTarget, isHTMLElement, contains, getNearestOverflowAncestor, isContextMenuEvent } 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) {\n const target = getEventTarget(event);\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 function onPointerDown(event) {\n function handler() {\n const func = defer ? raf : (v) => v();\n const composedPath = event.composedPath?.() ?? [event.target];\n func(() => {\n if (!node || !isEventOutside(event)) 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: event,\n contextmenu: isContextMenuEvent(event),\n focusable: isComposedPathFocusable(composedPath)\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 if (!node || !isEventOutside(event)) 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(getEventTarget(event))\n }\n });\n });\n }\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 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 { contains, raf, addDomEvent, getDocument, waitForElements, setStyle, 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 if (!node) {\n warn(\"[@zag-js/dismissable] node is `null` or `undefined`\");\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","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 { isIos } from '@zag-js/dom-query';\n\n// src/index.ts\nvar LOCK_CLASSNAME = \"data-scroll-lock\";\nfunction assignStyle(el, style) {\n if (!el) return;\n const previousStyle = Object.keys(style).reduce(\n (acc, key) => {\n acc[key] = el.style.getPropertyValue(key);\n return acc;\n },\n {}\n );\n Object.assign(el.style, style);\n return () => {\n Object.assign(el.style, previousStyle);\n };\n}\nfunction setCSSProperty(el, property, value) {\n if (!el) return;\n const previousValue = el.style.getPropertyValue(property);\n el.style.setProperty(property, value);\n return () => {\n if (previousValue) {\n el.style.setProperty(property, previousValue);\n } else {\n el.style.removeProperty(property);\n }\n };\n}\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 = () => setCSSProperty(documentElement, \"--scrollbar-width\", `${scrollbarWidth}px`);\n const paddingProperty = getPaddingProperty(documentElement);\n const setStyle = () => assignStyle(body, {\n overflow: \"hidden\",\n [paddingProperty]: `${scrollbarWidth}px`\n });\n const setIOSStyle = () => {\n const { scrollX, scrollY, visualViewport } = win;\n const offsetLeft = visualViewport?.offsetLeft ?? 0;\n const offsetTop = visualViewport?.offsetTop ?? 0;\n const restoreStyle = assignStyle(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() ? setIOSStyle() : setStyle()];\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 { createScope, raf, getComputedStyle } from '@zag-js/dom-query';\nimport { ariaHidden } from '@zag-js/aria-hidden';\nimport { createMachine } from '@zag-js/core';\nimport { trackDismissableElement } from '@zag-js/dismissable';\nimport { trapFocus } from '@zag-js/focus-trap';\nimport { preventBodyScroll } from '@zag-js/remove-scroll';\nimport { createSplitProps, compact } from '@zag-js/utils';\nimport { createProps } from '@zag-js/types';\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();\nvar dom = createScope({\n getPositionerId: (ctx) => ctx.ids?.positioner ?? `dialog:${ctx.id}:positioner`,\n getBackdropId: (ctx) => ctx.ids?.backdrop ?? `dialog:${ctx.id}:backdrop`,\n getContentId: (ctx) => ctx.ids?.content ?? `dialog:${ctx.id}:content`,\n getTriggerId: (ctx) => ctx.ids?.trigger ?? `dialog:${ctx.id}:trigger`,\n getTitleId: (ctx) => ctx.ids?.title ?? `dialog:${ctx.id}:title`,\n getDescriptionId: (ctx) => ctx.ids?.description ?? `dialog:${ctx.id}:description`,\n getCloseTriggerId: (ctx) => ctx.ids?.closeTrigger ?? `dialog:${ctx.id}:close`,\n getContentEl: (ctx) => dom.getById(ctx, dom.getContentId(ctx)),\n getPositionerEl: (ctx) => dom.getById(ctx, dom.getPositionerId(ctx)),\n getBackdropEl: (ctx) => dom.getById(ctx, dom.getBackdropId(ctx)),\n getTriggerEl: (ctx) => dom.getById(ctx, dom.getTriggerId(ctx)),\n getTitleEl: (ctx) => dom.getById(ctx, dom.getTitleId(ctx)),\n getDescriptionEl: (ctx) => dom.getById(ctx, dom.getDescriptionId(ctx)),\n getCloseTriggerEl: (ctx) => dom.getById(ctx, dom.getCloseTriggerId(ctx))\n});\n\n// src/dialog.connect.ts\nfunction connect(state, send, normalize) {\n const ariaLabel = state.context[\"aria-label\"];\n const open = state.matches(\"open\");\n const rendered = state.context.renderedElements;\n return {\n open,\n setOpen(nextOpen) {\n if (nextOpen === open) return;\n send(nextOpen ? \"OPEN\" : \"CLOSE\");\n },\n getTriggerProps() {\n return normalize.button({\n ...parts.trigger.attrs,\n dir: state.context.dir,\n id: dom.getTriggerId(state.context),\n \"aria-haspopup\": \"dialog\",\n type: \"button\",\n \"aria-expanded\": open,\n \"data-state\": open ? \"open\" : \"closed\",\n \"aria-controls\": dom.getContentId(state.context),\n onClick(event) {\n if (event.defaultPrevented) return;\n send(\"TOGGLE\");\n }\n });\n },\n getBackdropProps() {\n return normalize.element({\n ...parts.backdrop.attrs,\n dir: state.context.dir,\n hidden: !open,\n id: dom.getBackdropId(state.context),\n \"data-state\": open ? \"open\" : \"closed\"\n });\n },\n getPositionerProps() {\n return normalize.element({\n ...parts.positioner.attrs,\n dir: state.context.dir,\n id: dom.getPositionerId(state.context),\n style: {\n pointerEvents: open ? void 0 : \"none\"\n }\n });\n },\n getContentProps() {\n return normalize.element({\n ...parts.content.attrs,\n dir: state.context.dir,\n role: state.context.role,\n hidden: !open,\n id: dom.getContentId(state.context),\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 : dom.getTitleId(state.context),\n \"aria-describedby\": rendered.description ? dom.getDescriptionId(state.context) : void 0\n });\n },\n getTitleProps() {\n return normalize.element({\n ...parts.title.attrs,\n dir: state.context.dir,\n id: dom.getTitleId(state.context)\n });\n },\n getDescriptionProps() {\n return normalize.element({\n ...parts.description.attrs,\n dir: state.context.dir,\n id: dom.getDescriptionId(state.context)\n });\n },\n getCloseTriggerProps() {\n return normalize.button({\n ...parts.closeTrigger.attrs,\n dir: state.context.dir,\n id: dom.getCloseTriggerId(state.context),\n type: \"button\",\n onClick(event) {\n if (event.defaultPrevented) return;\n event.stopPropagation();\n send(\"CLOSE\");\n }\n });\n }\n };\n}\nfunction machine(userContext) {\n const ctx = compact(userContext);\n return createMachine(\n {\n id: \"dialog\",\n initial: ctx.open ? \"open\" : \"closed\",\n context: {\n role: \"dialog\",\n renderedElements: {\n title: true,\n description: true\n },\n modal: true,\n trapFocus: true,\n preventScroll: true,\n closeOnInteractOutside: true,\n closeOnEscape: true,\n restoreFocus: true,\n ...ctx\n },\n created: [\"setAlertDialogProps\"],\n watch: {\n open: [\"toggleVisibility\"]\n },\n states: {\n open: {\n entry: [\"checkRenderedElements\", \"syncZIndex\"],\n activities: [\"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 },\n {\n guards: {\n isOpenControlled: (ctx2) => !!ctx2[\"open.controlled\"]\n },\n activities: {\n trackDismissableElement(ctx2, _evt, { send }) {\n const getContentEl = () => dom.getContentEl(ctx2);\n return trackDismissableElement(getContentEl, {\n defer: true,\n pointerBlocking: ctx2.modal,\n exclude: [dom.getTriggerEl(ctx2)],\n onInteractOutside(event) {\n ctx2.onInteractOutside?.(event);\n if (!ctx2.closeOnInteractOutside) {\n event.preventDefault();\n }\n },\n persistentElements: ctx2.persistentElements,\n onFocusOutside: ctx2.onFocusOutside,\n onPointerDownOutside: ctx2.onPointerDownOutside,\n onEscapeKeyDown(event) {\n ctx2.onEscapeKeyDown?.(event);\n if (!ctx2.closeOnEscape) {\n event.preventDefault();\n }\n },\n onDismiss() {\n send({ type: \"CLOSE\", src: \"interact-outside\" });\n }\n });\n },\n preventScroll(ctx2) {\n if (!ctx2.preventScroll) return;\n return preventBodyScroll(dom.getDoc(ctx2));\n },\n trapFocus(ctx2) {\n if (!ctx2.trapFocus || !ctx2.modal) return;\n const contentEl = () => dom.getContentEl(ctx2);\n return trapFocus(contentEl, {\n preventScroll: true,\n returnFocusOnDeactivate: !!ctx2.restoreFocus,\n initialFocus: ctx2.initialFocusEl,\n setReturnFocus: (el) => ctx2.finalFocusEl?.() ?? el\n });\n },\n hideContentBelow(ctx2) {\n if (!ctx2.modal) return;\n const getElements = () => [dom.getContentEl(ctx2)];\n return ariaHidden(getElements, { defer: true });\n }\n },\n actions: {\n setAlertDialogProps(ctx2) {\n if (ctx2.role !== \"alertdialog\") return;\n ctx2.initialFocusEl || (ctx2.initialFocusEl = () => dom.getCloseTriggerEl(ctx2));\n ctx2.closeOnInteractOutside = false;\n },\n checkRenderedElements(ctx2) {\n raf(() => {\n ctx2.renderedElements.title = !!dom.getTitleEl(ctx2);\n ctx2.renderedElements.description = !!dom.getDescriptionEl(ctx2);\n });\n },\n syncZIndex(ctx2) {\n raf(() => {\n const contentEl = dom.getContentEl(ctx2);\n if (!contentEl) return;\n const styles = getComputedStyle(contentEl);\n const elems = [dom.getPositionerEl(ctx2), dom.getBackdropEl(ctx2)];\n elems.forEach((node) => {\n node?.style.setProperty(\"--z-index\", styles.zIndex);\n });\n });\n },\n invokeOnClose(ctx2) {\n ctx2.onOpenChange?.({ open: false });\n },\n invokeOnOpen(ctx2) {\n ctx2.onOpenChange?.({ open: true });\n },\n toggleVisibility(ctx2, evt, { send }) {\n send({ type: ctx2.open ? \"CONTROLLED.OPEN\" : \"CONTROLLED.CLOSE\", previousEvent: evt });\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 \"open.controlled\",\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';\nimport { useEvent } from '../../utils/use-event.js';\n\nconst useDialog = (props = {}) => {\n const { getRootNode } = useEnvironmentContext();\n const { dir } = useLocaleContext();\n const initialContext = {\n id: useId(),\n getRootNode,\n dir,\n open: props.defaultOpen,\n \"open.controlled\": props.open !== void 0,\n ...props\n };\n const context = {\n ...initialContext,\n open: props.open,\n onOpenChange: useEvent(props.onOpenChange, { sync: true }),\n onEscapeKeyDown: useEvent(props.onEscapeKeyDown),\n onInteractOutside: useEvent(props.onInteractOutside)\n };\n const [state, send] = useMachine(dialog.machine(initialContext), { context });\n return dialog.connect(state, send, 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","import { Dialog as ArkDialog } from '@ark-ui/react/dialog';\nimport { Portal } from '@ark-ui/react/portal';\nimport { X } from 'lucide-react';\nimport { createContext, type ReactNode } from 'react';\nimport { cn } from '../../lib/utils';\n\n// Dialog Context for shared state\ninterface DialogContextValue {\n size?: 'sm' | 'md' | 'lg' | 'full';\n}\n\nconst DialogContext = createContext<DialogContextValue>({});\n\nexport interface DialogRootProps {\n open?: boolean;\n onOpenChange?: (details: { open: boolean }) => void;\n children: ReactNode;\n modal?: boolean;\n closeOnInteractOutside?: boolean;\n closeOnEscape?: boolean;\n}\n\nexport interface DialogContentProps {\n children: ReactNode;\n size?: 'sm' | 'md' | 'lg' | 'full';\n className?: string;\n}\n\nconst contentSizes = {\n sm: 'max-w-sm',\n md: 'max-w-md',\n lg: 'max-w-lg',\n full: 'max-w-full mx-4',\n};\n\nfunction DialogRoot({\n open,\n onOpenChange,\n children,\n modal = true,\n closeOnInteractOutside = true,\n closeOnEscape = true,\n}: DialogRootProps) {\n return (\n <ArkDialog.Root\n open={open}\n onOpenChange={onOpenChange}\n modal={modal}\n closeOnInteractOutside={closeOnInteractOutside}\n closeOnEscape={closeOnEscape}\n >\n {children}\n </ArkDialog.Root>\n );\n}\n\nfunction DialogTrigger({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) {\n return (\n <ArkDialog.Trigger className={className}>{children}</ArkDialog.Trigger>\n );\n}\n\nfunction DialogPortal({ children }: { children: ReactNode }) {\n return <Portal>{children}</Portal>;\n}\n\nfunction DialogBackdrop({ className }: { className?: string }) {\n return (\n <ArkDialog.Backdrop\n className={cn(\n 'fixed inset-0 bg-black/50 backdrop-blur-sm',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n className,\n )}\n style={{ zIndex: 9999 }}\n />\n );\n}\n\nfunction DialogPositioner({ children }: { children: ReactNode }) {\n return (\n <ArkDialog.Positioner\n className=\"fixed inset-0 flex items-center justify-center p-4\"\n style={{ zIndex: 10000 }}\n >\n {children}\n </ArkDialog.Positioner>\n );\n}\n\nfunction DialogContent({\n children,\n size = 'md',\n className,\n}: DialogContentProps) {\n return (\n <DialogContext.Provider value={{ size }}>\n <ArkDialog.Content\n className={cn(\n 'relative w-full rounded-lg bg-card text-card-foreground shadow-lg border border-border',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n 'data-[state=closed]:slide-out-to-bottom-[2%] data-[state=open]:slide-in-from-bottom-[2%]',\n 'duration-200',\n contentSizes[size],\n className,\n )}\n >\n {children}\n </ArkDialog.Content>\n </DialogContext.Provider>\n );\n}\n\nfunction DialogHeader({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) {\n return (\n <div\n className={cn(\n 'flex items-start justify-between gap-4 p-6 pb-4',\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nfunction DialogTitle({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) {\n return (\n <ArkDialog.Title className={cn('text-lg font-semibold text-foreground', className)}>\n {children}\n </ArkDialog.Title>\n );\n}\n\nfunction DialogDescription({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) {\n return (\n <ArkDialog.Description className={cn('text-sm text-muted-foreground', className)}>\n {children}\n </ArkDialog.Description>\n );\n}\n\nfunction DialogBody({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) {\n return <div className={cn('px-6 py-4', className)}>{children}</div>;\n}\n\nfunction DialogFooter({\n children,\n className,\n}: {\n children: ReactNode;\n className?: string;\n}) {\n return (\n <div className={cn('flex justify-end gap-2 p-6 pt-4', className)}>\n {children}\n </div>\n );\n}\n\nfunction DialogCloseTrigger({\n className,\n}: {\n className?: string;\n}) {\n return (\n <ArkDialog.CloseTrigger\n className={cn(\n 'absolute right-4 top-4 rounded-md p-2 text-muted-foreground',\n 'hover:bg-secondary hover:text-foreground',\n 'focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n 'disabled:pointer-events-none',\n 'transition-colors',\n className,\n )}\n aria-label=\"Close dialog\"\n >\n <X className=\"h-4 w-4\" />\n </ArkDialog.CloseTrigger>\n );\n}\n\nexport const Dialog = {\n Root: DialogRoot,\n Trigger: DialogTrigger,\n Portal: DialogPortal,\n Backdrop: DialogBackdrop,\n Positioner: DialogPositioner,\n Content: DialogContent,\n Header: DialogHeader,\n Title: DialogTitle,\n Description: DialogDescription,\n Body: DialogBody,\n Footer: DialogFooter,\n CloseTrigger: DialogCloseTrigger,\n};\n","import type { InputHTMLAttributes } from 'react';\nimport { cn } from '../../lib/utils';\n\nexport interface InputProps extends InputHTMLAttributes<HTMLInputElement> {\n label?: string;\n}\n\nexport function Input({ className, type = 'text', label, id, ...props }: InputProps) {\n const input = (\n <input\n id={id}\n type={type}\n className={cn(\n 'flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm',\n 'ring-offset-background',\n 'file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground',\n 'placeholder:text-muted-foreground',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n />\n );\n\n if (!label) {\n return input;\n }\n\n return (\n <div className=\"w-full\">\n <label htmlFor={id} className=\"block text-sm font-medium mb-1.5 text-card-foreground\">\n {label}\n </label>\n {input}\n </div>\n );\n}\n","import { cn } from '../../lib/utils';\n\nexport type ProgressVariant = 'default' | 'success' | 'warning' | 'error';\nexport type ProgressSize = 'sm' | 'md' | 'lg';\n\nexport interface ProgressProps {\n value?: number;\n indeterminate?: boolean;\n label?: string;\n showValue?: boolean;\n variant?: ProgressVariant;\n size?: ProgressSize;\n className?: string;\n}\n\nconst variantStyles = {\n default: 'bg-primary',\n success: 'bg-green-600',\n warning: 'bg-yellow-600',\n error: 'bg-destructive',\n};\n\nconst sizeStyles = {\n sm: 'h-1',\n md: 'h-2',\n lg: 'h-3',\n};\n\nexport function Progress({\n value = 0,\n indeterminate = false,\n label,\n showValue = false,\n variant = 'default',\n size = 'md',\n className,\n}: ProgressProps) {\n const clampedValue = Math.min(100, Math.max(0, value));\n\n return (\n <div className={cn('w-full', className)}>\n {(label || showValue) && (\n <div className=\"flex justify-between items-center mb-2\">\n {label && <span className=\"text-sm font-medium\">{label}</span>}\n {showValue && !indeterminate && (\n <span className=\"text-sm text-muted-foreground\">{clampedValue}%</span>\n )}\n </div>\n )}\n <div\n className={cn(\n 'w-full overflow-hidden rounded-full bg-muted',\n sizeStyles[size],\n )}\n role=\"progressbar\"\n aria-valuenow={indeterminate ? undefined : clampedValue}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={label || 'Progress'}\n >\n <div\n className={cn(\n 'h-full rounded-full transition-all duration-500 ease-out',\n variantStyles[variant],\n indeterminate &&\n 'animate-pulse w-full',\n )}\n style={{\n width: indeterminate ? '100%' : `${clampedValue}%`,\n }}\n />\n </div>\n </div>\n );\n}\n","import { type ReactNode, createContext, useContext } from 'react';\nimport { cn } from '../../lib/utils';\n\n// Table Context for shared state\ninterface TableContextValue {\n variant?: 'default' | 'bordered' | 'striped' | 'compact';\n interactive?: boolean;\n}\n\nconst TableContext = createContext<TableContextValue>({});\n\n// Root Table Component\ninterface TableRootProps {\n children: ReactNode;\n variant?: 'default' | 'bordered' | 'striped' | 'compact';\n interactive?: boolean;\n className?: string;\n}\n\nfunction TableRoot({\n children,\n variant = 'default',\n interactive = false,\n className,\n}: TableRootProps) {\n return (\n <TableContext.Provider value={{ variant, interactive }}>\n <div className={cn('relative w-full overflow-x-auto', className)}>\n <table className=\"w-full caption-bottom text-sm\">{children}</table>\n </div>\n </TableContext.Provider>\n );\n}\n\n// Table Header\ninterface TableHeaderProps {\n children: ReactNode;\n className?: string;\n}\n\nfunction TableHeader({ children, className }: TableHeaderProps) {\n return <thead className={cn('[&_tr]:border-b', className)}>{children}</thead>;\n}\n\n// Table Body\ninterface TableBodyProps {\n children: ReactNode;\n className?: string;\n}\n\nfunction TableBody({ children, className }: TableBodyProps) {\n return <tbody className={cn('[&_tr:last-child]:border-0', className)}>{children}</tbody>;\n}\n\n// Table Row\ninterface TableRowProps {\n children: ReactNode;\n onClick?: () => void;\n selected?: boolean;\n className?: string;\n}\n\nfunction TableRow({ children, onClick, selected = false, className }: TableRowProps) {\n const { interactive } = useContext(TableContext);\n const isClickable = onClick || interactive;\n\n return (\n <tr\n className={cn(\n 'border-b transition-colors',\n isClickable && 'cursor-pointer hover:bg-muted/50 data-[state=selected]:bg-muted',\n selected && 'bg-muted',\n className,\n )}\n onClick={onClick}\n role={onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n data-state={selected ? 'selected' : undefined}\n onKeyDown={(e) => {\n if (onClick && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onClick();\n }\n }}\n >\n {children}\n </tr>\n );\n}\n\n// Table Head Cell\ninterface TableHeadCellProps {\n children: ReactNode;\n align?: 'left' | 'center' | 'right';\n sortable?: boolean;\n sorted?: 'asc' | 'desc' | false;\n onSort?: () => void;\n className?: string;\n}\n\nfunction TableHeadCell({\n children,\n align = 'left',\n sortable = false,\n sorted = false,\n onSort,\n className,\n}: TableHeadCellProps) {\n const handleClick = () => {\n if (sortable && onSort) {\n onSort();\n }\n };\n\n return (\n <th\n className={cn(\n 'h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0',\n align === 'center' && 'text-center',\n align === 'right' && 'text-right',\n sortable && 'cursor-pointer select-none hover:bg-muted/50 transition-colors',\n className,\n )}\n onClick={handleClick}\n role={sortable ? 'button' : undefined}\n tabIndex={sortable ? 0 : undefined}\n aria-sort={sorted ? (sorted === 'asc' ? 'ascending' : 'descending') : undefined}\n onKeyDown={(e) => {\n if (sortable && onSort && (e.key === 'Enter' || e.key === ' ')) {\n e.preventDefault();\n onSort();\n }\n }}\n >\n <div\n className={cn(\n 'flex items-center gap-2',\n align === 'center' && 'justify-center',\n align === 'right' && 'justify-end',\n )}\n >\n {children}\n {sortable && (\n <span className=\"text-xs\" aria-hidden=\"true\">\n {sorted === 'asc' ? '↑' : sorted === 'desc' ? '↓' : '↕'}\n </span>\n )}\n </div>\n </th>\n );\n}\n\n// Table Cell\ninterface TableCellProps {\n children: ReactNode;\n align?: 'left' | 'center' | 'right';\n className?: string;\n}\n\nfunction TableCell({ children, align = 'left', className }: TableCellProps) {\n return (\n <td\n className={cn(\n 'p-4 align-middle [&:has([role=checkbox])]:pr-0',\n align === 'center' && 'text-center',\n align === 'right' && 'text-right',\n className,\n )}\n >\n {children}\n </td>\n );\n}\n\n// Table Footer\ninterface TableFooterProps {\n children: ReactNode;\n className?: string;\n}\n\nfunction TableFooter({ children, className }: TableFooterProps) {\n return <tfoot className={cn('border-t font-medium', className)}>{children}</tfoot>;\n}\n\n// Table Caption\ninterface TableCaptionProps {\n children: ReactNode;\n className?: string;\n}\n\nfunction TableCaption({ children, className }: TableCaptionProps) {\n return (\n <caption className={cn('mt-4 text-sm text-muted-foreground', className)}>{children}</caption>\n );\n}\n\n// Composable Table Component\nexport const Table = {\n Root: TableRoot,\n Header: TableHeader,\n Body: TableBody,\n Row: TableRow,\n HeadCell: TableHeadCell,\n Cell: TableCell,\n Footer: TableFooter,\n Caption: TableCaption,\n};\n\n// Export types\nexport type {\n TableRootProps,\n TableHeaderProps,\n TableBodyProps,\n TableRowProps,\n TableHeadCellProps,\n TableCellProps,\n TableFooterProps,\n TableCaptionProps,\n};\n","import { useState } from 'react';\nimport { cn } from '../../lib/utils';\nimport { Button } from '../Button/Button';\nimport { Table } from '../Table/Table';\n\n// Product type definition\nexport interface Product {\n id: string;\n name: string;\n price: number;\n expiration: string; // ISO 8601 date string\n uploadId: string;\n createdAt: string; // ISO 8601 date string\n rates?: Array<{\n id: string;\n currency: string;\n rate: number;\n convertedPrice: number;\n }>;\n}\n\ninterface ProductsTableProps {\n products: Product[];\n isLoading?: boolean;\n isError?: boolean;\n error?: { message?: string };\n onRefresh?: () => void;\n onProductClick?: (product: Product) => void;\n className?: string;\n currency?: string;\n sortField?: SortField;\n sortDirection?: SortDirection;\n onSort?: (field: SortField, direction: SortDirection) => void;\n}\n\ntype SortField = 'name' | 'price' | 'expiration';\ntype SortDirection = 'asc' | 'desc';\n\nexport function ProductsTable({\n products,\n isLoading = false,\n isError = false,\n error,\n onRefresh,\n onProductClick,\n className,\n currency = 'USD',\n sortField: externalSortField,\n sortDirection: externalSortDirection,\n onSort,\n}: ProductsTableProps) {\n const [internalSortField, setInternalSortField] = useState<SortField>('name');\n const [internalSortDirection, setInternalSortDirection] = useState<SortDirection>('asc');\n\n // Use external sort state if provided, otherwise use internal state\n const sortField = externalSortField ?? internalSortField;\n const sortDirection = externalSortDirection ?? internalSortDirection;\n\n const handleSort = (field: SortField) => {\n const newDirection = sortField === field && sortDirection === 'asc' ? 'desc' : 'asc';\n\n if (onSort) {\n // If external sort handler is provided, use it\n onSort(field, newDirection);\n } else {\n // Otherwise, use internal state\n setInternalSortField(field);\n setInternalSortDirection(newDirection);\n }\n };\n\n const sortedProducts = [...products].sort((a, b) => {\n let comparison = 0;\n\n switch (sortField) {\n case 'name':\n comparison = a.name.localeCompare(b.name);\n break;\n case 'price':\n comparison = a.price - b.price;\n break;\n case 'expiration':\n comparison = new Date(a.expiration).getTime() - new Date(b.expiration).getTime();\n break;\n }\n\n return sortDirection === 'asc' ? comparison : -comparison;\n });\n\n const formatPrice = (price: number) => {\n return new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: currency || 'USD',\n }).format(price);\n };\n\n const formatDate = (dateString: string) => {\n return new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n }).format(new Date(dateString));\n };\n\n if (isError) {\n return (\n <div className=\"flex flex-col items-center justify-center gap-4 p-8 border rounded-lg text-center\">\n <h3 className=\"text-2xl font-semibold\">Error Loading Products</h3>\n <p className=\"text-sm max-w-md\">{error?.message || 'Failed to load products'}</p>\n {onRefresh && (\n <Button onClick={onRefresh} variant=\"default\">\n Retry\n </Button>\n )}\n </div>\n );\n }\n\n return (\n <div className={cn('w-full', className)}>\n {onRefresh && (\n <div className=\"flex items-center justify-between py-4 mb-4 border-b\">\n <h2 className=\"text-2xl font-semibold\">Products Catalog</h2>\n <Button onClick={onRefresh} variant=\"ghost\" size=\"sm\" loading={isLoading}>\n Refresh\n </Button>\n </div>\n )}\n\n <Table.Root variant=\"bordered\" interactive>\n <Table.Header>\n <Table.Row>\n <Table.HeadCell\n sortable\n sorted={sortField === 'name' ? sortDirection : false}\n onSort={() => handleSort('name')}\n >\n Product Name\n </Table.HeadCell>\n <Table.HeadCell\n align=\"right\"\n sortable\n sorted={sortField === 'price' ? sortDirection : false}\n onSort={() => handleSort('price')}\n >\n Price\n </Table.HeadCell>\n <Table.HeadCell\n align=\"right\"\n sortable\n sorted={sortField === 'expiration' ? sortDirection : false}\n onSort={() => handleSort('expiration')}\n >\n Expiration Date\n </Table.HeadCell>\n </Table.Row>\n </Table.Header>\n\n <Table.Body>\n {isLoading ? (\n <Table.Row>\n <Table.Cell align=\"center\" className=\"py-8 text-center italic\">\n Loading products...\n </Table.Cell>\n </Table.Row>\n ) : sortedProducts.length === 0 ? (\n <Table.Row>\n <Table.Cell align=\"center\" className=\"py-8 text-center text-muted-foreground italic\">\n No products found\n </Table.Cell>\n </Table.Row>\n ) : (\n sortedProducts.map((product) => (\n <Table.Row\n key={product.id}\n onClick={onProductClick ? () => onProductClick(product) : undefined}\n >\n <Table.Cell>\n {product.name}\n </Table.Cell>\n <Table.Cell align=\"right\" className=\"font-medium\">\n {(() => {\n if (currency === 'USD') return formatPrice(product.price);\n const rate = product.rates?.find((r) => r.currency === currency);\n return rate ? formatPrice(rate.convertedPrice) : formatPrice(product.price);\n })()}\n </Table.Cell>\n <Table.Cell align=\"right\">\n {formatDate(product.expiration)}\n </Table.Cell>\n </Table.Row>\n ))\n )}\n </Table.Body>\n </Table.Root>\n </div>\n );\n}\n\nexport type { ProductsTableProps };\n","import { Select } from '@ark-ui/react';\nimport { cn } from '../../lib/utils';\nimport type { SelectContentProps } from './Select.types';\n\nexport function SelectContent({ children, className }: SelectContentProps) {\n return (\n <Select.Positioner style={{ zIndex: 9999 }}>\n <Select.Content\n style={{ backgroundColor: 'white', zIndex: 9999 }}\n className={cn(\n 'w-full mt-1 max-h-60 overflow-auto rounded-md border border-gray-200 shadow-lg',\n 'data-[state=open]:animate-in data-[state=closed]:animate-out',\n 'data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n 'data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95',\n className\n )}\n >\n {children}\n </Select.Content>\n </Select.Positioner>\n );\n}\n","import { Select } from '@ark-ui/react';\n\nexport function SelectHiddenSelect() {\n return <Select.HiddenSelect />;\n}\n","import { Select } from '@ark-ui/react';\nimport { Check } from 'lucide-react';\nimport { cn } from '../../lib/utils';\nimport type { SelectItemProps } from './Select.types';\n\nexport function SelectItem({ className, children, ...props }: SelectItemProps) {\n return (\n <Select.Item\n className={cn(\n 'relative flex cursor-pointer items-center gap-2 px-3 py-2 text-sm outline-none',\n 'hover:bg-gray-100',\n 'data-[highlighted]:bg-gray-100',\n 'data-[disabled]:pointer-events-none data-[disabled]:opacity-50',\n className\n )}\n {...props}\n >\n <Select.ItemText>{children}</Select.ItemText>\n <Select.ItemIndicator className=\"ml-auto\">\n <Check className=\"h-2 w-2 text-blue-600\" />\n </Select.ItemIndicator>\n </Select.Item>\n );\n}\n","import { Select } from '@ark-ui/react';\nimport { cn } from '../../lib/utils';\nimport type { SelectItemGroupProps } from './Select.types';\n\nexport function SelectItemGroup({ className, children, ...props }: SelectItemGroupProps) {\n return (\n <Select.ItemGroup className={cn('py-1', className)} {...props}>\n {children}\n </Select.ItemGroup>\n );\n}\n","import { Select } from '@ark-ui/react';\nimport { cn } from '../../lib/utils';\nimport type { SelectItemGroupLabelProps } from './Select.types';\n\nexport function SelectItemGroupLabel({ className, children, ...props }: SelectItemGroupLabelProps) {\n return (\n <Select.ItemGroupLabel\n className={cn('px-3 py-1.5 text-xs font-semibold text-gray-500', className)}\n {...props}\n >\n {children}\n </Select.ItemGroupLabel>\n );\n}\n","import { Select } from '@ark-ui/react';\nimport { cn } from '../../lib/utils';\nimport type { SelectLabelProps } from './Select.types';\n\nexport function SelectLabel({ children, className }: SelectLabelProps) {\n return (\n <Select.Label className={cn('mb-1 block text-sm font-medium text-gray-700', className)}>\n {children}\n </Select.Label>\n );\n}\n","import { createContext } from 'react';\n\n// Select Context for shared state\n// Reserved for future use: variant, error state, disabled state, etc.\ninterface SelectContextValue {\n // Future: variant?: 'default' | 'outlined' | 'filled';\n // Future: error?: boolean;\n // Future: disabled?: boolean;\n}\n\nexport const SelectContext = createContext<SelectContextValue>({});\n","import { createListCollection, Select } from '@ark-ui/react';\nimport { useMemo } from 'react';\nimport type { SelectRootProps } from './Select.types';\nimport { SelectContext } from './SelectContext';\n\nexport function SelectRoot<T extends Select.CollectionItem = Select.CollectionItem>(\n props: SelectRootProps<T>\n) {\n const { items, ...rest } = props;\n\n const collection = useMemo(() => createListCollection({ items }), [items]);\n\n return (\n <SelectContext.Provider value={{}}>\n <Select.Root collection={collection} positioning={{ sameWidth: true }} {...rest} />\n </SelectContext.Provider>\n );\n}\n","import { Select } from '@ark-ui/react';\nimport { ChevronDown } from 'lucide-react';\nimport type { SelectTriggerProps } from './Select.types';\nimport { cn } from '../../lib/utils';\n\nexport function SelectTrigger({ className, placeholder }: SelectTriggerProps) {\n return (\n <Select.Control\n className={cn(\n 'flex items-center justify-between gap-2 rounded-md border border-gray-300 bg-white px-3 py-2 text-sm',\n 'hover:border-gray-400',\n 'focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n >\n <Select.Trigger className=\"flex flex-1 items-center gap-2\">\n <Select.ValueText placeholder={placeholder || 'Select an option'} />\n </Select.Trigger>\n <Select.Indicator>\n <ChevronDown className=\"h-4 w-4 text-gray-500\" />\n </Select.Indicator>\n </Select.Control>\n );\n}\n","import { SelectContent } from './SelectContent';\nimport { SelectHiddenSelect } from './SelectHiddenSelect';\nimport { SelectItem } from './SelectItem';\nimport { SelectItemGroup } from './SelectItemGroup';\nimport { SelectItemGroupLabel } from './SelectItemGroupLabel';\nimport { SelectLabel } from './SelectLabel';\nimport { SelectRoot } from './SelectRoot';\nimport { SelectTrigger } from './SelectTrigger';\nimport type { SelectRootProps } from './Select.types';\nimport type { Select as ArkSelect } from '@ark-ui/react';\n\nexport const Select = {\n Root: SelectRoot,\n Label: SelectLabel,\n Trigger: SelectTrigger,\n Content: SelectContent,\n Item: SelectItem,\n ItemGroup: SelectItemGroup,\n ItemGroupLabel: SelectItemGroupLabel,\n HiddenSelect: SelectHiddenSelect,\n};\n\nexport type SelectProps = SelectRootProps;\nexport type CollectionItem = ArkSelect.CollectionItem;\n\n// Export SelectContext for consumers\nexport { SelectContext } from './SelectContext';\n","import { createMachine, subscribe, guards, ref, isMachine } from '@zag-js/core';\nimport { createScope, raf, queryAll, dataAttr, contains, addDomEvent, MAX_Z_INDEX } from '@zag-js/dom-query';\nimport { compact, warn, runIfFn, uuid } from '@zag-js/utils';\nimport { createAnatomy } from '@zag-js/anatomy';\nimport { trackDismissableBranch } from '@zag-js/dismissable';\n\n// src/toast-group.connect.ts\nvar anatomy = createAnatomy(\"toast\").parts(\n \"group\",\n \"root\",\n \"title\",\n \"description\",\n \"actionTrigger\",\n \"closeTrigger\"\n);\nvar parts = anatomy.build();\nvar dom = createScope({\n getRegionId: (placement) => `toast-group:${placement}`,\n getRegionEl: (ctx, placement) => dom.getById(ctx, `toast-group:${placement}`),\n getRootId: (ctx) => `toast:${ctx.id}`,\n getRootEl: (ctx) => dom.getById(ctx, dom.getRootId(ctx)),\n getTitleId: (ctx) => `toast:${ctx.id}:title`,\n getDescriptionId: (ctx) => `toast:${ctx.id}:description`,\n getCloseTriggerId: (ctx) => `toast${ctx.id}:close`\n});\nfunction getToastsByPlacement(toasts, placement) {\n return toasts.filter((toast) => toast.state.context.placement === placement);\n}\nvar defaultTimeouts = {\n info: 5e3,\n error: 5e3,\n success: 2e3,\n loading: Infinity,\n DEFAULT: 5e3\n};\nfunction getToastDuration(duration, type) {\n return duration ?? defaultTimeouts[type] ?? defaultTimeouts.DEFAULT;\n}\nfunction getGroupPlacementStyle(ctx, placement) {\n const offset = ctx.offsets;\n const computedOffset = typeof offset === \"string\" ? { left: offset, right: offset, bottom: offset, top: offset } : offset;\n const rtl = ctx.dir === \"rtl\";\n const computedPlacement = placement.replace(\"-start\", rtl ? \"-right\" : \"-left\").replace(\"-end\", rtl ? \"-left\" : \"-right\");\n const isRighty = computedPlacement.includes(\"right\");\n const isLefty = computedPlacement.includes(\"left\");\n const styles = {\n position: \"fixed\",\n pointerEvents: ctx.count > 0 ? void 0 : \"none\",\n display: \"flex\",\n flexDirection: \"column\",\n \"--gap\": `${ctx.gap}px`,\n \"--first-height\": `${ctx.heights[0]?.height || 0}px`,\n zIndex: MAX_Z_INDEX\n };\n let alignItems = \"center\";\n if (isRighty) alignItems = \"flex-end\";\n if (isLefty) alignItems = \"flex-start\";\n styles.alignItems = alignItems;\n if (computedPlacement.includes(\"top\")) {\n const offset2 = computedOffset.top;\n styles.top = `max(env(safe-area-inset-top, 0px), ${offset2})`;\n }\n if (computedPlacement.includes(\"bottom\")) {\n const offset2 = computedOffset.bottom;\n styles.bottom = `max(env(safe-area-inset-bottom, 0px), ${offset2})`;\n }\n if (!computedPlacement.includes(\"left\")) {\n const offset2 = computedOffset.right;\n styles.insetInlineEnd = `calc(env(safe-area-inset-right, 0px) + ${offset2})`;\n }\n if (!computedPlacement.includes(\"right\")) {\n const offset2 = computedOffset.left;\n styles.insetInlineStart = `calc(env(safe-area-inset-left, 0px) + ${offset2})`;\n }\n return styles;\n}\nfunction getPlacementStyle(ctx, visible) {\n const [side] = ctx.placement.split(\"-\");\n const sibling = !ctx.frontmost;\n const overlap = !ctx.stacked;\n const styles = {\n position: \"absolute\",\n pointerEvents: \"auto\",\n \"--opacity\": \"0\",\n \"--remove-delay\": `${ctx.removeDelay}ms`,\n \"--duration\": `${ctx.type === \"loading\" ? Number.MAX_SAFE_INTEGER : ctx.duration}ms`,\n \"--initial-height\": `${ctx.height}px`,\n \"--offset\": `${ctx.offset}px`,\n \"--index\": ctx.index,\n \"--z-index\": ctx.zIndex,\n \"--lift-amount\": \"calc(var(--lift) * var(--gap))\",\n \"--y\": \"100%\",\n \"--x\": \"0\"\n };\n const assign = (overrides) => Object.assign(styles, overrides);\n if (side === \"top\") {\n assign({\n top: \"0\",\n \"--sign\": \"-1\",\n \"--y\": \"-100%\",\n \"--lift\": \"1\"\n });\n } else if (side === \"bottom\") {\n assign({\n bottom: \"0\",\n \"--sign\": \"1\",\n \"--y\": \"100%\",\n \"--lift\": \"-1\"\n });\n }\n if (ctx.mounted) {\n assign({\n \"--y\": \"0\",\n \"--opacity\": \"1\"\n });\n if (ctx.stacked) {\n assign({\n \"--y\": \"calc(var(--lift) * var(--offset))\",\n \"--height\": \"var(--initial-height)\"\n });\n }\n }\n if (!visible) {\n assign({\n \"--opacity\": \"0\",\n pointerEvents: \"none\"\n });\n }\n if (sibling && overlap) {\n assign({\n \"--base-scale\": \"var(--index) * 0.05 + 1\",\n \"--y\": \"calc(var(--lift-amount) * var(--index))\",\n \"--scale\": \"calc(-1 * var(--base-scale))\",\n \"--height\": \"var(--first-height)\"\n });\n if (!visible) {\n assign({\n \"--y\": \"calc(var(--sign) * 40%)\"\n });\n }\n }\n if (sibling && ctx.stacked && !visible) {\n assign({\n \"--y\": \"calc(var(--lift) * var(--offset) + var(--lift) * -100%)\"\n });\n }\n if (ctx.frontmost && !visible) {\n assign({\n \"--y\": \"calc(var(--lift) * -100%)\"\n });\n }\n return styles;\n}\nfunction getGhostBeforeStyle(ctx, visible) {\n const styles = {\n position: \"absolute\",\n inset: \"0\",\n scale: \"1 2\",\n pointerEvents: visible ? \"none\" : \"auto\"\n };\n const assign = (overrides) => Object.assign(styles, overrides);\n if (ctx.frontmost && !visible) {\n assign({\n height: \"calc(var(--initial-height) + 80%)\"\n });\n }\n return styles;\n}\nfunction getGhostAfterStyle(_ctx, _visible) {\n return {\n position: \"absolute\",\n left: \"0\",\n height: \"calc(var(--gap) + 2px)\",\n bottom: \"100%\",\n width: \"100%\"\n };\n}\n\n// src/toast-group.connect.ts\nfunction groupConnect(serviceOrState, send, normalize) {\n function getState() {\n const result = isMachine(serviceOrState) ? serviceOrState.getState() : serviceOrState;\n return result;\n }\n function getToastsByPlacementImpl(placement) {\n return getToastsByPlacement(getState().context.toasts, placement);\n }\n function isVisible(id) {\n const toasts = getState().context.toasts;\n if (!toasts.length) return false;\n return !!toasts.find((toast) => toast.id == id);\n }\n function create(options) {\n const uid = `toast:${uuid()}`;\n const id = options.id ? options.id : uid;\n if (isVisible(id)) return id;\n send({ type: \"ADD_TOAST\", toast: { ...options, id } });\n return id;\n }\n function update(id, options) {\n if (!isVisible(id)) return id;\n send({ type: \"UPDATE_TOAST\", id, toast: options });\n return id;\n }\n function upsert(options) {\n const { id } = options;\n const visible = id ? isVisible(id) : false;\n if (visible && id != null) {\n return update(id, options);\n } else {\n return create(options);\n }\n }\n function dismiss(id) {\n if (id == null) {\n send(\"DISMISS_ALL\");\n } else if (isVisible(id)) {\n send({ type: \"DISMISS_TOAST\", id });\n }\n }\n return {\n getCount() {\n return getState().context.count;\n },\n getPlacements() {\n const toasts = getState().context.toasts;\n const placements = toasts.map((toast) => toast.state.context.placement);\n return Array.from(new Set(placements));\n },\n getToastsByPlacement: getToastsByPlacementImpl,\n isVisible,\n create,\n update,\n upsert,\n dismiss,\n remove(id) {\n if (id == null) {\n send(\"REMOVE_ALL\");\n } else if (isVisible(id)) {\n send({ type: \"REMOVE_TOAST\", id });\n }\n },\n dismissByPlacement(placement) {\n const toasts = getToastsByPlacementImpl(placement);\n toasts.forEach((toast) => dismiss(toast.id));\n },\n loading(options) {\n return upsert({ ...options, type: \"loading\" });\n },\n success(options) {\n return upsert({ ...options, type: \"success\" });\n },\n error(options) {\n return upsert({ ...options, type: \"error\" });\n },\n promise(promise, options, shared = {}) {\n const id = upsert({ ...shared, ...options.loading, type: \"loading\" });\n runIfFn(promise).then((response) => {\n const successOptions = runIfFn(options.success, response);\n upsert({ ...shared, ...successOptions, id, type: \"success\" });\n }).catch((error) => {\n const errorOptions = runIfFn(options.error, error);\n upsert({ ...shared, ...errorOptions, id, type: \"error\" });\n }).finally(() => {\n options.finally?.();\n });\n return id;\n },\n pause(id) {\n if (id == null) {\n send(\"PAUSE_ALL\");\n } else if (isVisible(id)) {\n send({ type: \"PAUSE_TOAST\", id });\n }\n },\n resume(id) {\n if (id == null) {\n send(\"RESUME_ALL\");\n } else if (isVisible(id)) {\n send({ type: \"RESUME_TOAST\", id });\n }\n },\n getGroupProps(options) {\n const { placement, label = \"Notifications\" } = options;\n const state = getState();\n const hotkeyLabel = state.context.hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n const [side, align = \"center\"] = placement.split(\"-\");\n return normalize.element({\n ...parts.group.attrs,\n dir: state.context.dir,\n tabIndex: -1,\n \"aria-label\": `${placement} ${label} ${hotkeyLabel}`,\n id: dom.getRegionId(placement),\n \"data-placement\": placement,\n \"data-side\": side,\n \"data-align\": align,\n \"aria-live\": \"polite\",\n role: \"region\",\n style: getGroupPlacementStyle(state.context, placement),\n onMouseMove() {\n send({ type: \"REGION.POINTER_ENTER\", placement });\n },\n onMouseLeave() {\n send({ type: \"REGION.POINTER_LEAVE\", placement });\n },\n onFocus(event) {\n send({ type: \"REGION.FOCUS\", target: event.relatedTarget });\n },\n onBlur(event) {\n if (state.context.isFocusWithin && !contains(event.currentTarget, event.relatedTarget)) {\n send({ type: \"REGION.BLUR\" });\n }\n }\n });\n },\n subscribe(fn) {\n const state = getState();\n return subscribe(state.context.toasts, () => {\n const toasts = getToastsByPlacementImpl(state.context.placement);\n const contexts = toasts.map((toast) => toast.getState().context);\n fn(contexts);\n });\n }\n };\n}\nvar { not, and, or } = guards;\nfunction createToastMachine(options) {\n const { type = \"info\", duration, id = \"1\", placement = \"bottom\", removeDelay = 200, ...restProps } = options;\n const ctx = compact(restProps);\n const computedDuration = getToastDuration(duration, type);\n return createMachine(\n {\n id,\n context: {\n id,\n type,\n remaining: computedDuration,\n duration: computedDuration,\n removeDelay,\n createdAt: Date.now(),\n placement,\n ...ctx,\n height: 0,\n offset: 0,\n frontmost: false,\n mounted: false,\n index: -1,\n zIndex: 0\n },\n initial: type === \"loading\" ? \"visible:persist\" : \"visible\",\n on: {\n UPDATE: [\n {\n guard: and(\"hasTypeChanged\", \"isChangingToLoading\"),\n target: \"visible:persist\",\n actions: [\"setContext\"]\n },\n {\n guard: or(\"hasDurationChanged\", \"hasTypeChanged\"),\n target: \"visible:updating\",\n actions: [\"setContext\"]\n },\n {\n actions: [\"setContext\"]\n }\n ],\n MEASURE: {\n actions: [\"measureHeight\"]\n }\n },\n entry: [\"invokeOnVisible\"],\n activities: [\"trackHeight\"],\n states: {\n \"visible:updating\": {\n tags: [\"visible\", \"updating\"],\n after: {\n 0: \"visible\"\n }\n },\n \"visible:persist\": {\n tags: [\"visible\", \"paused\"],\n on: {\n RESUME: {\n guard: not(\"isLoadingType\"),\n target: \"visible\",\n actions: [\"setCreatedAt\"]\n },\n DISMISS: \"dismissing\"\n }\n },\n visible: {\n tags: [\"visible\"],\n after: {\n VISIBLE_DURATION: \"dismissing\"\n },\n on: {\n DISMISS: \"dismissing\",\n PAUSE: {\n target: \"visible:persist\",\n actions: \"setRemainingDuration\"\n }\n }\n },\n dismissing: {\n entry: \"invokeOnDismiss\",\n after: {\n REMOVE_DELAY: {\n target: \"unmounted\",\n actions: \"notifyParentToRemove\"\n }\n }\n },\n unmounted: {\n entry: \"invokeOnUnmount\",\n type: \"final\"\n }\n }\n },\n {\n activities: {\n trackHeight(ctx2, _evt, { self }) {\n let cleanup;\n raf(() => {\n const rootEl = dom.getRootEl(ctx2);\n if (!rootEl) return;\n ctx2.mounted = true;\n const ghosts = queryAll(rootEl, \"[data-ghost]\");\n warn(\n ghosts.length !== 2,\n \"[toast] No ghost element found in toast. Render the `ghostBefore` and `ghostAfter` elements\"\n );\n const syncHeight = () => {\n const originalHeight = rootEl.style.height;\n rootEl.style.height = \"auto\";\n const newHeight = rootEl.getBoundingClientRect().height;\n rootEl.style.height = originalHeight;\n ctx2.height = newHeight;\n self.sendParent({ type: \"UPDATE_HEIGHT\", id: self.id, height: newHeight, placement: ctx2.placement });\n };\n syncHeight();\n const win = dom.getWin(ctx2);\n const observer = new win.MutationObserver(syncHeight);\n observer.observe(rootEl, { childList: true, subtree: true, characterData: true });\n cleanup = () => observer.disconnect();\n });\n return () => cleanup?.();\n }\n },\n guards: {\n isChangingToLoading: (_, evt) => evt.toast?.type === \"loading\",\n isLoadingType: (ctx2) => ctx2.type === \"loading\",\n hasTypeChanged: (ctx2, evt) => evt.toast?.type != null && evt.toast.type !== ctx2.type,\n hasDurationChanged: (ctx2, evt) => evt.toast?.duration != null && evt.toast.duration !== ctx2.duration\n },\n delays: {\n VISIBLE_DURATION: (ctx2) => ctx2.remaining,\n REMOVE_DELAY: (ctx2) => ctx2.removeDelay\n },\n actions: {\n measureHeight(ctx2, _evt, { self }) {\n raf(() => {\n const rootEl = dom.getRootEl(ctx2);\n if (!rootEl) return;\n ctx2.mounted = true;\n const originalHeight = rootEl.style.height;\n rootEl.style.height = \"auto\";\n const newHeight = rootEl.getBoundingClientRect().height;\n rootEl.style.height = originalHeight;\n ctx2.height = newHeight;\n self.sendParent({ type: \"UPDATE_HEIGHT\", id: self.id, height: newHeight, placement: ctx2.placement });\n });\n },\n setRemainingDuration(ctx2) {\n ctx2.remaining -= Date.now() - ctx2.createdAt;\n },\n setCreatedAt(ctx2) {\n ctx2.createdAt = Date.now();\n },\n notifyParentToRemove(_ctx, _evt, { self }) {\n self.sendParent({ type: \"REMOVE_TOAST\", id: self.id });\n },\n invokeOnDismiss(ctx2) {\n ctx2.onStatusChange?.({ status: \"dismissing\" });\n },\n invokeOnUnmount(ctx2) {\n ctx2.onStatusChange?.({ status: \"unmounted\" });\n },\n invokeOnVisible(ctx2) {\n ctx2.onStatusChange?.({ status: \"visible\" });\n },\n setContext(ctx2, evt) {\n const duration2 = evt.toast?.duration;\n const type2 = evt.toast?.type ?? ctx2.type;\n const computedDuration2 = getToastDuration(duration2, type2);\n Object.assign(ctx2, {\n ...evt.toast,\n duration: computedDuration2,\n remaining: computedDuration2\n });\n }\n }\n }\n );\n}\n\n// src/toast-group.machine.ts\nfunction groupMachine(userContext) {\n const ctx = compact(userContext);\n return createMachine(\n {\n id: \"toaster\",\n initial: ctx.overlap ? \"overlap\" : \"stack\",\n context: {\n dir: \"ltr\",\n max: Number.MAX_SAFE_INTEGER,\n gap: 16,\n pauseOnPageIdle: false,\n hotkey: [\"altKey\", \"KeyT\"],\n offsets: \"1rem\",\n placement: \"bottom\",\n removeDelay: 200,\n ...ctx,\n toasts: [],\n lastFocusedEl: null,\n isFocusWithin: false,\n heights: []\n },\n computed: {\n count: (ctx2) => ctx2.toasts.length\n },\n activities: [\"trackDocumentVisibility\", \"trackHotKeyPress\"],\n watch: {\n toasts: [\"collapsedIfEmpty\", \"setDismissableBranch\"]\n },\n exit: [\"removeToasts\", \"clearDismissableBranch\", \"clearLastFocusedEl\"],\n on: {\n PAUSE_TOAST: {\n actions: [\"pauseToast\"]\n },\n PAUSE_ALL: {\n actions: [\"pauseToasts\"]\n },\n RESUME_TOAST: {\n actions: [\"resumeToast\"]\n },\n RESUME_ALL: {\n actions: [\"resumeToasts\"]\n },\n ADD_TOAST: {\n guard: \"isWithinRange\",\n actions: [\"createToast\", \"syncToastIndex\"]\n },\n UPDATE_TOAST: {\n actions: [\"updateToast\"]\n },\n DISMISS_TOAST: {\n actions: [\"dismissToast\"]\n },\n DISMISS_ALL: {\n actions: [\"dismissToasts\"]\n },\n REMOVE_TOAST: {\n actions: [\"removeToast\", \"syncToastIndex\", \"syncToastOffset\"]\n },\n REMOVE_ALL: {\n actions: [\"removeToasts\"]\n },\n UPDATE_HEIGHT: {\n actions: [\"syncHeights\", \"syncToastOffset\"]\n },\n \"DOC.HOTKEY\": {\n actions: [\"focusRegionEl\"]\n },\n \"REGION.BLUR\": [\n {\n guard: \"isOverlapping\",\n target: \"overlap\",\n actions: [\"resumeToasts\", \"restoreLastFocusedEl\"]\n },\n {\n actions: [\"resumeToasts\", \"restoreLastFocusedEl\"]\n }\n ]\n },\n states: {\n stack: {\n entry: [\"expandToasts\"],\n on: {\n \"REGION.POINTER_LEAVE\": [\n {\n guard: \"isOverlapping\",\n target: \"overlap\",\n actions: [\"resumeToasts\"]\n },\n {\n actions: [\"resumeToasts\"]\n }\n ],\n \"REGION.OVERLAP\": {\n target: \"overlap\"\n },\n \"REGION.FOCUS\": {\n actions: [\"setLastFocusedEl\", \"pauseToasts\"]\n },\n \"REGION.POINTER_ENTER\": {\n actions: [\"pauseToasts\"]\n }\n }\n },\n overlap: {\n entry: [\"collapseToasts\"],\n on: {\n \"REGION.STACK\": {\n target: \"stack\"\n },\n \"REGION.POINTER_ENTER\": {\n target: \"stack\",\n actions: [\"pauseToasts\"]\n },\n \"REGION.FOCUS\": {\n target: \"stack\",\n actions: [\"setLastFocusedEl\", \"pauseToasts\"]\n }\n }\n }\n }\n },\n {\n guards: {\n isWithinRange: (ctx2) => ctx2.toasts.length < ctx2.max,\n isOverlapping: (ctx2) => !!ctx2.overlap\n },\n activities: {\n trackHotKeyPress(ctx2, _evt, { send }) {\n const handleKeyDown = (event) => {\n const isHotkeyPressed = ctx2.hotkey.every((key) => event[key] || event.code === key);\n if (!isHotkeyPressed) return;\n send({ type: \"DOC.HOTKEY\" });\n };\n return addDomEvent(document, \"keydown\", handleKeyDown, { capture: true });\n },\n trackDocumentVisibility(ctx2, _evt, { send }) {\n if (!ctx2.pauseOnPageIdle) return;\n const doc = dom.getDoc(ctx2);\n return addDomEvent(doc, \"visibilitychange\", () => {\n send(doc.visibilityState === \"hidden\" ? \"PAUSE_ALL\" : \"RESUME_ALL\");\n });\n }\n },\n actions: {\n setDismissableBranch(ctx2) {\n const currentToasts = getToastsByPlacement(ctx2.toasts, ctx2.placement);\n const hasToasts = currentToasts.length > 0;\n if (!hasToasts) {\n ctx2._cleanup?.();\n return;\n }\n if (hasToasts && ctx2._cleanup) {\n return;\n }\n const groupEl = () => dom.getRegionEl(ctx2, ctx2.placement);\n ctx2._cleanup = trackDismissableBranch(groupEl, { defer: true });\n },\n clearDismissableBranch(ctx2) {\n ctx2._cleanup?.();\n },\n focusRegionEl(ctx2) {\n queueMicrotask(() => {\n dom.getRegionEl(ctx2, ctx2.placement)?.focus();\n });\n },\n expandToasts(ctx2) {\n each(ctx2, (toast) => {\n toast.state.context.stacked = true;\n });\n },\n collapseToasts(ctx2) {\n each(ctx2, (toast) => {\n toast.state.context.stacked = false;\n });\n },\n collapsedIfEmpty(ctx2, _evt, { send }) {\n if (!ctx2.overlap || ctx2.toasts.length > 1) return;\n send(\"REGION.OVERLAP\");\n },\n pauseToast(_ctx, evt, { self }) {\n self.sendChild(\"PAUSE\", evt.id);\n },\n pauseToasts(ctx2) {\n ctx2.toasts.forEach((toast) => toast.send(\"PAUSE\"));\n },\n resumeToast(_ctx, evt, { self }) {\n self.sendChild(\"RESUME\", evt.id);\n },\n resumeToasts(ctx2) {\n ctx2.toasts.forEach((toast) => toast.send(\"RESUME\"));\n },\n measureToasts(ctx2) {\n ctx2.toasts.forEach((toast) => toast.send(\"MEASURE\"));\n },\n createToast(ctx2, evt, { self, getState }) {\n const options = {\n placement: ctx2.placement,\n duration: ctx2.duration,\n removeDelay: ctx2.removeDelay,\n ...evt.toast,\n dir: ctx2.dir,\n getRootNode: ctx2.getRootNode,\n stacked: getState().matches(\"stack\")\n };\n const toast = createToastMachine(options);\n const actor = self.spawn(toast);\n ctx2.toasts = [actor, ...ctx2.toasts];\n },\n updateToast(_ctx, evt, { self }) {\n self.sendChild({ type: \"UPDATE\", toast: evt.toast }, evt.id);\n },\n dismissToast(_ctx, evt, { self }) {\n self.sendChild(\"DISMISS\", evt.id);\n },\n dismissToasts(ctx2) {\n ctx2.toasts.forEach((toast) => toast.send(\"DISMISS\"));\n },\n removeToast(ctx2, evt, { self }) {\n self.stopChild(evt.id);\n ctx2.toasts = ctx2.toasts.filter((toast) => toast.id !== evt.id);\n ctx2.heights = ctx2.heights.filter((height) => height.id !== evt.id);\n },\n removeToasts(ctx2, _evt, { self }) {\n ctx2.toasts.forEach((toast) => self.stopChild(toast.id));\n ctx2.toasts = [];\n ctx2.heights = [];\n },\n syncHeights(ctx2, evt) {\n const existing = ctx2.heights.find((height) => height.id === evt.id);\n if (existing) {\n existing.height = evt.height;\n existing.placement = evt.placement;\n } else {\n const newHeight = { id: evt.id, height: evt.height, placement: evt.placement };\n ctx2.heights = [newHeight, ...ctx2.heights];\n }\n },\n syncToastIndex(ctx2) {\n each(ctx2, (toast, index, toasts) => {\n toast.state.context.index = index;\n toast.state.context.frontmost = index === 0;\n toast.state.context.zIndex = toasts.length - index;\n });\n },\n syncToastOffset(ctx2, evt) {\n const placement = evt.placement ?? ctx2.placement;\n each({ ...ctx2, placement }, (toast) => {\n const heightIndex = Math.max(\n ctx2.heights.findIndex((height) => height.id === toast.id),\n 0\n );\n const toastsHeightBefore = ctx2.heights.reduce((prev, curr, reducerIndex) => {\n if (reducerIndex >= heightIndex) return prev;\n return prev + curr.height;\n }, 0);\n toast.state.context.offset = heightIndex * ctx2.gap + toastsHeightBefore;\n });\n },\n setLastFocusedEl(ctx2, evt) {\n if (ctx2.isFocusWithin || !evt.target) return;\n ctx2.isFocusWithin = true;\n ctx2.lastFocusedEl = ref(evt.target);\n },\n restoreLastFocusedEl(ctx2) {\n ctx2.isFocusWithin = false;\n if (!ctx2.lastFocusedEl) return;\n ctx2.lastFocusedEl.focus({ preventScroll: true });\n ctx2.lastFocusedEl = null;\n },\n clearLastFocusedEl(ctx2) {\n if (!ctx2.lastFocusedEl) return;\n ctx2.lastFocusedEl.focus({ preventScroll: true });\n ctx2.lastFocusedEl = null;\n ctx2.isFocusWithin = false;\n }\n }\n }\n );\n}\nfunction each(ctx, fn) {\n const currentToasts = getToastsByPlacement(ctx.toasts, ctx.placement);\n currentToasts.forEach(fn);\n}\nfunction connect(state, send, normalize) {\n const visible = state.hasTag(\"visible\");\n const paused = state.hasTag(\"paused\");\n const placement = state.context.placement;\n const type = state.context.type;\n const [side, align = \"center\"] = placement.split(\"-\");\n return {\n type,\n title: state.context.title,\n description: state.context.description,\n placement,\n visible,\n paused,\n pause() {\n send(\"PAUSE\");\n },\n resume() {\n send(\"RESUME\");\n },\n dismiss() {\n send(\"DISMISS\");\n },\n getRootProps() {\n return normalize.element({\n ...parts.root.attrs,\n dir: state.context.dir,\n id: dom.getRootId(state.context),\n \"data-state\": visible ? \"open\" : \"closed\",\n \"data-type\": type,\n \"data-placement\": placement,\n \"data-align\": align,\n \"data-side\": side,\n \"data-mounted\": dataAttr(state.context.mounted),\n \"data-paused\": dataAttr(paused),\n \"data-first\": dataAttr(state.context.frontmost),\n \"data-sibling\": dataAttr(!state.context.frontmost),\n \"data-stack\": dataAttr(state.context.stacked),\n \"data-overlap\": dataAttr(!state.context.stacked),\n role: \"status\",\n \"aria-atomic\": \"true\",\n \"aria-describedby\": state.context.description ? dom.getDescriptionId(state.context) : void 0,\n \"aria-labelledby\": state.context.title ? dom.getTitleId(state.context) : void 0,\n tabIndex: 0,\n style: getPlacementStyle(state.context, visible),\n onKeyDown(event) {\n if (event.defaultPrevented) return;\n if (event.key == \"Escape\") {\n send(\"DISMISS\");\n event.preventDefault();\n }\n }\n });\n },\n /* Leave a ghost div to avoid setting hover to false when transitioning out */\n getGhostBeforeProps() {\n return normalize.element({\n \"data-ghost\": \"before\",\n style: getGhostBeforeStyle(state.context, visible)\n });\n },\n /* Needed to avoid setting hover to false when in between toasts */\n getGhostAfterProps() {\n return normalize.element({\n \"data-ghost\": \"after\",\n style: getGhostAfterStyle()\n });\n },\n getTitleProps() {\n return normalize.element({\n ...parts.title.attrs,\n id: dom.getTitleId(state.context)\n });\n },\n getDescriptionProps() {\n return normalize.element({\n ...parts.description.attrs,\n id: dom.getDescriptionId(state.context)\n });\n },\n getActionTriggerProps() {\n return normalize.button({\n ...parts.actionTrigger.attrs,\n type: \"button\",\n onClick(event) {\n if (event.defaultPrevented) return;\n state.context.action?.onClick?.();\n send(\"DISMISS\");\n }\n });\n },\n getCloseTriggerProps() {\n return normalize.button({\n id: dom.getCloseTriggerId(state.context),\n ...parts.closeTrigger.attrs,\n type: \"button\",\n \"aria-label\": \"Dismiss notification\",\n onClick(event) {\n if (event.defaultPrevented) return;\n send(\"DISMISS\");\n }\n });\n }\n };\n}\n\n// src/index.ts\nvar group = {\n connect: groupConnect,\n machine: groupMachine\n};\n\nexport { anatomy, connect, createToastMachine as createMachine, group };\n","'use client';\nimport { normalizeProps } from '@zag-js/react';\nimport * as toast from '@zag-js/toast';\n\nconst createToaster = (props) => {\n const machine = toast.group.machine({ id: \"1\", ...props });\n const api = toast.group.connect(machine, machine.send, normalizeProps);\n return { ...api, machine };\n};\n\nexport { createToaster };\n","'use client';\nimport { createContext } from '../../utils/create-context.js';\n\nconst [ToastProvider, useToastContext] = createContext({\n name: \"ToastContext\",\n hookName: \"useToastContext\",\n providerName: \"<ToastProvider />\"\n});\n\nexport { ToastProvider, useToastContext };\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 { useToastContext } from './use-toast-context.js';\n\nconst ToastActionTrigger = forwardRef(\n (props, ref) => {\n const toast = useToastContext();\n const mergedProps = mergeProps(toast.getActionTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n }\n);\nToastActionTrigger.displayName = \"ToastActionTrigger\";\n\nexport { ToastActionTrigger };\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 { useToastContext } from './use-toast-context.js';\n\nconst ToastCloseTrigger = forwardRef(\n (props, ref) => {\n const toast = useToastContext();\n const mergedProps = mergeProps(toast.getCloseTriggerProps(), props);\n return /* @__PURE__ */ jsx(ark.button, { ...mergedProps, ref });\n }\n);\nToastCloseTrigger.displayName = \"ToastCloseTrigger\";\n\nexport { ToastCloseTrigger };\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 { useToastContext } from './use-toast-context.js';\n\nconst ToastDescription = forwardRef((props, ref) => {\n const toast = useToastContext();\n const mergedProps = mergeProps(toast.getDescriptionProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nToastDescription.displayName = \"ToastDescription\";\n\nexport { ToastDescription };\n","'use client';\nimport { jsxs, jsx } from 'react/jsx-runtime';\nimport { mergeProps } from '@zag-js/react';\nimport { forwardRef } from 'react';\nimport { useToastContext } from './use-toast-context.js';\n\nconst ToastRoot = forwardRef((props, ref) => {\n const toast = useToastContext();\n const mergedProps = mergeProps(toast.getRootProps(), props);\n return /* @__PURE__ */ jsxs(\"div\", { ...mergedProps, ref, children: [\n /* @__PURE__ */ jsx(\"div\", { ...toast.getGhostBeforeProps() }),\n props.children,\n /* @__PURE__ */ jsx(\"div\", { ...toast.getGhostAfterProps() })\n ] });\n});\nToastRoot.displayName = \"ToastRoot\";\n\nexport { ToastRoot };\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 { useToastContext } from './use-toast-context.js';\n\nconst ToastTitle = forwardRef((props, ref) => {\n const toast = useToastContext();\n const mergedProps = mergeProps(toast.getTitleProps(), props);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref });\n});\nToastTitle.displayName = \"ToastTitle\";\n\nexport { ToastTitle };\n","'use client';\nimport { jsx } from 'react/jsx-runtime';\nimport { useMachine, normalizeProps, mergeProps, useActor } from '@zag-js/react';\nimport * as toast from '@zag-js/toast';\nimport { forwardRef } from 'react';\nimport { ark } from '../factory.js';\nimport { ToastProvider } from './use-toast-context.js';\n\nconst Toaster = forwardRef((props, ref) => {\n const { toaster, children, ...rest } = props;\n const [state, send] = useMachine(toaster.machine);\n const placement = state.context.placement;\n const api = toast.group.connect(state, send, normalizeProps);\n const toasts = api.getToastsByPlacement(placement);\n const mergedProps = mergeProps(api.getGroupProps({ placement }), rest);\n return /* @__PURE__ */ jsx(ark.div, { ...mergedProps, ref, children: toasts.map((toast2) => /* @__PURE__ */ jsx(ToastActor, { value: toast2, children: (ctx) => children(ctx) }, toast2.id)) });\n});\nToaster.displayName = \"Toaster\";\nconst ToastActor = (props) => {\n const [state, send] = useActor(props.value);\n const api = toast.connect(state, send, normalizeProps);\n return /* @__PURE__ */ jsx(ToastProvider, { value: api, children: props.children(state.context) });\n};\n\nexport { Toaster };\n","import { Toast as ArkToast, Toaster, createToaster } from '@ark-ui/react/toast';\nimport { CheckCircle, AlertCircle, AlertTriangle, Info, X } from 'lucide-react';\nimport type { ReactNode } from 'react';\nimport { cn } from '../../lib/utils';\n\nexport type ToastVariant = 'success' | 'error' | 'warning' | 'info';\n\nexport interface ToastProviderProps {\n children: ReactNode;\n}\n\n// Create singleton toaster instance\nexport const toaster = createToaster({\n placement: 'bottom-end',\n duration: 5000,\n overlap: true,\n gap: 16,\n});\n\nconst variantStyles = {\n success: {\n container: 'border-green-200 bg-green-50 text-green-900',\n icon: 'text-green-600',\n IconComponent: CheckCircle,\n },\n error: {\n container: 'border-red-200 bg-red-50 text-red-900',\n icon: 'text-red-600',\n IconComponent: AlertCircle,\n },\n warning: {\n container: 'border-yellow-200 bg-yellow-50 text-yellow-900',\n icon: 'text-yellow-600',\n IconComponent: AlertTriangle,\n },\n info: {\n container: 'border-blue-200 bg-blue-50 text-blue-900',\n icon: 'text-blue-600',\n IconComponent: Info,\n },\n};\n\nexport function ToastProvider({ children }: ToastProviderProps) {\n return (\n <>\n {children}\n <Toaster toaster={toaster}>\n {(toast) => {\n const variant = (toast.type as ToastVariant) || 'info';\n const style = variantStyles[variant];\n const Icon = style.IconComponent;\n\n return (\n <ArkToast.Root\n className={cn(\n // Base styles\n 'flex items-start gap-3 rounded-lg border p-4 shadow-lg',\n 'min-w-[320px] max-w-[420px]',\n // Animation variables - CRITICAL for Ark UI animations\n '[translate:var(--x)_var(--y)]',\n '[scale:var(--scale)]',\n '[z-index:var(--z-index)]',\n '[height:var(--height)]',\n '[opacity:var(--opacity)]',\n // Variant styles\n style.container,\n )}\n >\n <Icon className={cn('h-5 w-5 flex-shrink-0 mt-0.5', style.icon)} />\n <div className=\"flex-1 space-y-1\">\n <ArkToast.Title className=\"text-sm font-semibold\">\n {toast.title}\n </ArkToast.Title>\n {toast.description && (\n <ArkToast.Description className=\"text-sm opacity-90\">\n {toast.description}\n </ArkToast.Description>\n )}\n {toast.action && (\n <ArkToast.ActionTrigger\n className={cn(\n 'mt-2 inline-flex items-center text-sm font-medium underline-offset-4 hover:underline',\n )}\n >\n {toast.action.label}\n </ArkToast.ActionTrigger>\n )}\n </div>\n <ArkToast.CloseTrigger\n className={cn(\n 'flex-shrink-0 rounded-md p-1 hover:bg-black/5',\n 'focus:outline-none focus:ring-2 focus:ring-offset-2',\n )}\n aria-label=\"Close notification\"\n >\n <X className=\"h-4 w-4\" />\n </ArkToast.CloseTrigger>\n </ArkToast.Root>\n );\n }}\n </Toaster>\n </>\n );\n}\n\n// Helper methods for easy toast creation\nexport const toast = {\n success: (options: { title: string; description?: string; action?: { label: string; onClick: () => void } }) => {\n return toaster.create({\n ...options,\n type: 'success',\n });\n },\n error: (options: { title: string; description?: string; action?: { label: string; onClick: () => void } }) => {\n return toaster.create({\n ...options,\n type: 'error',\n });\n },\n warning: (options: { title: string; description?: string; action?: { label: string; onClick: () => void } }) => {\n return toaster.create({\n ...options,\n type: 'warning',\n });\n },\n info: (options: { title: string; description?: string; action?: { label: string; onClick: () => void } }) => {\n return toaster.create({\n ...options,\n type: 'info',\n });\n },\n};\n"],"names":["cn","inputs","twMerge","clsx","buttonVariants","Button","className","variant","size","children","loading","disabled","props","jsxs","jsx","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","getErrorMessage","hook","provider","createContext","options","name","strict","hookName","providerName","errorMessage","defaultValue","Context","createContext$1","useContext$1","context","useContext","error","_a","CheckboxProvider","useCheckboxContext","TRACK_MEMO_SYMBOL","GET_ORIGINAL_SYMBOL","AFFECTED_PROPERTY","IS_TARGET_COPIED_PROPERTY","PROXY_PROPERTY","PROXY_CACHE_PROPERTY","TARGET_CACHE_PROPERTY","HAS_KEY_PROPERTY","ALL_OWN_KEYS_PROPERTY","HAS_OWN_KEY_PROPERTY","KEYS_PROPERTY","newProxy","target","handler","getProto","objectsToTrack","isObjectToTrack","obj","isObject","x","needsToCopyTargetObject","descriptor","copyTargetObject","descriptors","desc","createProxyHandler","origObj","isTargetCopied","state","trackObject","recordUsage","type","key","used","set","recordObjectAsUsed","createProxy","getOriginalObject","affected","proxyCache","targetCache","targetAndCopied","copiedTarget","handlerAndState","isAllOwnKeysChanged","prevObj","nextObj","prevKeys","nextKeys","k","i","isChanged","cache","isEqual","changed","hasPrev","hasNext","getUntracked","markToTrack","mark","glob","globalRef","value","g","refSet","isReactElement","isVueElement","isDOMElement","isElement","canProxy","isDev","val","clone","list","tmp","str","proxyStateMap","buildProxyFunction","objectIs","snapCache","createSnapshot","version","snap","snapshot","versionHolder","proxyFunction2","initialObject","found","listeners","notifyUpdate","op","nextVersion","listener","checkVersion","ensureVersion","nextCheckVersion","propProxyStates","propProxyState","propVersion","createPropListener","prop","newOp","addPropListener","remove","removePropListener","entry","addListener","prevRemove","baseObject","proxyObject","prevValue","deleted","receiver","hasPrevValue","nextValue","proxy","childProxyState","proxyState","proxyFunction","subscribe","callback","notifyInSync","promise","ops","isListenerActive","removeListener","ref","proxyWithComputed","computedFns","computedFn","get","set2","newValue","clear","v","isArrayLike","isArrayEqual","a","b","keys","length","runIfFn","cast","noop","callAll","fns","fn","uuid","id","isArray","isObjectLike","isNumber","isString","isFunction","hasProp","baseGetTag","fnToString","objectCtorString","isPlainObject","proto","Ctor","compact","isPlainObject2","filtered","warn","m","invariant","__defProp","__defNormalProp","__publicField","deepMerge","source","objects","sourceVal","targetVal","toEvent","event","toArray","isGuardHelper","Truthy","exec","guardMap","ctx","meta","guard","or","conditions","and","not","condition","guards","determineGuardFn","determineActionsFn","values","config","computedContext","initialContext","initialTags","_b","tag","stateEvents","globalEvents","determineDelayFn","delay","delaysMap","valueOrFn","toTarget","determineTransitionFn","transitions","transition","Machine","init","next","watch","prev","cleanup","stop","state2","evt","to","child","parent","src","actor","cleanups","stateNode","opts","isTargetless","info","current","entries","exits","__delay","actions","pickedActions","action","activities","activity","every","callbackfn","picked","delayOrFn","delay2","interval","currentState","_exit","exitActions","afterExitActions","entryActions","afterActions","args","msg","_c","_d","_e","self","createMachine","isMachine","CSS_REGEX","serialize","style","res","match","css","mergeProps","result","createNormalizer","createProps","normalizeProps","useUpdateEffect","deps","render","useRef","effect","useEffect","useSnapshot","service","lastSnapshot","lastAffected","currSnapshot","useSyncExternalStore","useCallback","nextSnapshot","useMemo","previousCtx","equal","currAffected","useActor","useConstant","useSafeLayoutEffect","useLayoutEffect","useService","machine","hydratedState","instance","snapshotRef","stateInit","useMachine","setRef","composeRefs","refs","node","getRef","element","getter","mayWarn","withAsChild","Component","Comp","memo","forwardRef","asChild","restProps","createElement","onlyChild","Children","isValidElement","childRef","cloneElement","jsxFactory","_target","_thisArg","argArray","_","asElement","ark","CheckboxControl","checkbox","mergedProps","createSplitProps","previousValue","currentValue","createAnatomy","parts","isEmpty","newName","part","toKebabCase","pipe","arg","acc","MAX_Z_INDEX","dataAttr","ELEMENT_NODE","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","isHTMLElement","el","isDocument","isWindow","getNodeName","isRootElement","isNode","isShadowRoot","isInputElement","isElementVisible","TEXTAREA_SELECT_REGEX","isEditableElement","contains","rootNode","getDocument","getDocumentElement","getWindow","getActiveElement","activeElement","getParentNode","styleCache","getComputedStyle","isDom","getPlatform","agent","pt","isMac","isIos","getComposedPath","getEventTarget","composedPath","isContextMenuEvent","isTouchEvent","getEventPoint","point","addDomEvent","eventName","getDescriptor","property","getElementType","setElementValue","setElementChecked","checked","dispatchInputCheckedEvent","bubbles","win","getClosestForm","isFormElement","trackFormReset","form","onReset","e","trackFieldsetDisabled","fieldset","obs","trackFormControl","onFieldsetDisabledChange","onFormReset","cleanups2","isFrame","hasTabIndex","hasNegativeTabIndex","focusableSelector","getFocusables","container","includeContainer","elements","isFocusable","focusableElements","frameBody","getTabbables","tabbableElements","isTabbable","allFrameTabbable","getTabIndex","raf","getNearestOverflowAncestor","parentNode","isOverflowElement","OVERFLOW_RE","overflow","overflowX","overflowY","display","trackPress","pointerNode","keyboardNode","onPress","onPressStart","onPressEnd","isValidKey","doc","removeStartListeners","removeEndListeners","removeAccessibleListeners","getInfo","startPress","cancelPress","removePointerListener","startEvent","removePointerUpListener","endEvent","removePointerCancelListener","removeFocusListener","startAccessiblePress","handleKeydown","keydownEvent","handleKeyup","keyupEvent","evt2","handleBlur","removeKeydownListener","removeBlurListener","queryAll","root","selector","createScope","methods","dom","elem","setup","elementCleanups","prevCleanup","nextCleanup","setStyle","prevStyle","visuallyHiddenStyle","fps","waitForElement","query2","cb","timerId","el2","waitForElements","queries","clean","isVirtualClick","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","connect","send","normalize","readOnly","focused","focusVisible","indeterminate","dataAttrs","checked2","focusVisible2","userContext","ctx2","isIndeterminate","isChecked","_ctx","_evt","inputEl","invoke","useEvent","sync","callbackRef","useLatestRef","CheckboxGroupContextProvider","useCheckboxGroupContext","FieldProvider","useFieldContext","CheckboxHiddenInput","field","CheckboxIndicator","rest","isVisible","CheckboxLabel","EnvironmentContextProvider","useEnvironmentContext","LocaleContextProvider","useLocaleContext","useCheckbox","ownProps","checkboxGroup","getRootNode","dir","useId","checkbox.machine","checkbox.connect","CheckboxRoot","useCheckboxProps","localProps","Checkbox","defaultChecked","ArkCheckbox.Root","details","ArkCheckbox.Control","ArkCheckbox.Indicator","ArkCheckbox.Label","ArkCheckbox.HiddenInput","RenderStrategyPropsProvider","useRenderStrategyPropsContext","splitRenderStrategyProps","_normalize","present","parseMs","ANIMATION_TIMEOUT_MARGIN","animationName","getAnimationName","onStart","onEnd","styles","usePresence","lazyMount","unmountOnExit","wasEverPresent","presence.machine","api","presence.connect","unmounted","getPresenceProps","DialogProvider","useDialogContext","DialogBackdrop","dialog","renderStrategyProps","presence","DialogCloseTrigger","PresenceProvider","usePresenceContext","DialogContent","DialogDescription","DialogPositioner","splitPresenceProps","counterMap","uncontrolledNodes","markerMap","lockCount","unwrapHost","correctTargets","targets","correctedTarget","isIgnoredNode","walkTreeOutside","originalTarget","markerName","controlAttribute","explicitBooleanValue","markerCounter","hiddenNodes","elementsToKeep","elementsToStop","keep","deep","attr","alreadyHidden","counterValue","markerValue","hideOthers","frameId","ariaHidden","targetsOrFn","defer","func","getWindowFrames","frames","frame","getParentWindow","POINTER_OUTSIDE_EVENT","FOCUS_OUTSIDE_EVENT","isComposedPathFocusable","isPointerEvent","isEventPointWithin","rect","isPointInRect","isEventWithinScrollbar","ancestor","isScrollableY","onScrollbarY","isScrollableX","onScrollbarX","trackInteractOutsideImpl","exclude","onFocusOutside","onPointerDownOutside","onInteractOutside","parentWin","isEventOutside","triggerEl","triggerAncestor","nodeAncestor","pointerdownCleanups","onPointerDown","handler2","fireCustomEvent","timer","onFocusin","trackInteractOutside","nodeOrFn","trackEscapeKeydown","handleKeyDown","layerStack","layer","index","highestBlockingIndex","branch","num","originalBodyPointerEvents","assignPointerEventToLayers","clearPointerEvent","disablePointerEventsOutside","persistentElements","persistedCleanup","trackDismissableElementImpl","onDismiss","pointerBlocking","excludeContainers","debug","onEscapeKeyDown","containers","_containers","node2","trackDismissableElement","trackDismissableBranch","activeFocusTraps","trapStack","trap","activeTrap","trapIndex","sharedTrapStack","FocusTrap","targetContained","nextNode","navAcrossContainers","mruContainerIdx","tabbableNodes","mruTabIdx","n","valueOrHandler","isBackward","destinationNode","isTabEvent","isEscapeEvent","mutations","mutation","firstTabbableGroup","isSelectableInput","deactivateOptions","onDeactivate","onPostDeactivate","checkCanReturnFocus","returnFocus","finishDeactivation","returnFocusNode","pauseOptions","onPause","onPostPause","unpauseOptions","onUnpause","onPostUnpause","containerElements","previousActiveElement","configOverrideOptions","optionName","configOptionName","hasFallback","params","optionValue","err","containerIndex","containerGroup","startOfGroupIndex","firstTabbableNode","destinationGroupIndex","destinationGroup","lastOfGroupIndex","lastTabbableNode","focusableNodes","firstDomTabbableNode","lastDomTabbableNode","posTabIndexesFound","nextTabbableNode","forward","nodeIdx","group","activateOptions","onActivate","onPostActivate","checkCanFocusTrap","finishActivation","trapFocus","contentEl","LOCK_CLASSNAME","assignStyle","previousStyle","setCSSProperty","getPaddingProperty","documentElement","documentLeft","preventBodyScroll","_document","body","scrollbarWidth","setScrollbarWidthProperty","paddingProperty","setIOSStyle","scrollX","scrollY","visualViewport","offsetLeft","offsetTop","restoreStyle","ariaLabel","open","rendered","nextOpen","useDialog","dialog.machine","dialog.connect","DialogRoot","presenceProps","DialogTitle","DialogTrigger","Portal","setContainer","useState","isServer","Fragment","mountNode","getPortalNode","createPortal","DialogContext","contentSizes","onOpenChange","modal","closeOnInteractOutside","closeOnEscape","ArkDialog.Root","ArkDialog.Trigger","DialogPortal","ArkDialog.Backdrop","ArkDialog.Positioner","ArkDialog.Content","DialogHeader","ArkDialog.Title","ArkDialog.Description","DialogBody","DialogFooter","ArkDialog.CloseTrigger","X","Dialog","Input","label","input","variantStyles","sizeStyles","Progress","showValue","clampedValue","TableContext","TableRoot","interactive","TableHeader","TableBody","TableRow","onClick","selected","TableHeadCell","align","sortable","sorted","onSort","handleClick","TableCell","TableFooter","TableCaption","Table","ProductsTable","products","isLoading","isError","onRefresh","onProductClick","currency","externalSortField","externalSortDirection","internalSortField","setInternalSortField","internalSortDirection","setInternalSortDirection","sortField","sortDirection","handleSort","newDirection","sortedProducts","comparison","formatPrice","price","formatDate","dateString","product","rate","r","SelectContent","Select","SelectHiddenSelect","SelectItem","Check","SelectItemGroup","SelectItemGroupLabel","SelectLabel","SelectContext","SelectRoot","items","collection","createListCollection","SelectTrigger","placeholder","ChevronDown","placement","getToastsByPlacement","toasts","toast","defaultTimeouts","getToastDuration","duration","getGroupPlacementStyle","offset","computedOffset","rtl","computedPlacement","isRighty","isLefty","alignItems","offset2","getPlacementStyle","visible","side","sibling","overlap","assign","overrides","getGhostBeforeStyle","getGhostAfterStyle","_visible","groupConnect","serviceOrState","getState","getToastsByPlacementImpl","create","uid","update","upsert","dismiss","placements","shared","response","successOptions","errorOptions","hotkeyLabel","contexts","createToastMachine","removeDelay","computedDuration","rootEl","ghosts","syncHeight","originalHeight","newHeight","observer","duration2","type2","computedDuration2","groupMachine","hasToasts","groupEl","each","height","existing","heightIndex","toastsHeightBefore","curr","reducerIndex","paused","createToaster","toast.group","ToastProvider","useToastContext","ToastActionTrigger","ToastCloseTrigger","ToastDescription","ToastRoot","ToastTitle","Toaster","toaster","toast2","ToastActor","toast.connect","CheckCircle","AlertCircle","AlertTriangle","Info","Icon","ArkToast.Root","ArkToast.Title","ArkToast.Description","ArkToast.ActionTrigger","ArkToast.CloseTrigger"],"mappings":"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","x_google_ignoreList":[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,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,67,68,69,70,71,72,73,74,75]}