{
  "version": 3,
  "sources": ["../../node_modules/.pnpm/@zag-js+anatomy@1.33.0/node_modules/@zag-js/anatomy/dist/index.mjs", "../../node_modules/.pnpm/@zag-js+dom-query@1.33.0/node_modules/@zag-js/dom-query/dist/index.mjs", "../../node_modules/.pnpm/@zag-js+utils@1.33.0/node_modules/@zag-js/utils/dist/index.mjs", "../../node_modules/.pnpm/@zag-js+core@1.33.0/node_modules/@zag-js/core/dist/index.mjs", "../../node_modules/.pnpm/@zag-js+types@1.33.0/node_modules/@zag-js/types/dist/index.mjs", "../../node_modules/.pnpm/@zag-js+accordion@1.33.0/node_modules/@zag-js/accordion/dist/index.mjs", "../../node_modules/.pnpm/proxy-compare@3.0.1/node_modules/proxy-compare/dist/index.js", "../../node_modules/.pnpm/@zag-js+store@1.33.0/node_modules/@zag-js/store/dist/index.mjs", "../../node_modules/.pnpm/@zag-js+vanilla@1.33.0/node_modules/@zag-js/vanilla/dist/index.mjs", "../../assets/lib/core.ts", "../../assets/lib/util.ts", "../../assets/components/accordion.ts", "../../assets/hooks/accordion.ts", "../../node_modules/.pnpm/@zag-js+dismissable@1.33.0/node_modules/@zag-js/dismissable/dist/index.mjs", "../../node_modules/.pnpm/@zag-js+toast@1.33.0/node_modules/@zag-js/toast/dist/index.mjs", "../../assets/components/toast.ts", "../../assets/hooks/toast.ts", "../../node_modules/.pnpm/@zag-js+focus-visible@1.33.0/node_modules/@zag-js/focus-visible/dist/index.mjs", "../../node_modules/.pnpm/@zag-js+switch@1.33.0/node_modules/@zag-js/switch/dist/index.mjs", "../../assets/components/switch.ts", "../../assets/hooks/switch.ts", "../../assets/hooks/corex.ts"],
  "sourcesContent": ["// 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  omit: (...values) => createAnatomy(name, parts.filter((part) => !values.includes(part))),\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", "var __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);\n\n// src/caret.ts\nfunction isCaretAtStart(input) {\n  if (!input) return false;\n  try {\n    return input.selectionStart === 0 && input.selectionEnd === 0;\n  } catch {\n    return input.value === \"\";\n  }\n}\nfunction setCaretToEnd(input) {\n  if (!input) return;\n  try {\n    if (input.ownerDocument.activeElement !== input) return;\n    const len = input.value.length;\n    input.setSelectionRange(len, len);\n  } catch {\n  }\n}\n\n// src/shared.ts\nvar clamp = (value) => Math.max(0, Math.min(1, value));\nvar wrap = (v, idx) => {\n  return v.map((_, index) => v[(Math.max(idx, 0) + index) % v.length]);\n};\nvar pipe = (...fns) => (arg) => fns.reduce((acc, fn) => fn(acc), arg);\nvar noop = () => void 0;\nvar isObject = (v) => typeof v === \"object\" && v !== null;\nvar MAX_Z_INDEX = 2147483647;\nvar dataAttr = (guard) => guard ? \"\" : void 0;\nvar ariaAttr = (guard) => guard ? \"true\" : void 0;\n\n// src/node.ts\nvar ELEMENT_NODE = 1;\nvar DOCUMENT_NODE = 9;\nvar DOCUMENT_FRAGMENT_NODE = 11;\nvar isHTMLElement = (el) => isObject(el) && el.nodeType === ELEMENT_NODE && typeof el.nodeName === \"string\";\nvar isDocument = (el) => isObject(el) && el.nodeType === DOCUMENT_NODE;\nvar isWindow = (el) => isObject(el) && el === el.window;\nvar isVisualViewport = (el) => isObject(el) && el.constructor.name === \"VisualViewport\";\nvar getNodeName = (node) => {\n  if (isHTMLElement(node)) return node.localName || \"\";\n  return \"#document\";\n};\nfunction isRootElement(node) {\n  return [\"html\", \"body\", \"#document\"].includes(getNodeName(node));\n}\nvar isNode = (el) => isObject(el) && el.nodeType !== void 0;\nvar isShadowRoot = (el) => isNode(el) && el.nodeType === DOCUMENT_FRAGMENT_NODE && \"host\" in el;\nvar isInputElement = (el) => isHTMLElement(el) && el.localName === \"input\";\nvar isAnchorElement = (el) => !!el?.matches(\"a[href]\");\nvar isElementVisible = (el) => {\n  if (!isHTMLElement(el)) return false;\n  return el.offsetWidth > 0 || el.offsetHeight > 0 || el.getClientRects().length > 0;\n};\nfunction isActiveElement(element) {\n  if (!element) return false;\n  const rootNode = element.getRootNode();\n  return getActiveElement(rootNode) === element;\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 || 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}\nfunction getRootNode(node) {\n  let result;\n  try {\n    result = node.getRootNode({ composed: true });\n    if (isDocument(result) || isShadowRoot(result)) return result;\n  } catch {\n  }\n  return node.ownerDocument ?? document;\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/controller.ts\nvar INTERACTIVE_CONTAINER_ROLE = /* @__PURE__ */ new Set([\"menu\", \"listbox\", \"dialog\", \"grid\", \"tree\", \"region\"]);\nvar isInteractiveContainerRole = (role) => INTERACTIVE_CONTAINER_ROLE.has(role);\nvar getAriaControls = (element) => element.getAttribute(\"aria-controls\")?.split(\" \") || [];\nfunction isControlledElement(container, element) {\n  const visitedIds = /* @__PURE__ */ new Set();\n  const rootNode = getRootNode(container);\n  const checkElement = (searchRoot) => {\n    const controllingElements = searchRoot.querySelectorAll(\"[aria-controls]\");\n    for (const controller of controllingElements) {\n      if (controller.getAttribute(\"aria-expanded\") !== \"true\") continue;\n      const controlledIds = getAriaControls(controller);\n      for (const id of controlledIds) {\n        if (!id || visitedIds.has(id)) continue;\n        visitedIds.add(id);\n        const controlledElement = rootNode.getElementById(id);\n        if (controlledElement) {\n          const role = controlledElement.getAttribute(\"role\");\n          const modal = controlledElement.getAttribute(\"aria-modal\") === \"true\";\n          if (role && isInteractiveContainerRole(role) && !modal) {\n            if (controlledElement === element || controlledElement.contains(element)) {\n              return true;\n            }\n            if (checkElement(controlledElement)) {\n              return true;\n            }\n          }\n        }\n      }\n    }\n    return false;\n  };\n  return checkElement(container);\n}\nfunction findControlledElements(searchRoot, callback) {\n  const rootNode = getRootNode(searchRoot);\n  const visitedIds = /* @__PURE__ */ new Set();\n  const findRecursive = (root) => {\n    const controllingElements = root.querySelectorAll(\"[aria-controls]\");\n    for (const controller of controllingElements) {\n      if (controller.getAttribute(\"aria-expanded\") !== \"true\") continue;\n      const controlledIds = getAriaControls(controller);\n      for (const id of controlledIds) {\n        if (!id || visitedIds.has(id)) continue;\n        visitedIds.add(id);\n        const controlledElement = rootNode.getElementById(id);\n        if (controlledElement) {\n          const role = controlledElement.getAttribute(\"role\");\n          const modal = controlledElement.getAttribute(\"aria-modal\") === \"true\";\n          if (role && INTERACTIVE_CONTAINER_ROLE.has(role) && !modal) {\n            callback(controlledElement);\n            findRecursive(controlledElement);\n          }\n        }\n      }\n    }\n  };\n  findRecursive(searchRoot);\n}\nfunction getControlledElements(container) {\n  const controlledElements = /* @__PURE__ */ new Set();\n  findControlledElements(container, (controlledElement) => {\n    if (!container.contains(controlledElement)) {\n      controlledElements.add(controlledElement);\n    }\n  });\n  return Array.from(controlledElements);\n}\nfunction isInteractiveContainerElement(element) {\n  const role = element.getAttribute(\"role\");\n  return Boolean(role && INTERACTIVE_CONTAINER_ROLE.has(role));\n}\nfunction isControllerElement(element) {\n  return element.hasAttribute(\"aria-controls\") && element.getAttribute(\"aria-expanded\") === \"true\";\n}\nfunction hasControllerElements(element) {\n  if (isControllerElement(element)) return true;\n  return Boolean(element.querySelector?.('[aria-controls][aria-expanded=\"true\"]'));\n}\nfunction isControlledByExpandedController(element) {\n  if (!element.id) return false;\n  const rootNode = getRootNode(element);\n  const escapedId = CSS.escape(element.id);\n  const selector = `[aria-controls~=\"${escapedId}\"][aria-expanded=\"true\"], [aria-controls=\"${escapedId}\"][aria-expanded=\"true\"]`;\n  const controller = rootNode.querySelector(selector);\n  return Boolean(controller && isInteractiveContainerElement(element));\n}\n\n// src/data-url.ts\nfunction getDataUrl(svg, opts) {\n  const { type, quality = 0.92, background } = opts;\n  if (!svg) throw new Error(\"[zag-js > getDataUrl]: Could not find the svg element\");\n  const win = getWindow(svg);\n  const doc = win.document;\n  const svgBounds = svg.getBoundingClientRect();\n  const svgClone = svg.cloneNode(true);\n  if (!svgClone.hasAttribute(\"viewBox\")) {\n    svgClone.setAttribute(\"viewBox\", `0 0 ${svgBounds.width} ${svgBounds.height}`);\n  }\n  const serializer = new win.XMLSerializer();\n  const source = '<?xml version=\"1.0\" standalone=\"no\"?>\\r\\n' + serializer.serializeToString(svgClone);\n  const svgString = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(source);\n  if (type === \"image/svg+xml\") {\n    return Promise.resolve(svgString).then((str) => {\n      svgClone.remove();\n      return str;\n    });\n  }\n  const dpr = win.devicePixelRatio || 1;\n  const canvas = doc.createElement(\"canvas\");\n  const image = new win.Image();\n  image.src = svgString;\n  canvas.width = svgBounds.width * dpr;\n  canvas.height = svgBounds.height * dpr;\n  const context = canvas.getContext(\"2d\");\n  if (type === \"image/jpeg\" || background) {\n    context.fillStyle = background || \"white\";\n    context.fillRect(0, 0, canvas.width, canvas.height);\n  }\n  return new Promise((resolve) => {\n    image.onload = () => {\n      context?.drawImage(image, 0, 0, canvas.width, canvas.height);\n      resolve(canvas.toDataURL(type, quality));\n      svgClone.remove();\n    };\n  });\n}\n\n// src/platform.ts\nvar isDom = () => typeof document !== \"undefined\";\nfunction getPlatform() {\n  const agent = navigator.userAgentData;\n  return agent?.platform ?? navigator.platform;\n}\nfunction getUserAgent() {\n  const ua2 = navigator.userAgentData;\n  if (ua2 && Array.isArray(ua2.brands)) {\n    return ua2.brands.map(({ brand, version }) => `${brand}/${version}`).join(\" \");\n  }\n  return navigator.userAgent;\n}\nvar pt = (v) => isDom() && v.test(getPlatform());\nvar ua = (v) => isDom() && v.test(getUserAgent());\nvar vn = (v) => isDom() && v.test(navigator.vendor);\nvar isTouchDevice = () => isDom() && !!navigator.maxTouchPoints;\nvar isIPhone = () => pt(/^iPhone/i);\nvar isIPad = () => pt(/^iPad/i) || isMac() && navigator.maxTouchPoints > 1;\nvar isIos = () => isIPhone() || isIPad();\nvar isApple = () => isMac() || isIos();\nvar isMac = () => pt(/^Mac/i);\nvar isSafari = () => isApple() && vn(/apple/i);\nvar isFirefox = () => ua(/Firefox/i);\nvar isChrome = () => ua(/Chrome/i);\nvar isWebKit = () => ua(/AppleWebKit/i) && !isChrome();\nvar isAndroid = () => ua(/Android/i);\n\n// src/event.ts\nfunction getBeforeInputValue(event) {\n  const { selectionStart, selectionEnd, value } = event.currentTarget;\n  const data = event.data;\n  return value.slice(0, selectionStart) + (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}\nfunction isOpeningInNewTab(event) {\n  const element = event.currentTarget;\n  if (!element) return false;\n  const validElement = element.matches(\"a[href], button[type='submit'], input[type='submit']\");\n  if (!validElement) return false;\n  const isMiddleClick = event.button === 1;\n  const isModKeyClick = isCtrlOrMetaKey(event);\n  return isMiddleClick || isModKeyClick;\n}\nfunction isDownloadingEvent(event) {\n  const element = event.currentTarget;\n  if (!element) return false;\n  const localName = element.localName;\n  if (!event.altKey) return false;\n  if (localName === \"a\") return true;\n  if (localName === \"button\" && element.type === \"submit\") return true;\n  if (localName === \"input\" && element.type === \"submit\") return true;\n  return false;\n}\nfunction isComposingEvent(event) {\n  return getNativeEvent(event).isComposing || event.keyCode === 229;\n}\nfunction isKeyboardClick(e) {\n  return e.detail === 0 || e.clientX === 0 && e.clientY === 0;\n}\nfunction isCtrlOrMetaKey(e) {\n  if (isMac()) return e.metaKey;\n  return e.ctrlKey;\n}\nfunction isPrintableKey(e) {\n  return e.key.length === 1 && !e.ctrlKey && !e.metaKey;\n}\nfunction isVirtualPointerEvent(e) {\n  return e.width === 0 && e.height === 0 || e.width === 1 && e.height === 1 && e.pressure === 0 && e.detail === 0 && e.pointerType === \"mouse\";\n}\nfunction isVirtualClick(e) {\n  if (e.pointerType === \"\" && 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};\nvar isSelfTarget = (event) => {\n  const composedPath = getComposedPath(event);\n  const target = composedPath?.[0] ?? event.target;\n  return event.currentTarget === target;\n};\n\n// src/form.ts\nfunction getDescriptor(el, options) {\n  const { type = \"HTMLInputElement\", property = \"value\" } = options;\n  const proto = getWindow(el)[type].prototype;\n  return Object.getOwnPropertyDescriptor(proto, property) ?? {};\n}\nfunction getElementType(el) {\n  if (el.localName === \"input\") return \"HTMLInputElement\";\n  if (el.localName === \"textarea\") return \"HTMLTextAreaElement\";\n  if (el.localName === \"select\") return \"HTMLSelectElement\";\n}\nfunction setElementValue(el, value, property = \"value\") {\n  if (!el) return;\n  const type = getElementType(el);\n  if (type) {\n    const descriptor = getDescriptor(el, { type, property });\n    descriptor.set?.call(el, value);\n  }\n  el.setAttribute(property, value);\n}\nfunction setElementChecked(el, checked) {\n  if (!el) return;\n  const descriptor = getDescriptor(el, { type: \"HTMLInputElement\", property: \"checked\" });\n  descriptor.set?.call(el, checked);\n  if (checked) el.setAttribute(\"checked\", \"\");\n  else el.removeAttribute(\"checked\");\n}\nfunction dispatchInputValueEvent(el, options) {\n  const { value, bubbles = true } = options;\n  if (!el) return;\n  const win = getWindow(el);\n  if (!(el instanceof win.HTMLInputElement)) return;\n  setElementValue(el, `${value}`);\n  el.dispatchEvent(new win.Event(\"input\", { bubbles }));\n}\nfunction dispatchInputCheckedEvent(el, options) {\n  const { checked, bubbles = true } = options;\n  if (!el) return;\n  const win = getWindow(el);\n  if (!(el instanceof win.HTMLInputElement)) return;\n  setElementChecked(el, checked);\n  el.dispatchEvent(new win.Event(\"click\", { bubbles }));\n}\nfunction getClosestForm(el) {\n  return isFormElement(el) ? el.form : el.closest(\"form\");\n}\nfunction isFormElement(el) {\n  return el.matches(\"textarea, input, select, button\");\n}\nfunction trackFormReset(el, callback) {\n  if (!el) return;\n  const form = getClosestForm(el);\n  const onReset = (e) => {\n    if (e.defaultPrevented) return;\n    callback();\n  };\n  form?.addEventListener(\"reset\", onReset, { passive: true });\n  return () => form?.removeEventListener(\"reset\", onReset);\n}\nfunction trackFieldsetDisabled(el, callback) {\n  const fieldset = el?.closest(\"fieldset\");\n  if (!fieldset) return;\n  callback(fieldset.disabled);\n  const win = getWindow(fieldset);\n  const obs = new win.MutationObserver(() => callback(fieldset.disabled));\n  obs.observe(fieldset, {\n    attributes: true,\n    attributeFilter: [\"disabled\"]\n  });\n  return () => obs.disconnect();\n}\nfunction trackFormControl(el, options) {\n  if (!el) return;\n  const { onFieldsetDisabledChange, onFormReset } = options;\n  const cleanups = [trackFormReset(el, onFormReset), trackFieldsetDisabled(el, onFieldsetDisabledChange)];\n  return () => cleanups.forEach((cleanup) => cleanup?.());\n}\n\n// src/tabbable.ts\nvar isFrame = (el) => isHTMLElement(el) && el.tagName === \"IFRAME\";\nvar NATURALLY_TABBABLE_REGEX = /^(audio|video|details)$/;\nfunction parseTabIndex(el) {\n  const attr = el.getAttribute(\"tabindex\");\n  if (!attr) return NaN;\n  return parseInt(attr, 10);\n}\nvar hasTabIndex = (el) => !Number.isNaN(parseTabIndex(el));\nvar hasNegativeTabIndex = (el) => parseTabIndex(el) < 0;\nfunction getShadowRootForNode(element, getShadowRoot) {\n  if (!getShadowRoot) return null;\n  if (getShadowRoot === true) {\n    return element.shadowRoot || null;\n  }\n  const result = getShadowRoot(element);\n  return (result === true ? element.shadowRoot : result) || null;\n}\nfunction collectElementsWithShadowDOM(elements, getShadowRoot, filterFn) {\n  const allElements = [...elements];\n  const toProcess = [...elements];\n  const processed = /* @__PURE__ */ new Set();\n  const positionMap = /* @__PURE__ */ new Map();\n  elements.forEach((el, i) => positionMap.set(el, i));\n  let processIndex = 0;\n  while (processIndex < toProcess.length) {\n    const element = toProcess[processIndex++];\n    if (!element || processed.has(element)) continue;\n    processed.add(element);\n    const shadowRoot = getShadowRootForNode(element, getShadowRoot);\n    if (shadowRoot) {\n      const shadowElements = Array.from(shadowRoot.querySelectorAll(focusableSelector)).filter(filterFn);\n      const hostIndex = positionMap.get(element);\n      if (hostIndex !== void 0) {\n        const insertPosition = hostIndex + 1;\n        allElements.splice(insertPosition, 0, ...shadowElements);\n        shadowElements.forEach((el, i) => {\n          positionMap.set(el, insertPosition + i);\n        });\n        for (let i = insertPosition + shadowElements.length; i < allElements.length; i++) {\n          positionMap.set(allElements[i], i);\n        }\n      } else {\n        const insertPosition = allElements.length;\n        allElements.push(...shadowElements);\n        shadowElements.forEach((el, i) => {\n          positionMap.set(el, insertPosition + i);\n        });\n      }\n      toProcess.push(...shadowElements);\n    }\n  }\n  return allElements;\n}\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, options = {}) => {\n  if (!container) return [];\n  const { includeContainer = false, getShadowRoot } = options;\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 = [];\n  for (const element of elements) {\n    if (!isFocusable(element)) continue;\n    if (isFrame(element) && element.contentDocument) {\n      const frameBody = element.contentDocument.body;\n      focusableElements.push(...getFocusables(frameBody, { getShadowRoot }));\n      continue;\n    }\n    focusableElements.push(element);\n  }\n  if (getShadowRoot) {\n    return collectElementsWithShadowDOM(focusableElements, getShadowRoot, isFocusable);\n  }\n  return focusableElements;\n};\nfunction isFocusable(element) {\n  if (!isHTMLElement(element) || element.closest(\"[inert]\")) return false;\n  return element.matches(focusableSelector) && isElementVisible(element);\n}\nfunction getFirstFocusable(container, options = {}) {\n  const [first] = getFocusables(container, options);\n  return first || null;\n}\nfunction getTabbables(container, options = {}) {\n  if (!container) return [];\n  const { includeContainer, getShadowRoot } = options;\n  const elements = Array.from(container.querySelectorAll(focusableSelector));\n  if (includeContainer && isTabbable(container)) {\n    elements.unshift(container);\n  }\n  const tabbableElements = [];\n  for (const element of elements) {\n    if (!isTabbable(element)) continue;\n    if (isFrame(element) && element.contentDocument) {\n      const frameBody = element.contentDocument.body;\n      tabbableElements.push(...getTabbables(frameBody, { getShadowRoot }));\n      continue;\n    }\n    tabbableElements.push(element);\n  }\n  if (getShadowRoot) {\n    const allElements = collectElementsWithShadowDOM(tabbableElements, getShadowRoot, isTabbable);\n    if (!allElements.length && includeContainer) {\n      return elements;\n    }\n    return allElements;\n  }\n  if (!tabbableElements.length && includeContainer) {\n    return elements;\n  }\n  return tabbableElements;\n}\nfunction isTabbable(el) {\n  if (isHTMLElement(el) && el.tabIndex > 0) return true;\n  return isFocusable(el) && !hasNegativeTabIndex(el);\n}\nfunction getFirstTabbable(container, options = {}) {\n  const [first] = getTabbables(container, options);\n  return first || null;\n}\nfunction getLastTabbable(container, options = {}) {\n  const elements = getTabbables(container, options);\n  return elements[elements.length - 1] || null;\n}\nfunction getTabbableEdges(container, options = {}) {\n  const elements = getTabbables(container, options);\n  const first = elements[0] || null;\n  const last = elements[elements.length - 1] || null;\n  return [first, last];\n}\nfunction getNextTabbable(container, options = {}) {\n  const { current, getShadowRoot } = options;\n  const tabbables = getTabbables(container, { getShadowRoot });\n  const doc = container?.ownerDocument || document;\n  const currentElement = current ?? getActiveElement(doc);\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 ((NATURALLY_TABBABLE_REGEX.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  if (isActiveElement(firstTabbable) && event.shiftKey) return false;\n  if (isActiveElement(lastTabbable) && !event.shiftKey) return false;\n  if (!firstTabbable && !lastTabbable) return false;\n  return true;\n}\n\n// src/raf.ts\nvar AnimationFrame = class _AnimationFrame {\n  constructor() {\n    __publicField(this, \"id\", null);\n    __publicField(this, \"fn_cleanup\");\n    __publicField(this, \"cleanup\", () => {\n      this.cancel();\n    });\n  }\n  static create() {\n    return new _AnimationFrame();\n  }\n  request(fn) {\n    this.cancel();\n    this.id = globalThis.requestAnimationFrame(() => {\n      this.id = null;\n      this.fn_cleanup = fn?.();\n    });\n  }\n  cancel() {\n    if (this.id !== null) {\n      globalThis.cancelAnimationFrame(this.id);\n      this.id = null;\n    }\n    this.fn_cleanup?.();\n    this.fn_cleanup = void 0;\n  }\n  isActive() {\n    return this.id !== null;\n  }\n};\nfunction raf(fn) {\n  const frame = AnimationFrame.create();\n  frame.request(fn);\n  return frame.cleanup;\n}\nfunction nextTick(fn) {\n  const set = /* @__PURE__ */ new Set();\n  function raf2(fn2) {\n    const id = globalThis.requestAnimationFrame(fn2);\n    set.add(() => globalThis.cancelAnimationFrame(id));\n  }\n  raf2(() => raf2(fn));\n  return function cleanup() {\n    set.forEach((fn2) => fn2());\n  };\n}\nfunction queueBeforeEvent(el, type, cb) {\n  const cancelTimer = raf(() => {\n    el.removeEventListener(type, exec, true);\n    cb();\n  });\n  const exec = () => {\n    cancelTimer();\n    cb();\n  };\n  el.addEventListener(type, exec, { once: true, capture: true });\n  return cancelTimer;\n}\n\n// src/mutation-observer.ts\nfunction observeAttributesImpl(node, options) {\n  if (!node) return;\n  const { attributes, callback: fn } = options;\n  const win = node.ownerDocument.defaultView || window;\n  const obs = new win.MutationObserver((changes) => {\n    for (const change of changes) {\n      if (change.type === \"attributes\" && change.attributeName && attributes.includes(change.attributeName)) {\n        fn(change);\n      }\n    }\n  });\n  obs.observe(node, { attributes: true, attributeFilter: attributes });\n  return () => obs.disconnect();\n}\nfunction observeAttributes(nodeOrFn, options) {\n  const { defer } = options;\n  const func = defer ? raf : (v) => v();\n  const cleanups = [];\n  cleanups.push(\n    func(() => {\n      const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n      cleanups.push(observeAttributesImpl(node, options));\n    })\n  );\n  return () => {\n    cleanups.forEach((fn) => fn?.());\n  };\n}\nfunction observeChildrenImpl(node, options) {\n  const { callback: fn } = options;\n  if (!node) return;\n  const win = node.ownerDocument.defaultView || window;\n  const obs = new win.MutationObserver(fn);\n  obs.observe(node, { childList: true, subtree: true });\n  return () => obs.disconnect();\n}\nfunction observeChildren(nodeOrFn, options) {\n  const { defer } = options;\n  const func = defer ? raf : (v) => v();\n  const cleanups = [];\n  cleanups.push(\n    func(() => {\n      const node = typeof nodeOrFn === \"function\" ? nodeOrFn() : nodeOrFn;\n      cleanups.push(observeChildrenImpl(node, options));\n    })\n  );\n  return () => {\n    cleanups.forEach((fn) => fn?.());\n  };\n}\n\n// src/navigate.ts\nfunction navigate(items, current, options = {}) {\n  if (!current) return null;\n  const { orientation = \"both\", loop = true, dir = \"ltr\", key } = options;\n  if (!items.length || !key) return null;\n  const isVertical = key === \"ArrowUp\" || key === \"ArrowDown\";\n  const isHorizontal = key === \"ArrowLeft\" || key === \"ArrowRight\";\n  if (!isVertical && !isHorizontal && key !== \"Home\" && key !== \"End\") return null;\n  if (orientation === \"vertical\" && isHorizontal || orientation === \"horizontal\" && isVertical) return null;\n  if (key === \"Home\") return items[0] || null;\n  if (key === \"End\") return items[items.length - 1] || null;\n  const idx = items.indexOf(current);\n  if (idx === -1) return null;\n  let isForward;\n  if (orientation === \"both\") {\n    isForward = key === \"ArrowDown\" || (dir === \"ltr\" ? key === \"ArrowRight\" : key === \"ArrowLeft\");\n  } else {\n    isForward = isVertical ? key === \"ArrowDown\" : dir === \"ltr\" ? key === \"ArrowRight\" : key === \"ArrowLeft\";\n  }\n  const nextIdx = isForward ? loop ? (idx + 1) % items.length : Math.min(idx + 1, items.length - 1) : loop ? (idx - 1 + items.length) % items.length : Math.max(0, idx - 1);\n  return items[nextIdx] || null;\n}\nfunction clickIfLink(el) {\n  const click = () => {\n    const win = getWindow(el);\n    el.dispatchEvent(new win.MouseEvent(\"click\"));\n  };\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/;\nvar nonOverflowValues = /* @__PURE__ */ new Set([\"inline\", \"contents\"]);\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) && !nonOverflowValues.has(display);\n}\nfunction isScrollable(el) {\n  return el.scrollHeight > el.clientHeight || el.scrollWidth > el.clientWidth;\n}\nfunction scrollIntoView(el, options) {\n  const { rootEl, ...scrollOptions } = options || {};\n  if (!el || !rootEl) return;\n  if (!isOverflowElement(rootEl) || !isScrollable(rootEl)) return;\n  el.scrollIntoView(scrollOptions);\n}\nfunction getScrollPosition(element) {\n  if (isHTMLElement(element)) {\n    return { scrollLeft: element.scrollLeft, scrollTop: element.scrollTop };\n  }\n  return { scrollLeft: element.scrollX, scrollTop: element.scrollY };\n}\n\n// src/point.ts\nfunction getRelativePoint(point, element) {\n  const { left, top, width, height } = element.getBoundingClientRect();\n  const offset = { x: point.x - left, y: point.y - top };\n  const percent = { x: clamp(offset.x / width), y: clamp(offset.y / height) };\n  function getPercentValue(options = {}) {\n    const { dir = \"ltr\", orientation = \"horizontal\", inverted } = options;\n    const invertX = typeof inverted === \"object\" ? inverted.x : inverted;\n    const invertY = typeof inverted === \"object\" ? inverted.y : inverted;\n    if (orientation === \"horizontal\") {\n      return dir === \"rtl\" || invertX ? 1 - percent.x : percent.x;\n    }\n    return invertY ? 1 - percent.y : percent.y;\n  }\n  return { offset, percent, getPercentValue };\n}\n\n// src/pointer-lock.ts\nfunction requestPointerLock(doc, fn) {\n  const body = doc.body;\n  const supported = \"pointerLockElement\" in doc || \"mozPointerLockElement\" in doc;\n  const isLocked = () => !!doc.pointerLockElement;\n  function onPointerChange() {\n    fn?.(isLocked());\n  }\n  function onPointerError(event) {\n    if (isLocked()) fn?.(false);\n    console.error(\"PointerLock error occurred:\", event);\n    doc.exitPointerLock();\n  }\n  if (!supported) return;\n  try {\n    body.requestPointerLock();\n  } catch {\n  }\n  const cleanup = [\n    addDomEvent(doc, \"pointerlockchange\", onPointerChange, false),\n    addDomEvent(doc, \"pointerlockerror\", onPointerError, false)\n  ];\n  return () => {\n    cleanup.forEach((cleanup2) => cleanup2());\n    doc.exitPointerLock();\n  };\n}\n\n// src/text-selection.ts\nvar state = \"default\";\nvar userSelect = \"\";\nvar elementMap = /* @__PURE__ */ new WeakMap();\nfunction disableTextSelectionImpl(options = {}) {\n  const { target, doc } = options;\n  const docNode = doc ?? document;\n  const rootEl = docNode.documentElement;\n  if (isIos()) {\n    if (state === \"default\") {\n      userSelect = rootEl.style.webkitUserSelect;\n      rootEl.style.webkitUserSelect = \"none\";\n    }\n    state = \"disabled\";\n  } else if (target) {\n    elementMap.set(target, target.style.userSelect);\n    target.style.userSelect = \"none\";\n  }\n  return () => restoreTextSelection({ target, doc: docNode });\n}\nfunction restoreTextSelection(options = {}) {\n  const { target, doc } = options;\n  const docNode = doc ?? document;\n  const rootEl = docNode.documentElement;\n  if (isIos()) {\n    if (state !== \"disabled\") return;\n    state = \"restoring\";\n    setTimeout(() => {\n      nextTick(() => {\n        if (state === \"restoring\") {\n          if (rootEl.style.webkitUserSelect === \"none\") {\n            rootEl.style.webkitUserSelect = userSelect || \"\";\n          }\n          userSelect = \"\";\n          state = \"default\";\n        }\n      });\n    }, 300);\n  } else {\n    if (target && elementMap.has(target)) {\n      const prevUserSelect = elementMap.get(target);\n      if (target.style.userSelect === \"none\") {\n        target.style.userSelect = prevUserSelect ?? \"\";\n      }\n      if (target.getAttribute(\"style\") === \"\") {\n        target.removeAttribute(\"style\");\n      }\n      elementMap.delete(target);\n    }\n  }\n}\nfunction disableTextSelection(options = {}) {\n  const { defer, target, ...restOptions } = options;\n  const func = defer ? raf : (v) => v();\n  const cleanups = [];\n  cleanups.push(\n    func(() => {\n      const node = typeof target === \"function\" ? target() : target;\n      cleanups.push(disableTextSelectionImpl({ ...restOptions, target: node }));\n    })\n  );\n  return () => {\n    cleanups.forEach((fn) => fn?.());\n  };\n}\n\n// src/pointer-move.ts\nfunction trackPointerMove(doc, handlers) {\n  const { onPointerMove, onPointerUp } = handlers;\n  const handleMove = (event) => {\n    const point = getEventPoint(event);\n    const distance = Math.sqrt(point.x ** 2 + point.y ** 2);\n    const moveBuffer = event.pointerType === \"touch\" ? 10 : 5;\n    if (distance < moveBuffer) return;\n    if (event.pointerType === \"mouse\" && event.buttons === 0) {\n      handleUp(event);\n      return;\n    }\n    onPointerMove({ point, event });\n  };\n  const handleUp = (event) => {\n    const point = getEventPoint(event);\n    onPointerUp({ point, event });\n  };\n  const cleanups = [\n    addDomEvent(doc, \"pointermove\", handleMove, false),\n    addDomEvent(doc, \"pointerup\", handleUp, false),\n    addDomEvent(doc, \"pointercancel\", handleUp, false),\n    addDomEvent(doc, \"contextmenu\", handleUp, false),\n    disableTextSelection({ doc })\n  ];\n  return () => {\n    cleanups.forEach((cleanup) => cleanup());\n  };\n}\n\n// src/press.ts\nfunction trackPress(options) {\n  const {\n    pointerNode,\n    keyboardNode = pointerNode,\n    onPress,\n    onPressStart,\n    onPressEnd,\n    isValidKey = (e) => e.key === \"Enter\"\n  } = options;\n  if (!pointerNode) return noop;\n  const win = getWindow(pointerNode);\n  let removeStartListeners = noop;\n  let removeEndListeners = noop;\n  let removeAccessibleListeners = noop;\n  const getInfo = (event) => ({\n    point: getEventPoint(event),\n    event\n  });\n  function startPress(event) {\n    onPressStart?.(getInfo(event));\n  }\n  function cancelPress(event) {\n    onPressEnd?.(getInfo(event));\n  }\n  const startPointerPress = (startEvent) => {\n    removeEndListeners();\n    const endPointerPress = (endEvent) => {\n      const target = getEventTarget(endEvent);\n      if (contains(pointerNode, target)) {\n        onPress?.(getInfo(endEvent));\n      } else {\n        onPressEnd?.(getInfo(endEvent));\n      }\n    };\n    const removePointerUpListener = addDomEvent(win, \"pointerup\", endPointerPress, { passive: !onPress, once: true });\n    const removePointerCancelListener = addDomEvent(win, \"pointercancel\", cancelPress, {\n      passive: !onPressEnd,\n      once: true\n    });\n    removeEndListeners = pipe(removePointerUpListener, removePointerCancelListener);\n    if (isActiveElement(keyboardNode) && startEvent.pointerType === \"mouse\") {\n      startEvent.preventDefault();\n    }\n    startPress(startEvent);\n  };\n  const removePointerListener = addDomEvent(pointerNode, \"pointerdown\", startPointerPress, { passive: !onPressStart });\n  const removeFocusListener = addDomEvent(keyboardNode, \"focus\", startAccessiblePress);\n  removeStartListeners = pipe(removePointerListener, removeFocusListener);\n  function startAccessiblePress() {\n    const handleKeydown = (keydownEvent) => {\n      if (!isValidKey(keydownEvent)) return;\n      const handleKeyup = (keyupEvent) => {\n        if (!isValidKey(keyupEvent)) return;\n        const evt2 = new win.PointerEvent(\"pointerup\");\n        const info = getInfo(evt2);\n        onPress?.(info);\n        onPressEnd?.(info);\n      };\n      removeEndListeners();\n      removeEndListeners = addDomEvent(keyboardNode, \"keyup\", handleKeyup);\n      const evt = new win.PointerEvent(\"pointerdown\");\n      startPress(evt);\n    };\n    const handleBlur = () => {\n      const evt = new win.PointerEvent(\"pointercancel\");\n      cancelPress(evt);\n    };\n    const removeKeydownListener = addDomEvent(keyboardNode, \"keydown\", handleKeydown);\n    const removeBlurListener = addDomEvent(keyboardNode, \"blur\", handleBlur);\n    removeAccessibleListeners = pipe(removeKeydownListener, removeBlurListener);\n  }\n  return () => {\n    removeStartListeners();\n    removeEndListeners();\n    removeAccessibleListeners();\n  };\n}\n\n// src/proxy-tab-focus.ts\nfunction proxyTabFocusImpl(container, options = {}) {\n  const { triggerElement, onFocus, onFocusEnter, getShadowRoot } = 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, { includeContainer: true, getShadowRoot });\n    const nextTabbableAfterTrigger = getNextTabbable(body, { current: triggerElement, getShadowRoot });\n    const noTabbableElements = !firstTabbable && !lastTabbable;\n    if (event.shiftKey && isActiveElement(nextTabbableAfterTrigger)) {\n      onFocusEnter?.();\n      elementToFocus = lastTabbable;\n    } else if (event.shiftKey && (isActiveElement(firstTabbable) || noTabbableElements)) {\n      elementToFocus = triggerElement;\n    } else if (!event.shiftKey && isActiveElement(triggerElement)) {\n      onFocusEnter?.();\n      elementToFocus = firstTabbable;\n    } else if (!event.shiftKey && (isActiveElement(lastTabbable) || noTabbableElements)) {\n      elementToFocus = nextTabbableAfterTrigger;\n    }\n    if (!elementToFocus) return;\n    event.preventDefault();\n    if (typeof onFocus === \"function\") {\n      onFocus(elementToFocus);\n    } else {\n      elementToFocus.focus();\n    }\n  }\n  return addDomEvent(doc, \"keydown\", onKeyDown, true);\n}\nfunction proxyTabFocus(container, options) {\n  const { defer, triggerElement, ...restOptions } = options;\n  const func = defer ? raf : (v) => v();\n  const cleanups = [];\n  cleanups.push(\n    func(() => {\n      const node = typeof container === \"function\" ? container() : container;\n      const trigger = typeof triggerElement === \"function\" ? triggerElement() : triggerElement;\n      cleanups.push(proxyTabFocusImpl(node, { triggerElement: trigger, ...restOptions }));\n    })\n  );\n  return () => {\n    cleanups.forEach((fn) => fn?.());\n  };\n}\n\n// src/query.ts\nfunction queryAll(root, selector) {\n  return Array.from(root?.querySelectorAll(selector) ?? []);\n}\nfunction query(root, selector) {\n  return root?.querySelector(selector) ?? null;\n}\nvar defaultItemToId = (v) => v.id;\nfunction itemById(v, id, itemToId = defaultItemToId) {\n  return v.find((item) => itemToId(item) === id);\n}\nfunction indexOfId(v, id, itemToId = defaultItemToId) {\n  const item = itemById(v, id, itemToId);\n  return item ? v.indexOf(item) : -1;\n}\nfunction nextById(v, id, loop = true) {\n  let idx = indexOfId(v, id);\n  idx = loop ? (idx + 1) % v.length : Math.min(idx + 1, v.length - 1);\n  return v[idx];\n}\nfunction prevById(v, id, loop = true) {\n  let idx = indexOfId(v, id);\n  if (idx === -1) return loop ? v[v.length - 1] : null;\n  idx = loop ? (idx - 1 + v.length) % v.length : Math.max(0, idx - 1);\n  return v[idx];\n}\n\n// src/resize-observer.ts\nfunction createSharedResizeObserver(options) {\n  const listeners = /* @__PURE__ */ new WeakMap();\n  let observer;\n  const entries = /* @__PURE__ */ new WeakMap();\n  const getObserver = (win) => {\n    if (observer) return observer;\n    observer = new win.ResizeObserver((observedEntries) => {\n      for (const entry of observedEntries) {\n        entries.set(entry.target, entry);\n        const elementListeners = listeners.get(entry.target);\n        if (elementListeners) {\n          for (const listener of elementListeners) {\n            listener(entry);\n          }\n        }\n      }\n    });\n    return observer;\n  };\n  const observe = (element, listener) => {\n    let elementListeners = listeners.get(element) || /* @__PURE__ */ new Set();\n    elementListeners.add(listener);\n    listeners.set(element, elementListeners);\n    const win = getWindow(element);\n    getObserver(win).observe(element, options);\n    return () => {\n      const elementListeners2 = listeners.get(element);\n      if (!elementListeners2) return;\n      elementListeners2.delete(listener);\n      if (elementListeners2.size === 0) {\n        listeners.delete(element);\n        getObserver(win).unobserve(element);\n      }\n    };\n  };\n  const unobserve = (element) => {\n    listeners.delete(element);\n    observer?.unobserve(element);\n  };\n  return {\n    observe,\n    unobserve\n  };\n}\nvar resizeObserverContentBox = /* @__PURE__ */ createSharedResizeObserver({\n  box: \"content-box\"\n});\nvar resizeObserverBorderBox = /* @__PURE__ */ createSharedResizeObserver({\n  box: \"border-box\"\n});\nvar resizeObserverDevicePixelContentBox = /* @__PURE__ */ createSharedResizeObserver({\n  box: \"device-pixel-content-box\"\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,\n    getById: (ctx, id) => dom.getRootNode(ctx).getElementById(id),\n    setValue: (elem, value) => {\n      if (elem == null || value == null) return;\n      setElementValue(elem, value.toString());\n    }\n  };\n  return { ...dom, ...methods };\n}\n\n// src/searchable.ts\nvar sanitize = (str) => str.split(\"\").map((char) => {\n  const code = char.charCodeAt(0);\n  if (code > 0 && code < 128) return char;\n  if (code >= 128 && code <= 255) return `/x${code.toString(16)}`.replace(\"/\", \"\\\\\");\n  return \"\";\n}).join(\"\").trim();\nvar getValueText = (el) => {\n  return sanitize(el.dataset?.valuetext ?? el.textContent ?? \"\");\n};\nvar match = (valueText, query2) => {\n  return valueText.trim().toLowerCase().startsWith(query2.toLowerCase());\n};\nfunction getByText(v, text, currentId, itemToId = defaultItemToId) {\n  const index = currentId ? indexOfId(v, currentId, itemToId) : -1;\n  let items = currentId ? wrap(v, index) : v;\n  const isSingleKey = text.length === 1;\n  if (isSingleKey) {\n    items = items.filter((item) => itemToId(item) !== currentId);\n  }\n  return items.find((item) => match(getValueText(item), text));\n}\n\n// src/set.ts\nfunction setAttribute(el, attr, v) {\n  const prev = el.getAttribute(attr);\n  const exists = prev != null;\n  if (prev === v) return noop;\n  el.setAttribute(attr, v);\n  return () => {\n    if (!exists) {\n      el.removeAttribute(attr);\n    } else {\n      el.setAttribute(attr, prev);\n    }\n  };\n}\nfunction setProperty(el, prop, v) {\n  const exists = prop in el;\n  const prev = el[prop];\n  if (prev === v) return noop;\n  el[prop] = v;\n  return () => {\n    if (!exists) {\n      delete el[prop];\n    } else {\n      el[prop] = prev;\n    }\n  };\n}\nfunction setStyle(el, style) {\n  if (!el) return noop;\n  const prev = Object.keys(style).reduce((acc, key) => {\n    acc[key] = el.style.getPropertyValue(key);\n    return acc;\n  }, {});\n  if (isEqual(prev, style)) return noop;\n  Object.assign(el.style, style);\n  return () => {\n    Object.assign(el.style, prev);\n    if (el.style.length === 0) {\n      el.removeAttribute(\"style\");\n    }\n  };\n}\nfunction setStyleProperty(el, prop, value) {\n  if (!el) return noop;\n  const prev = el.style.getPropertyValue(prop);\n  if (prev === value) return noop;\n  el.style.setProperty(prop, value);\n  return () => {\n    el.style.setProperty(prop, prev);\n    if (el.style.length === 0) {\n      el.removeAttribute(\"style\");\n    }\n  };\n}\nfunction isEqual(a, b) {\n  return Object.keys(a).every((key) => a[key] === b[key]);\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\nfunction waitForPromise(promise, controller, timeout) {\n  const { signal } = controller;\n  const wrappedPromise = new Promise((resolve, reject) => {\n    const timeoutId = setTimeout(() => {\n      reject(new Error(`Timeout of ${timeout}ms exceeded`));\n    }, timeout);\n    signal.addEventListener(\"abort\", () => {\n      clearTimeout(timeoutId);\n      reject(new Error(\"Promise aborted\"));\n    });\n    promise.then((result) => {\n      if (!signal.aborted) {\n        clearTimeout(timeoutId);\n        resolve(result);\n      }\n    }).catch((error) => {\n      if (!signal.aborted) {\n        clearTimeout(timeoutId);\n        reject(error);\n      }\n    });\n  });\n  const abort = () => controller.abort();\n  return [wrappedPromise, abort];\n}\nfunction waitForElement(target, options) {\n  const { timeout, rootNode } = options;\n  const win = getWindow(rootNode);\n  const doc = getDocument(rootNode);\n  const controller = new win.AbortController();\n  return waitForPromise(\n    new Promise((resolve) => {\n      const el = target();\n      if (el) {\n        resolve(el);\n        return;\n      }\n      const observer = new win.MutationObserver(() => {\n        const el2 = target();\n        if (el2 && el2.isConnected) {\n          observer.disconnect();\n          resolve(el2);\n        }\n      });\n      observer.observe(doc.body, {\n        childList: true,\n        subtree: true\n      });\n    }),\n    controller,\n    timeout\n  );\n}\nfunction waitForEvent(target, event, options) {\n  let cleanup;\n  const { predicate, ...listenerOptions } = options ?? {};\n  const promise = new Promise((resolve) => {\n    const element = target?.();\n    if (!element) {\n      return;\n    }\n    const handler = (e) => {\n      if (!predicate || predicate(element)) {\n        resolve(e);\n        cleanup?.();\n      }\n    };\n    element.addEventListener(event, handler, listenerOptions);\n    cleanup = () => element.removeEventListener(event, handler, listenerOptions);\n  });\n  return [promise, () => cleanup?.()];\n}\n\nexport { AnimationFrame, MAX_Z_INDEX, addDomEvent, ariaAttr, clickIfLink, contains, createScope, dataAttr, defaultItemToId, disableTextSelection, dispatchInputCheckedEvent, dispatchInputValueEvent, findControlledElements, getActiveElement, getBeforeInputValue, getByText, getByTypeahead, getComputedStyle, getControlledElements, getDataUrl, getDocument, getDocumentElement, getEventKey, getEventPoint, getEventStep, getEventTarget, getFirstFocusable, getFirstTabbable, getFocusables, getInitialFocus, getLastTabbable, getNativeEvent, getNearestOverflowAncestor, getNextTabbable, getNodeName, getOverflowAncestors, getParentNode, getPlatform, getRelativePoint, getRootNode, getScrollPosition, getTabIndex, getTabbableEdges, getTabbables, getUserAgent, getWindow, hasControllerElements, indexOfId, isActiveElement, isAnchorElement, isAndroid, isApple, isCaretAtStart, isChrome, isComposingEvent, isContextMenuEvent, isControlledByExpandedController, isControlledElement, isControllerElement, isCtrlOrMetaKey, isDocument, isDom, isDownloadingEvent, isEditableElement, isElementVisible, isFirefox, isFocusable, isHTMLElement, isIPad, isIPhone, isInView, isInputElement, isInteractiveContainerElement, isIos, isKeyboardClick, isLeftClick, isMac, isModifierKey, isNode, isOpeningInNewTab, isOverflowElement, isPrintableKey, isRootElement, isSafari, isSelfTarget, isShadowRoot, isTabbable, isTouchDevice, isTouchEvent, isValidTabEvent, isVirtualClick, isVirtualPointerEvent, isVisualViewport, isWebKit, isWindow, itemById, navigate, nextById, nextTick, observeAttributes, observeChildren, prevById, proxyTabFocus, query, queryAll, queueBeforeEvent, raf, requestPointerLock, resizeObserverBorderBox, resizeObserverContentBox, resizeObserverDevicePixelContentBox, restoreTextSelection, scrollIntoView, setAttribute, setCaretToEnd, setElementChecked, setElementValue, setProperty, setStyle, setStyleProperty, setVisuallyHidden, trackFormControl, trackPointerMove, trackPress, trackVisualViewport, visuallyHiddenStyle, waitForElement, waitForEvent, waitForPromise };\n", "var __defProp = Object.defineProperty;\nvar __typeError = (msg) => {\n  throw TypeError(msg);\n};\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 __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n\n// src/array.ts\nfunction toArray(v) {\n  if (v == null) 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 diff = (a, b) => {\n  const set = new Set(b);\n  return a.filter((t) => !set.has(t));\n};\nvar addOrRemove = (v, item) => has(v, item) ? remove(v, item) : add(v, item);\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}\nfunction chunk(v, size) {\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  }, []);\n}\nfunction flatArray(arr) {\n  return arr.reduce((flat, item) => {\n    if (Array.isArray(item)) {\n      return flat.concat(flatArray(item));\n    }\n    return flat.concat(item);\n  }, []);\n}\nfunction partition(arr, fn) {\n  return arr.reduce(\n    ([pass, fail], value) => {\n      if (fn(value)) pass.push(value);\n      else fail.push(value);\n      return [pass, fail];\n    },\n    [[], []]\n  );\n}\n\n// src/equal.ts\nvar isArrayLike = (value) => value?.constructor.name === \"Array\";\nvar isArrayEqual = (a, b) => {\n  if (a.length !== b.length) return false;\n  for (let i = 0; i < a.length; i++) {\n    if (!isEqual(a[i], b[i])) return false;\n  }\n  return true;\n};\nvar isEqual = (a, b) => {\n  if (Object.is(a, b)) return true;\n  if (a == null && b != null || a != null && b == null) return false;\n  if (typeof a?.isEqual === \"function\" && typeof b?.isEqual === \"function\") {\n    return a.isEqual(b);\n  }\n  if (typeof a === \"function\" && typeof b === \"function\") {\n    return a.toString() === b.toString();\n  }\n  if (isArrayLike(a) && isArrayLike(b)) {\n    return isArrayEqual(Array.from(a), Array.from(b));\n  }\n  if (!(typeof a === \"object\") || !(typeof b === \"object\")) return false;\n  const keys = Object.keys(b ?? /* @__PURE__ */ Object.create(null));\n  const length = keys.length;\n  for (let i = 0; i < length; i++) {\n    const hasKey = Reflect.has(a, keys[i]);\n    if (!hasKey) return false;\n  }\n  for (let i = 0; i < length; i++) {\n    const key = keys[i];\n    if (!isEqual(a[key], b[key])) return false;\n  }\n  return true;\n};\n\n// src/guard.ts\nvar isDev = () => process.env.NODE_ENV !== \"production\";\nvar isArray = (v) => Array.isArray(v);\nvar isBoolean = (v) => v === true || v === false;\nvar isObjectLike = (v) => v != null && typeof v === \"object\";\nvar isObject = (v) => isObjectLike(v) && !isArray(v);\nvar isNumber = (v) => typeof v === \"number\" && !Number.isNaN(v);\nvar isString = (v) => typeof v === \"string\";\nvar isFunction = (v) => typeof v === \"function\";\nvar isNull = (v) => v == null;\nvar hasProp = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nvar baseGetTag = (v) => Object.prototype.toString.call(v);\nvar fnToString = Function.prototype.toString;\nvar objectCtorString = fnToString.call(Object);\nvar isPlainObject = (v) => {\n  if (!isObjectLike(v) || baseGetTag(v) != \"[object Object]\" || isFrameworkElement(v)) 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};\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 isFrameworkElement = (x) => isReactElement(x) || isVueElement(x);\n\n// src/functions.ts\nvar runIfFn = (v, ...a) => {\n  const res = typeof v === \"function\" ? v(...a) : v;\n  return res ?? void 0;\n};\nvar cast = (v) => v;\nvar identity = (v) => v();\nvar noop = () => {\n};\nvar callAll = (...fns) => (...a) => {\n  fns.forEach(function(fn) {\n    fn?.(...a);\n  });\n};\nvar uuid = /* @__PURE__ */ (() => {\n  let id = 0;\n  return () => {\n    id++;\n    return id.toString(36);\n  };\n})();\nfunction match(key, record, ...args) {\n  if (key in record) {\n    const fn = record[key];\n    return isFunction(fn) ? fn(...args) : fn;\n  }\n  const error = new Error(`No matching key: ${JSON.stringify(key)} in ${JSON.stringify(Object.keys(record))}`);\n  Error.captureStackTrace?.(error, match);\n  throw error;\n}\nvar tryCatch = (fn, fallback) => {\n  try {\n    return fn();\n  } catch (error) {\n    if (error instanceof Error) {\n      Error.captureStackTrace?.(error, tryCatch);\n    }\n    return fallback?.();\n  }\n};\nfunction throttle(fn, wait = 0) {\n  let lastCall = 0;\n  let timeout = null;\n  return ((...args) => {\n    const now = Date.now();\n    const timeSinceLastCall = now - lastCall;\n    if (timeSinceLastCall >= wait) {\n      if (timeout) {\n        clearTimeout(timeout);\n        timeout = null;\n      }\n      fn(...args);\n      lastCall = now;\n    } else if (!timeout) {\n      timeout = setTimeout(() => {\n        fn(...args);\n        lastCall = Date.now();\n        timeout = null;\n      }, wait - timeSinceLastCall);\n    }\n  });\n}\nfunction debounce(fn, wait = 0) {\n  let timeout = null;\n  return ((...args) => {\n    if (timeout) {\n      clearTimeout(timeout);\n      timeout = null;\n    }\n    timeout = setTimeout(() => {\n      fn(...args);\n    }, wait);\n  });\n}\nvar toChar = (code) => String.fromCharCode(code + (code > 25 ? 39 : 97));\nfunction toName(code) {\n  let name = \"\";\n  let x;\n  for (x = Math.abs(code); x > 52; x = x / 52 | 0) name = toChar(x % 52) + name;\n  return toChar(x % 52) + name;\n}\nfunction toPhash(h, x) {\n  let i = x.length;\n  while (i) h = h * 33 ^ x.charCodeAt(--i);\n  return h;\n}\nvar hash = (value) => toName(toPhash(5381, value) >>> 0);\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) => {\n  const value = nan(v);\n  const minCheck = vmin == null || value >= vmin;\n  const maxCheck = vmax == null || value <= vmax;\n  return minCheck && maxCheck;\n};\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  const min2 = vmin != null ? Number(vmin) : 0;\n  const max2 = Number(vmax);\n  const remainder = (v - min2) % step;\n  let snapped = abs(remainder) * 2 >= step ? v + sign(remainder) * (step - abs(remainder)) : v - remainder;\n  snapped = roundToStepPrecision(snapped, step);\n  if (!isNaN(min2) && snapped < min2) {\n    snapped = min2;\n  } else if (!isNaN(max2) && snapped > max2) {\n    const stepsInRange = floor((max2 - min2) / step);\n    const largestValidStep = min2 + stepsInRange * step;\n    snapped = stepsInRange <= 0 || largestValidStep < min2 ? max2 : largestValidStep;\n  }\n  return roundToStepPrecision(snapped, step);\n};\nvar setValueAtIndex = (vs, i, v) => {\n  if (vs[i] === v) return vs;\n  return [...vs.slice(0, i), v, ...vs.slice(i + 1)];\n};\nfunction getValueSetterAtIndex(index, ctx) {\n  const minValueAtIndex = getMinValueAtIndex(index, ctx.values, ctx.min);\n  const maxValueAtIndex = getMaxValueAtIndex(index, ctx.values, ctx.max);\n  let nextValues = ctx.values.slice();\n  return function setValue(value) {\n    let nextValue = snapValueToStep(value, minValueAtIndex, maxValueAtIndex, ctx.step);\n    nextValues = setValueAtIndex(nextValues, index, value);\n    nextValues[index] = nextValue;\n    return nextValues;\n  };\n}\nfunction getNextStepValue(index, ctx) {\n  const nextValue = ctx.values[index] + ctx.step;\n  return getValueSetterAtIndex(index, ctx)(nextValue);\n}\nfunction getPreviousStepValue(index, ctx) {\n  const nextValue = ctx.values[index] - ctx.step;\n  return getValueSetterAtIndex(index, ctx)(nextValue);\n}\nvar getClosestValueIndex = (vs, t) => {\n  let i = vs.findIndex((v) => t - v < 0);\n  if (i === 0) return i;\n  if (i === -1) return vs.length - 1;\n  let vLeft = vs[i - 1];\n  let vRight = vs[i];\n  if (abs(vLeft - t) < abs(vRight - t)) return i - 1;\n  return i;\n};\nvar getClosestValue = (vs, t) => vs[getClosestValueIndex(vs, t)];\nvar getValueRanges = (vs, vmin, vmax, gap) => vs.map((v, i) => ({\n  min: i === 0 ? vmin : vs[i - 1] + gap,\n  max: i === vs.length - 1 ? vmax : vs[i + 1] - gap,\n  value: v\n}));\nvar getValueTransformer = (va, vb) => {\n  const [a, b] = va;\n  const [c, d] = vb;\n  return (v) => a === b || c === d ? c : c + (d - c) / (b - a) * (v - a);\n};\nvar toFixedNumber = (v, d = 0, b = 10) => {\n  const pow2 = Math.pow(b, d);\n  return round(v * pow2) / pow2;\n};\nvar countDecimals = (value) => {\n  if (!Number.isFinite(value)) return 0;\n  let e = 1, p = 0;\n  while (Math.round(value * e) / e !== value) {\n    e *= 10;\n    p += 1;\n  }\n  return p;\n};\nvar decimalOp = (a, op, b) => {\n  let result = op === \"+\" ? a + b : a - b;\n  if (a % 1 !== 0 || b % 1 !== 0) {\n    const multiplier = 10 ** Math.max(countDecimals(a), countDecimals(b));\n    a = Math.round(a * multiplier);\n    b = Math.round(b * multiplier);\n    result = op === \"+\" ? a + b : a - b;\n    result /= multiplier;\n  }\n  return result;\n};\nvar incrementValue = (v, s) => decimalOp(nan(v), \"+\", s);\nvar decrementValue = (v, s) => decimalOp(nan(v), \"-\", s);\nvar toPx = (v) => typeof v === \"number\" ? `${v}px` : v;\n\n// 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 json = (v) => JSON.parse(JSON.stringify(v));\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  const ownKeys = Reflect.ownKeys(props);\n  for (const key of ownKeys) {\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/store.ts\nfunction createStore(initialState, compare = Object.is) {\n  let state = { ...initialState };\n  const listeners = /* @__PURE__ */ new Set();\n  const subscribe = (listener) => {\n    listeners.add(listener);\n    return () => listeners.delete(listener);\n  };\n  const publish = () => {\n    listeners.forEach((listener) => listener());\n  };\n  const get = (key) => {\n    return state[key];\n  };\n  const set = (key, value) => {\n    if (!compare(state[key], value)) {\n      state[key] = value;\n      publish();\n    }\n  };\n  const update = (updates) => {\n    let hasChanges = false;\n    for (const key in updates) {\n      const value = updates[key];\n      if (value !== void 0 && !compare(state[key], value)) {\n        state[key] = value;\n        hasChanges = true;\n      }\n    }\n    if (hasChanges) {\n      publish();\n    }\n  };\n  const snapshot = () => ({ ...state });\n  return {\n    subscribe,\n    get,\n    set,\n    update,\n    snapshot\n  };\n}\n\n// src/timers.ts\nvar currentTime = () => performance.now();\nvar _tick;\nvar Timer = class {\n  constructor(onTick) {\n    this.onTick = onTick;\n    __publicField(this, \"frameId\", null);\n    __publicField(this, \"pausedAtMs\", null);\n    __publicField(this, \"context\");\n    __publicField(this, \"cancelFrame\", () => {\n      if (this.frameId === null) return;\n      cancelAnimationFrame(this.frameId);\n      this.frameId = null;\n    });\n    __publicField(this, \"setStartMs\", (startMs) => {\n      this.context.startMs = startMs;\n    });\n    __publicField(this, \"start\", () => {\n      if (this.frameId !== null) return;\n      const now = currentTime();\n      if (this.pausedAtMs !== null) {\n        this.context.startMs += now - this.pausedAtMs;\n        this.pausedAtMs = null;\n      } else {\n        this.context.startMs = now;\n      }\n      this.frameId = requestAnimationFrame(__privateGet(this, _tick));\n    });\n    __publicField(this, \"pause\", () => {\n      if (this.frameId === null) return;\n      this.cancelFrame();\n      this.pausedAtMs = currentTime();\n    });\n    __publicField(this, \"stop\", () => {\n      if (this.frameId === null) return;\n      this.cancelFrame();\n      this.pausedAtMs = null;\n    });\n    __privateAdd(this, _tick, (now) => {\n      this.context.now = now;\n      this.context.deltaMs = now - this.context.startMs;\n      const shouldContinue = this.onTick(this.context);\n      if (shouldContinue === false) {\n        this.stop();\n        return;\n      }\n      this.frameId = requestAnimationFrame(__privateGet(this, _tick));\n    });\n    this.context = { now: 0, startMs: currentTime(), deltaMs: 0 };\n  }\n  get elapsedMs() {\n    if (this.pausedAtMs !== null) {\n      return this.pausedAtMs - this.context.startMs;\n    }\n    return currentTime() - this.context.startMs;\n  }\n};\n_tick = new WeakMap();\nfunction setRafInterval(fn, intervalMs) {\n  const timer = new Timer(({ now, deltaMs }) => {\n    if (deltaMs >= intervalMs) {\n      const startMs = intervalMs > 0 ? now - deltaMs % intervalMs : now;\n      timer.setStartMs(startMs);\n      fn({ startMs, deltaMs });\n    }\n  });\n  timer.start();\n  return () => timer.stop();\n}\nfunction setRafTimeout(fn, delayMs) {\n  const timer = new Timer(({ deltaMs }) => {\n    if (deltaMs >= delayMs) {\n      fn();\n      return false;\n    }\n  });\n  timer.start();\n  return () => timer.stop();\n}\n\n// src/warning.ts\nfunction warn(...a) {\n  const m = a.length === 1 ? a[0] : a[1];\n  const c = a.length === 2 ? a[0] : true;\n  if (c && process.env.NODE_ENV !== \"production\") {\n    console.warn(m);\n  }\n}\nfunction invariant(...a) {\n  const m = a.length === 1 ? a[0] : a[1];\n  const c = a.length === 2 ? a[0] : true;\n  if (c && process.env.NODE_ENV !== \"production\") {\n    throw new Error(m);\n  }\n}\nfunction ensure(c, m) {\n  if (c == null) throw new Error(m());\n}\nfunction ensureProps(props, keys, scope) {\n  let missingKeys = [];\n  for (const key of keys) {\n    if (props[key] == null) missingKeys.push(key);\n  }\n  if (missingKeys.length > 0)\n    throw new Error(`[zag-js${scope ? ` > ${scope}` : \"\"}] missing required props: ${missingKeys.join(\", \")}`);\n}\n\nexport { Timer, add, addOrRemove, callAll, cast, chunk, clampPercent, clampValue, clear, compact, createSplitProps, createStore, debounce, decrementValue, diff, ensure, ensureProps, first, flatArray, fromLength, getClosestValue, getClosestValueIndex, getMaxValueAtIndex, getMinValueAtIndex, getNextStepValue, getPercentValue, getPreviousStepValue, getValuePercent, getValueRanges, getValueSetterAtIndex, getValueTransformer, has, hasProp, hash, identity, incrementValue, insertAt, invariant, isArray, isBoolean, isDev, isEmpty, isEqual, isFunction, isNaN, isNull, isNumber, isObject, isObjectLike, isPlainObject, isString, isValueAtMax, isValueAtMin, isValueWithinRange, json, last, match, mod, nan, next, nextIndex, noop, omit, partition, pick, prev, prevIndex, remove, removeAt, roundToDpr, roundToStepPrecision, roundValue, runIfFn, setRafInterval, setRafTimeout, setValueAtIndex, snapValueToStep, splitProps, throttle, toArray, toFixedNumber, toPx, tryCatch, uniq, uuid, warn, wrap };\n", "import { callAll, isEqual, isString } from '@zag-js/utils';\nimport { isActiveElement, getActiveElement, getDocument } from '@zag-js/dom-query';\n\n// src/merge-props.ts\nvar clsx = (...args) => args.map((str) => str?.trim?.()).filter(Boolean).join(\" \");\nvar CSS_REGEX = /((?:--)?(?:\\w+-?)+)\\s*:\\s*([^;]*)/g;\nvar serialize = (style) => {\n  const res = {};\n  let match;\n  while (match = CSS_REGEX.exec(style)) {\n    res[match[1]] = match[2];\n  }\n  return res;\n};\nvar css = (a, b) => {\n  if (isString(a)) {\n    if (isString(b)) return `${a};${b}`;\n    a = serialize(a);\n  } else if (isString(b)) {\n    b = serialize(b);\n  }\n  return Object.assign({}, a ?? {}, b ?? {});\n};\nfunction mergeProps(...args) {\n  let result = {};\n  for (let props of args) {\n    if (!props) continue;\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    const symbols = Object.getOwnPropertySymbols(props);\n    for (let symbol of symbols) {\n      result[symbol] = props[symbol];\n    }\n  }\n  return result;\n}\nfunction memo(getDeps, fn, opts) {\n  let deps = [];\n  let result;\n  return (depArgs) => {\n    const newDeps = getDeps(depArgs);\n    const depsChanged = newDeps.length !== deps.length || newDeps.some((dep, index) => !isEqual(deps[index], dep));\n    if (!depsChanged) return result;\n    deps = newDeps;\n    result = fn(newDeps, depArgs);\n    opts?.onChange?.(result);\n    return result;\n  };\n}\n\n// src/create-machine.ts\nfunction createGuards() {\n  return {\n    and: (...guards) => {\n      return function andGuard(params) {\n        return guards.every((str) => params.guard(str));\n      };\n    },\n    or: (...guards) => {\n      return function orGuard(params) {\n        return guards.some((str) => params.guard(str));\n      };\n    },\n    not: (guard) => {\n      return function notGuard(params) {\n        return !params.guard(guard);\n      };\n    }\n  };\n}\nfunction createMachine(config) {\n  return config;\n}\nfunction setup() {\n  return {\n    guards: createGuards(),\n    createMachine: (config) => {\n      return createMachine(config);\n    },\n    choose: (transitions) => {\n      return function chooseFn({ choose }) {\n        return choose(transitions)?.actions;\n      };\n    }\n  };\n}\n\n// src/types.ts\nvar MachineStatus = /* @__PURE__ */ ((MachineStatus2) => {\n  MachineStatus2[\"NotStarted\"] = \"Not Started\";\n  MachineStatus2[\"Started\"] = \"Started\";\n  MachineStatus2[\"Stopped\"] = \"Stopped\";\n  return MachineStatus2;\n})(MachineStatus || {});\nvar INIT_STATE = \"__init__\";\nfunction createScope(props) {\n  const getRootNode = () => props.getRootNode?.() ?? document;\n  const getDoc = () => getDocument(getRootNode());\n  const getWin = () => getDoc().defaultView ?? window;\n  const getActiveElementFn = () => getActiveElement(getRootNode());\n  const getById = (id) => getRootNode().getElementById(id);\n  return {\n    ...props,\n    getRootNode,\n    getDoc,\n    getWin,\n    getActiveElement: getActiveElementFn,\n    isActiveElement,\n    getById\n  };\n}\n\nexport { INIT_STATE, MachineStatus, createGuards, createMachine, createScope, memo, mergeProps, setup };\n", "// src/prop-types.ts\nfunction createNormalizer(fn) {\n  return new Proxy({}, {\n    get(_target, key) {\n      if (key === \"style\")\n        return (props) => {\n          return fn({ style: props }).style;\n        };\n      return fn;\n    }\n  });\n}\n\n// src/create-props.ts\nvar createProps = () => (props) => Array.from(new Set(props));\n\nexport { createNormalizer, createProps };\n", "import { createAnatomy } from '@zag-js/anatomy';\nimport { prevById, nextById, queryAll, getEventKey, isSafari, dataAttr } from '@zag-js/dom-query';\nimport { warn, last, first, add, remove, createSplitProps } from '@zag-js/utils';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\n\n// src/accordion.anatomy.ts\nvar anatomy = createAnatomy(\"accordion\").parts(\"root\", \"item\", \"itemTrigger\", \"itemContent\", \"itemIndicator\");\nvar parts = anatomy.build();\nvar getRootId = (ctx) => ctx.ids?.root ?? `accordion:${ctx.id}`;\nvar getItemId = (ctx, value) => ctx.ids?.item?.(value) ?? `accordion:${ctx.id}:item:${value}`;\nvar getItemContentId = (ctx, value) => ctx.ids?.itemContent?.(value) ?? `accordion:${ctx.id}:content:${value}`;\nvar getItemTriggerId = (ctx, value) => ctx.ids?.itemTrigger?.(value) ?? `accordion:${ctx.id}:trigger:${value}`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getTriggerEls = (ctx) => {\n  const ownerId = CSS.escape(getRootId(ctx));\n  const selector = `[data-controls][data-ownedby='${ownerId}']:not([disabled])`;\n  return queryAll(getRootEl(ctx), selector);\n};\nvar getFirstTriggerEl = (ctx) => first(getTriggerEls(ctx));\nvar getLastTriggerEl = (ctx) => last(getTriggerEls(ctx));\nvar getNextTriggerEl = (ctx, id) => nextById(getTriggerEls(ctx), getItemTriggerId(ctx, id));\nvar getPrevTriggerEl = (ctx, id) => prevById(getTriggerEls(ctx), getItemTriggerId(ctx, id));\n\n// src/accordion.connect.ts\nfunction connect(service, normalize) {\n  const { send, context, prop, scope, computed } = service;\n  const focusedValue = context.get(\"focusedValue\");\n  const value = context.get(\"value\");\n  const multiple = prop(\"multiple\");\n  function setValue(value2) {\n    let nextValue = value2;\n    if (!multiple && nextValue.length > 1) {\n      nextValue = [nextValue[0]];\n    }\n    send({ type: \"VALUE.SET\", value: nextValue });\n  }\n  function getItemState(props2) {\n    return {\n      expanded: value.includes(props2.value),\n      focused: focusedValue === props2.value,\n      disabled: Boolean(props2.disabled ?? prop(\"disabled\"))\n    };\n  }\n  return {\n    focusedValue,\n    value,\n    setValue,\n    getItemState,\n    getRootProps() {\n      return normalize.element({\n        ...parts.root.attrs,\n        dir: prop(\"dir\"),\n        id: getRootId(scope),\n        \"data-orientation\": prop(\"orientation\")\n      });\n    },\n    getItemProps(props2) {\n      const itemState = getItemState(props2);\n      return normalize.element({\n        ...parts.item.attrs,\n        dir: prop(\"dir\"),\n        id: getItemId(scope, props2.value),\n        \"data-state\": itemState.expanded ? \"open\" : \"closed\",\n        \"data-focus\": dataAttr(itemState.focused),\n        \"data-disabled\": dataAttr(itemState.disabled),\n        \"data-orientation\": prop(\"orientation\")\n      });\n    },\n    getItemContentProps(props2) {\n      const itemState = getItemState(props2);\n      return normalize.element({\n        ...parts.itemContent.attrs,\n        dir: prop(\"dir\"),\n        role: \"region\",\n        id: getItemContentId(scope, props2.value),\n        \"aria-labelledby\": getItemTriggerId(scope, props2.value),\n        hidden: !itemState.expanded,\n        \"data-state\": itemState.expanded ? \"open\" : \"closed\",\n        \"data-disabled\": dataAttr(itemState.disabled),\n        \"data-focus\": dataAttr(itemState.focused),\n        \"data-orientation\": prop(\"orientation\")\n      });\n    },\n    getItemIndicatorProps(props2) {\n      const itemState = getItemState(props2);\n      return normalize.element({\n        ...parts.itemIndicator.attrs,\n        dir: prop(\"dir\"),\n        \"aria-hidden\": true,\n        \"data-state\": itemState.expanded ? \"open\" : \"closed\",\n        \"data-disabled\": dataAttr(itemState.disabled),\n        \"data-focus\": dataAttr(itemState.focused),\n        \"data-orientation\": prop(\"orientation\")\n      });\n    },\n    getItemTriggerProps(props2) {\n      const { value: value2 } = props2;\n      const itemState = getItemState(props2);\n      return normalize.button({\n        ...parts.itemTrigger.attrs,\n        type: \"button\",\n        dir: prop(\"dir\"),\n        id: getItemTriggerId(scope, value2),\n        \"aria-controls\": getItemContentId(scope, value2),\n        \"data-controls\": getItemContentId(scope, value2),\n        \"aria-expanded\": itemState.expanded,\n        disabled: itemState.disabled,\n        \"data-orientation\": prop(\"orientation\"),\n        \"aria-disabled\": itemState.disabled,\n        \"data-state\": itemState.expanded ? \"open\" : \"closed\",\n        \"data-ownedby\": getRootId(scope),\n        onFocus() {\n          if (itemState.disabled) return;\n          send({ type: \"TRIGGER.FOCUS\", value: value2 });\n        },\n        onBlur() {\n          if (itemState.disabled) return;\n          send({ type: \"TRIGGER.BLUR\" });\n        },\n        onClick(event) {\n          if (itemState.disabled) return;\n          if (isSafari()) {\n            event.currentTarget.focus();\n          }\n          send({ type: \"TRIGGER.CLICK\", value: value2 });\n        },\n        onKeyDown(event) {\n          if (event.defaultPrevented) return;\n          if (itemState.disabled) return;\n          const keyMap = {\n            ArrowDown() {\n              if (computed(\"isHorizontal\")) return;\n              send({ type: \"GOTO.NEXT\", value: value2 });\n            },\n            ArrowUp() {\n              if (computed(\"isHorizontal\")) return;\n              send({ type: \"GOTO.PREV\", value: value2 });\n            },\n            ArrowRight() {\n              if (!computed(\"isHorizontal\")) return;\n              send({ type: \"GOTO.NEXT\", value: value2 });\n            },\n            ArrowLeft() {\n              if (!computed(\"isHorizontal\")) return;\n              send({ type: \"GOTO.PREV\", value: value2 });\n            },\n            Home() {\n              send({ type: \"GOTO.FIRST\", value: value2 });\n            },\n            End() {\n              send({ type: \"GOTO.LAST\", value: value2 });\n            }\n          };\n          const key = getEventKey(event, {\n            dir: prop(\"dir\"),\n            orientation: prop(\"orientation\")\n          });\n          const exec = keyMap[key];\n          if (exec) {\n            exec(event);\n            event.preventDefault();\n          }\n        }\n      });\n    }\n  };\n}\nvar { and, not } = createGuards();\nvar machine = createMachine({\n  props({ props: props2 }) {\n    return {\n      collapsible: false,\n      multiple: false,\n      orientation: \"vertical\",\n      defaultValue: [],\n      ...props2\n    };\n  },\n  initialState() {\n    return \"idle\";\n  },\n  context({ prop, bindable }) {\n    return {\n      focusedValue: bindable(() => ({\n        defaultValue: null,\n        sync: true,\n        onChange(value) {\n          prop(\"onFocusChange\")?.({ value });\n        }\n      })),\n      value: bindable(() => ({\n        defaultValue: prop(\"defaultValue\"),\n        value: prop(\"value\"),\n        onChange(value) {\n          prop(\"onValueChange\")?.({ value });\n        }\n      }))\n    };\n  },\n  computed: {\n    isHorizontal: ({ prop }) => prop(\"orientation\") === \"horizontal\"\n  },\n  on: {\n    \"VALUE.SET\": {\n      actions: [\"setValue\"]\n    }\n  },\n  states: {\n    idle: {\n      on: {\n        \"TRIGGER.FOCUS\": {\n          target: \"focused\",\n          actions: [\"setFocusedValue\"]\n        }\n      }\n    },\n    focused: {\n      on: {\n        \"GOTO.NEXT\": {\n          actions: [\"focusNextTrigger\"]\n        },\n        \"GOTO.PREV\": {\n          actions: [\"focusPrevTrigger\"]\n        },\n        \"TRIGGER.CLICK\": [\n          {\n            guard: and(\"isExpanded\", \"canToggle\"),\n            actions: [\"collapse\"]\n          },\n          {\n            guard: not(\"isExpanded\"),\n            actions: [\"expand\"]\n          }\n        ],\n        \"GOTO.FIRST\": {\n          actions: [\"focusFirstTrigger\"]\n        },\n        \"GOTO.LAST\": {\n          actions: [\"focusLastTrigger\"]\n        },\n        \"TRIGGER.BLUR\": {\n          target: \"idle\",\n          actions: [\"clearFocusedValue\"]\n        }\n      }\n    }\n  },\n  implementations: {\n    guards: {\n      canToggle: ({ prop }) => !!prop(\"collapsible\") || !!prop(\"multiple\"),\n      isExpanded: ({ context, event }) => context.get(\"value\").includes(event.value)\n    },\n    actions: {\n      collapse({ context, prop, event }) {\n        const next = prop(\"multiple\") ? remove(context.get(\"value\"), event.value) : [];\n        context.set(\"value\", next);\n      },\n      expand({ context, prop, event }) {\n        const next = prop(\"multiple\") ? add(context.get(\"value\"), event.value) : [event.value];\n        context.set(\"value\", next);\n      },\n      focusFirstTrigger({ scope }) {\n        getFirstTriggerEl(scope)?.focus();\n      },\n      focusLastTrigger({ scope }) {\n        getLastTriggerEl(scope)?.focus();\n      },\n      focusNextTrigger({ context, scope }) {\n        const focusedValue = context.get(\"focusedValue\");\n        if (!focusedValue) return;\n        const triggerEl = getNextTriggerEl(scope, focusedValue);\n        triggerEl?.focus();\n      },\n      focusPrevTrigger({ context, scope }) {\n        const focusedValue = context.get(\"focusedValue\");\n        if (!focusedValue) return;\n        const triggerEl = getPrevTriggerEl(scope, focusedValue);\n        triggerEl?.focus();\n      },\n      setFocusedValue({ context, event }) {\n        context.set(\"focusedValue\", event.value);\n      },\n      clearFocusedValue({ context }) {\n        context.set(\"focusedValue\", null);\n      },\n      setValue({ context, event }) {\n        context.set(\"value\", event.value);\n      },\n      coarseValue({ context, prop }) {\n        if (!prop(\"multiple\") && context.get(\"value\").length > 1) {\n          warn(`The value of accordion should be a single value when multiple is false.`);\n          context.set(\"value\", [context.get(\"value\")[0]]);\n        }\n      }\n    }\n  }\n});\nvar props = createProps()([\n  \"collapsible\",\n  \"dir\",\n  \"disabled\",\n  \"getRootNode\",\n  \"id\",\n  \"ids\",\n  \"multiple\",\n  \"onFocusChange\",\n  \"onValueChange\",\n  \"orientation\",\n  \"value\",\n  \"defaultValue\"\n]);\nvar splitProps = createSplitProps(props);\nvar itemProps = createProps()([\"value\", \"disabled\"]);\nvar splitItemProps = createSplitProps(itemProps);\n\nexport { anatomy, connect, itemProps, machine, props, splitItemProps, splitProps };\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) && !(x instanceof File) && !(x instanceof Blob) && !(x instanceof AbortController);\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", "import { createScope, MachineStatus, INIT_STATE } from '@zag-js/core';\nexport { mergeProps } from '@zag-js/core';\nimport { createNormalizer } from '@zag-js/types';\nimport { subscribe, proxy } from '@zag-js/store';\nimport { runIfFn, compact, isFunction, isPlainObject, warn, toArray, isString, isEqual, identity } from '@zag-js/utils';\n\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\nvar propMap = {\n  onFocus: \"onFocusin\",\n  onBlur: \"onFocusout\",\n  onChange: \"onInput\",\n  onDoubleClick: \"onDblclick\",\n  htmlFor: \"for\",\n  className: \"class\",\n  defaultValue: \"value\",\n  defaultChecked: \"checked\"\n};\nvar caseSensitiveSvgAttrs = /* @__PURE__ */ new Set([\"viewBox\", \"preserveAspectRatio\"]);\nvar toStyleString = (style) => {\n  let string = \"\";\n  for (let key in style) {\n    const value = style[key];\n    if (value === null || value === void 0) continue;\n    if (!key.startsWith(\"--\")) key = key.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);\n    string += `${key}:${value};`;\n  }\n  return string;\n};\nvar normalizeProps = createNormalizer((props) => {\n  return Object.entries(props).reduce((acc, [key, value]) => {\n    if (value === void 0) return acc;\n    if (key in propMap) {\n      key = propMap[key];\n    }\n    if (key === \"style\" && typeof value === \"object\") {\n      acc.style = toStyleString(value);\n      return acc;\n    }\n    const normalizedKey = caseSensitiveSvgAttrs.has(key) ? key : key.toLowerCase();\n    acc[normalizedKey] = value;\n    return acc;\n  }, {});\n});\n\n// src/spread-props.ts\nvar prevAttrsMap = /* @__PURE__ */ new WeakMap();\nvar assignableProps = /* @__PURE__ */ new Set([\"value\", \"checked\", \"selected\"]);\nvar caseSensitiveSvgAttrs2 = /* @__PURE__ */ new Set([\n  \"viewBox\",\n  \"preserveAspectRatio\",\n  \"clipPath\",\n  \"clipRule\",\n  \"fillRule\",\n  \"strokeWidth\",\n  \"strokeLinecap\",\n  \"strokeLinejoin\",\n  \"strokeDasharray\",\n  \"strokeDashoffset\",\n  \"strokeMiterlimit\"\n]);\nvar isSvgElement = (node) => {\n  return node.tagName === \"svg\" || node.namespaceURI === \"http://www.w3.org/2000/svg\";\n};\nvar getAttributeName = (node, attrName) => {\n  const shouldPreserveCase = isSvgElement(node) && caseSensitiveSvgAttrs2.has(attrName);\n  return shouldPreserveCase ? attrName : attrName.toLowerCase();\n};\nfunction spreadProps(node, attrs, machineId) {\n  const scopeKey = machineId || \"default\";\n  let machineMap = prevAttrsMap.get(node);\n  if (!machineMap) {\n    machineMap = /* @__PURE__ */ new Map();\n    prevAttrsMap.set(node, machineMap);\n  }\n  const oldAttrs = machineMap.get(scopeKey) || {};\n  const attrKeys = Object.keys(attrs);\n  const addEvt = (e, f) => {\n    node.addEventListener(e.toLowerCase(), f);\n  };\n  const remEvt = (e, f) => {\n    node.removeEventListener(e.toLowerCase(), f);\n  };\n  const onEvents = (attr) => attr.startsWith(\"on\");\n  const others = (attr) => !attr.startsWith(\"on\");\n  const setup = (attr) => addEvt(attr.substring(2), attrs[attr]);\n  const teardown = (attr) => remEvt(attr.substring(2), attrs[attr]);\n  const apply = (attrName) => {\n    const value = attrs[attrName];\n    const oldValue = oldAttrs[attrName];\n    if (value === oldValue) return;\n    if (attrName === \"class\") {\n      node.className = value ?? \"\";\n      return;\n    }\n    if (assignableProps.has(attrName)) {\n      node[attrName] = value ?? \"\";\n      return;\n    }\n    if (typeof value === \"boolean\" && !attrName.includes(\"aria-\")) {\n      node.toggleAttribute(getAttributeName(node, attrName), value);\n      return;\n    }\n    if (attrName === \"children\") {\n      node.innerHTML = value;\n      return;\n    }\n    if (value != null) {\n      node.setAttribute(getAttributeName(node, attrName), value);\n      return;\n    }\n    node.removeAttribute(getAttributeName(node, attrName));\n  };\n  for (const key in oldAttrs) {\n    if (attrs[key] == null) {\n      if (key === \"class\") {\n        node.className = \"\";\n      } else if (assignableProps.has(key)) {\n        node[key] = \"\";\n      } else {\n        node.removeAttribute(getAttributeName(node, key));\n      }\n    }\n  }\n  const oldEvents = Object.keys(oldAttrs).filter(onEvents);\n  oldEvents.forEach((evt) => {\n    remEvt(evt.substring(2), oldAttrs[evt]);\n  });\n  attrKeys.filter(onEvents).forEach(setup);\n  attrKeys.filter(others).forEach(apply);\n  machineMap.set(scopeKey, attrs);\n  return function cleanup() {\n    attrKeys.filter(onEvents).forEach(teardown);\n    const currentMachineMap = prevAttrsMap.get(node);\n    if (currentMachineMap) {\n      currentMachineMap.delete(scopeKey);\n      if (currentMachineMap.size === 0) {\n        prevAttrsMap.delete(node);\n      }\n    }\n  };\n}\nfunction bindable(props) {\n  const initial = props().value ?? props().defaultValue;\n  if (props().debug) {\n    console.log(`[bindable > ${props().debug}] initial`, initial);\n  }\n  const eq = props().isEqual ?? Object.is;\n  const store = proxy({ value: initial });\n  const controlled = () => props().value !== void 0;\n  return {\n    initial,\n    ref: store,\n    get() {\n      return controlled() ? props().value : store.value;\n    },\n    set(nextValue) {\n      const prev = store.value;\n      const next = isFunction(nextValue) ? nextValue(prev) : nextValue;\n      if (props().debug) {\n        console.log(`[bindable > ${props().debug}] setValue`, { next, prev });\n      }\n      if (!controlled()) store.value = next;\n      if (!eq(next, prev)) {\n        props().onChange?.(next, prev);\n      }\n    },\n    invoke(nextValue, prevValue) {\n      props().onChange?.(nextValue, prevValue);\n    },\n    hash(value) {\n      return props().hash?.(value) ?? String(value);\n    }\n  };\n}\nbindable.cleanup = (_fn) => {\n};\nbindable.ref = (defaultValue) => {\n  let value = defaultValue;\n  return {\n    get: () => value,\n    set: (next) => {\n      value = next;\n    }\n  };\n};\n\n// src/refs.ts\nfunction createRefs(refs) {\n  const ref = { current: refs };\n  return {\n    get(key) {\n      return ref.current[key];\n    },\n    set(key, value) {\n      ref.current[key] = value;\n    }\n  };\n}\nfunction mergeMachineProps(prev, next) {\n  if (!isPlainObject(prev) || !isPlainObject(next)) {\n    return next === void 0 ? prev : next;\n  }\n  const result = { ...prev };\n  for (const key of Object.keys(next)) {\n    const nextValue = next[key];\n    const prevValue = prev[key];\n    if (nextValue === void 0) {\n      continue;\n    }\n    if (isPlainObject(prevValue) && isPlainObject(nextValue)) {\n      result[key] = mergeMachineProps(prevValue, nextValue);\n    } else {\n      result[key] = nextValue;\n    }\n  }\n  return result;\n}\n\n// src/machine.ts\nvar VanillaMachine = class {\n  constructor(machine, userProps = {}) {\n    this.machine = machine;\n    __publicField(this, \"scope\");\n    __publicField(this, \"context\");\n    __publicField(this, \"prop\");\n    __publicField(this, \"state\");\n    __publicField(this, \"refs\");\n    __publicField(this, \"computed\");\n    __publicField(this, \"event\", { type: \"\" });\n    __publicField(this, \"previousEvent\", { type: \"\" });\n    __publicField(this, \"effects\", /* @__PURE__ */ new Map());\n    __publicField(this, \"transition\", null);\n    __publicField(this, \"cleanups\", []);\n    __publicField(this, \"subscriptions\", []);\n    __publicField(this, \"userPropsRef\");\n    __publicField(this, \"getEvent\", () => ({\n      ...this.event,\n      current: () => this.event,\n      previous: () => this.previousEvent\n    }));\n    __publicField(this, \"getStateConfig\", (state) => {\n      return this.machine.states[state];\n    });\n    __publicField(this, \"getState\", () => ({\n      ...this.state,\n      matches: (...values) => values.includes(this.state.get()),\n      hasTag: (tag) => !!this.getStateConfig(this.state.get())?.tags?.includes(tag)\n    }));\n    __publicField(this, \"debug\", (...args) => {\n      if (this.machine.debug) console.log(...args);\n    });\n    __publicField(this, \"notify\", () => {\n      this.publish();\n    });\n    __publicField(this, \"send\", (event) => {\n      if (this.status !== MachineStatus.Started) return;\n      queueMicrotask(() => {\n        if (!event) return;\n        this.previousEvent = this.event;\n        this.event = event;\n        this.debug(\"send\", event);\n        let currentState = this.state.get();\n        const eventType = event.type;\n        const transitions = this.getStateConfig(currentState)?.on?.[eventType] ?? this.machine.on?.[eventType];\n        const transition = this.choose(transitions);\n        if (!transition) return;\n        this.transition = transition;\n        const target = transition.target ?? currentState;\n        this.debug(\"transition\", transition);\n        const changed = target !== currentState;\n        if (changed) {\n          this.state.set(target);\n        } else if (transition.reenter && !changed) {\n          this.state.invoke(currentState, currentState);\n        } else {\n          this.action(transition.actions);\n        }\n      });\n    });\n    __publicField(this, \"action\", (keys) => {\n      const strs = isFunction(keys) ? keys(this.getParams()) : keys;\n      if (!strs) return;\n      const fns = strs.map((s) => {\n        const fn = this.machine.implementations?.actions?.[s];\n        if (!fn) warn(`[zag-js] No implementation found for action \"${JSON.stringify(s)}\"`);\n        return fn;\n      });\n      for (const fn of fns) {\n        fn?.(this.getParams());\n      }\n    });\n    __publicField(this, \"guard\", (str) => {\n      if (isFunction(str)) return str(this.getParams());\n      return this.machine.implementations?.guards?.[str](this.getParams());\n    });\n    __publicField(this, \"effect\", (keys) => {\n      const strs = isFunction(keys) ? keys(this.getParams()) : keys;\n      if (!strs) return;\n      const fns = strs.map((s) => {\n        const fn = this.machine.implementations?.effects?.[s];\n        if (!fn) warn(`[zag-js] No implementation found for effect \"${JSON.stringify(s)}\"`);\n        return fn;\n      });\n      const cleanups = [];\n      for (const fn of fns) {\n        const cleanup = fn?.(this.getParams());\n        if (cleanup) cleanups.push(cleanup);\n      }\n      return () => cleanups.forEach((fn) => fn?.());\n    });\n    __publicField(this, \"choose\", (transitions) => {\n      return toArray(transitions).find((t) => {\n        let result = !t.guard;\n        if (isString(t.guard)) result = !!this.guard(t.guard);\n        else if (isFunction(t.guard)) result = t.guard(this.getParams());\n        return result;\n      });\n    });\n    __publicField(this, \"subscribe\", (fn) => {\n      this.subscriptions.push(fn);\n      return () => {\n        const index = this.subscriptions.indexOf(fn);\n        if (index > -1) this.subscriptions.splice(index, 1);\n      };\n    });\n    __publicField(this, \"status\", MachineStatus.NotStarted);\n    __publicField(this, \"publish\", () => {\n      this.callTrackers();\n      this.subscriptions.forEach((fn) => fn(this.service));\n    });\n    __publicField(this, \"trackers\", []);\n    __publicField(this, \"setupTrackers\", () => {\n      this.machine.watch?.(this.getParams());\n    });\n    __publicField(this, \"callTrackers\", () => {\n      this.trackers.forEach(({ deps, fn }) => {\n        const next = deps.map((dep) => dep());\n        if (!isEqual(fn.prev, next)) {\n          fn();\n          fn.prev = next;\n        }\n      });\n    });\n    __publicField(this, \"getParams\", () => ({\n      state: this.getState(),\n      context: this.context,\n      event: this.getEvent(),\n      prop: this.prop,\n      send: this.send,\n      action: this.action,\n      guard: this.guard,\n      track: (deps, fn) => {\n        fn.prev = deps.map((dep) => dep());\n        this.trackers.push({ deps, fn });\n      },\n      refs: this.refs,\n      computed: this.computed,\n      flush: identity,\n      scope: this.scope,\n      choose: this.choose\n    }));\n    this.userPropsRef = { current: userProps };\n    const { id, ids, getRootNode } = runIfFn(userProps);\n    this.scope = createScope({ id, ids, getRootNode });\n    const prop = (key) => {\n      const __props = runIfFn(this.userPropsRef.current);\n      const props = machine.props?.({ props: compact(__props), scope: this.scope }) ?? __props;\n      return props[key];\n    };\n    this.prop = prop;\n    const context = machine.context?.({\n      prop,\n      bindable,\n      scope: this.scope,\n      flush(fn) {\n        queueMicrotask(fn);\n      },\n      getContext() {\n        return ctx;\n      },\n      getComputed() {\n        return computed;\n      },\n      getRefs() {\n        return refs;\n      },\n      getEvent: this.getEvent.bind(this)\n    });\n    if (context) {\n      Object.values(context).forEach((item) => {\n        const unsub = subscribe(item.ref, () => this.notify());\n        this.cleanups.push(unsub);\n      });\n    }\n    const ctx = {\n      get(key) {\n        return context?.[key].get();\n      },\n      set(key, value) {\n        context?.[key].set(value);\n      },\n      initial(key) {\n        return context?.[key].initial;\n      },\n      hash(key) {\n        const current = context?.[key].get();\n        return context?.[key].hash(current);\n      }\n    };\n    this.context = ctx;\n    const computed = (key) => {\n      return machine.computed?.[key]({\n        context: ctx,\n        event: this.getEvent(),\n        prop,\n        refs: this.refs,\n        scope: this.scope,\n        computed\n      }) ?? {};\n    };\n    this.computed = computed;\n    const refs = createRefs(machine.refs?.({ prop, context: ctx }) ?? {});\n    this.refs = refs;\n    const state = bindable(() => ({\n      defaultValue: machine.initialState({ prop }),\n      onChange: (nextState, prevState) => {\n        if (prevState) {\n          const exitEffects = this.effects.get(prevState);\n          exitEffects?.();\n          this.effects.delete(prevState);\n        }\n        if (prevState) {\n          this.action(this.getStateConfig(prevState)?.exit);\n        }\n        this.action(this.transition?.actions);\n        const cleanup = this.effect(this.getStateConfig(nextState)?.effects);\n        if (cleanup) this.effects.set(nextState, cleanup);\n        if (prevState === INIT_STATE) {\n          this.action(machine.entry);\n          const cleanup2 = this.effect(machine.effects);\n          if (cleanup2) this.effects.set(INIT_STATE, cleanup2);\n        }\n        this.action(this.getStateConfig(nextState)?.entry);\n      }\n    }));\n    this.state = state;\n    this.cleanups.push(subscribe(this.state.ref, () => this.notify()));\n  }\n  updateProps(newProps) {\n    const prevSource = this.userPropsRef.current;\n    this.userPropsRef.current = () => {\n      const prev = runIfFn(prevSource);\n      const next = runIfFn(newProps);\n      return mergeMachineProps(prev, next);\n    };\n    this.notify();\n  }\n  start() {\n    this.status = MachineStatus.Started;\n    this.debug(\"initializing...\");\n    this.state.invoke(this.state.initial, INIT_STATE);\n    this.setupTrackers();\n  }\n  stop() {\n    this.effects.forEach((fn) => fn?.());\n    this.effects.clear();\n    this.transition = null;\n    this.action(this.machine.exit);\n    this.cleanups.forEach((unsub) => unsub());\n    this.cleanups = [];\n    this.subscriptions = [];\n    this.status = MachineStatus.Stopped;\n    this.debug(\"unmounting...\");\n  }\n  get service() {\n    return {\n      state: this.getState(),\n      send: this.send,\n      context: this.context,\n      prop: this.prop,\n      scope: this.scope,\n      refs: this.refs,\n      computed: this.computed,\n      event: this.getEvent(),\n      getStatus: () => this.status\n    };\n  }\n};\n\nexport { VanillaMachine, normalizeProps, spreadProps };\n", "import { VanillaMachine, spreadProps } from \"@zag-js/vanilla\";\nimport type { Attrs } from \"@zag-js/vanilla\";\n\ninterface ComponentInterface<Api> {\n  el: HTMLElement;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  machine: VanillaMachine<any>;\n  api: Api;\n\n  init(): void;\n  destroy(): void;\n  render(): void;\n}\n\nexport abstract class Component<Props, Api> implements ComponentInterface<Api> {\n  el: HTMLElement;\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  machine: VanillaMachine<any>;\n  api: Api;\n\n  constructor(el: HTMLElement | null, props: Props) {\n    if (!el) throw new Error(\"Root element not found\");\n    this.el = el;\n    this.machine = this.initMachine(props);\n    this.api = this.initApi();\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  abstract initMachine(props: Props): VanillaMachine<any>;\n  abstract initApi(): Api;\n  abstract render(): void;\n\n  init = () => {\n    this.machine.start();\n    this.render();\n    this.machine.subscribe(() => {\n      this.api = this.initApi();\n      this.render();\n    });\n  };\n\n  destroy = () => {\n    this.machine.stop();\n  };\n\n  spreadProps = (el: HTMLElement, props: Attrs) => {\n    spreadProps(el, props);\n  };\n\n  updateProps = (props: Attrs) => {\n    this.machine.updateProps(props);\n  };\n}\n", "/**\n * Corex utility functions for working with Zag.js components.\n/**\n * Extract a string data attribute with validation for specific type\n * @param element - The HTML element to extract from\n * @param attrName - The data attribute name (without 'data-' prefix)\n * @param validValues - Optional array of allowed values\n * @returns Validated string value or undefined\n */\nexport const getString = <T extends string>(\n  element: HTMLElement,\n  attrName: string,\n  validValues?: readonly T[]\n): T | undefined => {\n  const value = element.dataset[attrName];\n  if (value !== undefined && (!validValues || (validValues as readonly string[]).includes(value))) {\n    return value as T;\n  }\n  return undefined;\n};\n/**\n * Extract a list of string values from a data attribute\n * @param element - The HTML element to extract from\n * @param attrName - The data attribute name (without 'data-' prefix)\n * @returns Array of strings or undefined\n */\nexport const getStringList = (element: HTMLElement, attrName: string): string[] | undefined => {\n  const value = element.dataset[attrName];\n  if (typeof value === \"string\") {\n    return value\n      .split(\",\")\n      .map((v) => v.trim())\n      .filter((v) => v.length > 0);\n  }\n  return undefined;\n};\n/**\n * Extract a number data attribute with optional validation\n * @param element - The HTML element to extract from\n * @param attrName - The data attribute name (without 'data-' prefix)\n * @param validValues - Optional array of allowed numeric values\n * @returns Parsed number value or undefined\n */\nexport const getNumber = (\n  element: HTMLElement,\n  attrName: string,\n  validValues?: readonly number[]\n): number | undefined => {\n  const raw = element.dataset[attrName];\n  if (raw === undefined) return undefined;\n  const parsed = Number(raw);\n  if (Number.isNaN(parsed)) return undefined;\n  if (validValues && !validValues.includes(parsed)) return 0;\n  return parsed;\n};\n\n/**\n * Extract a boolean data attribute\n * @param element - The HTML element to extract from\n * @param attrName - The data attribute name (without 'data-' prefix)\n * @returns Boolean value (true if attribute exists, false otherwise)\n */\nexport const getBoolean = (element: HTMLElement, attrName: string): boolean => {\n  return element.hasAttribute(`data-${attrName}`);\n};\n/**\n * Generate a random ID if none is provided\n * @param element - Optional HTML element to get an existing id\n * @param fallbackId - Optional fallback base string (e.g. \"checkbox\")\n * @returns ID string (existing or generated)\n */\nexport const generateId = (element?: HTMLElement, fallbackId: string = \"element\"): string => {\n  if (element?.id) return element.id;\n  return `${fallbackId}-${Math.random().toString(36).substring(2, 9)}`;\n};\n\n/**\n * Options for getPartIds function\n */\nexport interface GetPartIdsOptions {\n  /** The attribute name used for value identification (default: \"value\") */\n  valueAttr?: string;\n}\n\n/**\n * Auto-detect part IDs from the DOM and return them in the correct format.\n *\n * Uses the presence of data-value (or custom valueAttr) to determine if a part\n * is function-based (multiple) or string-based (single). No config needed!\n *\n * @param root - The root element containing the parts\n * @param options - Optional configuration\n * @returns ElementIds object with correct types, or undefined if no IDs found\n *\n * @example\n * import type { ElementIds } from \"@zag-js/accordion\";\n *\n * // No config needed - auto-detects from DOM structure\n * const ids = getPartIds<ElementIds>(el);\n *\n * // Custom value attribute if needed\n * const ids = getPartIds<ElementIds>(el, { valueAttr: \"index\" });\n */\nexport function getPartIds<T extends Partial<Record<string, string | ((value: string) => string)>>>(\n  root: HTMLElement,\n  options: GetPartIdsOptions = {}\n): Partial<T> | undefined {\n  const { valueAttr = \"value\" } = options;\n  const ids: Partial<T> = {} as Partial<T>;\n  let hasAnyId = false;\n\n  const allParts = root.querySelectorAll<HTMLElement>(\"[data-part]\");\n\n  const partGroups = new Map<string, HTMLElement[]>();\n  allParts.forEach((el) => {\n    const partName = el.dataset.part;\n    if (partName) {\n      if (!partGroups.has(partName)) {\n        partGroups.set(partName, []);\n      }\n      partGroups.get(partName)!.push(el);\n    }\n  });\n\n  for (const [kebabKey, elements] of partGroups) {\n    // Convert kebab-case to camelCase for the result\n    const camelKey = kebabKey.replace(/-([a-z])/g, (_, c) => c.toUpperCase());\n    const key = camelKey as keyof T;\n\n    const elementsWithIds = elements.filter((el) => el.dataset.id || el.id);\n    if (elementsWithIds.length === 0) continue;\n\n    const getValueFromElement = (el: HTMLElement): string | undefined => {\n      if (el.dataset[valueAttr] !== undefined) {\n        return el.dataset[valueAttr];\n      }\n      const parentItem = el.closest<HTMLElement>('[data-part=\"item\"]');\n      if (parentItem?.dataset[valueAttr] !== undefined) {\n        return parentItem.dataset[valueAttr];\n      }\n      return undefined;\n    };\n\n    const hasMultipleElements = elementsWithIds.length > 1;\n    const hasValueAnywhere = elementsWithIds.some((el) => getValueFromElement(el) !== undefined);\n\n    if (hasMultipleElements || hasValueAnywhere) {\n      const valueToIdMap = new Map<string, string>();\n      elementsWithIds.forEach((el) => {\n        const value = getValueFromElement(el);\n        const id = el.dataset.id || el.id;\n        if (value && id) {\n          valueToIdMap.set(value, id);\n        }\n      });\n\n      if (valueToIdMap.size > 0) {\n        (ids as Record<keyof T, string | ((value: string) => string)>)[key] = (\n          value: string\n        ): string => valueToIdMap.get(value) || \"\";\n        hasAnyId = true;\n      }\n    } else {\n      const id = elementsWithIds[0].dataset.id || elementsWithIds[0].id;\n      if (id) {\n        (ids as Record<keyof T, string | ((value: string) => string)>)[key] = id;\n        hasAnyId = true;\n      }\n    }\n  }\n\n  return hasAnyId ? ids : undefined;\n}\n", "import * as accordion from \"@zag-js/accordion\";\nimport { VanillaMachine, normalizeProps } from \"@zag-js/vanilla\";\nimport { Component } from \"../lib/core\";\nimport { getString, getBoolean } from \"../lib/util\";\n\nexport class Accordion extends Component<accordion.Props, accordion.Api> {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  initMachine(props: accordion.Props): VanillaMachine<any> {\n    return new VanillaMachine(accordion.machine, props);\n  }\n\n  initApi(): accordion.Api {\n    return accordion.connect(this.machine.service, normalizeProps);\n  }\n\n  render(): void {\n    const rootEl = this.el.querySelector<HTMLElement>('[data-part=\"root\"]') || this.el;\n    this.spreadProps(rootEl, this.api.getRootProps());\n\n    const items = this.el.querySelectorAll<HTMLElement>('[data-part=\"item\"]');\n\n    for (let i = 0; i < items.length; i++) {\n      const itemEl = items[i];\n      const value = getString(itemEl, \"value\");\n      if (!value) continue;\n\n      const disabled = getBoolean(itemEl, \"disabled\");\n      this.spreadProps(itemEl, this.api.getItemProps({ value, disabled }));\n\n      const triggerEl = itemEl.querySelector<HTMLElement>('[data-part=\"item-trigger\"]');\n      if (triggerEl) {\n        this.spreadProps(triggerEl, this.api.getItemTriggerProps({ value, disabled }));\n      }\n\n      const indicatorEl = itemEl.querySelector<HTMLElement>('[data-part=\"item-indicator\"]');\n      if (indicatorEl) {\n        this.spreadProps(indicatorEl, this.api.getItemIndicatorProps({ value, disabled }));\n      }\n\n      const contentEl = itemEl.querySelector<HTMLElement>('[data-part=\"item-content\"]');\n      if (contentEl) {\n        this.spreadProps(contentEl, this.api.getItemContentProps({ value, disabled }));\n      }\n    }\n  }\n}\n", "import type { Hook } from \"phoenix_live_view\";\nimport type { HookInterface, CallbackRef } from \"phoenix_live_view/assets/js/types/view_hook\";\nimport { Accordion } from \"../components/accordion\";\nimport type { ValueChangeDetails, Props } from \"@zag-js/accordion\";\nimport type { Direction, Orientation } from \"@zag-js/types\";\n\nimport { getString, getBoolean, getStringList } from \"../lib/util\";\n\ntype AccordionHookState = {\n  accordion?: Accordion;\n  handlers?: Array<CallbackRef>;\n  onSetValue?: (event: Event) => void;\n  wasFocused?: string | null;\n};\n\nconst AccordionHook: Hook<object & AccordionHookState, HTMLElement> = {\n  mounted(this: object & HookInterface<HTMLElement> & AccordionHookState) {\n    this.wasFocused = null; // Initialize here\n    const el = this.el;\n    const pushEvent = this.pushEvent.bind(this);\n    const props: Props = {\n      id: el.id,\n      defaultValue: getStringList(el, \"defaultValue\"),\n      value: getStringList(el, \"value\"),\n      collapsible: getBoolean(el, \"collapsible\"),\n      disabled: getBoolean(el, \"disabled\"),\n      multiple: getBoolean(el, \"multiple\"),\n      orientation: getString<Orientation>(el, \"orientation\", [\"horizontal\", \"vertical\"]),\n      dir: getString<Direction>(el, \"dir\", [\"ltr\", \"rtl\"]),\n      onValueChange: (details: ValueChangeDetails) => {\n        const eventName = getString(el, \"onValueChange\");\n        if (eventName && !this.liveSocket.main.isDead && this.liveSocket.main.isConnected()) {\n          pushEvent(eventName, {\n            value: details.value,\n            accordion_id: el.id,\n          });\n        }\n\n        const eventNameClient = getString(el, \"onValueChangeClient\");\n        if (eventNameClient) {\n          el.dispatchEvent(\n            new CustomEvent(eventNameClient, {\n              bubbles: true,\n              detail: {\n                value: details.value,\n                accordion_id: el.id,\n              },\n            })\n          );\n        }\n      },\n    };\n\n    const accordion = new Accordion(el, props);\n    accordion.init();\n    this.accordion = accordion;\n\n    this.onSetValue = (event: Event) => {\n      const { value } = (event as CustomEvent<{ value: string[] }>).detail;\n      accordion.api.setValue(value);\n    };\n    el.addEventListener(\"phx:accordion:set-value\", this.onSetValue);\n\n    this.handlers = [];\n\n    this.handlers.push(\n      this.handleEvent(\n        \"accordion_set_value\",\n        (payload: { accordion_id?: string; value: string[] }) => {\n          const targetId = payload.accordion_id;\n          if (targetId && targetId !== el.id) return;\n          accordion.api.setValue(payload.value);\n        }\n      )\n    );\n\n    this.handlers.push(\n      this.handleEvent(\"accordion_value\", () => {\n        this.pushEvent(\"accordion_value_response\", {\n          value: accordion.api.value,\n        });\n      })\n    );\n\n    this.handlers.push(\n      this.handleEvent(\"accordion_focused_value\", () => {\n        this.pushEvent(\"accordion_focused_value_response\", {\n          value: accordion.api.focusedValue,\n        });\n      })\n    );\n  },\n\n  updated(this: object & HookInterface<HTMLElement> & AccordionHookState) {\n    this.accordion?.updateProps({\n      defaultValue: getStringList(this.el, \"defaultValue\"),\n      value: getStringList(this.el, \"value\"),\n      collapsible: getBoolean(this.el, \"collapsible\"),\n      disabled: getBoolean(this.el, \"disabled\"),\n      multiple: getBoolean(this.el, \"multiple\"),\n      orientation: getString<Orientation>(this.el, \"orientation\", [\"horizontal\", \"vertical\"]),\n      dir: getString<Direction>(this.el, \"dir\", [\"ltr\", \"rtl\"]),\n    });\n  },\n\n  destroyed(this: object & HookInterface<HTMLElement> & AccordionHookState) {\n    if (this.onSetValue) {\n      this.el.removeEventListener(\"phx:accordion:set-value\", this.onSetValue);\n    }\n\n    if (this.handlers) {\n      for (const handler of this.handlers) {\n        this.removeHandleEvent(handler);\n      }\n    }\n\n    this.accordion?.destroy();\n  },\n};\n\nexport { AccordionHook as Accordion };\n", "import { raf, contains, getDocument, waitForElement, isHTMLElement, setStyle, addDomEvent, getEventTarget } 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 LAYER_REQUEST_DISMISS_EVENT = \"layer:request-dismiss\";\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  getLayersByType(type) {\n    return this.layers.filter((layer) => layer.type === type);\n  },\n  getNestedLayersByType(node, type) {\n    const index = this.indexOf(node);\n    if (index === -1) return [];\n    return this.layers.slice(index + 1).filter((layer) => layer.type === type);\n  },\n  getParentLayerOfType(node, type) {\n    const index = this.indexOf(node);\n    if (index <= 0) return void 0;\n    return this.layers.slice(0, index).reverse().find((layer) => layer.type === type);\n  },\n  countNestedLayersOfType(node, type) {\n    return this.getNestedLayersByType(node, type).length;\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    this.layers.push(layer);\n    this.syncLayers();\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) => layerStack.dismiss(layer.node, node));\n    }\n    this.layers.splice(index, 1);\n    this.syncLayers();\n  },\n  removeBranch(node) {\n    const index = this.branches.indexOf(node);\n    if (index >= 0) this.branches.splice(index, 1);\n  },\n  syncLayers() {\n    this.layers.forEach((layer, index) => {\n      layer.node.style.setProperty(\"--layer-index\", `${index}`);\n      layer.node.removeAttribute(\"data-nested\");\n      layer.node.removeAttribute(\"data-has-nested\");\n      const parentOfSameType = this.getParentLayerOfType(layer.node, layer.type);\n      if (parentOfSameType) {\n        layer.node.setAttribute(\"data-nested\", layer.type);\n      }\n      const nestedCount = this.countNestedLayersOfType(layer.node, layer.type);\n      if (nestedCount > 0) {\n        layer.node.setAttribute(\"data-has-nested\", layer.type);\n      }\n      layer.node.style.setProperty(\"--nested-layer-count\", `${nestedCount}`);\n    });\n  },\n  indexOf(node) {\n    return this.layers.findIndex((layer) => layer.node === node);\n  },\n  dismiss(node, parent) {\n    const index = this.indexOf(node);\n    if (index === -1) return;\n    const layer = this.layers[index];\n    addListenerOnce(node, LAYER_REQUEST_DISMISS_EVENT, (event) => {\n      layer.requestDismiss?.(event);\n      if (!event.defaultPrevented) {\n        layer?.dismiss();\n      }\n    });\n    fireCustomEvent(node, LAYER_REQUEST_DISMISS_EVENT, {\n      originalLayer: node,\n      targetLayer: parent,\n      originalIndex: index,\n      targetIndex: parent ? this.indexOf(parent) : -1\n    });\n    this.syncLayers();\n  },\n  clear() {\n    this.remove(this.layers[0].node);\n  }\n};\nfunction fireCustomEvent(el, type, detail) {\n  const win = el.ownerDocument.defaultView || window;\n  const event = new win.CustomEvent(type, { cancelable: true, bubbles: true, detail });\n  return el.dispatchEvent(event);\n}\nfunction addListenerOnce(el, type, callback) {\n  el.addEventListener(type, callback, { once: true });\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  persistentElements?.forEach((el) => {\n    const [promise, abort] = waitForElement(\n      () => {\n        const node2 = el();\n        return isHTMLElement(node2) ? node2 : null;\n      },\n      { timeout: 1e3 }\n    );\n    promise.then((el2) => cleanups.push(setStyle(el2, { pointerEvents: \"auto\" })));\n    cleanups.push(abort);\n  });\n  return () => {\n    if (layerStack.hasPointerBlockingLayer()) return;\n    queueMicrotask(() => {\n      doc.body.style.pointerEvents = originalBodyPointerEvents;\n      doc.body.removeAttribute(\"data-inert\");\n      if (doc.body.style.length === 0) doc.body.removeAttribute(\"style\");\n    });\n    cleanups.forEach((fn) => fn());\n  };\n}\n\n// src/dismissable-layer.ts\nfunction trackDismissableElementImpl(node, options) {\n  const { warnOnMissingNode = true } = options;\n  if (warnOnMissingNode && !node) {\n    warn(\"[@zag-js/dismissable] node is `null` or `undefined`\");\n    return;\n  }\n  if (!node) {\n    return;\n  }\n  const { onDismiss, onRequestDismiss, pointerBlocking, exclude: excludeContainers, debug, type = \"dialog\" } = options;\n  const layer = { dismiss: onDismiss, node, type, pointerBlocking, requestDismiss: onRequestDismiss };\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 { addDomEvent, AnimationFrame, raf, contains, dataAttr, MAX_Z_INDEX } from '@zag-js/dom-query';\nimport { createAnatomy } from '@zag-js/anatomy';\nimport { setup, createGuards, createMachine as createMachine$1 } from '@zag-js/core';\nimport { trackDismissableBranch } from '@zag-js/dismissable';\nimport { uuid, setRafTimeout, ensureProps, warn, runIfFn, compact } from '@zag-js/utils';\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();\n\n// src/toast.dom.ts\nvar getRegionId = (placement) => `toast-group:${placement}`;\nvar getRegionEl = (ctx, placement) => ctx.getById(`toast-group:${placement}`);\nvar getRootId = (ctx) => `toast:${ctx.id}`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getTitleId = (ctx) => `toast:${ctx.id}:title`;\nvar getDescriptionId = (ctx) => `toast:${ctx.id}:description`;\nvar getCloseTriggerId = (ctx) => `toast${ctx.id}:close`;\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}\nvar getOffsets = (offsets) => typeof offsets === \"string\" ? { left: offsets, right: offsets, bottom: offsets, top: offsets } : offsets;\nfunction getGroupPlacementStyle(service, placement) {\n  const { prop, computed, context } = service;\n  const { offsets, gap } = prop(\"store\").attrs;\n  const heights = context.get(\"heights\");\n  const computedOffset = getOffsets(offsets);\n  const rtl = prop(\"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: computed(\"count\") > 0 ? void 0 : \"none\",\n    display: \"flex\",\n    flexDirection: \"column\",\n    \"--gap\": `${gap}px`,\n    \"--first-height\": `${heights[0]?.height || 0}px`,\n    \"--viewport-offset-left\": computedOffset.left,\n    \"--viewport-offset-right\": computedOffset.right,\n    \"--viewport-offset-top\": computedOffset.top,\n    \"--viewport-offset-bottom\": computedOffset.bottom,\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 offset = computedOffset.top;\n    styles.top = `max(env(safe-area-inset-top, 0px), ${offset})`;\n  }\n  if (computedPlacement.includes(\"bottom\")) {\n    const offset = computedOffset.bottom;\n    styles.bottom = `max(env(safe-area-inset-bottom, 0px), ${offset})`;\n  }\n  if (!computedPlacement.includes(\"left\")) {\n    const offset = computedOffset.right;\n    styles.insetInlineEnd = `calc(env(safe-area-inset-right, 0px) + ${offset})`;\n  }\n  if (!computedPlacement.includes(\"right\")) {\n    const offset = computedOffset.left;\n    styles.insetInlineStart = `calc(env(safe-area-inset-left, 0px) + ${offset})`;\n  }\n  return styles;\n}\nfunction getPlacementStyle(service, visible) {\n  const { prop, context, computed } = service;\n  const parent = prop(\"parent\");\n  const placement = parent.computed(\"placement\");\n  const { gap } = parent.prop(\"store\").attrs;\n  const [side] = placement.split(\"-\");\n  const mounted = context.get(\"mounted\");\n  const remainingTime = context.get(\"remainingTime\");\n  const height = computed(\"height\");\n  const frontmost = computed(\"frontmost\");\n  const sibling = !frontmost;\n  const overlap = !prop(\"stacked\");\n  const stacked = prop(\"stacked\");\n  const type = prop(\"type\");\n  const duration = type === \"loading\" ? Number.MAX_SAFE_INTEGER : remainingTime;\n  const offset = computed(\"heightIndex\") * gap + computed(\"heightBefore\");\n  const styles = {\n    position: \"absolute\",\n    pointerEvents: \"auto\",\n    \"--opacity\": \"0\",\n    \"--remove-delay\": `${prop(\"removeDelay\")}ms`,\n    \"--duration\": `${duration}ms`,\n    \"--initial-height\": `${height}px`,\n    \"--offset\": `${offset}px`,\n    \"--index\": prop(\"index\"),\n    \"--z-index\": computed(\"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 (mounted) {\n    assign({\n      \"--y\": \"0\",\n      \"--opacity\": \"1\"\n    });\n    if (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 && stacked && !visible) {\n    assign({\n      \"--y\": \"calc(var(--lift) * var(--offset) + var(--lift) * -100%)\"\n    });\n  }\n  if (frontmost && !visible) {\n    assign({\n      \"--y\": \"calc(var(--lift) * -100%)\"\n    });\n  }\n  return styles;\n}\nfunction getGhostBeforeStyle(service, visible) {\n  const { computed } = service;\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 (computed(\"frontmost\") && !visible) {\n    assign({\n      height: \"calc(var(--initial-height) + 80%)\"\n    });\n  }\n  return styles;\n}\nfunction getGhostAfterStyle() {\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(service, normalize) {\n  const { context, prop, send, refs, computed } = service;\n  return {\n    getCount() {\n      return context.get(\"toasts\").length;\n    },\n    getToasts() {\n      return context.get(\"toasts\");\n    },\n    getGroupProps(options = {}) {\n      const { label = \"Notifications\" } = options;\n      const { hotkey } = prop(\"store\").attrs;\n      const hotkeyLabel = hotkey.join(\"+\").replace(/Key/g, \"\").replace(/Digit/g, \"\");\n      const placement = computed(\"placement\");\n      const [side, align = \"center\"] = placement.split(\"-\");\n      return normalize.element({\n        ...parts.group.attrs,\n        dir: prop(\"dir\"),\n        tabIndex: -1,\n        \"aria-label\": `${placement} ${label} ${hotkeyLabel}`,\n        id: getRegionId(placement),\n        \"data-placement\": placement,\n        \"data-side\": side,\n        \"data-align\": align,\n        \"aria-live\": \"polite\",\n        role: \"region\",\n        style: getGroupPlacementStyle(service, placement),\n        onMouseEnter() {\n          if (refs.get(\"ignoreMouseTimer\").isActive()) return;\n          send({ type: \"REGION.POINTER_ENTER\", placement });\n        },\n        onMouseMove() {\n          if (refs.get(\"ignoreMouseTimer\").isActive()) return;\n          send({ type: \"REGION.POINTER_ENTER\", placement });\n        },\n        onMouseLeave() {\n          if (refs.get(\"ignoreMouseTimer\").isActive()) return;\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 (refs.get(\"isFocusWithin\") && !contains(event.currentTarget, event.relatedTarget)) {\n            queueMicrotask(() => send({ type: \"REGION.BLUR\" }));\n          }\n        }\n      });\n    },\n    subscribe(fn) {\n      const store = prop(\"store\");\n      return store.subscribe(() => fn(context.get(\"toasts\")));\n    }\n  };\n}\nvar { guards, createMachine } = setup();\nvar { and } = guards;\nvar groupMachine = createMachine({\n  props({ props }) {\n    return {\n      dir: \"ltr\",\n      id: uuid(),\n      ...props,\n      store: props.store\n    };\n  },\n  initialState({ prop }) {\n    return prop(\"store\").attrs.overlap ? \"overlap\" : \"stack\";\n  },\n  refs() {\n    return {\n      lastFocusedEl: null,\n      isFocusWithin: false,\n      isPointerWithin: false,\n      ignoreMouseTimer: AnimationFrame.create(),\n      dismissableCleanup: void 0\n    };\n  },\n  context({ bindable }) {\n    return {\n      toasts: bindable(() => ({\n        defaultValue: [],\n        sync: true,\n        hash: (toasts) => toasts.map((t) => t.id).join(\",\")\n      })),\n      heights: bindable(() => ({\n        defaultValue: [],\n        sync: true\n      }))\n    };\n  },\n  computed: {\n    count: ({ context }) => context.get(\"toasts\").length,\n    overlap: ({ prop }) => prop(\"store\").attrs.overlap,\n    placement: ({ prop }) => prop(\"store\").attrs.placement\n  },\n  effects: [\"subscribeToStore\", \"trackDocumentVisibility\", \"trackHotKeyPress\"],\n  watch({ track, context, action }) {\n    track([() => context.hash(\"toasts\")], () => {\n      queueMicrotask(() => {\n        action([\"collapsedIfEmpty\", \"setDismissableBranch\"]);\n      });\n    });\n  },\n  exit: [\"clearDismissableBranch\", \"clearLastFocusedEl\", \"clearMouseEventTimer\"],\n  on: {\n    \"DOC.HOTKEY\": {\n      actions: [\"focusRegionEl\"]\n    },\n    \"REGION.BLUR\": [\n      {\n        guard: and(\"isOverlapping\", \"isPointerOut\"),\n        target: \"overlap\",\n        actions: [\"collapseToasts\", \"resumeToasts\", \"restoreFocusIfPointerOut\"]\n      },\n      {\n        guard: \"isPointerOut\",\n        target: \"stack\",\n        actions: [\"resumeToasts\", \"restoreFocusIfPointerOut\"]\n      },\n      {\n        actions: [\"clearFocusWithin\"]\n      }\n    ],\n    \"TOAST.REMOVE\": {\n      actions: [\"removeToast\", \"removeHeight\", \"ignoreMouseEventsTemporarily\"]\n    },\n    \"TOAST.PAUSE\": {\n      actions: [\"pauseToasts\"]\n    }\n  },\n  states: {\n    stack: {\n      on: {\n        \"REGION.POINTER_LEAVE\": [\n          {\n            guard: \"isOverlapping\",\n            target: \"overlap\",\n            actions: [\"clearPointerWithin\", \"resumeToasts\", \"collapseToasts\"]\n          },\n          {\n            actions: [\"clearPointerWithin\", \"resumeToasts\"]\n          }\n        ],\n        \"REGION.OVERLAP\": {\n          target: \"overlap\",\n          actions: [\"collapseToasts\"]\n        },\n        \"REGION.FOCUS\": {\n          actions: [\"setLastFocusedEl\", \"pauseToasts\"]\n        },\n        \"REGION.POINTER_ENTER\": {\n          actions: [\"setPointerWithin\", \"pauseToasts\"]\n        }\n      }\n    },\n    overlap: {\n      on: {\n        \"REGION.STACK\": {\n          target: \"stack\",\n          actions: [\"expandToasts\"]\n        },\n        \"REGION.POINTER_ENTER\": {\n          target: \"stack\",\n          actions: [\"setPointerWithin\", \"pauseToasts\", \"expandToasts\"]\n        },\n        \"REGION.FOCUS\": {\n          target: \"stack\",\n          actions: [\"setLastFocusedEl\", \"pauseToasts\", \"expandToasts\"]\n        }\n      }\n    }\n  },\n  implementations: {\n    guards: {\n      isOverlapping: ({ computed }) => computed(\"overlap\"),\n      isPointerOut: ({ refs }) => !refs.get(\"isPointerWithin\")\n    },\n    effects: {\n      subscribeToStore({ context, prop }) {\n        const store = prop(\"store\");\n        context.set(\"toasts\", store.getVisibleToasts());\n        return store.subscribe((toast) => {\n          if (toast.dismiss) {\n            context.set(\"toasts\", (prev) => prev.filter((t) => t.id !== toast.id));\n            return;\n          }\n          context.set(\"toasts\", (prev) => {\n            const index = prev.findIndex((t) => t.id === toast.id);\n            if (index !== -1) {\n              return [...prev.slice(0, index), { ...prev[index], ...toast }, ...prev.slice(index + 1)];\n            }\n            return [toast, ...prev];\n          });\n        });\n      },\n      trackHotKeyPress({ prop, send }) {\n        const handleKeyDown = (event) => {\n          const { hotkey } = prop(\"store\").attrs;\n          const isHotkeyPressed = 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({ prop, send, scope }) {\n        const { pauseOnPageIdle } = prop(\"store\").attrs;\n        if (!pauseOnPageIdle) return;\n        const doc = scope.getDoc();\n        return addDomEvent(doc, \"visibilitychange\", () => {\n          const isHidden = doc.visibilityState === \"hidden\";\n          send({ type: isHidden ? \"PAUSE_ALL\" : \"RESUME_ALL\" });\n        });\n      }\n    },\n    actions: {\n      setDismissableBranch({ refs, context, computed, scope }) {\n        const toasts = context.get(\"toasts\");\n        const placement = computed(\"placement\");\n        const hasToasts = toasts.length > 0;\n        if (!hasToasts) {\n          refs.get(\"dismissableCleanup\")?.();\n          return;\n        }\n        if (hasToasts && refs.get(\"dismissableCleanup\")) {\n          return;\n        }\n        const groupEl = () => getRegionEl(scope, placement);\n        const cleanup = trackDismissableBranch(groupEl, { defer: true });\n        refs.set(\"dismissableCleanup\", cleanup);\n      },\n      clearDismissableBranch({ refs }) {\n        refs.get(\"dismissableCleanup\")?.();\n      },\n      focusRegionEl({ scope, computed }) {\n        queueMicrotask(() => {\n          getRegionEl(scope, computed(\"placement\"))?.focus();\n        });\n      },\n      pauseToasts({ prop }) {\n        prop(\"store\").pause();\n      },\n      resumeToasts({ prop }) {\n        prop(\"store\").resume();\n      },\n      expandToasts({ prop }) {\n        prop(\"store\").expand();\n      },\n      collapseToasts({ prop }) {\n        prop(\"store\").collapse();\n      },\n      removeToast({ prop, event }) {\n        prop(\"store\").remove(event.id);\n      },\n      removeHeight({ event, context }) {\n        if (event?.id == null) return;\n        queueMicrotask(() => {\n          context.set(\"heights\", (heights) => heights.filter((height) => height.id !== event.id));\n        });\n      },\n      collapsedIfEmpty({ send, computed }) {\n        if (!computed(\"overlap\") || computed(\"count\") > 1) return;\n        send({ type: \"REGION.OVERLAP\" });\n      },\n      setLastFocusedEl({ refs, event }) {\n        if (refs.get(\"isFocusWithin\") || !event.target) return;\n        refs.set(\"isFocusWithin\", true);\n        refs.set(\"lastFocusedEl\", event.target);\n      },\n      restoreFocusIfPointerOut({ refs }) {\n        if (!refs.get(\"lastFocusedEl\") || refs.get(\"isPointerWithin\")) return;\n        refs.get(\"lastFocusedEl\")?.focus({ preventScroll: true });\n        refs.set(\"lastFocusedEl\", null);\n        refs.set(\"isFocusWithin\", false);\n      },\n      setPointerWithin({ refs }) {\n        refs.set(\"isPointerWithin\", true);\n      },\n      clearPointerWithin({ refs }) {\n        refs.set(\"isPointerWithin\", false);\n        if (refs.get(\"lastFocusedEl\") && !refs.get(\"isFocusWithin\")) {\n          refs.get(\"lastFocusedEl\")?.focus({ preventScroll: true });\n          refs.set(\"lastFocusedEl\", null);\n        }\n      },\n      clearFocusWithin({ refs }) {\n        refs.set(\"isFocusWithin\", false);\n      },\n      clearLastFocusedEl({ refs }) {\n        if (!refs.get(\"lastFocusedEl\")) return;\n        refs.get(\"lastFocusedEl\")?.focus({ preventScroll: true });\n        refs.set(\"lastFocusedEl\", null);\n        refs.set(\"isFocusWithin\", false);\n      },\n      ignoreMouseEventsTemporarily({ refs }) {\n        refs.get(\"ignoreMouseTimer\").request();\n      },\n      clearMouseEventTimer({ refs }) {\n        refs.get(\"ignoreMouseTimer\").cancel();\n      }\n    }\n  }\n});\nfunction connect(service, normalize) {\n  const { state, send, prop, scope, context, computed } = service;\n  const visible = state.hasTag(\"visible\");\n  const paused = state.hasTag(\"paused\");\n  const mounted = context.get(\"mounted\");\n  const frontmost = computed(\"frontmost\");\n  const placement = prop(\"parent\").computed(\"placement\");\n  const type = prop(\"type\");\n  const stacked = prop(\"stacked\");\n  const title = prop(\"title\");\n  const description = prop(\"description\");\n  const action = prop(\"action\");\n  const [side, align = \"center\"] = placement.split(\"-\");\n  return {\n    type,\n    title,\n    description,\n    placement,\n    visible,\n    paused,\n    closable: !!prop(\"closable\"),\n    pause() {\n      send({ type: \"PAUSE\" });\n    },\n    resume() {\n      send({ type: \"RESUME\" });\n    },\n    dismiss() {\n      send({ type: \"DISMISS\", src: \"programmatic\" });\n    },\n    getRootProps() {\n      return normalize.element({\n        ...parts.root.attrs,\n        dir: prop(\"dir\"),\n        id: getRootId(scope),\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(mounted),\n        \"data-paused\": dataAttr(paused),\n        \"data-first\": dataAttr(frontmost),\n        \"data-sibling\": dataAttr(!frontmost),\n        \"data-stack\": dataAttr(stacked),\n        \"data-overlap\": dataAttr(!stacked),\n        role: \"status\",\n        \"aria-atomic\": \"true\",\n        \"aria-describedby\": description ? getDescriptionId(scope) : void 0,\n        \"aria-labelledby\": title ? getTitleId(scope) : void 0,\n        tabIndex: 0,\n        style: getPlacementStyle(service, visible),\n        onKeyDown(event) {\n          if (event.defaultPrevented) return;\n          if (event.key == \"Escape\") {\n            send({ type: \"DISMISS\", src: \"keyboard\" });\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(service, 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: getTitleId(scope)\n      });\n    },\n    getDescriptionProps() {\n      return normalize.element({\n        ...parts.description.attrs,\n        id: getDescriptionId(scope)\n      });\n    },\n    getActionTriggerProps() {\n      return normalize.button({\n        ...parts.actionTrigger.attrs,\n        type: \"button\",\n        onClick(event) {\n          if (event.defaultPrevented) return;\n          action?.onClick?.();\n          send({ type: \"DISMISS\", src: \"user\" });\n        }\n      });\n    },\n    getCloseTriggerProps() {\n      return normalize.button({\n        id: getCloseTriggerId(scope),\n        ...parts.closeTrigger.attrs,\n        type: \"button\",\n        \"aria-label\": \"Dismiss notification\",\n        onClick(event) {\n          if (event.defaultPrevented) return;\n          send({ type: \"DISMISS\", src: \"user\" });\n        }\n      });\n    }\n  };\n}\nvar { not } = createGuards();\nvar machine = createMachine$1({\n  props({ props }) {\n    ensureProps(props, [\"id\", \"type\", \"parent\", \"removeDelay\"], \"toast\");\n    return {\n      closable: true,\n      ...props,\n      duration: getToastDuration(props.duration, props.type)\n    };\n  },\n  initialState({ prop }) {\n    const persist = prop(\"type\") === \"loading\" || prop(\"duration\") === Infinity;\n    return persist ? \"visible:persist\" : \"visible\";\n  },\n  context({ prop, bindable }) {\n    return {\n      remainingTime: bindable(() => ({\n        defaultValue: getToastDuration(prop(\"duration\"), prop(\"type\"))\n      })),\n      createdAt: bindable(() => ({\n        defaultValue: Date.now()\n      })),\n      mounted: bindable(() => ({\n        defaultValue: false\n      })),\n      initialHeight: bindable(() => ({\n        defaultValue: 0\n      }))\n    };\n  },\n  refs() {\n    return {\n      closeTimerStartTime: Date.now(),\n      lastCloseStartTimerStartTime: 0\n    };\n  },\n  computed: {\n    zIndex: ({ prop }) => {\n      const toasts = prop(\"parent\").context.get(\"toasts\");\n      const index = toasts.findIndex((toast) => toast.id === prop(\"id\"));\n      return toasts.length - index;\n    },\n    height: ({ prop }) => {\n      const heights = prop(\"parent\").context.get(\"heights\");\n      const height = heights.find((height2) => height2.id === prop(\"id\"));\n      return height?.height ?? 0;\n    },\n    heightIndex: ({ prop }) => {\n      const heights = prop(\"parent\").context.get(\"heights\");\n      return heights.findIndex((height) => height.id === prop(\"id\"));\n    },\n    frontmost: ({ prop }) => prop(\"index\") === 0,\n    heightBefore: ({ prop }) => {\n      const heights = prop(\"parent\").context.get(\"heights\");\n      const heightIndex = heights.findIndex((height) => height.id === prop(\"id\"));\n      return heights.reduce((prev, curr, reducerIndex) => {\n        if (reducerIndex >= heightIndex) return prev;\n        return prev + curr.height;\n      }, 0);\n    },\n    shouldPersist: ({ prop }) => prop(\"type\") === \"loading\" || prop(\"duration\") === Infinity\n  },\n  watch({ track, prop, send }) {\n    track([() => prop(\"message\")], () => {\n      const message = prop(\"message\");\n      if (message) send({ type: message, src: \"programmatic\" });\n    });\n    track([() => prop(\"type\"), () => prop(\"duration\")], () => {\n      send({ type: \"UPDATE\" });\n    });\n  },\n  on: {\n    UPDATE: [\n      {\n        guard: \"shouldPersist\",\n        target: \"visible:persist\",\n        actions: [\"resetCloseTimer\"]\n      },\n      {\n        target: \"visible:updating\",\n        actions: [\"resetCloseTimer\"]\n      }\n    ],\n    MEASURE: {\n      actions: [\"measureHeight\"]\n    }\n  },\n  entry: [\"setMounted\", \"measureHeight\", \"invokeOnVisible\"],\n  effects: [\"trackHeight\"],\n  states: {\n    \"visible:updating\": {\n      tags: [\"visible\", \"updating\"],\n      effects: [\"waitForNextTick\"],\n      on: {\n        SHOW: {\n          target: \"visible\"\n        }\n      }\n    },\n    \"visible:persist\": {\n      tags: [\"visible\", \"paused\"],\n      on: {\n        RESUME: {\n          guard: not(\"isLoadingType\"),\n          target: \"visible\",\n          actions: [\"setCloseTimer\"]\n        },\n        DISMISS: {\n          target: \"dismissing\"\n        }\n      }\n    },\n    visible: {\n      tags: [\"visible\"],\n      effects: [\"waitForDuration\"],\n      on: {\n        DISMISS: {\n          target: \"dismissing\"\n        },\n        PAUSE: {\n          target: \"visible:persist\",\n          actions: [\"syncRemainingTime\"]\n        }\n      }\n    },\n    dismissing: {\n      entry: [\"invokeOnDismiss\"],\n      effects: [\"waitForRemoveDelay\"],\n      on: {\n        REMOVE: {\n          target: \"unmounted\",\n          actions: [\"notifyParentToRemove\"]\n        }\n      }\n    },\n    unmounted: {\n      entry: [\"invokeOnUnmount\"]\n    }\n  },\n  implementations: {\n    effects: {\n      waitForRemoveDelay({ prop, send }) {\n        return setRafTimeout(() => {\n          send({ type: \"REMOVE\", src: \"timer\" });\n        }, prop(\"removeDelay\"));\n      },\n      waitForDuration({ send, context, computed }) {\n        if (computed(\"shouldPersist\")) return;\n        return setRafTimeout(() => {\n          send({ type: \"DISMISS\", src: \"timer\" });\n        }, context.get(\"remainingTime\"));\n      },\n      waitForNextTick({ send }) {\n        return setRafTimeout(() => {\n          send({ type: \"SHOW\", src: \"timer\" });\n        }, 0);\n      },\n      trackHeight({ scope, prop }) {\n        let cleanup;\n        raf(() => {\n          const rootEl = getRootEl(scope);\n          if (!rootEl) return;\n          const syncHeight = () => {\n            const originalHeight = rootEl.style.height;\n            rootEl.style.height = \"auto\";\n            const height = rootEl.getBoundingClientRect().height;\n            rootEl.style.height = originalHeight;\n            const item = { id: prop(\"id\"), height };\n            setHeight(prop(\"parent\"), item);\n          };\n          const win = scope.getWin();\n          const observer = new win.MutationObserver(syncHeight);\n          observer.observe(rootEl, {\n            childList: true,\n            subtree: true,\n            characterData: true\n          });\n          cleanup = () => observer.disconnect();\n        });\n        return () => cleanup?.();\n      }\n    },\n    guards: {\n      isLoadingType: ({ prop }) => prop(\"type\") === \"loading\",\n      shouldPersist: ({ computed }) => computed(\"shouldPersist\")\n    },\n    actions: {\n      setMounted({ context }) {\n        raf(() => {\n          context.set(\"mounted\", true);\n        });\n      },\n      measureHeight({ scope, prop, context }) {\n        queueMicrotask(() => {\n          const rootEl = getRootEl(scope);\n          if (!rootEl) return;\n          const originalHeight = rootEl.style.height;\n          rootEl.style.height = \"auto\";\n          const height = rootEl.getBoundingClientRect().height;\n          rootEl.style.height = originalHeight;\n          context.set(\"initialHeight\", height);\n          const item = { id: prop(\"id\"), height };\n          setHeight(prop(\"parent\"), item);\n        });\n      },\n      setCloseTimer({ refs }) {\n        refs.set(\"closeTimerStartTime\", Date.now());\n      },\n      resetCloseTimer({ context, refs, prop }) {\n        refs.set(\"closeTimerStartTime\", Date.now());\n        context.set(\"remainingTime\", getToastDuration(prop(\"duration\"), prop(\"type\")));\n      },\n      syncRemainingTime({ context, refs }) {\n        context.set(\"remainingTime\", (prev) => {\n          const closeTimerStartTime = refs.get(\"closeTimerStartTime\");\n          const elapsedTime = Date.now() - closeTimerStartTime;\n          refs.set(\"lastCloseStartTimerStartTime\", Date.now());\n          return prev - elapsedTime;\n        });\n      },\n      notifyParentToRemove({ prop }) {\n        const parent = prop(\"parent\");\n        parent.send({ type: \"TOAST.REMOVE\", id: prop(\"id\") });\n      },\n      invokeOnDismiss({ prop, event }) {\n        prop(\"onStatusChange\")?.({ status: \"dismissing\", src: event.src });\n      },\n      invokeOnUnmount({ prop }) {\n        prop(\"onStatusChange\")?.({ status: \"unmounted\" });\n      },\n      invokeOnVisible({ prop }) {\n        prop(\"onStatusChange\")?.({ status: \"visible\" });\n      }\n    }\n  }\n});\nfunction setHeight(parent, item) {\n  const { id, height } = item;\n  parent.context.set(\"heights\", (prev) => {\n    const alreadyExists = prev.find((i) => i.id === id);\n    if (!alreadyExists) {\n      return [{ id, height }, ...prev];\n    } else {\n      return prev.map((i) => i.id === id ? { ...i, height } : i);\n    }\n  });\n}\nvar withDefaults = (options, defaults) => {\n  return { ...defaults, ...compact(options) };\n};\nfunction createToastStore(props = {}) {\n  const attrs = withDefaults(props, {\n    placement: \"bottom\",\n    overlap: false,\n    max: 24,\n    gap: 16,\n    offsets: \"1rem\",\n    hotkey: [\"altKey\", \"KeyT\"],\n    removeDelay: 200,\n    pauseOnPageIdle: true\n  });\n  let subscribers = [];\n  let toasts = [];\n  let dismissedToasts = /* @__PURE__ */ new Set();\n  let toastQueue = [];\n  const subscribe = (subscriber) => {\n    subscribers.push(subscriber);\n    return () => {\n      const index = subscribers.indexOf(subscriber);\n      subscribers.splice(index, 1);\n    };\n  };\n  const publish = (data) => {\n    subscribers.forEach((subscriber) => subscriber(data));\n    return data;\n  };\n  const addToast = (data) => {\n    if (toasts.length >= attrs.max) {\n      toastQueue.push(data);\n      return;\n    }\n    publish(data);\n    toasts.unshift(data);\n  };\n  const processQueue = () => {\n    while (toastQueue.length > 0 && toasts.length < attrs.max) {\n      const nextToast = toastQueue.shift();\n      if (nextToast) {\n        publish(nextToast);\n        toasts.unshift(nextToast);\n      }\n    }\n  };\n  const create = (data) => {\n    const id = data.id ?? `toast:${uuid()}`;\n    const exists = toasts.find((toast) => toast.id === id);\n    if (dismissedToasts.has(id)) dismissedToasts.delete(id);\n    if (exists) {\n      toasts = toasts.map((toast) => {\n        if (toast.id === id) {\n          return publish({ ...toast, ...data, id });\n        }\n        return toast;\n      });\n    } else {\n      addToast({\n        id,\n        duration: attrs.duration,\n        removeDelay: attrs.removeDelay,\n        type: \"info\",\n        ...data,\n        stacked: !attrs.overlap,\n        gap: attrs.gap\n      });\n    }\n    return id;\n  };\n  const remove = (id) => {\n    dismissedToasts.add(id);\n    if (!id) {\n      toasts.forEach((toast) => {\n        subscribers.forEach((subscriber) => subscriber({ id: toast.id, dismiss: true }));\n      });\n      toasts = [];\n      toastQueue = [];\n    } else {\n      subscribers.forEach((subscriber) => subscriber({ id, dismiss: true }));\n      toasts = toasts.filter((toast) => toast.id !== id);\n      processQueue();\n    }\n    return id;\n  };\n  const error = (data) => {\n    return create({ ...data, type: \"error\" });\n  };\n  const success = (data) => {\n    return create({ ...data, type: \"success\" });\n  };\n  const info = (data) => {\n    return create({ ...data, type: \"info\" });\n  };\n  const warning = (data) => {\n    return create({ ...data, type: \"warning\" });\n  };\n  const loading = (data) => {\n    return create({ ...data, type: \"loading\" });\n  };\n  const getVisibleToasts = () => {\n    return toasts.filter((toast) => !dismissedToasts.has(toast.id));\n  };\n  const getCount = () => {\n    return toasts.length;\n  };\n  const promise = (promise2, options, shared = {}) => {\n    if (!options || !options.loading) {\n      warn(\"[zag-js > toast] toaster.promise() requires at least a 'loading' option to be specified\");\n      return;\n    }\n    const id = create({\n      ...shared,\n      ...options.loading,\n      promise: promise2,\n      type: \"loading\"\n    });\n    let removable = true;\n    let result;\n    const prom = runIfFn(promise2).then(async (response) => {\n      result = [\"resolve\", response];\n      if (isHttpResponse(response) && !response.ok) {\n        removable = false;\n        const errorOptions = runIfFn(options.error, `HTTP Error! status: ${response.status}`);\n        create({ ...shared, ...errorOptions, id, type: \"error\" });\n      } else if (options.success !== void 0) {\n        removable = false;\n        const successOptions = runIfFn(options.success, response);\n        create({ ...shared, ...successOptions, id, type: \"success\" });\n      }\n    }).catch(async (error2) => {\n      result = [\"reject\", error2];\n      if (options.error !== void 0) {\n        removable = false;\n        const errorOptions = runIfFn(options.error, error2);\n        create({ ...shared, ...errorOptions, id, type: \"error\" });\n      }\n    }).finally(() => {\n      if (removable) {\n        remove(id);\n      }\n      options.finally?.();\n    });\n    const unwrap = () => new Promise(\n      (resolve, reject) => prom.then(() => result[0] === \"reject\" ? reject(result[1]) : resolve(result[1])).catch(reject)\n    );\n    return { id, unwrap };\n  };\n  const update = (id, data) => {\n    return create({ id, ...data });\n  };\n  const pause = (id) => {\n    if (id != null) {\n      toasts = toasts.map((toast) => {\n        if (toast.id === id) return publish({ ...toast, message: \"PAUSE\" });\n        return toast;\n      });\n    } else {\n      toasts = toasts.map((toast) => publish({ ...toast, message: \"PAUSE\" }));\n    }\n  };\n  const resume = (id) => {\n    if (id != null) {\n      toasts = toasts.map((toast) => {\n        if (toast.id === id) return publish({ ...toast, message: \"RESUME\" });\n        return toast;\n      });\n    } else {\n      toasts = toasts.map((toast) => publish({ ...toast, message: \"RESUME\" }));\n    }\n  };\n  const dismiss = (id) => {\n    if (id != null) {\n      toasts = toasts.map((toast) => {\n        if (toast.id === id) return publish({ ...toast, message: \"DISMISS\" });\n        return toast;\n      });\n    } else {\n      toasts = toasts.map((toast) => publish({ ...toast, message: \"DISMISS\" }));\n    }\n  };\n  const isVisible = (id) => {\n    return !dismissedToasts.has(id) && !!toasts.find((toast) => toast.id === id);\n  };\n  const isDismissed = (id) => {\n    return dismissedToasts.has(id);\n  };\n  const expand = () => {\n    toasts = toasts.map((toast) => publish({ ...toast, stacked: true }));\n  };\n  const collapse = () => {\n    toasts = toasts.map((toast) => publish({ ...toast, stacked: false }));\n  };\n  return {\n    attrs,\n    subscribe,\n    create,\n    update,\n    remove,\n    dismiss,\n    error,\n    success,\n    info,\n    warning,\n    loading,\n    getVisibleToasts,\n    getCount,\n    promise,\n    pause,\n    resume,\n    isVisible,\n    isDismissed,\n    expand,\n    collapse\n  };\n}\nvar isHttpResponse = (data) => {\n  return data && typeof data === \"object\" && \"ok\" in data && typeof data.ok === \"boolean\" && \"status\" in data && typeof data.status === \"number\";\n};\n\n// src/index.ts\nvar group = {\n  connect: groupConnect,\n  machine: groupMachine\n};\n\nexport { anatomy, connect, createToastStore as createStore, group, machine };\n", "import * as toast from \"@zag-js/toast\";\nimport type { Store } from \"@zag-js/toast\";\nimport { VanillaMachine, normalizeProps } from \"@zag-js/vanilla\";\nimport { Component } from \"../lib/core\";\nimport { generateId } from \"../lib/util\";\n\n/* -------------------------------------------------------------------------------------------------\n * Shared registries\n * -----------------------------------------------------------------------------------------------*/\n\nexport const toastGroups = new Map<string, ToastGroup>();\nexport const toastStores = new Map<string, Store>();\n\n/* -------------------------------------------------------------------------------------------------\n * Toast item\n * -----------------------------------------------------------------------------------------------*/\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype ToastItemProps<T = any> = toast.Props<T> & {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  parent: any;\n  index: number;\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class ToastItem<T = any> extends Component<ToastItemProps<T>, toast.Api> {\n  private parts!: {\n    title: HTMLElement;\n    description: HTMLElement;\n    close: HTMLElement;\n    ghostBefore: HTMLElement;\n    ghostAfter: HTMLElement;\n  };\n\n  constructor(el: HTMLElement, props: ToastItemProps<T>) {\n    super(el, props);\n\n    this.el.setAttribute(\"data-scope\", \"toast\");\n    this.el.setAttribute(\"data-part\", \"root\");\n\n    this.el.innerHTML = `\n      <span data-scope=\"toast\" data-part=\"ghost-before\"></span>\n      <div data-scope=\"toast\" data-part=\"progressbar\"></div>\n\n      <div data-scope=\"toast\" data-part=\"content\">\n        <div data-scope=\"toast\" data-part=\"title\"></div>\n        <div data-scope=\"toast\" data-part=\"description\"></div>\n      </div>\n\n      <button data-scope=\"toast\" data-part=\"close-trigger\">\n        <svg viewBox=\"0 0 20 20\" aria-hidden=\"true\">\n          <path d=\"M4.293 4.293 10 8.586l5.707-5.707 1.414 1.414L11.414 10l5.707 5.707-1.414 1.414L10 11.414l-5.707 5.707-1.414-1.414L8.586 10 2.879 4.293z\"/>\n        </svg>\n      </button>\n\n      <span data-scope=\"toast\" data-part=\"ghost-after\"></span>\n    `;\n\n    this.parts = {\n      title: this.el.querySelector('[data-part=\"title\"]')!,\n      description: this.el.querySelector('[data-part=\"description\"]')!,\n      close: this.el.querySelector('[data-part=\"close-trigger\"]')!,\n      ghostBefore: this.el.querySelector('[data-part=\"ghost-before\"]')!,\n      ghostAfter: this.el.querySelector('[data-part=\"ghost-after\"]')!,\n    };\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  initMachine(props: toast.Props<T>): VanillaMachine<any> {\n    return new VanillaMachine(toast.machine, props);\n  }\n\n  initApi(): toast.Api {\n    return toast.connect(this.machine.service, normalizeProps);\n  }\n\n  render() {\n    this.spreadProps(this.el, this.api.getRootProps());\n    this.spreadProps(this.parts.close, this.api.getCloseTriggerProps());\n\n    this.spreadProps(this.parts.ghostBefore, this.api.getGhostBeforeProps());\n    this.spreadProps(this.parts.ghostAfter, this.api.getGhostAfterProps());\n\n    if (this.parts.title.textContent !== this.api.title) {\n      this.parts.title.textContent = this.api.title ?? \"\";\n    }\n\n    if (this.parts.description.textContent !== this.api.description) {\n      this.parts.description.textContent = this.api.description ?? \"\";\n    }\n\n    this.spreadProps(this.parts.title, this.api.getTitleProps());\n    this.spreadProps(this.parts.description, this.api.getDescriptionProps());\n  }\n\n  destroy = () => {\n    this.machine.stop();\n    this.el.remove();\n  };\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Toast group\n * -----------------------------------------------------------------------------------------------*/\n\nexport class ToastGroup extends Component<toast.GroupProps, toast.GroupApi> {\n  private toastComponents = new Map<string, ToastItem>();\n  private groupEl: HTMLElement;\n  public store: Store;\n\n  constructor(el: HTMLElement, props: toast.GroupProps) {\n    super(el, props);\n\n    this.store = props.store;\n\n    this.groupEl =\n      el.querySelector('[data-part=\"group\"]') ??\n      (() => {\n        const g = document.createElement(\"div\");\n        g.setAttribute(\"data-scope\", \"toast\");\n        g.setAttribute(\"data-part\", \"group\");\n        el.appendChild(g);\n        return g;\n      })();\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  initMachine(props: toast.GroupProps): VanillaMachine<any> {\n    return new VanillaMachine(toast.group.machine, props);\n  }\n\n  initApi(): toast.GroupApi {\n    return toast.group.connect(this.machine.service, normalizeProps);\n  }\n\n  render() {\n    this.spreadProps(this.groupEl, this.api.getGroupProps());\n\n    const toasts = this.api\n      .getToasts()\n      .filter((t): t is toast.Props & { id: string } => typeof t.id === \"string\");\n\n    const nextIds = new Set(toasts.map((t) => t.id));\n\n    toasts.forEach((toastData, index) => {\n      let item = this.toastComponents.get(toastData.id);\n\n      if (!item) {\n        const el = document.createElement(\"div\");\n        el.setAttribute(\"data-scope\", \"toast\");\n        el.setAttribute(\"data-part\", \"root\");\n        this.groupEl.appendChild(el);\n\n        item = new ToastItem(el, {\n          ...toastData,\n          parent: this.machine.service,\n          index,\n        });\n\n        item.init();\n        this.toastComponents.set(toastData.id, item);\n      } else {\n        item.updateProps({\n          ...toastData,\n          parent: this.machine.service,\n          index,\n        });\n      }\n    });\n\n    for (const [id, comp] of this.toastComponents) {\n      if (!nextIds.has(id)) {\n        comp.destroy();\n        this.toastComponents.delete(id);\n      }\n    }\n  }\n\n  destroy = () => {\n    for (const comp of this.toastComponents.values()) {\n      comp.destroy();\n    }\n    this.toastComponents.clear();\n    this.machine.stop();\n  };\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Public helpers\n * -----------------------------------------------------------------------------------------------*/\n\nexport function createToastGroup(\n  container: HTMLElement,\n  options?: Partial<toast.StoreProps> & {\n    id?: string;\n    store?: Store;\n  }\n) {\n  const groupId = options?.id ?? generateId(container, \"toast\");\n\n  const store =\n    options?.store ??\n    toast.createStore({\n      placement: options?.placement ?? \"bottom\",\n      overlap: options?.overlap,\n      max: options?.max,\n      gap: options?.gap,\n      offsets: options?.offsets,\n      pauseOnPageIdle: options?.pauseOnPageIdle,\n    });\n\n  const group = new ToastGroup(container, { id: groupId, store });\n  group.init();\n\n  toastGroups.set(groupId, group);\n  toastStores.set(groupId, store);\n\n  container.dataset.toastGroup = \"true\";\n  container.dataset.toastGroupId = groupId;\n\n  return { group, store };\n}\n\nexport function getToastStore(groupId?: string): Store | undefined {\n  if (groupId) return toastStores.get(groupId);\n\n  const el = document.querySelector<HTMLElement>(\"[data-toast-group]\");\n  if (!el) return;\n\n  const id = el.dataset.toastGroupId || el.id;\n  return id ? toastStores.get(id) : undefined;\n}\n\nexport function createToast(options: toast.Options & { groupId?: string }) {\n  const store = getToastStore(options.groupId);\n  if (!store) throw new Error(\"No toast store found\");\n\n  store.create({\n    ...options,\n    id: options.id ?? generateId(undefined, \"toast\"),\n  });\n}\n\nexport function updateToast(id: string, options: Partial<toast.Props>, groupId?: string) {\n  getToastStore(groupId)?.update(id, options);\n}\n\nexport function dismissToast(id: string, groupId?: string) {\n  getToastStore(groupId)?.dismiss(id);\n}\n", "import type { Hook } from \"phoenix_live_view\";\nimport type { HookInterface } from \"phoenix_live_view/assets/js/types/view_hook\";\n\nimport { createToastGroup, getToastStore } from \"../components/toast\";\nimport type { Placement } from \"@zag-js/toast\";\n\nimport { getString, getBoolean, getNumber, generateId } from \"../lib/util\";\n\nfunction onDisconnect(groupId: string) {\n  const store = getToastStore(groupId);\n  if (!store) return;\n\n  store.create({\n    title: \"Disconnected\",\n    description: \"You have been disconnected from the server.\",\n    type: \"info\",\n  });\n}\n\nfunction onConnect(groupId: string) {\n  const store = getToastStore(groupId);\n  if (!store) return;\n\n  store.create({\n    title: \"Connected\",\n    description: \"You have been connected to the server.\",\n    type: \"success\",\n  });\n}\n\nconst ToastHook: Hook<object, HTMLElement> = {\n  mounted(this: object & HookInterface<HTMLElement>) {\n    const el = this.el;\n\n    if (!el.id) {\n      el.id = generateId(el, \"toast\");\n    }\n    const groupId = el.id;\n\n    const placement =\n      getString<Placement>(el, \"placement\", [\n        \"top-start\",\n        \"top\",\n        \"top-end\",\n        \"bottom-start\",\n        \"bottom\",\n        \"bottom-end\",\n      ]) || \"bottom-end\";\n\n    const overlap = getBoolean(el, \"overlap\");\n    const max = getNumber(el, \"max\");\n    const gap = getNumber(el, \"gap\");\n    const offsets = getString(el, \"offset\");\n    const pauseOnPageIdle = getBoolean(el, \"pause-on-page-idle\");\n\n    let parsedOffsets: string | Record<\"left\" | \"right\" | \"bottom\" | \"top\", string> | undefined;\n    if (offsets) {\n      try {\n        parsedOffsets = offsets.includes(\"{\") ? JSON.parse(offsets) : offsets;\n      } catch {\n        parsedOffsets = offsets;\n      }\n    }\n\n    createToastGroup(el, {\n      id: groupId,\n      placement,\n      overlap,\n      max,\n      gap,\n      offsets: parsedOffsets,\n      pauseOnPageIdle,\n    });\n\n    this.handleEvent(\n      \"toast-create\",\n      (payload: {\n        title: string;\n        description?: string;\n        type?: \"info\" | \"success\" | \"error\" | \"warning\" | \"loading\";\n        id?: string;\n        duration?: number;\n        groupId?: string;\n      }) => {\n        const store = getToastStore(payload.groupId || groupId);\n        if (!store) return;\n\n        try {\n          store.create({\n            title: payload.title,\n            description: payload.description,\n            type: payload.type || \"info\",\n            id: payload.id || generateId(undefined, \"toast\"),\n            duration: payload.duration,\n          });\n        } catch (error) {\n          console.error(\"Failed to create toast:\", error);\n        }\n      }\n    );\n\n    this.handleEvent(\n      \"toast-update\",\n      (payload: {\n        id: string;\n        title?: string;\n        description?: string;\n        type?: \"info\" | \"success\" | \"error\" | \"warning\" | \"loading\";\n        groupId?: string;\n      }) => {\n        const store = getToastStore(payload.groupId || groupId);\n        if (!store) return;\n\n        try {\n          store.update(payload.id, {\n            title: payload.title,\n            description: payload.description,\n            type: payload.type,\n          });\n        } catch (error) {\n          console.error(\"Failed to update toast:\", error);\n        }\n      }\n    );\n\n    this.handleEvent(\"toast-dismiss\", (payload: { id: string; groupId?: string }) => {\n      const store = getToastStore(payload.groupId || groupId);\n      if (!store) return;\n\n      try {\n        store.dismiss(payload.id);\n      } catch (error) {\n        console.error(\"Failed to dismiss toast:\", error);\n      }\n    });\n\n    el.addEventListener(\"toast:create\", ((\n      event: CustomEvent<{\n        title: string;\n        description?: string;\n        type?: \"info\" | \"success\" | \"error\" | \"warning\" | \"loading\";\n        id?: string;\n        duration?: number;\n        groupId?: string;\n      }>\n    ) => {\n      const { detail } = event;\n      const store = getToastStore(detail.groupId || groupId);\n      if (!store) return;\n\n      try {\n        store.create({\n          title: detail.title,\n          description: detail.description,\n          type: detail.type || \"info\",\n          id: detail.id || generateId(undefined, \"toast\"),\n          duration: detail.duration,\n        });\n      } catch (error) {\n        console.error(\"Failed to create toast:\", error);\n      }\n    }) as EventListener);\n\n    const store = getToastStore(groupId);\n    const flashInfo = el.dataset.flashInfo;\n    const flashError = el.dataset.flashError;\n\n    if (store && flashInfo) {\n      try {\n        store.create({\n          title: flashInfo,\n          type: \"info\",\n          id: generateId(undefined, \"toast\"),\n        });\n      } catch (error) {\n        console.error(\"Failed to create flash info toast:\", error);\n      }\n    }\n\n    if (store && flashError) {\n      try {\n        store.create({\n          title: flashError,\n          type: \"error\",\n          id: generateId(undefined, \"toast\"),\n        });\n      } catch (error) {\n        console.error(\"Failed to create flash error toast:\", error);\n      }\n    }\n    const handleDisconnect = () => onDisconnect(groupId);\n    const handleConnect = () => onConnect(groupId);\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    (this as any)._toastDisconnect = handleDisconnect;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    (this as any)._toastConnect = handleConnect;\n\n    window.addEventListener(\"phx:disconnect\", handleDisconnect);\n    window.addEventListener(\"phx:connect\", handleConnect);\n  },\n\n  destroyed(this: object & HookInterface<HTMLElement>) {\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    const anyThis = this as any;\n\n    if (anyThis._toastDisconnect) {\n      window.removeEventListener(\"phx:disconnect\", anyThis._toastDisconnect);\n    }\n\n    if (anyThis._toastConnect) {\n      window.removeEventListener(\"phx:connect\", anyThis._toastConnect);\n    }\n  },\n};\n\nexport { ToastHook as Toast };\n", "import { getWindow, getDocument, getEventTarget, isVirtualClick, isMac } from '@zag-js/dom-query';\n\n// src/index.ts\nfunction isValidKey(e) {\n  return !(e.metaKey || !isMac() && e.altKey || e.ctrlKey || e.key === \"Control\" || e.key === \"Shift\" || e.key === \"Meta\");\n}\nvar nonTextInputTypes = /* @__PURE__ */ new Set([\"checkbox\", \"radio\", \"range\", \"color\", \"file\", \"image\", \"button\", \"submit\", \"reset\"]);\nfunction isKeyboardFocusEvent(isTextInput, modality, e) {\n  const target = e ? getEventTarget(e) : null;\n  const win = getWindow(target);\n  isTextInput = isTextInput || target instanceof win.HTMLInputElement && !nonTextInputTypes.has(target?.type) || target instanceof win.HTMLTextAreaElement || target instanceof win.HTMLElement && target.isContentEditable;\n  return !(isTextInput && modality === \"keyboard\" && e instanceof win.KeyboardEvent && !Reflect.has(FOCUS_VISIBLE_INPUT_KEYS, e.key));\n}\nvar currentModality = null;\nvar changeHandlers = /* @__PURE__ */ new Set();\nvar listenerMap = /* @__PURE__ */ new Map();\nvar hasEventBeforeFocus = false;\nvar hasBlurredWindowRecently = false;\nvar FOCUS_VISIBLE_INPUT_KEYS = {\n  Tab: true,\n  Escape: true\n};\nfunction triggerChangeHandlers(modality, e) {\n  for (let handler of changeHandlers) {\n    handler(modality, e);\n  }\n}\nfunction handleKeyboardEvent(e) {\n  hasEventBeforeFocus = true;\n  if (isValidKey(e)) {\n    currentModality = \"keyboard\";\n    triggerChangeHandlers(\"keyboard\", e);\n  }\n}\nfunction handlePointerEvent(e) {\n  currentModality = \"pointer\";\n  if (e.type === \"mousedown\" || e.type === \"pointerdown\") {\n    hasEventBeforeFocus = true;\n    triggerChangeHandlers(\"pointer\", e);\n  }\n}\nfunction handleClickEvent(e) {\n  if (isVirtualClick(e)) {\n    hasEventBeforeFocus = true;\n    currentModality = \"virtual\";\n  }\n}\nfunction handleFocusEvent(e) {\n  const target = getEventTarget(e);\n  if (target === getWindow(target) || target === getDocument(target)) {\n    return;\n  }\n  if (!hasEventBeforeFocus && !hasBlurredWindowRecently) {\n    currentModality = \"virtual\";\n    triggerChangeHandlers(\"virtual\", e);\n  }\n  hasEventBeforeFocus = false;\n  hasBlurredWindowRecently = false;\n}\nfunction handleWindowBlur() {\n  hasEventBeforeFocus = false;\n  hasBlurredWindowRecently = true;\n}\nfunction setupGlobalFocusEvents(root) {\n  if (typeof window === \"undefined\" || listenerMap.get(getWindow(root))) {\n    return;\n  }\n  const win = getWindow(root);\n  const doc = getDocument(root);\n  let focus = win.HTMLElement.prototype.focus;\n  function patchedFocus() {\n    currentModality = \"virtual\";\n    triggerChangeHandlers(\"virtual\", null);\n    hasEventBeforeFocus = true;\n    focus.apply(this, arguments);\n  }\n  try {\n    Object.defineProperty(win.HTMLElement.prototype, \"focus\", {\n      configurable: true,\n      value: patchedFocus\n    });\n  } catch {\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  const listenerData = listenerMap.get(win);\n  if (!listenerData) {\n    return;\n  }\n  try {\n    Object.defineProperty(win.HTMLElement.prototype, \"focus\", {\n      configurable: true,\n      value: listenerData.focus\n    });\n  } catch {\n  }\n  doc.removeEventListener(\"keydown\", handleKeyboardEvent, true);\n  doc.removeEventListener(\"keyup\", handleKeyboardEvent, true);\n  doc.removeEventListener(\"click\", handleClickEvent, true);\n  win.removeEventListener(\"focus\", handleFocusEvent, true);\n  win.removeEventListener(\"blur\", handleWindowBlur, false);\n  if (typeof win.PointerEvent !== \"undefined\") {\n    doc.removeEventListener(\"pointerdown\", handlePointerEvent, true);\n    doc.removeEventListener(\"pointermove\", handlePointerEvent, true);\n    doc.removeEventListener(\"pointerup\", handlePointerEvent, true);\n  } else {\n    doc.removeEventListener(\"mousedown\", handlePointerEvent, true);\n    doc.removeEventListener(\"mousemove\", handlePointerEvent, true);\n    doc.removeEventListener(\"mouseup\", handlePointerEvent, true);\n  }\n  listenerMap.delete(win);\n};\nfunction getInteractionModality() {\n  return currentModality;\n}\nfunction setInteractionModality(modality) {\n  currentModality = modality;\n  triggerChangeHandlers(modality, null);\n}\nfunction trackInteractionModality(props) {\n  const { onChange, root } = props;\n  setupGlobalFocusEvents(root);\n  onChange({ modality: currentModality });\n  const handler = () => onChange({ modality: currentModality });\n  changeHandlers.add(handler);\n  return () => {\n    changeHandlers.delete(handler);\n  };\n}\nfunction isFocusVisible() {\n  return currentModality === \"keyboard\";\n}\nfunction trackFocusVisible(props = {}) {\n  const { isTextInput, autoFocus, onChange, root } = props;\n  setupGlobalFocusEvents(root);\n  onChange?.({ isFocusVisible: autoFocus || isFocusVisible(), modality: currentModality });\n  const handler = (modality, e) => {\n    if (!isKeyboardFocusEvent(!!isTextInput, modality, e)) return;\n    onChange?.({ isFocusVisible: isFocusVisible(), modality });\n  };\n  changeHandlers.add(handler);\n  return () => {\n    changeHandlers.delete(handler);\n  };\n}\n\nexport { getInteractionModality, isFocusVisible, listenerMap, setInteractionModality, trackFocusVisible, trackInteractionModality };\n", "import { createAnatomy } from '@zag-js/anatomy';\nimport { dispatchInputCheckedEvent, setElementChecked, trackFormControl, trackPress, dataAttr, visuallyHiddenStyle, getEventTarget, isSafari } from '@zag-js/dom-query';\nimport { trackFocusVisible, isFocusVisible } from '@zag-js/focus-visible';\nimport { createGuards, createMachine } from '@zag-js/core';\nimport { createProps } from '@zag-js/types';\nimport { createSplitProps } from '@zag-js/utils';\n\n// src/switch.anatomy.ts\nvar anatomy = createAnatomy(\"switch\").parts(\"root\", \"label\", \"control\", \"thumb\");\nvar parts = anatomy.build();\n\n// src/switch.dom.ts\nvar getRootId = (ctx) => ctx.ids?.root ?? `switch:${ctx.id}`;\nvar getLabelId = (ctx) => ctx.ids?.label ?? `switch:${ctx.id}:label`;\nvar getThumbId = (ctx) => ctx.ids?.thumb ?? `switch:${ctx.id}:thumb`;\nvar getControlId = (ctx) => ctx.ids?.control ?? `switch:${ctx.id}:control`;\nvar getHiddenInputId = (ctx) => ctx.ids?.hiddenInput ?? `switch:${ctx.id}:input`;\nvar getRootEl = (ctx) => ctx.getById(getRootId(ctx));\nvar getHiddenInputEl = (ctx) => ctx.getById(getHiddenInputId(ctx));\n\n// src/switch.connect.ts\nfunction connect(service, normalize) {\n  const { context, send, prop, scope } = service;\n  const disabled = !!prop(\"disabled\");\n  const readOnly = !!prop(\"readOnly\");\n  const required = !!prop(\"required\");\n  const checked = !!context.get(\"checked\");\n  const focused = !disabled && context.get(\"focused\");\n  const focusVisible = !disabled && context.get(\"focusVisible\");\n  const active = !disabled && context.get(\"active\");\n  const dataAttrs = {\n    \"data-active\": dataAttr(active),\n    \"data-focus\": dataAttr(focused),\n    \"data-focus-visible\": dataAttr(focusVisible),\n    \"data-readonly\": dataAttr(readOnly),\n    \"data-hover\": dataAttr(context.get(\"hovered\")),\n    \"data-disabled\": dataAttr(disabled),\n    \"data-state\": checked ? \"checked\" : \"unchecked\",\n    \"data-invalid\": dataAttr(prop(\"invalid\")),\n    \"data-required\": dataAttr(required)\n  };\n  return {\n    checked,\n    disabled,\n    focused,\n    setChecked(checked2) {\n      send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: false });\n    },\n    toggleChecked() {\n      send({ type: \"CHECKED.TOGGLE\", checked, isTrusted: false });\n    },\n    getRootProps() {\n      return normalize.label({\n        ...parts.root.attrs,\n        ...dataAttrs,\n        dir: prop(\"dir\"),\n        id: getRootId(scope),\n        htmlFor: getHiddenInputId(scope),\n        onPointerMove() {\n          if (disabled) return;\n          send({ type: \"CONTEXT.SET\", context: { hovered: true } });\n        },\n        onPointerLeave() {\n          if (disabled) return;\n          send({ type: \"CONTEXT.SET\", context: { hovered: false } });\n        },\n        onClick(event) {\n          if (disabled) return;\n          const target = getEventTarget(event);\n          if (target === getHiddenInputEl(scope)) {\n            event.stopPropagation();\n          }\n          if (isSafari()) {\n            getHiddenInputEl(scope)?.focus();\n          }\n        }\n      });\n    },\n    getLabelProps() {\n      return normalize.element({\n        ...parts.label.attrs,\n        ...dataAttrs,\n        dir: prop(\"dir\"),\n        id: getLabelId(scope)\n      });\n    },\n    getThumbProps() {\n      return normalize.element({\n        ...parts.thumb.attrs,\n        ...dataAttrs,\n        dir: prop(\"dir\"),\n        id: getThumbId(scope),\n        \"aria-hidden\": true\n      });\n    },\n    getControlProps() {\n      return normalize.element({\n        ...parts.control.attrs,\n        ...dataAttrs,\n        dir: prop(\"dir\"),\n        id: getControlId(scope),\n        \"aria-hidden\": true\n      });\n    },\n    getHiddenInputProps() {\n      return normalize.input({\n        id: getHiddenInputId(scope),\n        type: \"checkbox\",\n        required: prop(\"required\"),\n        defaultChecked: checked,\n        disabled,\n        \"aria-labelledby\": getLabelId(scope),\n        \"aria-invalid\": prop(\"invalid\"),\n        name: prop(\"name\"),\n        form: prop(\"form\"),\n        value: prop(\"value\"),\n        style: visuallyHiddenStyle,\n        onFocus() {\n          const focusVisible2 = isFocusVisible();\n          send({ type: \"CONTEXT.SET\", context: { focused: true, focusVisible: focusVisible2 } });\n        },\n        onBlur() {\n          send({ type: \"CONTEXT.SET\", context: { focused: false, focusVisible: false } });\n        },\n        onClick(event) {\n          if (readOnly) {\n            event.preventDefault();\n            return;\n          }\n          const checked2 = event.currentTarget.checked;\n          send({ type: \"CHECKED.SET\", checked: checked2, isTrusted: true });\n        }\n      });\n    }\n  };\n}\nvar { not } = createGuards();\nvar machine = createMachine({\n  props({ props: props2 }) {\n    return {\n      defaultChecked: false,\n      label: \"switch\",\n      value: \"on\",\n      ...props2\n    };\n  },\n  initialState() {\n    return \"ready\";\n  },\n  context({ prop, bindable }) {\n    return {\n      checked: bindable(() => ({\n        defaultValue: prop(\"defaultChecked\"),\n        value: prop(\"checked\"),\n        onChange(value) {\n          prop(\"onCheckedChange\")?.({ checked: value });\n        }\n      })),\n      fieldsetDisabled: bindable(() => ({\n        defaultValue: false\n      })),\n      focusVisible: bindable(() => ({\n        defaultValue: false\n      })),\n      active: bindable(() => ({\n        defaultValue: false\n      })),\n      focused: bindable(() => ({\n        defaultValue: false\n      })),\n      hovered: bindable(() => ({\n        defaultValue: false\n      }))\n    };\n  },\n  computed: {\n    isDisabled: ({ context, prop }) => prop(\"disabled\") || context.get(\"fieldsetDisabled\")\n  },\n  watch({ track, prop, context, action }) {\n    track([() => prop(\"disabled\")], () => {\n      action([\"removeFocusIfNeeded\"]);\n    });\n    track([() => context.get(\"checked\")], () => {\n      action([\"syncInputElement\"]);\n    });\n  },\n  effects: [\"trackFormControlState\", \"trackPressEvent\", \"trackFocusVisible\"],\n  on: {\n    \"CHECKED.TOGGLE\": [\n      {\n        guard: not(\"isTrusted\"),\n        actions: [\"toggleChecked\", \"dispatchChangeEvent\"]\n      },\n      {\n        actions: [\"toggleChecked\"]\n      }\n    ],\n    \"CHECKED.SET\": [\n      {\n        guard: not(\"isTrusted\"),\n        actions: [\"setChecked\", \"dispatchChangeEvent\"]\n      },\n      {\n        actions: [\"setChecked\"]\n      }\n    ],\n    \"CONTEXT.SET\": {\n      actions: [\"setContext\"]\n    }\n  },\n  states: {\n    ready: {}\n  },\n  implementations: {\n    guards: {\n      isTrusted: ({ event }) => !!event.isTrusted\n    },\n    effects: {\n      trackPressEvent({ computed, scope, context }) {\n        if (computed(\"isDisabled\")) return;\n        return trackPress({\n          pointerNode: getRootEl(scope),\n          keyboardNode: getHiddenInputEl(scope),\n          isValidKey: (event) => event.key === \" \",\n          onPress: () => context.set(\"active\", false),\n          onPressStart: () => context.set(\"active\", true),\n          onPressEnd: () => context.set(\"active\", false)\n        });\n      },\n      trackFocusVisible({ computed, scope }) {\n        if (computed(\"isDisabled\")) return;\n        return trackFocusVisible({ root: scope.getRootNode() });\n      },\n      trackFormControlState({ context, send, scope }) {\n        return trackFormControl(getHiddenInputEl(scope), {\n          onFieldsetDisabledChange(disabled) {\n            context.set(\"fieldsetDisabled\", disabled);\n          },\n          onFormReset() {\n            const checked = context.initial(\"checked\");\n            send({ type: \"CHECKED.SET\", checked: !!checked, src: \"form-reset\" });\n          }\n        });\n      }\n    },\n    actions: {\n      setContext({ context, event }) {\n        for (const key in event.context) {\n          context.set(key, event.context[key]);\n        }\n      },\n      syncInputElement({ context, scope }) {\n        const inputEl = getHiddenInputEl(scope);\n        if (!inputEl) return;\n        setElementChecked(inputEl, !!context.get(\"checked\"));\n      },\n      removeFocusIfNeeded({ context, prop }) {\n        if (prop(\"disabled\")) {\n          context.set(\"focused\", false);\n        }\n      },\n      setChecked({ context, event }) {\n        context.set(\"checked\", event.checked);\n      },\n      toggleChecked({ context }) {\n        context.set(\"checked\", !context.get(\"checked\"));\n      },\n      dispatchChangeEvent({ context, scope }) {\n        queueMicrotask(() => {\n          const inputEl = getHiddenInputEl(scope);\n          dispatchInputCheckedEvent(inputEl, { checked: context.get(\"checked\") });\n        });\n      }\n    }\n  }\n});\nvar props = createProps()([\n  \"checked\",\n  \"defaultChecked\",\n  \"dir\",\n  \"disabled\",\n  \"form\",\n  \"getRootNode\",\n  \"id\",\n  \"ids\",\n  \"invalid\",\n  \"label\",\n  \"name\",\n  \"onCheckedChange\",\n  \"readOnly\",\n  \"required\",\n  \"value\"\n]);\nvar splitProps = createSplitProps(props);\n\nexport { anatomy, connect, machine, props, splitProps };\n", "import * as zagSwitch from \"@zag-js/switch\";\nimport { VanillaMachine, normalizeProps } from \"@zag-js/vanilla\";\nimport { Component } from \"../lib/core\";\n\nexport class Switch extends Component<zagSwitch.Props, zagSwitch.Api> {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  initMachine(props: zagSwitch.Props): VanillaMachine<any> {\n    return new VanillaMachine(zagSwitch.machine, props);\n  }\n\n  initApi(): zagSwitch.Api {\n    return zagSwitch.connect(this.machine.service, normalizeProps);\n  }\n\n  render(): void {\n    const rootEl = this.el.querySelector<HTMLElement>('[data-part=\"root\"]') || this.el;\n    this.spreadProps(rootEl, this.api.getRootProps());\n\n    const inputEl = this.el.querySelector<HTMLElement>('[data-part=\"hidden-input\"]');\n    if (inputEl) {\n      this.spreadProps(inputEl, this.api.getHiddenInputProps());\n    }\n\n    const labelEl = this.el.querySelector<HTMLElement>('[data-part=\"label\"]');\n    if (labelEl) {\n      this.spreadProps(labelEl, this.api.getLabelProps());\n    }\n\n    const controlEl = this.el.querySelector<HTMLElement>('[data-part=\"control\"]');\n    if (controlEl) {\n      this.spreadProps(controlEl, this.api.getControlProps());\n    }\n\n    const thumbEl = this.el.querySelector<HTMLElement>('[data-part=\"thumb\"]');\n    if (thumbEl) {\n      this.spreadProps(thumbEl, this.api.getThumbProps());\n    }\n  }\n}\n", "import type { Hook } from \"phoenix_live_view\";\nimport type { HookInterface, CallbackRef } from \"phoenix_live_view/assets/js/types/view_hook\";\nimport { Switch } from \"../components/switch\";\nimport type { CheckedChangeDetails } from \"@zag-js/switch\";\nimport type { Direction } from \"@zag-js/types\";\n\nimport { getString, getBoolean } from \"../lib/util\";\n\ntype SwitchHookState = {\n  switch?: Switch;\n  handlers?: Array<CallbackRef>;\n  onSetChecked?: (event: Event) => void;\n  wasFocused?: boolean;\n};\n\nconst SwitchHook: Hook<object & SwitchHookState, HTMLElement> = {\n  mounted(this: object & HookInterface<HTMLElement> & SwitchHookState) {\n    const el = this.el;\n    const pushEvent = this.pushEvent.bind(this);\n\n    const zagSwitch = new Switch(el, {\n      id: el.id,\n      ...(getBoolean(el, \"controlled\")\n        ? { checked: getBoolean(el, \"checked\") }\n        : { defaultChecked: getBoolean(el, \"default-checked\") }),\n      disabled: getBoolean(el, \"disabled\"),\n      name: getString(el, \"name\"),\n      form: getString(el, \"form\"),\n      value: getString(el, \"value\"),\n      dir: getString<Direction>(el, \"dir\", [\"ltr\", \"rtl\"]),\n      invalid: getBoolean(el, \"invalid\"),\n      required: getBoolean(el, \"required\"),\n      readOnly: getBoolean(el, \"readOnly\"),\n      label: getString(el, \"label\"),\n\n      onCheckedChange: (details: CheckedChangeDetails) => {\n        const eventName = getString(el, \"onCheckedChange\");\n        if (eventName && !this.liveSocket.main.isDead && this.liveSocket.main.isConnected()) {\n          pushEvent(eventName, {\n            checked: details.checked,\n            switch_id: el.id,\n          });\n        }\n\n        const eventNameClient = getString(el, \"onCheckedChangeClient\");\n        if (eventNameClient) {\n          el.dispatchEvent(\n            new CustomEvent(eventNameClient, {\n              bubbles: true,\n              detail: {\n                value: details,\n                switch_id: el.id,\n              },\n            })\n          );\n        }\n      },\n    });\n    zagSwitch.init();\n    this.zagSwitch = zagSwitch;\n\n    this.onSetChecked = (event: Event) => {\n      const { value } = (event as CustomEvent<{ value: boolean }>).detail;\n      zagSwitch.api.setChecked(value);\n    };\n    el.addEventListener(\"phx:switch:set-checked\", this.onSetChecked);\n\n    this.handlers = [];\n\n    this.handlers.push(\n      this.handleEvent(\"switch_set_checked\", (payload: { switch_id?: string; value: boolean }) => {\n        const targetId = payload.switch_id;\n        if (targetId && targetId !== el.id) return;\n        zagSwitch.api.setChecked(payload.value);\n      })\n    );\n\n    this.handlers.push(\n      this.handleEvent(\"switch_toggle_checked\", (payload: { switch_id?: string }) => {\n        const targetId = payload.switch_id;\n        if (targetId && targetId !== el.id) return;\n        zagSwitch.api.toggleChecked();\n      })\n    );\n\n    this.handlers.push(\n      this.handleEvent(\"switch_checked\", () => {\n        this.pushEvent(\"switch_checked_response\", {\n          value: zagSwitch.api.checked,\n        });\n      })\n    );\n\n    this.handlers.push(\n      this.handleEvent(\"switch_focused\", () => {\n        this.pushEvent(\"switch_focused_response\", {\n          value: zagSwitch.api.focused,\n        });\n      })\n    );\n\n    this.handlers.push(\n      this.handleEvent(\"switch_disabled\", () => {\n        this.pushEvent(\"switch_disabled_response\", {\n          value: zagSwitch.api.disabled,\n        });\n      })\n    );\n  },\n\n  beforeUpdate(this: object & HookInterface<HTMLElement> & SwitchHookState) {\n    this.wasFocused = this.zagSwitch?.api.focused || false;\n  },\n\n  updated(this: object & HookInterface<HTMLElement> & SwitchHookState) {\n    this.zagSwitch?.updateProps({\n      id: this.el.id,\n      ...(getBoolean(this.el, \"controlled\")\n        ? { checked: getBoolean(this.el, \"checked\") }\n        : { defaultChecked: getBoolean(this.el, \"default-checked\") }),\n      disabled: getBoolean(this.el, \"disabled\"),\n      name: getString(this.el, \"name\"),\n      value: getString(this.el, \"value\"),\n      dir: getString<Direction>(this.el, \"dir\", [\"ltr\", \"rtl\"]),\n      invalid: getBoolean(this.el, \"invalid\"),\n      required: getBoolean(this.el, \"required\"),\n      readOnly: getBoolean(this.el, \"read-only\"),\n      label: getString(this.el, \"label\"),\n    });\n    if (getBoolean(this.el, \"controlled\")) {\n      if (this.wasFocused) {\n        const hiddenInput = this.el.querySelector('[data-part=\"hidden-input\"]') as HTMLInputElement;\n        hiddenInput?.focus();\n      }\n    }\n  },\n\n  destroyed(this: object & HookInterface<HTMLElement> & SwitchHookState) {\n    if (this.onSetChecked) {\n      this.el.removeEventListener(\"phx:switch:set-checked\", this.onSetChecked);\n    }\n\n    if (this.handlers) {\n      for (const handler of this.handlers) {\n        this.removeHandleEvent(handler);\n      }\n    }\n\n    this.zagSwitch?.destroy();\n  },\n};\n\nexport { SwitchHook as Switch };\n", "import { Accordion } from \"./accordion\";\nimport { Toast } from \"./toast\";\nimport { Switch } from \"./switch\";\nconst Hooks = { Accordion, Toast, Switch };\n\nexport default Hooks;\n"],
  "mappings": "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",
  "names": ["parts", "isValidKey", "__defProp", "__defNormalProp", "__publicField", "props", "__publicField", "props", "guards", "props", "props", "props2", "keyMap", "bindable", "splitProps", "isReactElement", "isVueElement", "isObject", "isObject", "remove", "__defProp", "__defNormalProp", "__publicField", "props", "setup", "machine", "state", "props", "props", "props", "anatomy", "parts", "getRootId", "getRootEl", "createMachine", "and", "props", "bindable", "connect", "not", "machine", "subscribe", "remove", "props", "machine", "connect", "group", "max", "store", "props", "anatomy", "parts", "getRootId", "getRootEl", "connect", "not", "machine", "props2", "bindable", "props", "splitProps", "props", "machine", "connect"]
}
