{
  "version": 3,
  "sources": ["../../../../../node_modules/@ariakit/core/esm/__chunks/3YLGPPWQ.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/PBFD2E7P.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/BCALMBPZ.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/3YLGPPWQ.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/SK3NAZA3.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/DTR5TSDJ.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/QAGXQEUG.js", "../../../../../node_modules/@ariakit/core/esm/utils/events.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/5GGHRIN3.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/VOQWLFSQ.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/5CPL3B7G.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/APTFW6PT.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/5VQZOHHZ.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/Y62RTBST.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/SWN3JYXT.js", "../../../../../node_modules/@ariakit/core/esm/utils/focus.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/OE2EFRVA.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/2W3RN7C5.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/RTNCFSKZ.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/SBSPVDDI.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/7PRQYBBV.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/NSTBQJLB.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/ABN76PSX.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/T2AZQXQU.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/K4R5DNTX.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/RCQ5P4YE.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/T22PY7TE.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/Y67KZUMI.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/EO4GVUA4.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/AMMIPFT4.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/2CHYBBFH.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/B7UTNDHN.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/OLVWQA7U.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/IZKKKUS7.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/JJEANXHI.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/7Z7JH52O.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/X7QOZUD3.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/AOQQTIBO.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/DXGKYUAD.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/S2F2XXEH.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/M5DFOEFU.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/CZ4GFWYL.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/5M6RIVE2.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/LC6GJMGV.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/6GXEOXGT.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/HLTQOHKZ.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/K2ZF5NU7.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/AOUGVQZ3.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/63XF7ACK.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/3NDVDEB4.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/JZEJYXOQ.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/PVECYOSC.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/W6WVJJEY.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/SOMPWLIQ.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/IGR4SXG2.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/677M2CI3.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/S7U6BLGA.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/Z5GCVBAY.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/QJ4LGO2N.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/FVE2C5B3.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/FZZ2AVHF.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/Y2U4BRIM.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/CAGBPNDP.js", "../../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.mjs", "../../../../../node_modules/@floating-ui/core/dist/floating-ui.core.mjs", "../../../../../node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.mjs", "../../../../../node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/C6DAL6ZN.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/IUFFNNPK.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/TRDK6LYC.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/ME2CUF3F.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/RUY5BUJG.js", "../../../../../node_modules/@ariakit/core/esm/__chunks/JTLIIJ4U.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/GVVKDT6A.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/JUCYQ5OS.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/HMCFFQCB.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/XCKGTAUF.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/NMGNQVTG.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/ZTXFEM5L.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/4I4MLMKD.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/OYOFZOGB.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/IABE5EV2.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/4QTMCR75.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/W5BTY3ZG.js", "../../../../../node_modules/@ariakit/react-core/esm/menu/menu.js", "../../../../../node_modules/@ariakit/react-core/esm/menu/menu-button.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/BSJHR6LI.js", "../../../../../node_modules/@ariakit/core/esm/menu/menu-store.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/BV5PFOXH.js", "../../../../../node_modules/@ariakit/react-core/esm/menu/menu-provider.js", "../../../../../node_modules/@ariakit/react-core/esm/menu/menu-separator.js", "../../../../../node_modules/@ariakit/react-core/esm/combobox/combobox.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/D7FSM5GC.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/MNJRSAAC.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/VJQU3YUE.js", "../../../../../node_modules/@ariakit/core/esm/combobox/combobox-store.js", "../../../../../node_modules/@ariakit/react-core/esm/__chunks/HI6DYBVE.js", "../../../../../node_modules/@ariakit/react-core/esm/combobox/combobox-provider.js", "../../src/menu/ContextMenu.tsx", "../../src/menu/Menu.styles.ts", "../../src/menu/Menu.tsx", "../../src/menu/CursorScroll.tsx", "../../src/utils/useSharedIntersectionObserver.ts", "../../src/menu/CursorScroll.styles.ts", "../../src/menu/MenuConfigContext.tsx", "../../src/menu/useMenuItemDisabled.tsx"],
  "sourcesContent": ["\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\n\nexport {\n  __spreadValues,\n  __spreadProps,\n  __objRest\n};\n", "\"use client\";\nimport {\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/misc.ts\nfunction noop(..._) {\n}\nfunction shallowEqual(a, b) {\n  if (a === b) return true;\n  if (!a) return false;\n  if (!b) return false;\n  if (typeof a !== \"object\") return false;\n  if (typeof b !== \"object\") return false;\n  const aKeys = Object.keys(a);\n  const bKeys = Object.keys(b);\n  const { length } = aKeys;\n  if (bKeys.length !== length) return false;\n  for (const key of aKeys) {\n    if (a[key] !== b[key]) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction applyState(argument, currentValue) {\n  if (isUpdater(argument)) {\n    const value = isLazyValue(currentValue) ? currentValue() : currentValue;\n    return argument(value);\n  }\n  return argument;\n}\nfunction isUpdater(argument) {\n  return typeof argument === \"function\";\n}\nfunction isLazyValue(value) {\n  return typeof value === \"function\";\n}\nfunction isObject(arg) {\n  return typeof arg === \"object\" && arg != null;\n}\nfunction isEmpty(arg) {\n  if (Array.isArray(arg)) return !arg.length;\n  if (isObject(arg)) return !Object.keys(arg).length;\n  if (arg == null) return true;\n  if (arg === \"\") return true;\n  return false;\n}\nfunction isInteger(arg) {\n  if (typeof arg === \"number\") {\n    return Math.floor(arg) === arg;\n  }\n  return String(Math.floor(Number(arg))) === arg;\n}\nfunction hasOwnProperty(object, prop) {\n  if (typeof Object.hasOwn === \"function\") {\n    return Object.hasOwn(object, prop);\n  }\n  return Object.prototype.hasOwnProperty.call(object, prop);\n}\nfunction chain(...fns) {\n  return (...args) => {\n    for (const fn of fns) {\n      if (typeof fn === \"function\") {\n        fn(...args);\n      }\n    }\n  };\n}\nfunction cx(...args) {\n  return args.filter(Boolean).join(\" \") || void 0;\n}\nfunction normalizeString(str) {\n  return str.normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g, \"\");\n}\nfunction omit(object, keys) {\n  const result = __spreadValues({}, object);\n  for (const key of keys) {\n    if (hasOwnProperty(result, key)) {\n      delete result[key];\n    }\n  }\n  return result;\n}\nfunction pick(object, paths) {\n  const result = {};\n  for (const key of paths) {\n    if (hasOwnProperty(object, key)) {\n      result[key] = object[key];\n    }\n  }\n  return result;\n}\nfunction identity(value) {\n  return value;\n}\nfunction beforePaint(cb = noop) {\n  const raf = requestAnimationFrame(cb);\n  return () => cancelAnimationFrame(raf);\n}\nfunction afterPaint(cb = noop) {\n  let raf = requestAnimationFrame(() => {\n    raf = requestAnimationFrame(cb);\n  });\n  return () => cancelAnimationFrame(raf);\n}\nfunction invariant(condition, message) {\n  if (condition) return;\n  if (typeof message !== \"string\") throw new Error(\"Invariant failed\");\n  throw new Error(message);\n}\nfunction getKeys(obj) {\n  return Object.keys(obj);\n}\nfunction isFalsyBooleanCallback(booleanOrCallback, ...args) {\n  const result = typeof booleanOrCallback === \"function\" ? booleanOrCallback(...args) : booleanOrCallback;\n  if (result == null) return false;\n  return !result;\n}\nfunction disabledFromProps(props) {\n  return props.disabled || props[\"aria-disabled\"] === true || props[\"aria-disabled\"] === \"true\";\n}\nfunction removeUndefinedValues(obj) {\n  const result = {};\n  for (const key in obj) {\n    if (obj[key] !== void 0) {\n      result[key] = obj[key];\n    }\n  }\n  return result;\n}\nfunction defaultValue(...values) {\n  for (const value of values) {\n    if (value !== void 0) return value;\n  }\n  return void 0;\n}\n\nexport {\n  noop,\n  shallowEqual,\n  applyState,\n  isObject,\n  isEmpty,\n  isInteger,\n  hasOwnProperty,\n  chain,\n  cx,\n  normalizeString,\n  omit,\n  pick,\n  identity,\n  beforePaint,\n  afterPaint,\n  invariant,\n  getKeys,\n  isFalsyBooleanCallback,\n  disabledFromProps,\n  removeUndefinedValues,\n  defaultValue\n};\n", "\"use client\";\nimport {\n  applyState,\n  chain,\n  getKeys,\n  hasOwnProperty,\n  invariant,\n  noop,\n  omit,\n  pick\n} from \"./PBFD2E7P.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/store.ts\nfunction getInternal(store, key) {\n  const internals = store.__unstableInternals;\n  invariant(internals, \"Invalid store\");\n  return internals[key];\n}\nfunction createStore(initialState, ...stores) {\n  let state = initialState;\n  let prevStateBatch = state;\n  let lastUpdate = Symbol();\n  let destroy = noop;\n  const instances = /* @__PURE__ */ new Set();\n  const updatedKeys = /* @__PURE__ */ new Set();\n  const setups = /* @__PURE__ */ new Set();\n  const listeners = /* @__PURE__ */ new Set();\n  const batchListeners = /* @__PURE__ */ new Set();\n  const disposables = /* @__PURE__ */ new WeakMap();\n  const listenerKeys = /* @__PURE__ */ new WeakMap();\n  const storeSetup = (callback) => {\n    setups.add(callback);\n    return () => setups.delete(callback);\n  };\n  const storeInit = () => {\n    const initialized = instances.size;\n    const instance = Symbol();\n    instances.add(instance);\n    const maybeDestroy = () => {\n      instances.delete(instance);\n      if (instances.size) return;\n      destroy();\n    };\n    if (initialized) return maybeDestroy;\n    const desyncs = getKeys(state).map(\n      (key) => chain(\n        ...stores.map((store) => {\n          var _a;\n          const storeState = (_a = store == null ? void 0 : store.getState) == null ? void 0 : _a.call(store);\n          if (!storeState) return;\n          if (!hasOwnProperty(storeState, key)) return;\n          return sync(store, [key], (state2) => {\n            setState(\n              key,\n              state2[key],\n              // @ts-expect-error - Not public API. This is just to prevent\n              // infinite loops.\n              true\n            );\n          });\n        })\n      )\n    );\n    const teardowns = [];\n    for (const setup2 of setups) {\n      teardowns.push(setup2());\n    }\n    const cleanups = stores.map(init);\n    destroy = chain(...desyncs, ...teardowns, ...cleanups);\n    return maybeDestroy;\n  };\n  const sub = (keys, listener, set = listeners) => {\n    set.add(listener);\n    listenerKeys.set(listener, keys);\n    return () => {\n      var _a;\n      (_a = disposables.get(listener)) == null ? void 0 : _a();\n      disposables.delete(listener);\n      listenerKeys.delete(listener);\n      set.delete(listener);\n    };\n  };\n  const storeSubscribe = (keys, listener) => sub(keys, listener);\n  const storeSync = (keys, listener) => {\n    disposables.set(listener, listener(state, state));\n    return sub(keys, listener);\n  };\n  const storeBatch = (keys, listener) => {\n    disposables.set(listener, listener(state, prevStateBatch));\n    return sub(keys, listener, batchListeners);\n  };\n  const storePick = (keys) => createStore(pick(state, keys), finalStore);\n  const storeOmit = (keys) => createStore(omit(state, keys), finalStore);\n  const getState = () => state;\n  const setState = (key, value, fromStores = false) => {\n    var _a;\n    if (!hasOwnProperty(state, key)) return;\n    const nextValue = applyState(value, state[key]);\n    if (nextValue === state[key]) return;\n    if (!fromStores) {\n      for (const store of stores) {\n        (_a = store == null ? void 0 : store.setState) == null ? void 0 : _a.call(store, key, nextValue);\n      }\n    }\n    const prevState = state;\n    state = __spreadProps(__spreadValues({}, state), { [key]: nextValue });\n    const thisUpdate = Symbol();\n    lastUpdate = thisUpdate;\n    updatedKeys.add(key);\n    const run = (listener, prev, uKeys) => {\n      var _a2;\n      const keys = listenerKeys.get(listener);\n      const updated = (k) => uKeys ? uKeys.has(k) : k === key;\n      if (!keys || keys.some(updated)) {\n        (_a2 = disposables.get(listener)) == null ? void 0 : _a2();\n        disposables.set(listener, listener(state, prev));\n      }\n    };\n    for (const listener of listeners) {\n      run(listener, prevState);\n    }\n    queueMicrotask(() => {\n      if (lastUpdate !== thisUpdate) return;\n      const snapshot = state;\n      for (const listener of batchListeners) {\n        run(listener, prevStateBatch, updatedKeys);\n      }\n      prevStateBatch = snapshot;\n      updatedKeys.clear();\n    });\n  };\n  const finalStore = {\n    getState,\n    setState,\n    __unstableInternals: {\n      setup: storeSetup,\n      init: storeInit,\n      subscribe: storeSubscribe,\n      sync: storeSync,\n      batch: storeBatch,\n      pick: storePick,\n      omit: storeOmit\n    }\n  };\n  return finalStore;\n}\nfunction setup(store, ...args) {\n  if (!store) return;\n  return getInternal(store, \"setup\")(...args);\n}\nfunction init(store, ...args) {\n  if (!store) return;\n  return getInternal(store, \"init\")(...args);\n}\nfunction subscribe(store, ...args) {\n  if (!store) return;\n  return getInternal(store, \"subscribe\")(...args);\n}\nfunction sync(store, ...args) {\n  if (!store) return;\n  return getInternal(store, \"sync\")(...args);\n}\nfunction batch(store, ...args) {\n  if (!store) return;\n  return getInternal(store, \"batch\")(...args);\n}\nfunction omit2(store, ...args) {\n  if (!store) return;\n  return getInternal(store, \"omit\")(...args);\n}\nfunction pick2(store, ...args) {\n  if (!store) return;\n  return getInternal(store, \"pick\")(...args);\n}\nfunction mergeStore(...stores) {\n  const initialState = stores.reduce((state, store2) => {\n    var _a;\n    const nextState = (_a = store2 == null ? void 0 : store2.getState) == null ? void 0 : _a.call(store2);\n    if (!nextState) return state;\n    return Object.assign(state, nextState);\n  }, {});\n  const store = createStore(initialState, ...stores);\n  return Object.assign({}, ...stores, store);\n}\nfunction throwOnConflictingProps(props, store) {\n  if (process.env.NODE_ENV === \"production\") return;\n  if (!store) return;\n  const defaultKeys = Object.entries(props).filter(([key, value]) => key.startsWith(\"default\") && value !== void 0).map(([key]) => {\n    var _a;\n    const stateKey = key.replace(\"default\", \"\");\n    return `${((_a = stateKey[0]) == null ? void 0 : _a.toLowerCase()) || \"\"}${stateKey.slice(1)}`;\n  });\n  if (!defaultKeys.length) return;\n  const storeState = store.getState();\n  const conflictingProps = defaultKeys.filter(\n    (key) => hasOwnProperty(storeState, key)\n  );\n  if (!conflictingProps.length) return;\n  throw new Error(\n    `Passing a store prop in conjunction with a default state is not supported.\n\nconst store = useSelectStore();\n<SelectProvider store={store} defaultValue=\"Apple\" />\n                ^             ^\n\nInstead, pass the default state to the topmost store:\n\nconst store = useSelectStore({ defaultValue: \"Apple\" });\n<SelectProvider store={store} />\n\nSee https://github.com/ariakit/ariakit/pull/2745 for more details.\n\nIf there's a particular need for this, please submit a feature request at https://github.com/ariakit/ariakit\n`\n  );\n}\n\nexport {\n  createStore,\n  setup,\n  init,\n  subscribe,\n  sync,\n  batch,\n  omit2 as omit,\n  pick2 as pick,\n  mergeStore,\n  throwOnConflictingProps\n};\n", "\"use client\";\nvar __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n  for (var prop in b || (b = {}))\n    if (__hasOwnProp.call(b, prop))\n      __defNormalProp(a, prop, b[prop]);\n  if (__getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(b)) {\n      if (__propIsEnum.call(b, prop))\n        __defNormalProp(a, prop, b[prop]);\n    }\n  return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n  var target = {};\n  for (var prop in source)\n    if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n      target[prop] = source[prop];\n  if (source != null && __getOwnPropSymbols)\n    for (var prop of __getOwnPropSymbols(source)) {\n      if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n        target[prop] = source[prop];\n    }\n  return target;\n};\n\nexport {\n  __spreadValues,\n  __spreadProps,\n  __objRest\n};\n", "\"use client\";\nimport {\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/misc.ts\nimport { hasOwnProperty } from \"@ariakit/core/utils/misc\";\nimport { isValidElement } from \"react\";\nfunction setRef(ref, value) {\n  if (typeof ref === \"function\") {\n    ref(value);\n  } else if (ref) {\n    ref.current = value;\n  }\n}\nfunction isValidElementWithRef(element) {\n  if (!element) return false;\n  if (!isValidElement(element)) return false;\n  if (\"ref\" in element.props) return true;\n  if (\"ref\" in element) return true;\n  return false;\n}\nfunction getRefProperty(element) {\n  if (!isValidElementWithRef(element)) return null;\n  const props = __spreadValues({}, element.props);\n  return props.ref || element.ref;\n}\nfunction mergeProps(base, overrides) {\n  const props = __spreadValues({}, base);\n  for (const key in overrides) {\n    if (!hasOwnProperty(overrides, key)) continue;\n    if (key === \"className\") {\n      const prop = \"className\";\n      props[prop] = base[prop] ? `${base[prop]} ${overrides[prop]}` : overrides[prop];\n      continue;\n    }\n    if (key === \"style\") {\n      const prop = \"style\";\n      props[prop] = base[prop] ? __spreadValues(__spreadValues({}, base[prop]), overrides[prop]) : overrides[prop];\n      continue;\n    }\n    const overrideValue = overrides[key];\n    if (typeof overrideValue === \"function\" && key.startsWith(\"on\")) {\n      const baseValue = base[key];\n      if (typeof baseValue === \"function\") {\n        props[key] = (...args) => {\n          overrideValue(...args);\n          baseValue(...args);\n        };\n        continue;\n      }\n    }\n    props[key] = overrideValue;\n  }\n  return props;\n}\n\nexport {\n  setRef,\n  isValidElementWithRef,\n  getRefProperty,\n  mergeProps\n};\n", "\"use client\";\n\n// src/utils/dom.ts\nvar canUseDOM = checkIsBrowser();\nfunction checkIsBrowser() {\n  var _a;\n  return typeof window !== \"undefined\" && !!((_a = window.document) == null ? void 0 : _a.createElement);\n}\nfunction getDocument(node) {\n  if (!node) return document;\n  if (\"self\" in node) return node.document;\n  return node.ownerDocument || document;\n}\nfunction getWindow(node) {\n  if (!node) return self;\n  if (\"self\" in node) return node.self;\n  return getDocument(node).defaultView || window;\n}\nfunction getActiveElement(node, activeDescendant = false) {\n  const { activeElement } = getDocument(node);\n  if (!(activeElement == null ? void 0 : activeElement.nodeName)) {\n    return null;\n  }\n  if (isFrame(activeElement) && activeElement.contentDocument) {\n    return getActiveElement(\n      activeElement.contentDocument.body,\n      activeDescendant\n    );\n  }\n  if (activeDescendant) {\n    const id = activeElement.getAttribute(\"aria-activedescendant\");\n    if (id) {\n      const element = getDocument(activeElement).getElementById(id);\n      if (element) {\n        return element;\n      }\n    }\n  }\n  return activeElement;\n}\nfunction contains(parent, child) {\n  return parent === child || parent.contains(child);\n}\nfunction isFrame(element) {\n  return element.tagName === \"IFRAME\";\n}\nfunction isButton(element) {\n  const tagName = element.tagName.toLowerCase();\n  if (tagName === \"button\") return true;\n  if (tagName === \"input\" && element.type) {\n    return buttonInputTypes.indexOf(element.type) !== -1;\n  }\n  return false;\n}\nvar buttonInputTypes = [\n  \"button\",\n  \"color\",\n  \"file\",\n  \"image\",\n  \"reset\",\n  \"submit\"\n];\nfunction isVisible(element) {\n  if (typeof element.checkVisibility === \"function\") {\n    return element.checkVisibility();\n  }\n  const htmlElement = element;\n  return htmlElement.offsetWidth > 0 || htmlElement.offsetHeight > 0 || element.getClientRects().length > 0;\n}\nfunction isTextField(element) {\n  try {\n    const isTextInput = element instanceof HTMLInputElement && element.selectionStart !== null;\n    const isTextArea = element.tagName === \"TEXTAREA\";\n    return isTextInput || isTextArea || false;\n  } catch (error) {\n    return false;\n  }\n}\nfunction isTextbox(element) {\n  return element.isContentEditable || isTextField(element);\n}\nfunction getTextboxValue(element) {\n  if (isTextField(element)) {\n    return element.value;\n  }\n  if (element.isContentEditable) {\n    const range = getDocument(element).createRange();\n    range.selectNodeContents(element);\n    return range.toString();\n  }\n  return \"\";\n}\nfunction getTextboxSelection(element) {\n  let start = 0;\n  let end = 0;\n  if (isTextField(element)) {\n    start = element.selectionStart || 0;\n    end = element.selectionEnd || 0;\n  } else if (element.isContentEditable) {\n    const selection = getDocument(element).getSelection();\n    if ((selection == null ? void 0 : selection.rangeCount) && selection.anchorNode && contains(element, selection.anchorNode) && selection.focusNode && contains(element, selection.focusNode)) {\n      const range = selection.getRangeAt(0);\n      const nextRange = range.cloneRange();\n      nextRange.selectNodeContents(element);\n      nextRange.setEnd(range.startContainer, range.startOffset);\n      start = nextRange.toString().length;\n      nextRange.setEnd(range.endContainer, range.endOffset);\n      end = nextRange.toString().length;\n    }\n  }\n  return { start, end };\n}\nfunction getPopupRole(element, fallback) {\n  const allowedPopupRoles = [\"dialog\", \"menu\", \"listbox\", \"tree\", \"grid\"];\n  const role = element == null ? void 0 : element.getAttribute(\"role\");\n  if (role && allowedPopupRoles.indexOf(role) !== -1) {\n    return role;\n  }\n  return fallback;\n}\nfunction getPopupItemRole(element, fallback) {\n  var _a;\n  const itemRoleByPopupRole = {\n    menu: \"menuitem\",\n    listbox: \"option\",\n    tree: \"treeitem\"\n  };\n  const popupRole = getPopupRole(element);\n  if (!popupRole) return fallback;\n  const key = popupRole;\n  return (_a = itemRoleByPopupRole[key]) != null ? _a : fallback;\n}\nfunction scrollIntoViewIfNeeded(element, arg) {\n  if (isPartiallyHidden(element) && \"scrollIntoView\" in element) {\n    element.scrollIntoView(arg);\n  }\n}\nfunction getScrollingElement(element) {\n  if (!element) return null;\n  const isScrollableOverflow = (overflow) => {\n    if (overflow === \"auto\") return true;\n    if (overflow === \"scroll\") return true;\n    return false;\n  };\n  if (element.clientHeight && element.scrollHeight > element.clientHeight) {\n    const { overflowY } = getComputedStyle(element);\n    if (isScrollableOverflow(overflowY)) return element;\n  } else if (element.clientWidth && element.scrollWidth > element.clientWidth) {\n    const { overflowX } = getComputedStyle(element);\n    if (isScrollableOverflow(overflowX)) return element;\n  }\n  return getScrollingElement(element.parentElement) || document.scrollingElement || document.body;\n}\nfunction isPartiallyHidden(element) {\n  const elementRect = element.getBoundingClientRect();\n  const scroller = getScrollingElement(element);\n  if (!scroller) return false;\n  const scrollerRect = scroller.getBoundingClientRect();\n  const isHTML = scroller.tagName === \"HTML\";\n  const scrollerTop = isHTML ? scrollerRect.top + scroller.scrollTop : scrollerRect.top;\n  const scrollerBottom = isHTML ? scroller.clientHeight : scrollerRect.bottom;\n  const scrollerLeft = isHTML ? scrollerRect.left + scroller.scrollLeft : scrollerRect.left;\n  const scrollerRight = isHTML ? scroller.clientWidth : scrollerRect.right;\n  const top = elementRect.top < scrollerTop;\n  const left = elementRect.left < scrollerLeft;\n  const bottom = elementRect.bottom > scrollerBottom;\n  const right = elementRect.right > scrollerRight;\n  return top || left || bottom || right;\n}\nfunction setSelectionRange(element, ...args) {\n  if (/text|search|password|tel|url/i.test(element.type)) {\n    element.setSelectionRange(...args);\n  }\n}\nfunction sortBasedOnDOMPosition(items, getElement) {\n  const pairs = items.map((item, index) => [index, item]);\n  let isOrderDifferent = false;\n  pairs.sort(([indexA, a], [indexB, b]) => {\n    const elementA = getElement(a);\n    const elementB = getElement(b);\n    if (elementA === elementB) return 0;\n    if (!elementA || !elementB) return 0;\n    if (isElementPreceding(elementA, elementB)) {\n      if (indexA > indexB) {\n        isOrderDifferent = true;\n      }\n      return -1;\n    }\n    if (indexA < indexB) {\n      isOrderDifferent = true;\n    }\n    return 1;\n  });\n  if (isOrderDifferent) {\n    return pairs.map(([_, item]) => item);\n  }\n  return items;\n}\nfunction isElementPreceding(a, b) {\n  return Boolean(\n    b.compareDocumentPosition(a) & Node.DOCUMENT_POSITION_PRECEDING\n  );\n}\n\nexport {\n  canUseDOM,\n  getDocument,\n  getWindow,\n  getActiveElement,\n  contains,\n  isFrame,\n  isButton,\n  isVisible,\n  isTextField,\n  isTextbox,\n  getTextboxValue,\n  getTextboxSelection,\n  getPopupRole,\n  getPopupItemRole,\n  scrollIntoViewIfNeeded,\n  getScrollingElement,\n  isPartiallyHidden,\n  setSelectionRange,\n  sortBasedOnDOMPosition\n};\n", "\"use client\";\nimport {\n  canUseDOM\n} from \"./DTR5TSDJ.js\";\n\n// src/utils/platform.ts\nfunction isTouchDevice() {\n  return canUseDOM && !!navigator.maxTouchPoints;\n}\nfunction isApple() {\n  if (!canUseDOM) return false;\n  return /mac|iphone|ipad|ipod/i.test(navigator.platform);\n}\nfunction isSafari() {\n  return canUseDOM && isApple() && /apple/i.test(navigator.vendor);\n}\nfunction isFirefox() {\n  return canUseDOM && /firefox\\//i.test(navigator.userAgent);\n}\nfunction isMac() {\n  return canUseDOM && navigator.platform.startsWith(\"Mac\") && !isTouchDevice();\n}\n\nexport {\n  isTouchDevice,\n  isApple,\n  isSafari,\n  isFirefox,\n  isMac\n};\n", "\"use client\";\nimport {\n  isApple\n} from \"../__chunks/QAGXQEUG.js\";\nimport {\n  contains\n} from \"../__chunks/DTR5TSDJ.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/utils/events.ts\nfunction isPortalEvent(event) {\n  return Boolean(\n    event.currentTarget && !contains(event.currentTarget, event.target)\n  );\n}\nfunction isSelfTarget(event) {\n  return event.target === event.currentTarget;\n}\nfunction isOpeningInNewTab(event) {\n  const element = event.currentTarget;\n  if (!element) return false;\n  const isAppleDevice = isApple();\n  if (isAppleDevice && !event.metaKey) return false;\n  if (!isAppleDevice && !event.ctrlKey) return false;\n  const tagName = element.tagName.toLowerCase();\n  if (tagName === \"a\") return true;\n  if (tagName === \"button\" && element.type === \"submit\") return true;\n  if (tagName === \"input\" && element.type === \"submit\") return true;\n  return false;\n}\nfunction isDownloading(event) {\n  const element = event.currentTarget;\n  if (!element) return false;\n  const tagName = element.tagName.toLowerCase();\n  if (!event.altKey) return false;\n  if (tagName === \"a\") return true;\n  if (tagName === \"button\" && element.type === \"submit\") return true;\n  if (tagName === \"input\" && element.type === \"submit\") return true;\n  return false;\n}\nfunction fireEvent(element, type, eventInit) {\n  const event = new Event(type, eventInit);\n  return element.dispatchEvent(event);\n}\nfunction fireBlurEvent(element, eventInit) {\n  const event = new FocusEvent(\"blur\", eventInit);\n  const defaultAllowed = element.dispatchEvent(event);\n  const bubbleInit = __spreadProps(__spreadValues({}, eventInit), { bubbles: true });\n  element.dispatchEvent(new FocusEvent(\"focusout\", bubbleInit));\n  return defaultAllowed;\n}\nfunction fireFocusEvent(element, eventInit) {\n  const event = new FocusEvent(\"focus\", eventInit);\n  const defaultAllowed = element.dispatchEvent(event);\n  const bubbleInit = __spreadProps(__spreadValues({}, eventInit), { bubbles: true });\n  element.dispatchEvent(new FocusEvent(\"focusin\", bubbleInit));\n  return defaultAllowed;\n}\nfunction fireKeyboardEvent(element, type, eventInit) {\n  const event = new KeyboardEvent(type, eventInit);\n  return element.dispatchEvent(event);\n}\nfunction fireClickEvent(element, eventInit) {\n  const event = new MouseEvent(\"click\", eventInit);\n  return element.dispatchEvent(event);\n}\nfunction isFocusEventOutside(event, container) {\n  const containerElement = container || event.currentTarget;\n  const relatedTarget = event.relatedTarget;\n  return !relatedTarget || !contains(containerElement, relatedTarget);\n}\nfunction getInputType(event) {\n  const nativeEvent = \"nativeEvent\" in event ? event.nativeEvent : event;\n  if (!nativeEvent) return;\n  if (!(\"inputType\" in nativeEvent)) return;\n  if (typeof nativeEvent.inputType !== \"string\") return;\n  return nativeEvent.inputType;\n}\nfunction queueBeforeEvent(element, type, callback, timeout) {\n  const createTimer = (callback2) => {\n    if (timeout) {\n      const timerId2 = setTimeout(callback2, timeout);\n      return () => clearTimeout(timerId2);\n    }\n    const timerId = requestAnimationFrame(callback2);\n    return () => cancelAnimationFrame(timerId);\n  };\n  const cancelTimer = createTimer(() => {\n    element.removeEventListener(type, callSync, true);\n    callback();\n  });\n  const callSync = () => {\n    cancelTimer();\n    callback();\n  };\n  element.addEventListener(type, callSync, { once: true, capture: true });\n  return cancelTimer;\n}\nfunction addGlobalEventListener(type, listener, options, scope = window) {\n  const children = [];\n  try {\n    scope.document.addEventListener(type, listener, options);\n    for (const frame of Array.from(scope.frames)) {\n      children.push(addGlobalEventListener(type, listener, options, frame));\n    }\n  } catch (e) {\n  }\n  const removeEventListener = () => {\n    try {\n      scope.document.removeEventListener(type, listener, options);\n    } catch (e) {\n    }\n    for (const remove of children) {\n      remove();\n    }\n  };\n  return removeEventListener;\n}\nexport {\n  addGlobalEventListener,\n  fireBlurEvent,\n  fireClickEvent,\n  fireEvent,\n  fireFocusEvent,\n  fireKeyboardEvent,\n  getInputType,\n  isDownloading,\n  isFocusEventOutside,\n  isOpeningInNewTab,\n  isPortalEvent,\n  isSelfTarget,\n  queueBeforeEvent\n};\n", "\"use client\";\nimport {\n  setRef\n} from \"./SK3NAZA3.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/hooks.ts\nimport { canUseDOM } from \"@ariakit/core/utils/dom\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport * as React from \"react\";\nimport {\n  useCallback,\n  useEffect,\n  useLayoutEffect,\n  useMemo,\n  useReducer,\n  useRef,\n  useState\n} from \"react\";\nvar _React = __spreadValues({}, React);\nvar useReactId = _React.useId;\nvar useReactDeferredValue = _React.useDeferredValue;\nvar useReactInsertionEffect = _React.useInsertionEffect;\nvar useSafeLayoutEffect = canUseDOM ? useLayoutEffect : useEffect;\nfunction useInitialValue(value) {\n  const [initialValue] = useState(value);\n  return initialValue;\n}\nfunction useLazyValue(init) {\n  const ref = useRef();\n  if (ref.current === void 0) {\n    ref.current = init();\n  }\n  return ref.current;\n}\nfunction useLiveRef(value) {\n  const ref = useRef(value);\n  useSafeLayoutEffect(() => {\n    ref.current = value;\n  });\n  return ref;\n}\nfunction usePreviousValue(value) {\n  const [previousValue, setPreviousValue] = useState(value);\n  if (value !== previousValue) {\n    setPreviousValue(value);\n  }\n  return previousValue;\n}\nfunction useEvent(callback) {\n  const ref = useRef(() => {\n    throw new Error(\"Cannot call an event handler while rendering.\");\n  });\n  if (useReactInsertionEffect) {\n    useReactInsertionEffect(() => {\n      ref.current = callback;\n    });\n  } else {\n    ref.current = callback;\n  }\n  return useCallback((...args) => {\n    var _a;\n    return (_a = ref.current) == null ? void 0 : _a.call(ref, ...args);\n  }, []);\n}\nfunction useTransactionState(callback) {\n  const [state, setState] = useState(null);\n  useSafeLayoutEffect(() => {\n    if (state == null) return;\n    if (!callback) return;\n    let prevState = null;\n    callback((prev) => {\n      prevState = prev;\n      return state;\n    });\n    return () => {\n      callback(prevState);\n    };\n  }, [state, callback]);\n  return [state, setState];\n}\nfunction useMergeRefs(...refs) {\n  return useMemo(() => {\n    if (!refs.some(Boolean)) return;\n    return (value) => {\n      for (const ref of refs) {\n        setRef(ref, value);\n      }\n    };\n  }, refs);\n}\nfunction useId(defaultId) {\n  if (useReactId) {\n    const reactId = useReactId();\n    if (defaultId) return defaultId;\n    return reactId;\n  }\n  const [id, setId] = useState(defaultId);\n  useSafeLayoutEffect(() => {\n    if (defaultId || id) return;\n    const random = Math.random().toString(36).slice(2, 8);\n    setId(`id-${random}`);\n  }, [defaultId, id]);\n  return defaultId || id;\n}\nfunction useDeferredValue(value) {\n  if (useReactDeferredValue) {\n    return useReactDeferredValue(value);\n  }\n  const [deferredValue, setDeferredValue] = useState(value);\n  useEffect(() => {\n    const raf = requestAnimationFrame(() => setDeferredValue(value));\n    return () => cancelAnimationFrame(raf);\n  }, [value]);\n  return deferredValue;\n}\nfunction useTagName(refOrElement, type) {\n  const stringOrUndefined = (type2) => {\n    if (typeof type2 !== \"string\") return;\n    return type2;\n  };\n  const [tagName, setTagName] = useState(() => stringOrUndefined(type));\n  useSafeLayoutEffect(() => {\n    const element = refOrElement && \"current\" in refOrElement ? refOrElement.current : refOrElement;\n    setTagName((element == null ? void 0 : element.tagName.toLowerCase()) || stringOrUndefined(type));\n  }, [refOrElement, type]);\n  return tagName;\n}\nfunction useAttribute(refOrElement, attributeName, defaultValue) {\n  const initialValue = useInitialValue(defaultValue);\n  const [attribute, setAttribute] = useState(initialValue);\n  useEffect(() => {\n    const element = refOrElement && \"current\" in refOrElement ? refOrElement.current : refOrElement;\n    if (!element) return;\n    const callback = () => {\n      const value = element.getAttribute(attributeName);\n      setAttribute(value == null ? initialValue : value);\n    };\n    const observer = new MutationObserver(callback);\n    observer.observe(element, { attributeFilter: [attributeName] });\n    callback();\n    return () => observer.disconnect();\n  }, [refOrElement, attributeName, initialValue]);\n  return attribute;\n}\nfunction useUpdateEffect(effect, deps) {\n  const mounted = useRef(false);\n  useEffect(() => {\n    if (mounted.current) {\n      return effect();\n    }\n    mounted.current = true;\n  }, deps);\n  useEffect(\n    () => () => {\n      mounted.current = false;\n    },\n    []\n  );\n}\nfunction useUpdateLayoutEffect(effect, deps) {\n  const mounted = useRef(false);\n  useSafeLayoutEffect(() => {\n    if (mounted.current) {\n      return effect();\n    }\n    mounted.current = true;\n  }, deps);\n  useSafeLayoutEffect(\n    () => () => {\n      mounted.current = false;\n    },\n    []\n  );\n}\nfunction useForceUpdate() {\n  return useReducer(() => [], []);\n}\nfunction useBooleanEvent(booleanOrCallback) {\n  return useEvent(\n    typeof booleanOrCallback === \"function\" ? booleanOrCallback : () => booleanOrCallback\n  );\n}\nfunction useWrapElement(props, callback, deps = []) {\n  const wrapElement = useCallback(\n    (element) => {\n      if (props.wrapElement) {\n        element = props.wrapElement(element);\n      }\n      return callback(element);\n    },\n    [...deps, props.wrapElement]\n  );\n  return __spreadProps(__spreadValues({}, props), { wrapElement });\n}\nfunction usePortalRef(portalProp = false, portalRefProp) {\n  const [portalNode, setPortalNode] = useState(null);\n  const portalRef = useMergeRefs(setPortalNode, portalRefProp);\n  const domReady = !portalProp || portalNode;\n  return { portalRef, portalNode, domReady };\n}\nfunction useMetadataProps(props, key, value) {\n  const parent = props.onLoadedMetadataCapture;\n  const onLoadedMetadataCapture = useMemo(() => {\n    return Object.assign(() => {\n    }, __spreadProps(__spreadValues({}, parent), { [key]: value }));\n  }, [parent, key, value]);\n  return [parent == null ? void 0 : parent[key], { onLoadedMetadataCapture }];\n}\nvar hasInstalledGlobalEventListeners = false;\nfunction useIsMouseMoving() {\n  useEffect(() => {\n    if (hasInstalledGlobalEventListeners) return;\n    addGlobalEventListener(\"mousemove\", setMouseMoving, true);\n    addGlobalEventListener(\"mousedown\", resetMouseMoving, true);\n    addGlobalEventListener(\"mouseup\", resetMouseMoving, true);\n    addGlobalEventListener(\"keydown\", resetMouseMoving, true);\n    addGlobalEventListener(\"scroll\", resetMouseMoving, true);\n    hasInstalledGlobalEventListeners = true;\n  }, []);\n  const isMouseMoving = useEvent(() => mouseMoving);\n  return isMouseMoving;\n}\nvar mouseMoving = false;\nvar previousScreenX = 0;\nvar previousScreenY = 0;\nfunction hasMouseMovement(event) {\n  const movementX = event.movementX || event.screenX - previousScreenX;\n  const movementY = event.movementY || event.screenY - previousScreenY;\n  previousScreenX = event.screenX;\n  previousScreenY = event.screenY;\n  return movementX || movementY || process.env.NODE_ENV === \"test\";\n}\nfunction setMouseMoving(event) {\n  if (!hasMouseMovement(event)) return;\n  mouseMoving = true;\n}\nfunction resetMouseMoving() {\n  mouseMoving = false;\n}\n\nexport {\n  useSafeLayoutEffect,\n  useInitialValue,\n  useLazyValue,\n  useLiveRef,\n  usePreviousValue,\n  useEvent,\n  useTransactionState,\n  useMergeRefs,\n  useId,\n  useDeferredValue,\n  useTagName,\n  useAttribute,\n  useUpdateEffect,\n  useUpdateLayoutEffect,\n  useForceUpdate,\n  useBooleanEvent,\n  useWrapElement,\n  usePortalRef,\n  useMetadataProps,\n  useIsMouseMoving\n};\n", "\"use client\";\nimport {\n  useMergeRefs\n} from \"./5GGHRIN3.js\";\nimport {\n  getRefProperty,\n  mergeProps\n} from \"./SK3NAZA3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/system.tsx\nimport * as React from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction forwardRef2(render) {\n  const Role = React.forwardRef((props, ref) => render(__spreadProps(__spreadValues({}, props), { ref })));\n  Role.displayName = render.displayName || render.name;\n  return Role;\n}\nfunction memo2(Component, propsAreEqual) {\n  return React.memo(Component, propsAreEqual);\n}\nfunction createElement(Type, props) {\n  const _a = props, { wrapElement, render } = _a, rest = __objRest(_a, [\"wrapElement\", \"render\"]);\n  const mergedRef = useMergeRefs(props.ref, getRefProperty(render));\n  let element;\n  if (React.isValidElement(render)) {\n    const renderProps = __spreadProps(__spreadValues({}, render.props), { ref: mergedRef });\n    element = React.cloneElement(render, mergeProps(rest, renderProps));\n  } else if (render) {\n    element = render(rest);\n  } else {\n    element = /* @__PURE__ */ jsx(Type, __spreadValues({}, rest));\n  }\n  if (wrapElement) {\n    return wrapElement(element);\n  }\n  return element;\n}\nfunction createHook(useProps) {\n  const useRole = (props = {}) => {\n    return useProps(props);\n  };\n  useRole.displayName = useProps.name;\n  return useRole;\n}\nfunction createStoreContext(providers = [], scopedProviders = []) {\n  const context = React.createContext(void 0);\n  const scopedContext = React.createContext(void 0);\n  const useContext2 = () => React.useContext(context);\n  const useScopedContext = (onlyScoped = false) => {\n    const scoped = React.useContext(scopedContext);\n    const store = useContext2();\n    if (onlyScoped) return scoped;\n    return scoped || store;\n  };\n  const useProviderContext = () => {\n    const scoped = React.useContext(scopedContext);\n    const store = useContext2();\n    if (scoped && scoped === store) return;\n    return store;\n  };\n  const ContextProvider = (props) => {\n    return providers.reduceRight(\n      (children, Provider) => /* @__PURE__ */ jsx(Provider, __spreadProps(__spreadValues({}, props), { children })),\n      /* @__PURE__ */ jsx(context.Provider, __spreadValues({}, props))\n    );\n  };\n  const ScopedContextProvider = (props) => {\n    return /* @__PURE__ */ jsx(ContextProvider, __spreadProps(__spreadValues({}, props), { children: scopedProviders.reduceRight(\n      (children, Provider) => /* @__PURE__ */ jsx(Provider, __spreadProps(__spreadValues({}, props), { children })),\n      /* @__PURE__ */ jsx(scopedContext.Provider, __spreadValues({}, props))\n    ) }));\n  };\n  return {\n    context,\n    scopedContext,\n    useContext: useContext2,\n    useScopedContext,\n    useProviderContext,\n    ContextProvider,\n    ScopedContextProvider\n  };\n}\n\nexport {\n  forwardRef2 as forwardRef,\n  memo2 as memo,\n  createElement,\n  createHook,\n  createStoreContext\n};\n", "\"use client\";\nimport {\n  createStoreContext\n} from \"./VOQWLFSQ.js\";\n\n// src/collection/collection-context.tsx\nvar ctx = createStoreContext();\nvar useCollectionContext = ctx.useContext;\nvar useCollectionScopedContext = ctx.useScopedContext;\nvar useCollectionProviderContext = ctx.useProviderContext;\nvar CollectionContextProvider = ctx.ContextProvider;\nvar CollectionScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n  useCollectionContext,\n  useCollectionScopedContext,\n  useCollectionProviderContext,\n  CollectionContextProvider,\n  CollectionScopedContextProvider\n};\n", "\"use client\";\nimport {\n  CollectionContextProvider,\n  CollectionScopedContextProvider\n} from \"./5CPL3B7G.js\";\nimport {\n  createStoreContext\n} from \"./VOQWLFSQ.js\";\n\n// src/composite/composite-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n  [CollectionContextProvider],\n  [CollectionScopedContextProvider]\n);\nvar useCompositeContext = ctx.useContext;\nvar useCompositeScopedContext = ctx.useScopedContext;\nvar useCompositeProviderContext = ctx.useProviderContext;\nvar CompositeContextProvider = ctx.ContextProvider;\nvar CompositeScopedContextProvider = ctx.ScopedContextProvider;\nvar CompositeItemContext = createContext(\n  void 0\n);\nvar CompositeRowContext = createContext(\n  void 0\n);\n\nexport {\n  useCompositeContext,\n  useCompositeScopedContext,\n  useCompositeProviderContext,\n  CompositeContextProvider,\n  CompositeScopedContextProvider,\n  CompositeItemContext,\n  CompositeRowContext\n};\n", "\"use client\";\n\n// src/composite/utils.ts\nimport { getDocument, isTextField } from \"@ariakit/core/utils/dom\";\nvar NULL_ITEM = { id: null };\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n  const index = items.findIndex((item) => item.id === activeId);\n  return [\n    ...items.slice(index + 1),\n    ...shouldInsertNullItem ? [NULL_ITEM] : [],\n    ...items.slice(0, index)\n  ];\n}\nfunction findFirstEnabledItem(items, excludeId) {\n  return items.find((item) => {\n    if (excludeId) {\n      return !item.disabled && item.id !== excludeId;\n    }\n    return !item.disabled;\n  });\n}\nfunction getEnabledItem(store, id) {\n  if (!id) return null;\n  return store.item(id) || null;\n}\nfunction groupItemsByRows(items) {\n  const rows = [];\n  for (const item of items) {\n    const row = rows.find((currentRow) => {\n      var _a;\n      return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n    });\n    if (row) {\n      row.push(item);\n    } else {\n      rows.push([item]);\n    }\n  }\n  return rows;\n}\nfunction selectTextField(element, collapseToEnd = false) {\n  if (isTextField(element)) {\n    element.setSelectionRange(\n      collapseToEnd ? element.value.length : 0,\n      element.value.length\n    );\n  } else if (element.isContentEditable) {\n    const selection = getDocument(element).getSelection();\n    selection == null ? void 0 : selection.selectAllChildren(element);\n    if (collapseToEnd) {\n      selection == null ? void 0 : selection.collapseToEnd();\n    }\n  }\n}\nvar FOCUS_SILENTLY = Symbol(\"FOCUS_SILENTLY\");\nfunction focusSilently(element) {\n  element[FOCUS_SILENTLY] = true;\n  element.focus({ preventScroll: true });\n}\nfunction silentlyFocused(element) {\n  const isSilentlyFocused = element[FOCUS_SILENTLY];\n  delete element[FOCUS_SILENTLY];\n  return isSilentlyFocused;\n}\nfunction isItem(store, element, exclude) {\n  if (!element) return false;\n  if (element === exclude) return false;\n  const item = store.item(element.id);\n  if (!item) return false;\n  if (exclude && item.element === exclude) return false;\n  return true;\n}\n\nexport {\n  flipItems,\n  findFirstEnabledItem,\n  getEnabledItem,\n  groupItemsByRows,\n  selectTextField,\n  focusSilently,\n  silentlyFocused,\n  isItem\n};\n", "\"use client\";\nimport {\n  useCollectionContext\n} from \"./5CPL3B7G.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useId,\n  useMergeRefs\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/collection/collection-item.tsx\nimport { identity, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useEffect, useRef } from \"react\";\nvar TagName = \"div\";\nvar useCollectionItem = createHook(\n  function useCollectionItem2(_a) {\n    var _b = _a, {\n      store,\n      shouldRegisterItem = true,\n      getItem = identity,\n      element: element\n    } = _b, props = __objRest(_b, [\n      \"store\",\n      \"shouldRegisterItem\",\n      \"getItem\",\n      // @ts-expect-error This prop may come from a collection renderer.\n      \"element\"\n    ]);\n    const context = useCollectionContext();\n    store = store || context;\n    const id = useId(props.id);\n    const ref = useRef(element);\n    useEffect(() => {\n      const element2 = ref.current;\n      if (!id) return;\n      if (!element2) return;\n      if (!shouldRegisterItem) return;\n      const item = getItem({ id, element: element2 });\n      return store == null ? void 0 : store.renderItem(item);\n    }, [id, shouldRegisterItem, getItem, store]);\n    props = __spreadProps(__spreadValues({}, props), {\n      ref: useMergeRefs(ref, props.ref)\n    });\n    return removeUndefinedValues(props);\n  }\n);\nvar CollectionItem = forwardRef(function CollectionItem2(props) {\n  const htmlProps = useCollectionItem(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useCollectionItem,\n  CollectionItem\n};\n", "\"use client\";\n\n// src/focusable/focusable-context.tsx\nimport { createContext } from \"react\";\nvar FocusableContext = createContext(true);\n\nexport {\n  FocusableContext\n};\n", "\"use client\";\nimport {\n  contains,\n  getActiveElement,\n  isFrame,\n  isVisible\n} from \"../__chunks/DTR5TSDJ.js\";\nimport {\n  __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/utils/focus.ts\nvar selector = \"input:not([type='hidden']):not([disabled]), select:not([disabled]), textarea:not([disabled]), a[href], button:not([disabled]), [tabindex], summary, iframe, object, embed, area[href], audio[controls], video[controls], [contenteditable]:not([contenteditable='false'])\";\nfunction hasNegativeTabIndex(element) {\n  const tabIndex = Number.parseInt(element.getAttribute(\"tabindex\") || \"0\", 10);\n  return tabIndex < 0;\n}\nfunction isFocusable(element) {\n  if (!element.matches(selector)) return false;\n  if (!isVisible(element)) return false;\n  if (element.closest(\"[inert]\")) return false;\n  return true;\n}\nfunction isTabbable(element) {\n  if (!isFocusable(element)) return false;\n  if (hasNegativeTabIndex(element)) return false;\n  if (!(\"form\" in element)) return true;\n  if (!element.form) return true;\n  if (element.checked) return true;\n  if (element.type !== \"radio\") return true;\n  const radioGroup = element.form.elements.namedItem(element.name);\n  if (!radioGroup) return true;\n  if (!(\"length\" in radioGroup)) return true;\n  const activeElement = getActiveElement(element);\n  if (!activeElement) return true;\n  if (activeElement === element) return true;\n  if (!(\"form\" in activeElement)) return true;\n  if (activeElement.form !== element.form) return true;\n  if (activeElement.name !== element.name) return true;\n  return false;\n}\nfunction getAllFocusableIn(container, includeContainer) {\n  const elements = Array.from(\n    container.querySelectorAll(selector)\n  );\n  if (includeContainer) {\n    elements.unshift(container);\n  }\n  const focusableElements = elements.filter(isFocusable);\n  focusableElements.forEach((element, i) => {\n    if (isFrame(element) && element.contentDocument) {\n      const frameBody = element.contentDocument.body;\n      focusableElements.splice(i, 1, ...getAllFocusableIn(frameBody));\n    }\n  });\n  return focusableElements;\n}\nfunction getAllFocusable(includeBody) {\n  return getAllFocusableIn(document.body, includeBody);\n}\nfunction getFirstFocusableIn(container, includeContainer) {\n  const [first] = getAllFocusableIn(container, includeContainer);\n  return first || null;\n}\nfunction getFirstFocusable(includeBody) {\n  return getFirstFocusableIn(document.body, includeBody);\n}\nfunction getAllTabbableIn(container, includeContainer, fallbackToFocusable) {\n  const elements = Array.from(\n    container.querySelectorAll(selector)\n  );\n  const tabbableElements = elements.filter(isTabbable);\n  if (includeContainer && isTabbable(container)) {\n    tabbableElements.unshift(container);\n  }\n  tabbableElements.forEach((element, i) => {\n    if (isFrame(element) && element.contentDocument) {\n      const frameBody = element.contentDocument.body;\n      const allFrameTabbable = getAllTabbableIn(\n        frameBody,\n        false,\n        fallbackToFocusable\n      );\n      tabbableElements.splice(i, 1, ...allFrameTabbable);\n    }\n  });\n  if (!tabbableElements.length && fallbackToFocusable) {\n    return elements;\n  }\n  return tabbableElements;\n}\nfunction getAllTabbable(fallbackToFocusable) {\n  return getAllTabbableIn(document.body, false, fallbackToFocusable);\n}\nfunction getFirstTabbableIn(container, includeContainer, fallbackToFocusable) {\n  const [first] = getAllTabbableIn(\n    container,\n    includeContainer,\n    fallbackToFocusable\n  );\n  return first || null;\n}\nfunction getFirstTabbable(fallbackToFocusable) {\n  return getFirstTabbableIn(document.body, false, fallbackToFocusable);\n}\nfunction getLastTabbableIn(container, includeContainer, fallbackToFocusable) {\n  const allTabbable = getAllTabbableIn(\n    container,\n    includeContainer,\n    fallbackToFocusable\n  );\n  return allTabbable[allTabbable.length - 1] || null;\n}\nfunction getLastTabbable(fallbackToFocusable) {\n  return getLastTabbableIn(document.body, false, fallbackToFocusable);\n}\nfunction getNextTabbableIn(container, includeContainer, fallbackToFirst, fallbackToFocusable) {\n  const activeElement = getActiveElement(container);\n  const allFocusable = getAllFocusableIn(container, includeContainer);\n  const activeIndex = allFocusable.indexOf(activeElement);\n  const nextFocusableElements = allFocusable.slice(activeIndex + 1);\n  return nextFocusableElements.find(isTabbable) || (fallbackToFirst ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? nextFocusableElements[0] : null) || null;\n}\nfunction getNextTabbable(fallbackToFirst, fallbackToFocusable) {\n  return getNextTabbableIn(\n    document.body,\n    false,\n    fallbackToFirst,\n    fallbackToFocusable\n  );\n}\nfunction getPreviousTabbableIn(container, includeContainer, fallbackToLast, fallbackToFocusable) {\n  const activeElement = getActiveElement(container);\n  const allFocusable = getAllFocusableIn(container, includeContainer).reverse();\n  const activeIndex = allFocusable.indexOf(activeElement);\n  const previousFocusableElements = allFocusable.slice(activeIndex + 1);\n  return previousFocusableElements.find(isTabbable) || (fallbackToLast ? allFocusable.find(isTabbable) : null) || (fallbackToFocusable ? previousFocusableElements[0] : null) || null;\n}\nfunction getPreviousTabbable(fallbackToFirst, fallbackToFocusable) {\n  return getPreviousTabbableIn(\n    document.body,\n    false,\n    fallbackToFirst,\n    fallbackToFocusable\n  );\n}\nfunction getClosestFocusable(element) {\n  while (element && !isFocusable(element)) {\n    element = element.closest(selector);\n  }\n  return element || null;\n}\nfunction hasFocus(element) {\n  const activeElement = getActiveElement(element);\n  if (!activeElement) return false;\n  if (activeElement === element) return true;\n  const activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n  if (!activeDescendant) return false;\n  return activeDescendant === element.id;\n}\nfunction hasFocusWithin(element) {\n  const activeElement = getActiveElement(element);\n  if (!activeElement) return false;\n  if (contains(element, activeElement)) return true;\n  const activeDescendant = activeElement.getAttribute(\"aria-activedescendant\");\n  if (!activeDescendant) return false;\n  if (!(\"id\" in element)) return false;\n  if (activeDescendant === element.id) return true;\n  return !!element.querySelector(`#${CSS.escape(activeDescendant)}`);\n}\nfunction focusIfNeeded(element) {\n  if (!hasFocusWithin(element) && isFocusable(element)) {\n    element.focus();\n  }\n}\nfunction disableFocus(element) {\n  var _a;\n  const currentTabindex = (_a = element.getAttribute(\"tabindex\")) != null ? _a : \"\";\n  element.setAttribute(\"data-tabindex\", currentTabindex);\n  element.setAttribute(\"tabindex\", \"-1\");\n}\nfunction disableFocusIn(container, includeContainer) {\n  const tabbableElements = getAllTabbableIn(container, includeContainer);\n  for (const element of tabbableElements) {\n    disableFocus(element);\n  }\n}\nfunction restoreFocusIn(container) {\n  const elements = container.querySelectorAll(\"[data-tabindex]\");\n  const restoreTabIndex = (element) => {\n    const tabindex = element.getAttribute(\"data-tabindex\");\n    element.removeAttribute(\"data-tabindex\");\n    if (tabindex) {\n      element.setAttribute(\"tabindex\", tabindex);\n    } else {\n      element.removeAttribute(\"tabindex\");\n    }\n  };\n  if (container.hasAttribute(\"data-tabindex\")) {\n    restoreTabIndex(container);\n  }\n  for (const element of elements) {\n    restoreTabIndex(element);\n  }\n}\nfunction focusIntoView(element, options) {\n  if (!(\"scrollIntoView\" in element)) {\n    element.focus();\n  } else {\n    element.focus({ preventScroll: true });\n    element.scrollIntoView(__spreadValues({ block: \"nearest\", inline: \"nearest\" }, options));\n  }\n}\nexport {\n  disableFocus,\n  disableFocusIn,\n  focusIfNeeded,\n  focusIntoView,\n  getAllFocusable,\n  getAllFocusableIn,\n  getAllTabbable,\n  getAllTabbableIn,\n  getClosestFocusable,\n  getFirstFocusable,\n  getFirstFocusableIn,\n  getFirstTabbable,\n  getFirstTabbableIn,\n  getLastTabbable,\n  getLastTabbableIn,\n  getNextTabbable,\n  getNextTabbableIn,\n  getPreviousTabbable,\n  getPreviousTabbableIn,\n  hasFocus,\n  hasFocusWithin,\n  isFocusable,\n  isTabbable,\n  restoreFocusIn\n};\n", "\"use client\";\nimport {\n  FocusableContext\n} from \"./SWN3JYXT.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useEvent,\n  useMergeRefs,\n  useTagName\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/focusable/focusable.tsx\nimport { isButton } from \"@ariakit/core/utils/dom\";\nimport {\n  addGlobalEventListener,\n  isFocusEventOutside,\n  isPortalEvent,\n  isSelfTarget,\n  queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport {\n  focusIfNeeded,\n  getClosestFocusable,\n  hasFocus,\n  isFocusable\n} from \"@ariakit/core/utils/focus\";\nimport {\n  disabledFromProps,\n  removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { isSafari } from \"@ariakit/core/utils/platform\";\nimport { useContext, useEffect, useMemo, useRef, useState } from \"react\";\nvar TagName = \"div\";\nvar isSafariBrowser = isSafari();\nvar alwaysFocusVisibleInputTypes = [\n  \"text\",\n  \"search\",\n  \"url\",\n  \"tel\",\n  \"email\",\n  \"password\",\n  \"number\",\n  \"date\",\n  \"month\",\n  \"week\",\n  \"time\",\n  \"datetime\",\n  \"datetime-local\"\n];\nvar safariFocusAncestorSymbol = Symbol(\"safariFocusAncestor\");\nfunction isSafariFocusAncestor(element) {\n  if (!element) return false;\n  return !!element[safariFocusAncestorSymbol];\n}\nfunction markSafariFocusAncestor(element, value) {\n  if (!element) return;\n  element[safariFocusAncestorSymbol] = value;\n}\nfunction isAlwaysFocusVisible(element) {\n  const { tagName, readOnly, type } = element;\n  if (tagName === \"TEXTAREA\" && !readOnly) return true;\n  if (tagName === \"SELECT\" && !readOnly) return true;\n  if (tagName === \"INPUT\" && !readOnly) {\n    return alwaysFocusVisibleInputTypes.includes(type);\n  }\n  if (element.isContentEditable) return true;\n  const role = element.getAttribute(\"role\");\n  if (role === \"combobox\" && element.dataset.name) {\n    return true;\n  }\n  return false;\n}\nfunction getLabels(element) {\n  if (\"labels\" in element) {\n    return element.labels;\n  }\n  return null;\n}\nfunction isNativeCheckboxOrRadio(element) {\n  const tagName = element.tagName.toLowerCase();\n  if (tagName === \"input\" && element.type) {\n    return element.type === \"radio\" || element.type === \"checkbox\";\n  }\n  return false;\n}\nfunction isNativeTabbable(tagName) {\n  if (!tagName) return true;\n  return tagName === \"button\" || tagName === \"summary\" || tagName === \"input\" || tagName === \"select\" || tagName === \"textarea\" || tagName === \"a\";\n}\nfunction supportsDisabledAttribute(tagName) {\n  if (!tagName) return true;\n  return tagName === \"button\" || tagName === \"input\" || tagName === \"select\" || tagName === \"textarea\";\n}\nfunction getTabIndex(focusable, trulyDisabled, nativeTabbable, supportsDisabled, tabIndexProp) {\n  if (!focusable) {\n    return tabIndexProp;\n  }\n  if (trulyDisabled) {\n    if (nativeTabbable && !supportsDisabled) {\n      return -1;\n    }\n    return;\n  }\n  if (nativeTabbable) {\n    return tabIndexProp;\n  }\n  return tabIndexProp || 0;\n}\nfunction useDisableEvent(onEvent, disabled) {\n  return useEvent((event) => {\n    onEvent == null ? void 0 : onEvent(event);\n    if (event.defaultPrevented) return;\n    if (disabled) {\n      event.stopPropagation();\n      event.preventDefault();\n    }\n  });\n}\nvar hasInstalledGlobalEventListeners = false;\nvar isKeyboardModality = true;\nfunction onGlobalMouseDown(event) {\n  const target = event.target;\n  if (target && \"hasAttribute\" in target) {\n    if (!target.hasAttribute(\"data-focus-visible\")) {\n      isKeyboardModality = false;\n    }\n  }\n}\nfunction onGlobalKeyDown(event) {\n  if (event.metaKey) return;\n  if (event.ctrlKey) return;\n  if (event.altKey) return;\n  isKeyboardModality = true;\n}\nvar useFocusable = createHook(\n  function useFocusable2(_a) {\n    var _b = _a, {\n      focusable = true,\n      accessibleWhenDisabled,\n      autoFocus,\n      onFocusVisible\n    } = _b, props = __objRest(_b, [\n      \"focusable\",\n      \"accessibleWhenDisabled\",\n      \"autoFocus\",\n      \"onFocusVisible\"\n    ]);\n    const ref = useRef(null);\n    useEffect(() => {\n      if (!focusable) return;\n      if (hasInstalledGlobalEventListeners) return;\n      addGlobalEventListener(\"mousedown\", onGlobalMouseDown, true);\n      addGlobalEventListener(\"keydown\", onGlobalKeyDown, true);\n      hasInstalledGlobalEventListeners = true;\n    }, [focusable]);\n    if (isSafariBrowser) {\n      useEffect(() => {\n        if (!focusable) return;\n        const element = ref.current;\n        if (!element) return;\n        if (!isNativeCheckboxOrRadio(element)) return;\n        const labels = getLabels(element);\n        if (!labels) return;\n        const onMouseUp = () => queueMicrotask(() => element.focus());\n        for (const label of labels) {\n          label.addEventListener(\"mouseup\", onMouseUp);\n        }\n        return () => {\n          for (const label of labels) {\n            label.removeEventListener(\"mouseup\", onMouseUp);\n          }\n        };\n      }, [focusable]);\n    }\n    const disabled = focusable && disabledFromProps(props);\n    const trulyDisabled = !!disabled && !accessibleWhenDisabled;\n    const [focusVisible, setFocusVisible] = useState(false);\n    useEffect(() => {\n      if (!focusable) return;\n      if (trulyDisabled && focusVisible) {\n        setFocusVisible(false);\n      }\n    }, [focusable, trulyDisabled, focusVisible]);\n    useEffect(() => {\n      if (!focusable) return;\n      if (!focusVisible) return;\n      const element = ref.current;\n      if (!element) return;\n      if (typeof IntersectionObserver === \"undefined\") return;\n      const observer = new IntersectionObserver(() => {\n        if (!isFocusable(element)) {\n          setFocusVisible(false);\n        }\n      });\n      observer.observe(element);\n      return () => observer.disconnect();\n    }, [focusable, focusVisible]);\n    const onKeyPressCapture = useDisableEvent(\n      props.onKeyPressCapture,\n      disabled\n    );\n    const onMouseDownCapture = useDisableEvent(\n      props.onMouseDownCapture,\n      disabled\n    );\n    const onClickCapture = useDisableEvent(props.onClickCapture, disabled);\n    const onMouseDownProp = props.onMouseDown;\n    const onMouseDown = useEvent((event) => {\n      onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n      if (event.defaultPrevented) return;\n      if (!focusable) return;\n      const element = event.currentTarget;\n      if (!isSafariBrowser) return;\n      if (isPortalEvent(event)) return;\n      if (!isButton(element) && !isNativeCheckboxOrRadio(element)) return;\n      let receivedFocus = false;\n      const onFocus = () => {\n        receivedFocus = true;\n      };\n      const options = { capture: true, once: true };\n      element.addEventListener(\"focusin\", onFocus, options);\n      const focusableContainer = getClosestFocusable(element.parentElement);\n      markSafariFocusAncestor(focusableContainer, true);\n      queueBeforeEvent(element, \"mouseup\", () => {\n        element.removeEventListener(\"focusin\", onFocus, true);\n        markSafariFocusAncestor(focusableContainer, false);\n        if (receivedFocus) return;\n        focusIfNeeded(element);\n      });\n    });\n    const handleFocusVisible = (event, currentTarget) => {\n      if (currentTarget) {\n        event.currentTarget = currentTarget;\n      }\n      if (!focusable) return;\n      const element = event.currentTarget;\n      if (!element) return;\n      if (!hasFocus(element)) return;\n      onFocusVisible == null ? void 0 : onFocusVisible(event);\n      if (event.defaultPrevented) return;\n      element.dataset.focusVisible = \"true\";\n      setFocusVisible(true);\n    };\n    const onKeyDownCaptureProp = props.onKeyDownCapture;\n    const onKeyDownCapture = useEvent((event) => {\n      onKeyDownCaptureProp == null ? void 0 : onKeyDownCaptureProp(event);\n      if (event.defaultPrevented) return;\n      if (!focusable) return;\n      if (focusVisible) return;\n      if (event.metaKey) return;\n      if (event.altKey) return;\n      if (event.ctrlKey) return;\n      if (!isSelfTarget(event)) return;\n      const element = event.currentTarget;\n      const applyFocusVisible = () => handleFocusVisible(event, element);\n      queueBeforeEvent(element, \"focusout\", applyFocusVisible);\n    });\n    const onFocusCaptureProp = props.onFocusCapture;\n    const onFocusCapture = useEvent((event) => {\n      onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);\n      if (event.defaultPrevented) return;\n      if (!focusable) return;\n      if (!isSelfTarget(event)) {\n        setFocusVisible(false);\n        return;\n      }\n      const element = event.currentTarget;\n      const applyFocusVisible = () => handleFocusVisible(event, element);\n      if (isKeyboardModality || isAlwaysFocusVisible(event.target)) {\n        queueBeforeEvent(event.target, \"focusout\", applyFocusVisible);\n      } else {\n        setFocusVisible(false);\n      }\n    });\n    const onBlurProp = props.onBlur;\n    const onBlur = useEvent((event) => {\n      onBlurProp == null ? void 0 : onBlurProp(event);\n      if (!focusable) return;\n      if (!isFocusEventOutside(event)) return;\n      event.currentTarget.removeAttribute(\"data-focus-visible\");\n      setFocusVisible(false);\n    });\n    const autoFocusOnShow = useContext(FocusableContext);\n    const autoFocusRef = useEvent((element) => {\n      if (!focusable) return;\n      if (!autoFocus) return;\n      if (!element) return;\n      if (!autoFocusOnShow) return;\n      queueMicrotask(() => {\n        if (hasFocus(element)) return;\n        if (!isFocusable(element)) return;\n        element.focus();\n      });\n    });\n    const tagName = useTagName(ref);\n    const nativeTabbable = focusable && isNativeTabbable(tagName);\n    const supportsDisabled = focusable && supportsDisabledAttribute(tagName);\n    const styleProp = props.style;\n    const style = useMemo(() => {\n      if (trulyDisabled) {\n        return __spreadValues({ pointerEvents: \"none\" }, styleProp);\n      }\n      return styleProp;\n    }, [trulyDisabled, styleProp]);\n    props = __spreadProps(__spreadValues({\n      \"data-focus-visible\": focusable && focusVisible || void 0,\n      \"data-autofocus\": autoFocus || void 0,\n      \"aria-disabled\": disabled || void 0\n    }, props), {\n      ref: useMergeRefs(ref, autoFocusRef, props.ref),\n      style,\n      tabIndex: getTabIndex(\n        focusable,\n        trulyDisabled,\n        nativeTabbable,\n        supportsDisabled,\n        props.tabIndex\n      ),\n      disabled: supportsDisabled && trulyDisabled ? true : void 0,\n      // TODO: Test Focusable contentEditable.\n      contentEditable: disabled ? void 0 : props.contentEditable,\n      onKeyPressCapture,\n      onClickCapture,\n      onMouseDownCapture,\n      onMouseDown,\n      onKeyDownCapture,\n      onFocusCapture,\n      onBlur\n    });\n    return removeUndefinedValues(props);\n  }\n);\nvar Focusable = forwardRef(function Focusable2(props) {\n  const htmlProps = useFocusable(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  isSafariFocusAncestor,\n  useFocusable,\n  Focusable\n};\n", "\"use client\";\nimport {\n  useFocusable\n} from \"./OE2EFRVA.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useEvent,\n  useMergeRefs,\n  useMetadataProps\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/command/command.tsx\nimport { isButton, isTextField } from \"@ariakit/core/utils/dom\";\nimport {\n  fireClickEvent,\n  isSelfTarget,\n  queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport { disabledFromProps } from \"@ariakit/core/utils/misc\";\nimport { isFirefox } from \"@ariakit/core/utils/platform\";\nimport { useEffect, useRef, useState } from \"react\";\nvar TagName = \"button\";\nfunction isNativeClick(event) {\n  if (!event.isTrusted) return false;\n  const element = event.currentTarget;\n  if (event.key === \"Enter\") {\n    return isButton(element) || element.tagName === \"SUMMARY\" || element.tagName === \"A\";\n  }\n  if (event.key === \" \") {\n    return isButton(element) || element.tagName === \"SUMMARY\" || element.tagName === \"INPUT\" || element.tagName === \"SELECT\";\n  }\n  return false;\n}\nvar symbol = Symbol(\"command\");\nvar useCommand = createHook(\n  function useCommand2(_a) {\n    var _b = _a, { clickOnEnter = true, clickOnSpace = true } = _b, props = __objRest(_b, [\"clickOnEnter\", \"clickOnSpace\"]);\n    const ref = useRef(null);\n    const [isNativeButton, setIsNativeButton] = useState(false);\n    useEffect(() => {\n      if (!ref.current) return;\n      setIsNativeButton(isButton(ref.current));\n    }, []);\n    const [active, setActive] = useState(false);\n    const activeRef = useRef(false);\n    const disabled = disabledFromProps(props);\n    const [isDuplicate, metadataProps] = useMetadataProps(props, symbol, true);\n    const onKeyDownProp = props.onKeyDown;\n    const onKeyDown = useEvent((event) => {\n      onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n      const element = event.currentTarget;\n      if (event.defaultPrevented) return;\n      if (isDuplicate) return;\n      if (disabled) return;\n      if (!isSelfTarget(event)) return;\n      if (isTextField(element)) return;\n      if (element.isContentEditable) return;\n      const isEnter = clickOnEnter && event.key === \"Enter\";\n      const isSpace = clickOnSpace && event.key === \" \";\n      const shouldPreventEnter = event.key === \"Enter\" && !clickOnEnter;\n      const shouldPreventSpace = event.key === \" \" && !clickOnSpace;\n      if (shouldPreventEnter || shouldPreventSpace) {\n        event.preventDefault();\n        return;\n      }\n      if (isEnter || isSpace) {\n        const nativeClick = isNativeClick(event);\n        if (isEnter) {\n          if (!nativeClick) {\n            event.preventDefault();\n            const _a2 = event, { view } = _a2, eventInit = __objRest(_a2, [\"view\"]);\n            const click = () => fireClickEvent(element, eventInit);\n            if (isFirefox()) {\n              queueBeforeEvent(element, \"keyup\", click);\n            } else {\n              queueMicrotask(click);\n            }\n          }\n        } else if (isSpace) {\n          activeRef.current = true;\n          if (!nativeClick) {\n            event.preventDefault();\n            setActive(true);\n          }\n        }\n      }\n    });\n    const onKeyUpProp = props.onKeyUp;\n    const onKeyUp = useEvent((event) => {\n      onKeyUpProp == null ? void 0 : onKeyUpProp(event);\n      if (event.defaultPrevented) return;\n      if (isDuplicate) return;\n      if (disabled) return;\n      if (event.metaKey) return;\n      const isSpace = clickOnSpace && event.key === \" \";\n      if (activeRef.current && isSpace) {\n        activeRef.current = false;\n        if (!isNativeClick(event)) {\n          event.preventDefault();\n          setActive(false);\n          const element = event.currentTarget;\n          const _a2 = event, { view } = _a2, eventInit = __objRest(_a2, [\"view\"]);\n          queueMicrotask(() => fireClickEvent(element, eventInit));\n        }\n      }\n    });\n    props = __spreadProps(__spreadValues(__spreadValues({\n      \"data-active\": active || void 0,\n      type: isNativeButton ? \"button\" : void 0\n    }, metadataProps), props), {\n      ref: useMergeRefs(ref, props.ref),\n      onKeyDown,\n      onKeyUp\n    });\n    props = useFocusable(props);\n    return props;\n  }\n);\nvar Command = forwardRef(function Command2(props) {\n  const htmlProps = useCommand(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useCommand,\n  Command\n};\n", "\"use client\";\nimport {\n  useEvent,\n  useLiveRef,\n  useSafeLayoutEffect\n} from \"./5GGHRIN3.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/utils/store.tsx\nimport { hasOwnProperty, identity } from \"@ariakit/core/utils/misc\";\nimport { batch, init, subscribe, sync } from \"@ariakit/core/utils/store\";\nimport * as React from \"react\";\nimport useSyncExternalStoreExports from \"use-sync-external-store/shim/index.js\";\nvar { useSyncExternalStore } = useSyncExternalStoreExports;\nvar noopSubscribe = () => () => {\n};\nfunction useStoreState(store, keyOrSelector = identity) {\n  const storeSubscribe = React.useCallback(\n    (callback) => {\n      if (!store) return noopSubscribe();\n      return subscribe(store, null, callback);\n    },\n    [store]\n  );\n  const getSnapshot = () => {\n    const key = typeof keyOrSelector === \"string\" ? keyOrSelector : null;\n    const selector = typeof keyOrSelector === \"function\" ? keyOrSelector : null;\n    const state = store == null ? void 0 : store.getState();\n    if (selector) return selector(state);\n    if (!state) return;\n    if (!key) return;\n    if (!hasOwnProperty(state, key)) return;\n    return state[key];\n  };\n  return useSyncExternalStore(storeSubscribe, getSnapshot, getSnapshot);\n}\nfunction useStoreStateObject(store, object) {\n  const objRef = React.useRef(\n    {}\n  );\n  const storeSubscribe = React.useCallback(\n    (callback) => {\n      if (!store) return noopSubscribe();\n      return subscribe(store, null, callback);\n    },\n    [store]\n  );\n  const getSnapshot = () => {\n    const state = store == null ? void 0 : store.getState();\n    let updated = false;\n    const obj = objRef.current;\n    for (const prop in object) {\n      const keyOrSelector = object[prop];\n      if (typeof keyOrSelector === \"function\") {\n        const value = keyOrSelector(state);\n        if (value !== obj[prop]) {\n          obj[prop] = value;\n          updated = true;\n        }\n      }\n      if (typeof keyOrSelector === \"string\") {\n        if (!state) continue;\n        if (!hasOwnProperty(state, keyOrSelector)) continue;\n        const value = state[keyOrSelector];\n        if (value !== obj[prop]) {\n          obj[prop] = value;\n          updated = true;\n        }\n      }\n    }\n    if (updated) {\n      objRef.current = __spreadValues({}, obj);\n    }\n    return objRef.current;\n  };\n  return useSyncExternalStore(storeSubscribe, getSnapshot, getSnapshot);\n}\nfunction useStoreProps(store, props, key, setKey) {\n  const value = hasOwnProperty(props, key) ? props[key] : void 0;\n  const setValue = setKey ? props[setKey] : void 0;\n  const propsRef = useLiveRef({ value, setValue });\n  useSafeLayoutEffect(() => {\n    return sync(store, [key], (state, prev) => {\n      const { value: value2, setValue: setValue2 } = propsRef.current;\n      if (!setValue2) return;\n      if (state[key] === prev[key]) return;\n      if (state[key] === value2) return;\n      setValue2(state[key]);\n    });\n  }, [store, key]);\n  useSafeLayoutEffect(() => {\n    if (value === void 0) return;\n    store.setState(key, value);\n    return batch(store, [key], () => {\n      if (value === void 0) return;\n      store.setState(key, value);\n    });\n  });\n}\nfunction useStore(createStore, props) {\n  const [store, setStore] = React.useState(() => createStore(props));\n  useSafeLayoutEffect(() => init(store), [store]);\n  const useState2 = React.useCallback(\n    (keyOrSelector) => useStoreState(store, keyOrSelector),\n    [store]\n  );\n  const memoizedStore = React.useMemo(\n    () => __spreadProps(__spreadValues({}, store), { useState: useState2 }),\n    [store, useState2]\n  );\n  const updateStore = useEvent(() => {\n    setStore((store2) => createStore(__spreadValues(__spreadValues({}, props), store2.getState())));\n  });\n  return [memoizedStore, updateStore];\n}\n\nexport {\n  useStoreState,\n  useStoreStateObject,\n  useStoreProps,\n  useStore\n};\n", "\"use client\";\nimport {\n  focusSilently,\n  getEnabledItem,\n  isItem,\n  selectTextField\n} from \"./5VQZOHHZ.js\";\nimport {\n  useCollectionItem\n} from \"./Y62RTBST.js\";\nimport {\n  CompositeItemContext,\n  CompositeRowContext,\n  useCompositeContext\n} from \"./APTFW6PT.js\";\nimport {\n  useCommand\n} from \"./2W3RN7C5.js\";\nimport {\n  useStoreStateObject\n} from \"./RTNCFSKZ.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef,\n  memo\n} from \"./VOQWLFSQ.js\";\nimport {\n  useBooleanEvent,\n  useEvent,\n  useId,\n  useMergeRefs,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-item.tsx\nimport {\n  getScrollingElement,\n  getTextboxSelection,\n  getTextboxValue,\n  isButton,\n  isTextbox,\n  isTextField\n} from \"@ariakit/core/utils/dom\";\nimport { isPortalEvent, isSelfTarget } from \"@ariakit/core/utils/events\";\nimport {\n  disabledFromProps,\n  removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { isSafari } from \"@ariakit/core/utils/platform\";\nimport { useCallback, useContext, useMemo, useRef } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"button\";\nfunction isEditableElement(element) {\n  if (isTextbox(element)) return true;\n  return element.tagName === \"INPUT\" && !isButton(element);\n}\nfunction getNextPageOffset(scrollingElement, pageUp = false) {\n  const height = scrollingElement.clientHeight;\n  const { top } = scrollingElement.getBoundingClientRect();\n  const pageSize = Math.max(height * 0.875, height - 40) * 1.5;\n  const pageOffset = pageUp ? height - pageSize + top : pageSize + top;\n  if (scrollingElement.tagName === \"HTML\") {\n    return pageOffset + scrollingElement.scrollTop;\n  }\n  return pageOffset;\n}\nfunction getItemOffset(itemElement, pageUp = false) {\n  const { top } = itemElement.getBoundingClientRect();\n  if (pageUp) {\n    return top + itemElement.clientHeight;\n  }\n  return top;\n}\nfunction findNextPageItemId(element, store, next, pageUp = false) {\n  var _a;\n  if (!store) return;\n  if (!next) return;\n  const { renderedItems } = store.getState();\n  const scrollingElement = getScrollingElement(element);\n  if (!scrollingElement) return;\n  const nextPageOffset = getNextPageOffset(scrollingElement, pageUp);\n  let id;\n  let prevDifference;\n  for (let i = 0; i < renderedItems.length; i += 1) {\n    const previousId = id;\n    id = next(i);\n    if (!id) break;\n    if (id === previousId) continue;\n    const itemElement = (_a = getEnabledItem(store, id)) == null ? void 0 : _a.element;\n    if (!itemElement) continue;\n    const itemOffset = getItemOffset(itemElement, pageUp);\n    const difference = itemOffset - nextPageOffset;\n    const absDifference = Math.abs(difference);\n    if (pageUp && difference <= 0 || !pageUp && difference >= 0) {\n      if (prevDifference !== void 0 && prevDifference < absDifference) {\n        id = previousId;\n      }\n      break;\n    }\n    prevDifference = absDifference;\n  }\n  return id;\n}\nfunction targetIsAnotherItem(event, store) {\n  if (isSelfTarget(event)) return false;\n  return isItem(store, event.target);\n}\nvar useCompositeItem = createHook(\n  function useCompositeItem2(_a) {\n    var _b = _a, {\n      store,\n      rowId: rowIdProp,\n      preventScrollOnKeyDown = false,\n      moveOnKeyPress = true,\n      tabbable = false,\n      getItem: getItemProp,\n      \"aria-setsize\": ariaSetSizeProp,\n      \"aria-posinset\": ariaPosInSetProp\n    } = _b, props = __objRest(_b, [\n      \"store\",\n      \"rowId\",\n      \"preventScrollOnKeyDown\",\n      \"moveOnKeyPress\",\n      \"tabbable\",\n      \"getItem\",\n      \"aria-setsize\",\n      \"aria-posinset\"\n    ]);\n    const context = useCompositeContext();\n    store = store || context;\n    const id = useId(props.id);\n    const ref = useRef(null);\n    const row = useContext(CompositeRowContext);\n    const disabled = disabledFromProps(props);\n    const trulyDisabled = disabled && !props.accessibleWhenDisabled;\n    const {\n      rowId,\n      baseElement,\n      isActiveItem,\n      ariaSetSize,\n      ariaPosInSet,\n      isTabbable\n    } = useStoreStateObject(store, {\n      rowId(state) {\n        if (rowIdProp) return rowIdProp;\n        if (!state) return;\n        if (!(row == null ? void 0 : row.baseElement)) return;\n        if (row.baseElement !== state.baseElement) return;\n        return row.id;\n      },\n      baseElement(state) {\n        return (state == null ? void 0 : state.baseElement) || void 0;\n      },\n      isActiveItem(state) {\n        return !!state && state.activeId === id;\n      },\n      ariaSetSize(state) {\n        if (ariaSetSizeProp != null) return ariaSetSizeProp;\n        if (!state) return;\n        if (!(row == null ? void 0 : row.ariaSetSize)) return;\n        if (row.baseElement !== state.baseElement) return;\n        return row.ariaSetSize;\n      },\n      ariaPosInSet(state) {\n        if (ariaPosInSetProp != null) return ariaPosInSetProp;\n        if (!state) return;\n        if (!(row == null ? void 0 : row.ariaPosInSet)) return;\n        if (row.baseElement !== state.baseElement) return;\n        const itemsInRow = state.renderedItems.filter(\n          (item) => item.rowId === rowId\n        );\n        return row.ariaPosInSet + itemsInRow.findIndex((item) => item.id === id);\n      },\n      isTabbable(state) {\n        if (!(state == null ? void 0 : state.renderedItems.length)) return true;\n        if (state.virtualFocus) return false;\n        if (tabbable) return true;\n        if (state.activeId === null) return false;\n        const item = store == null ? void 0 : store.item(state.activeId);\n        if (item == null ? void 0 : item.disabled) return true;\n        if (!(item == null ? void 0 : item.element)) return true;\n        return state.activeId === id;\n      }\n    });\n    const getItem = useCallback(\n      (item) => {\n        var _a2;\n        const nextItem = __spreadProps(__spreadValues({}, item), {\n          id: id || item.id,\n          rowId,\n          disabled: !!trulyDisabled,\n          children: (_a2 = item.element) == null ? void 0 : _a2.textContent\n        });\n        if (getItemProp) {\n          return getItemProp(nextItem);\n        }\n        return nextItem;\n      },\n      [id, rowId, trulyDisabled, getItemProp]\n    );\n    const onFocusProp = props.onFocus;\n    const hasFocusedComposite = useRef(false);\n    const onFocus = useEvent((event) => {\n      onFocusProp == null ? void 0 : onFocusProp(event);\n      if (event.defaultPrevented) return;\n      if (isPortalEvent(event)) return;\n      if (!id) return;\n      if (!store) return;\n      if (targetIsAnotherItem(event, store)) return;\n      const { virtualFocus, baseElement: baseElement2 } = store.getState();\n      store.setActiveId(id);\n      if (isTextbox(event.currentTarget)) {\n        selectTextField(event.currentTarget);\n      }\n      if (!virtualFocus) return;\n      if (!isSelfTarget(event)) return;\n      if (isEditableElement(event.currentTarget)) return;\n      if (!(baseElement2 == null ? void 0 : baseElement2.isConnected)) return;\n      if (isSafari() && event.currentTarget.hasAttribute(\"data-autofocus\")) {\n        event.currentTarget.scrollIntoView({\n          block: \"nearest\",\n          inline: \"nearest\"\n        });\n      }\n      hasFocusedComposite.current = true;\n      const fromComposite = event.relatedTarget === baseElement2 || isItem(store, event.relatedTarget);\n      if (fromComposite) {\n        focusSilently(baseElement2);\n      } else {\n        baseElement2.focus();\n      }\n    });\n    const onBlurCaptureProp = props.onBlurCapture;\n    const onBlurCapture = useEvent((event) => {\n      onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);\n      if (event.defaultPrevented) return;\n      const state = store == null ? void 0 : store.getState();\n      if ((state == null ? void 0 : state.virtualFocus) && hasFocusedComposite.current) {\n        hasFocusedComposite.current = false;\n        event.preventDefault();\n        event.stopPropagation();\n      }\n    });\n    const onKeyDownProp = props.onKeyDown;\n    const preventScrollOnKeyDownProp = useBooleanEvent(preventScrollOnKeyDown);\n    const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n    const onKeyDown = useEvent((event) => {\n      onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n      if (event.defaultPrevented) return;\n      if (!isSelfTarget(event)) return;\n      if (!store) return;\n      const { currentTarget } = event;\n      const state = store.getState();\n      const item = store.item(id);\n      const isGrid = !!(item == null ? void 0 : item.rowId);\n      const isVertical = state.orientation !== \"horizontal\";\n      const isHorizontal = state.orientation !== \"vertical\";\n      const canHomeEnd = () => {\n        if (isGrid) return true;\n        if (isHorizontal) return true;\n        if (!state.baseElement) return true;\n        if (!isTextField(state.baseElement)) return true;\n        return false;\n      };\n      const keyMap = {\n        ArrowUp: (isGrid || isVertical) && store.up,\n        ArrowRight: (isGrid || isHorizontal) && store.next,\n        ArrowDown: (isGrid || isVertical) && store.down,\n        ArrowLeft: (isGrid || isHorizontal) && store.previous,\n        Home: () => {\n          if (!canHomeEnd()) return;\n          if (!isGrid || event.ctrlKey) {\n            return store == null ? void 0 : store.first();\n          }\n          return store == null ? void 0 : store.previous(-1);\n        },\n        End: () => {\n          if (!canHomeEnd()) return;\n          if (!isGrid || event.ctrlKey) {\n            return store == null ? void 0 : store.last();\n          }\n          return store == null ? void 0 : store.next(-1);\n        },\n        PageUp: () => {\n          return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.up, true);\n        },\n        PageDown: () => {\n          return findNextPageItemId(currentTarget, store, store == null ? void 0 : store.down);\n        }\n      };\n      const action = keyMap[event.key];\n      if (action) {\n        if (isTextbox(currentTarget)) {\n          const selection = getTextboxSelection(currentTarget);\n          const isLeft = isHorizontal && event.key === \"ArrowLeft\";\n          const isRight = isHorizontal && event.key === \"ArrowRight\";\n          const isUp = isVertical && event.key === \"ArrowUp\";\n          const isDown = isVertical && event.key === \"ArrowDown\";\n          if (isRight || isDown) {\n            const { length: valueLength } = getTextboxValue(currentTarget);\n            if (selection.end !== valueLength) return;\n          } else if ((isLeft || isUp) && selection.start !== 0) return;\n        }\n        const nextId = action();\n        if (preventScrollOnKeyDownProp(event) || nextId !== void 0) {\n          if (!moveOnKeyPressProp(event)) return;\n          event.preventDefault();\n          store.move(nextId);\n        }\n      }\n    });\n    const providerValue = useMemo(\n      () => ({ id, baseElement }),\n      [id, baseElement]\n    );\n    props = useWrapElement(\n      props,\n      (element) => /* @__PURE__ */ jsx(CompositeItemContext.Provider, { value: providerValue, children: element }),\n      [providerValue]\n    );\n    props = __spreadProps(__spreadValues({\n      id,\n      \"data-active-item\": isActiveItem || void 0\n    }, props), {\n      ref: useMergeRefs(ref, props.ref),\n      tabIndex: isTabbable ? props.tabIndex : -1,\n      onFocus,\n      onBlurCapture,\n      onKeyDown\n    });\n    props = useCommand(props);\n    props = useCollectionItem(__spreadProps(__spreadValues({\n      store\n    }, props), {\n      getItem,\n      shouldRegisterItem: id ? props.shouldRegisterItem : false\n    }));\n    return removeUndefinedValues(__spreadProps(__spreadValues({}, props), {\n      \"aria-setsize\": ariaSetSize,\n      \"aria-posinset\": ariaPosInSet\n    }));\n  }\n);\nvar CompositeItem = memo(\n  forwardRef(function CompositeItem2(props) {\n    const htmlProps = useCompositeItem(props);\n    return createElement(TagName, htmlProps);\n  })\n);\n\nexport {\n  useCompositeItem,\n  CompositeItem\n};\n", "\"use client\";\n\n// src/utils/array.ts\nfunction toArray(arg) {\n  if (Array.isArray(arg)) {\n    return arg;\n  }\n  return typeof arg !== \"undefined\" ? [arg] : [];\n}\nfunction addItemToArray(array, item, index = -1) {\n  if (!(index in array)) {\n    return [...array, item];\n  }\n  return [...array.slice(0, index), item, ...array.slice(index)];\n}\nfunction flatten2DArray(array) {\n  const flattened = [];\n  for (const row of array) {\n    flattened.push(...row);\n  }\n  return flattened;\n}\nfunction reverseArray(array) {\n  return array.slice().reverse();\n}\n\nexport {\n  toArray,\n  addItemToArray,\n  flatten2DArray,\n  reverseArray\n};\n", "\"use client\";\nimport {\n  findFirstEnabledItem,\n  getEnabledItem,\n  groupItemsByRows,\n  isItem,\n  silentlyFocused\n} from \"./5VQZOHHZ.js\";\nimport {\n  CompositeContextProvider,\n  useCompositeProviderContext\n} from \"./APTFW6PT.js\";\nimport {\n  useFocusable\n} from \"./OE2EFRVA.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useBooleanEvent,\n  useEvent,\n  useMergeRefs,\n  useSafeLayoutEffect,\n  useTransactionState,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite.tsx\nimport { flatten2DArray, reverseArray } from \"@ariakit/core/utils/array\";\nimport { getActiveElement, isTextField } from \"@ariakit/core/utils/dom\";\nimport {\n  fireBlurEvent,\n  fireKeyboardEvent,\n  isSelfTarget\n} from \"@ariakit/core/utils/events\";\nimport { focusIntoView, hasFocus } from \"@ariakit/core/utils/focus\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isGrid(items) {\n  return items.some((item) => !!item.rowId);\n}\nfunction isPrintableKey(event) {\n  const target = event.target;\n  if (target && !isTextField(target)) return false;\n  return event.key.length === 1 && !event.ctrlKey && !event.metaKey;\n}\nfunction isModifierKey(event) {\n  return event.key === \"Shift\" || event.key === \"Control\" || event.key === \"Alt\" || event.key === \"Meta\";\n}\nfunction useKeyboardEventProxy(store, onKeyboardEvent, previousElementRef) {\n  return useEvent((event) => {\n    var _a;\n    onKeyboardEvent == null ? void 0 : onKeyboardEvent(event);\n    if (event.defaultPrevented) return;\n    if (event.isPropagationStopped()) return;\n    if (!isSelfTarget(event)) return;\n    if (isModifierKey(event)) return;\n    if (isPrintableKey(event)) return;\n    const state = store.getState();\n    const activeElement = (_a = getEnabledItem(store, state.activeId)) == null ? void 0 : _a.element;\n    if (!activeElement) return;\n    const _b = event, { view } = _b, eventInit = __objRest(_b, [\"view\"]);\n    const previousElement = previousElementRef == null ? void 0 : previousElementRef.current;\n    if (activeElement !== previousElement) {\n      activeElement.focus();\n    }\n    if (!fireKeyboardEvent(activeElement, event.type, eventInit)) {\n      event.preventDefault();\n    }\n    if (event.currentTarget.contains(activeElement)) {\n      event.stopPropagation();\n    }\n  });\n}\nfunction findFirstEnabledItemInTheLastRow(items) {\n  return findFirstEnabledItem(\n    flatten2DArray(reverseArray(groupItemsByRows(items)))\n  );\n}\nfunction useScheduleFocus(store) {\n  const [scheduled, setScheduled] = useState(false);\n  const schedule = useCallback(() => setScheduled(true), []);\n  const activeItem = store.useState(\n    (state) => getEnabledItem(store, state.activeId)\n  );\n  useEffect(() => {\n    const activeElement = activeItem == null ? void 0 : activeItem.element;\n    if (!scheduled) return;\n    if (!activeElement) return;\n    setScheduled(false);\n    activeElement.focus({ preventScroll: true });\n  }, [activeItem, scheduled]);\n  return schedule;\n}\nvar useComposite = createHook(\n  function useComposite2(_a) {\n    var _b = _a, {\n      store,\n      composite = true,\n      focusOnMove = composite,\n      moveOnKeyPress = true\n    } = _b, props = __objRest(_b, [\n      \"store\",\n      \"composite\",\n      \"focusOnMove\",\n      \"moveOnKeyPress\"\n    ]);\n    const context = useCompositeProviderContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"Composite must receive a `store` prop or be wrapped in a CompositeProvider component.\"\n    );\n    const ref = useRef(null);\n    const previousElementRef = useRef(null);\n    const scheduleFocus = useScheduleFocus(store);\n    const moves = store.useState(\"moves\");\n    const [, setBaseElement] = useTransactionState(\n      composite ? store.setBaseElement : null\n    );\n    useEffect(() => {\n      var _a2;\n      if (!store) return;\n      if (!moves) return;\n      if (!composite) return;\n      if (!focusOnMove) return;\n      const { activeId: activeId2 } = store.getState();\n      const itemElement = (_a2 = getEnabledItem(store, activeId2)) == null ? void 0 : _a2.element;\n      if (!itemElement) return;\n      focusIntoView(itemElement);\n    }, [store, moves, composite, focusOnMove]);\n    useSafeLayoutEffect(() => {\n      if (!store) return;\n      if (!moves) return;\n      if (!composite) return;\n      const { baseElement, activeId: activeId2 } = store.getState();\n      const isSelfAcive = activeId2 === null;\n      if (!isSelfAcive) return;\n      if (!baseElement) return;\n      const previousElement = previousElementRef.current;\n      previousElementRef.current = null;\n      if (previousElement) {\n        fireBlurEvent(previousElement, { relatedTarget: baseElement });\n      }\n      if (!hasFocus(baseElement)) {\n        baseElement.focus();\n      }\n    }, [store, moves, composite]);\n    const activeId = store.useState(\"activeId\");\n    const virtualFocus = store.useState(\"virtualFocus\");\n    useSafeLayoutEffect(() => {\n      var _a2;\n      if (!store) return;\n      if (!composite) return;\n      if (!virtualFocus) return;\n      const previousElement = previousElementRef.current;\n      previousElementRef.current = null;\n      if (!previousElement) return;\n      const activeElement = (_a2 = getEnabledItem(store, activeId)) == null ? void 0 : _a2.element;\n      const relatedTarget = activeElement || getActiveElement(previousElement);\n      if (relatedTarget === previousElement) return;\n      fireBlurEvent(previousElement, { relatedTarget });\n    }, [store, activeId, virtualFocus, composite]);\n    const onKeyDownCapture = useKeyboardEventProxy(\n      store,\n      props.onKeyDownCapture,\n      previousElementRef\n    );\n    const onKeyUpCapture = useKeyboardEventProxy(\n      store,\n      props.onKeyUpCapture,\n      previousElementRef\n    );\n    const onFocusCaptureProp = props.onFocusCapture;\n    const onFocusCapture = useEvent((event) => {\n      onFocusCaptureProp == null ? void 0 : onFocusCaptureProp(event);\n      if (event.defaultPrevented) return;\n      if (!store) return;\n      const { virtualFocus: virtualFocus2 } = store.getState();\n      if (!virtualFocus2) return;\n      const previousActiveElement = event.relatedTarget;\n      const isSilentlyFocused = silentlyFocused(event.currentTarget);\n      if (isSelfTarget(event) && isSilentlyFocused) {\n        event.stopPropagation();\n        previousElementRef.current = previousActiveElement;\n      }\n    });\n    const onFocusProp = props.onFocus;\n    const onFocus = useEvent((event) => {\n      onFocusProp == null ? void 0 : onFocusProp(event);\n      if (event.defaultPrevented) return;\n      if (!composite) return;\n      if (!store) return;\n      const { relatedTarget } = event;\n      const { virtualFocus: virtualFocus2 } = store.getState();\n      if (virtualFocus2) {\n        if (isSelfTarget(event) && !isItem(store, relatedTarget)) {\n          queueMicrotask(scheduleFocus);\n        }\n      } else if (isSelfTarget(event)) {\n        store.setActiveId(null);\n      }\n    });\n    const onBlurCaptureProp = props.onBlurCapture;\n    const onBlurCapture = useEvent((event) => {\n      var _a2;\n      onBlurCaptureProp == null ? void 0 : onBlurCaptureProp(event);\n      if (event.defaultPrevented) return;\n      if (!store) return;\n      const { virtualFocus: virtualFocus2, activeId: activeId2 } = store.getState();\n      if (!virtualFocus2) return;\n      const activeElement = (_a2 = getEnabledItem(store, activeId2)) == null ? void 0 : _a2.element;\n      const nextActiveElement = event.relatedTarget;\n      const nextActiveElementIsItem = isItem(store, nextActiveElement);\n      const previousElement = previousElementRef.current;\n      previousElementRef.current = null;\n      if (isSelfTarget(event) && nextActiveElementIsItem) {\n        if (nextActiveElement === activeElement) {\n          if (previousElement && previousElement !== nextActiveElement) {\n            fireBlurEvent(previousElement, event);\n          }\n        } else if (activeElement) {\n          fireBlurEvent(activeElement, event);\n        } else if (previousElement) {\n          fireBlurEvent(previousElement, event);\n        }\n        event.stopPropagation();\n      } else {\n        const targetIsItem = isItem(store, event.target);\n        if (!targetIsItem && activeElement) {\n          fireBlurEvent(activeElement, event);\n        }\n      }\n    });\n    const onKeyDownProp = props.onKeyDown;\n    const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n    const onKeyDown = useEvent((event) => {\n      var _a2;\n      onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n      if (event.nativeEvent.isComposing) return;\n      if (event.defaultPrevented) return;\n      if (!store) return;\n      if (!isSelfTarget(event)) return;\n      const { orientation, renderedItems, activeId: activeId2 } = store.getState();\n      const activeItem = getEnabledItem(store, activeId2);\n      if ((_a2 = activeItem == null ? void 0 : activeItem.element) == null ? void 0 : _a2.isConnected) return;\n      const isVertical = orientation !== \"horizontal\";\n      const isHorizontal = orientation !== \"vertical\";\n      const grid = isGrid(renderedItems);\n      const isHorizontalKey = event.key === \"ArrowLeft\" || event.key === \"ArrowRight\" || event.key === \"Home\" || event.key === \"End\";\n      if (isHorizontalKey && isTextField(event.currentTarget)) return;\n      const up = () => {\n        if (grid) {\n          const item = findFirstEnabledItemInTheLastRow(renderedItems);\n          return item == null ? void 0 : item.id;\n        }\n        return store == null ? void 0 : store.last();\n      };\n      const keyMap = {\n        ArrowUp: (grid || isVertical) && up,\n        ArrowRight: (grid || isHorizontal) && store.first,\n        ArrowDown: (grid || isVertical) && store.first,\n        ArrowLeft: (grid || isHorizontal) && store.last,\n        Home: store.first,\n        End: store.last,\n        PageUp: store.first,\n        PageDown: store.last\n      };\n      const action = keyMap[event.key];\n      if (action) {\n        const id = action();\n        if (id !== void 0) {\n          if (!moveOnKeyPressProp(event)) return;\n          event.preventDefault();\n          store.move(id);\n        }\n      }\n    });\n    props = useWrapElement(\n      props,\n      (element) => /* @__PURE__ */ jsx(CompositeContextProvider, { value: store, children: element }),\n      [store]\n    );\n    const activeDescendant = store.useState((state) => {\n      var _a2;\n      if (!store) return;\n      if (!composite) return;\n      if (!state.virtualFocus) return;\n      return (_a2 = getEnabledItem(store, state.activeId)) == null ? void 0 : _a2.id;\n    });\n    props = __spreadProps(__spreadValues({\n      \"aria-activedescendant\": activeDescendant\n    }, props), {\n      ref: useMergeRefs(ref, setBaseElement, props.ref),\n      onKeyDownCapture,\n      onKeyUpCapture,\n      onFocusCapture,\n      onFocus,\n      onBlurCapture,\n      onKeyDown\n    });\n    const focusable = store.useState(\n      (state) => composite && (state.virtualFocus || state.activeId === null)\n    );\n    props = useFocusable(__spreadValues({ focusable }, props));\n    return props;\n  }\n);\nvar Composite = forwardRef(function Composite2(props) {\n  const htmlProps = useComposite(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useComposite,\n  Composite\n};\n", "\"use client\";\nimport {\n  createStoreContext\n} from \"./VOQWLFSQ.js\";\n\n// src/disclosure/disclosure-context.tsx\nvar ctx = createStoreContext();\nvar useDisclosureContext = ctx.useContext;\nvar useDisclosureScopedContext = ctx.useScopedContext;\nvar useDisclosureProviderContext = ctx.useProviderContext;\nvar DisclosureContextProvider = ctx.ContextProvider;\nvar DisclosureScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n  useDisclosureContext,\n  useDisclosureScopedContext,\n  useDisclosureProviderContext,\n  DisclosureContextProvider,\n  DisclosureScopedContextProvider\n};\n", "\"use client\";\nimport {\n  DisclosureContextProvider,\n  DisclosureScopedContextProvider\n} from \"./ABN76PSX.js\";\nimport {\n  createStoreContext\n} from \"./VOQWLFSQ.js\";\n\n// src/dialog/dialog-context.tsx\nimport { createContext } from \"react\";\nvar ctx = createStoreContext(\n  [DisclosureContextProvider],\n  [DisclosureScopedContextProvider]\n);\nvar useDialogContext = ctx.useContext;\nvar useDialogScopedContext = ctx.useScopedContext;\nvar useDialogProviderContext = ctx.useProviderContext;\nvar DialogContextProvider = ctx.ContextProvider;\nvar DialogScopedContextProvider = ctx.ScopedContextProvider;\nvar DialogHeadingContext = createContext(void 0);\nvar DialogDescriptionContext = createContext(void 0);\n\nexport {\n  useDialogContext,\n  useDialogScopedContext,\n  useDialogProviderContext,\n  DialogContextProvider,\n  DialogScopedContextProvider,\n  DialogHeadingContext,\n  DialogDescriptionContext\n};\n", "\"use client\";\nimport {\n  DialogScopedContextProvider\n} from \"./T2AZQXQU.js\";\nimport {\n  useDisclosureProviderContext\n} from \"./ABN76PSX.js\";\nimport {\n  useStoreState\n} from \"./RTNCFSKZ.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useId,\n  useMergeRefs,\n  useSafeLayoutEffect,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/disclosure/disclosure-content.tsx\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useMemo, useRef, useState } from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction afterTimeout(timeoutMs, cb) {\n  const timeoutId = setTimeout(cb, timeoutMs);\n  return () => clearTimeout(timeoutId);\n}\nfunction afterPaint(cb) {\n  let raf = requestAnimationFrame(() => {\n    raf = requestAnimationFrame(cb);\n  });\n  return () => cancelAnimationFrame(raf);\n}\nfunction parseCSSTime(...times) {\n  return times.join(\", \").split(\", \").reduce((longestTime, currentTimeString) => {\n    const multiplier = currentTimeString.endsWith(\"ms\") ? 1 : 1e3;\n    const currentTime = Number.parseFloat(currentTimeString || \"0s\") * multiplier;\n    if (currentTime > longestTime) return currentTime;\n    return longestTime;\n  }, 0);\n}\nfunction isHidden(mounted, hidden, alwaysVisible) {\n  return !alwaysVisible && hidden !== false && (!mounted || !!hidden);\n}\nvar useDisclosureContent = createHook(function useDisclosureContent2(_a) {\n  var _b = _a, { store, alwaysVisible } = _b, props = __objRest(_b, [\"store\", \"alwaysVisible\"]);\n  const context = useDisclosureProviderContext();\n  store = store || context;\n  invariant(\n    store,\n    process.env.NODE_ENV !== \"production\" && \"DisclosureContent must receive a `store` prop or be wrapped in a DisclosureProvider component.\"\n  );\n  const ref = useRef(null);\n  const id = useId(props.id);\n  const [transition, setTransition] = useState(null);\n  const open = store.useState(\"open\");\n  const mounted = store.useState(\"mounted\");\n  const animated = store.useState(\"animated\");\n  const contentElement = store.useState(\"contentElement\");\n  const otherElement = useStoreState(store.disclosure, \"contentElement\");\n  useSafeLayoutEffect(() => {\n    if (!ref.current) return;\n    store == null ? void 0 : store.setContentElement(ref.current);\n  }, [store]);\n  useSafeLayoutEffect(() => {\n    let previousAnimated;\n    store == null ? void 0 : store.setState(\"animated\", (animated2) => {\n      previousAnimated = animated2;\n      return true;\n    });\n    return () => {\n      if (previousAnimated === void 0) return;\n      store == null ? void 0 : store.setState(\"animated\", previousAnimated);\n    };\n  }, [store]);\n  useSafeLayoutEffect(() => {\n    if (!animated) return;\n    if (!(contentElement == null ? void 0 : contentElement.isConnected)) {\n      setTransition(null);\n      return;\n    }\n    return afterPaint(() => {\n      setTransition(open ? \"enter\" : mounted ? \"leave\" : null);\n    });\n  }, [animated, contentElement, open, mounted]);\n  useSafeLayoutEffect(() => {\n    if (!store) return;\n    if (!animated) return;\n    if (!transition) return;\n    if (!contentElement) return;\n    const stopAnimation = () => store == null ? void 0 : store.setState(\"animating\", false);\n    const stopAnimationSync = () => flushSync(stopAnimation);\n    if (transition === \"leave\" && open) return;\n    if (transition === \"enter\" && !open) return;\n    if (typeof animated === \"number\") {\n      const timeout2 = animated;\n      return afterTimeout(timeout2, stopAnimationSync);\n    }\n    const {\n      transitionDuration,\n      animationDuration,\n      transitionDelay,\n      animationDelay\n    } = getComputedStyle(contentElement);\n    const {\n      transitionDuration: transitionDuration2 = \"0\",\n      animationDuration: animationDuration2 = \"0\",\n      transitionDelay: transitionDelay2 = \"0\",\n      animationDelay: animationDelay2 = \"0\"\n    } = otherElement ? getComputedStyle(otherElement) : {};\n    const delay = parseCSSTime(\n      transitionDelay,\n      animationDelay,\n      transitionDelay2,\n      animationDelay2\n    );\n    const duration = parseCSSTime(\n      transitionDuration,\n      animationDuration,\n      transitionDuration2,\n      animationDuration2\n    );\n    const timeout = delay + duration;\n    if (!timeout) {\n      if (transition === \"enter\") {\n        store.setState(\"animated\", false);\n      }\n      stopAnimation();\n      return;\n    }\n    const frameRate = 1e3 / 60;\n    const maxTimeout = Math.max(timeout - frameRate, 0);\n    return afterTimeout(maxTimeout, stopAnimationSync);\n  }, [store, animated, contentElement, otherElement, open, transition]);\n  props = useWrapElement(\n    props,\n    (element) => /* @__PURE__ */ jsx(DialogScopedContextProvider, { value: store, children: element }),\n    [store]\n  );\n  const hidden = isHidden(mounted, props.hidden, alwaysVisible);\n  const styleProp = props.style;\n  const style = useMemo(() => {\n    if (hidden) {\n      return __spreadProps(__spreadValues({}, styleProp), { display: \"none\" });\n    }\n    return styleProp;\n  }, [hidden, styleProp]);\n  props = __spreadProps(__spreadValues({\n    id,\n    \"data-open\": open || void 0,\n    \"data-enter\": transition === \"enter\" || void 0,\n    \"data-leave\": transition === \"leave\" || void 0,\n    hidden\n  }, props), {\n    ref: useMergeRefs(id ? store.setContentElement : null, ref, props.ref),\n    style\n  });\n  return removeUndefinedValues(props);\n});\nvar DisclosureContentImpl = forwardRef(function DisclosureContentImpl2(props) {\n  const htmlProps = useDisclosureContent(props);\n  return createElement(TagName, htmlProps);\n});\nvar DisclosureContent = forwardRef(function DisclosureContent2(_a) {\n  var _b = _a, {\n    unmountOnHide\n  } = _b, props = __objRest(_b, [\n    \"unmountOnHide\"\n  ]);\n  const context = useDisclosureProviderContext();\n  const store = props.store || context;\n  const mounted = useStoreState(\n    store,\n    (state) => !unmountOnHide || (state == null ? void 0 : state.mounted)\n  );\n  if (mounted === false) return null;\n  return /* @__PURE__ */ jsx(DisclosureContentImpl, __spreadValues({}, props));\n});\n\nexport {\n  isHidden,\n  useDisclosureContent,\n  DisclosureContent\n};\n", "\"use client\";\nimport {\n  createStore,\n  mergeStore,\n  omit,\n  setup,\n  subscribe,\n  sync,\n  throwOnConflictingProps\n} from \"./BCALMBPZ.js\";\nimport {\n  defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/disclosure/disclosure-store.ts\nfunction createDisclosureStore(props = {}) {\n  const store = mergeStore(\n    props.store,\n    omit(props.disclosure, [\"contentElement\", \"disclosureElement\"])\n  );\n  throwOnConflictingProps(props, store);\n  const syncState = store == null ? void 0 : store.getState();\n  const open = defaultValue(\n    props.open,\n    syncState == null ? void 0 : syncState.open,\n    props.defaultOpen,\n    false\n  );\n  const animated = defaultValue(props.animated, syncState == null ? void 0 : syncState.animated, false);\n  const initialState = {\n    open,\n    animated,\n    animating: !!animated && open,\n    mounted: open,\n    contentElement: defaultValue(syncState == null ? void 0 : syncState.contentElement, null),\n    disclosureElement: defaultValue(syncState == null ? void 0 : syncState.disclosureElement, null)\n  };\n  const disclosure = createStore(initialState, store);\n  setup(\n    disclosure,\n    () => sync(disclosure, [\"animated\", \"animating\"], (state) => {\n      if (state.animated) return;\n      disclosure.setState(\"animating\", false);\n    })\n  );\n  setup(\n    disclosure,\n    () => subscribe(disclosure, [\"open\"], () => {\n      if (!disclosure.getState().animated) return;\n      disclosure.setState(\"animating\", true);\n    })\n  );\n  setup(\n    disclosure,\n    () => sync(disclosure, [\"open\", \"animating\"], (state) => {\n      disclosure.setState(\"mounted\", state.open || state.animating);\n    })\n  );\n  return __spreadProps(__spreadValues({}, disclosure), {\n    disclosure: props.disclosure,\n    setOpen: (value) => disclosure.setState(\"open\", value),\n    show: () => disclosure.setState(\"open\", true),\n    hide: () => disclosure.setState(\"open\", false),\n    toggle: () => disclosure.setState(\"open\", (open2) => !open2),\n    stopAnimation: () => disclosure.setState(\"animating\", false),\n    setContentElement: (value) => disclosure.setState(\"contentElement\", value),\n    setDisclosureElement: (value) => disclosure.setState(\"disclosureElement\", value)\n  });\n}\n\nexport {\n  createDisclosureStore\n};\n", "\"use client\";\nimport {\n  useStore,\n  useStoreProps\n} from \"./RTNCFSKZ.js\";\nimport {\n  useUpdateEffect\n} from \"./5GGHRIN3.js\";\n\n// src/disclosure/disclosure-store.ts\nimport * as Core from \"@ariakit/core/disclosure/disclosure-store\";\nfunction useDisclosureStoreProps(store, update, props) {\n  useUpdateEffect(update, [props.store, props.disclosure]);\n  useStoreProps(store, props, \"open\", \"setOpen\");\n  useStoreProps(store, props, \"mounted\", \"setMounted\");\n  useStoreProps(store, props, \"animated\");\n  return Object.assign(store, { disclosure: props.disclosure });\n}\nfunction useDisclosureStore(props = {}) {\n  const [store, update] = useStore(Core.createDisclosureStore, props);\n  return useDisclosureStoreProps(store, update, props);\n}\n\nexport {\n  useDisclosureStoreProps,\n  useDisclosureStore\n};\n", "\"use client\";\nimport {\n  DialogContextProvider,\n  DialogScopedContextProvider\n} from \"./T2AZQXQU.js\";\nimport {\n  createStoreContext\n} from \"./VOQWLFSQ.js\";\n\n// src/popover/popover-context.tsx\nvar ctx = createStoreContext(\n  [DialogContextProvider],\n  [DialogScopedContextProvider]\n);\nvar usePopoverContext = ctx.useContext;\nvar usePopoverScopedContext = ctx.useScopedContext;\nvar usePopoverProviderContext = ctx.useProviderContext;\nvar PopoverContextProvider = ctx.ContextProvider;\nvar PopoverScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n  usePopoverContext,\n  usePopoverScopedContext,\n  usePopoverProviderContext,\n  PopoverContextProvider,\n  PopoverScopedContextProvider\n};\n", "\"use client\";\nimport {\n  getDocument,\n  sortBasedOnDOMPosition\n} from \"./DTR5TSDJ.js\";\nimport {\n  batch,\n  createStore,\n  init,\n  setup,\n  throwOnConflictingProps\n} from \"./BCALMBPZ.js\";\nimport {\n  chain,\n  defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/collection/collection-store.ts\nfunction getCommonParent(items) {\n  var _a;\n  const firstItem = items.find((item) => !!item.element);\n  const lastItem = [...items].reverse().find((item) => !!item.element);\n  let parentElement = (_a = firstItem == null ? void 0 : firstItem.element) == null ? void 0 : _a.parentElement;\n  while (parentElement && (lastItem == null ? void 0 : lastItem.element)) {\n    const parent = parentElement;\n    if (lastItem && parent.contains(lastItem.element)) {\n      return parentElement;\n    }\n    parentElement = parentElement.parentElement;\n  }\n  return getDocument(parentElement).body;\n}\nfunction getPrivateStore(store) {\n  return store == null ? void 0 : store.__unstablePrivateStore;\n}\nfunction createCollectionStore(props = {}) {\n  var _a;\n  throwOnConflictingProps(props, props.store);\n  const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n  const items = defaultValue(\n    props.items,\n    syncState == null ? void 0 : syncState.items,\n    props.defaultItems,\n    []\n  );\n  const itemsMap = new Map(items.map((item) => [item.id, item]));\n  const initialState = {\n    items,\n    renderedItems: defaultValue(syncState == null ? void 0 : syncState.renderedItems, [])\n  };\n  const syncPrivateStore = getPrivateStore(props.store);\n  const privateStore = createStore(\n    { items, renderedItems: initialState.renderedItems },\n    syncPrivateStore\n  );\n  const collection = createStore(initialState, props.store);\n  const sortItems = (renderedItems) => {\n    const sortedItems = sortBasedOnDOMPosition(renderedItems, (i) => i.element);\n    privateStore.setState(\"renderedItems\", sortedItems);\n    collection.setState(\"renderedItems\", sortedItems);\n  };\n  setup(collection, () => init(privateStore));\n  setup(privateStore, () => {\n    return batch(privateStore, [\"items\"], (state) => {\n      collection.setState(\"items\", state.items);\n    });\n  });\n  setup(privateStore, () => {\n    return batch(privateStore, [\"renderedItems\"], (state) => {\n      let firstRun = true;\n      let raf = requestAnimationFrame(() => {\n        const { renderedItems } = collection.getState();\n        if (state.renderedItems === renderedItems) return;\n        sortItems(state.renderedItems);\n      });\n      if (typeof IntersectionObserver !== \"function\") {\n        return () => cancelAnimationFrame(raf);\n      }\n      const ioCallback = () => {\n        if (firstRun) {\n          firstRun = false;\n          return;\n        }\n        cancelAnimationFrame(raf);\n        raf = requestAnimationFrame(() => sortItems(state.renderedItems));\n      };\n      const root = getCommonParent(state.renderedItems);\n      const observer = new IntersectionObserver(ioCallback, { root });\n      for (const item of state.renderedItems) {\n        if (!item.element) continue;\n        observer.observe(item.element);\n      }\n      return () => {\n        cancelAnimationFrame(raf);\n        observer.disconnect();\n      };\n    });\n  });\n  const mergeItem = (item, setItems, canDeleteFromMap = false) => {\n    let prevItem;\n    setItems((items2) => {\n      const index = items2.findIndex(({ id }) => id === item.id);\n      const nextItems = items2.slice();\n      if (index !== -1) {\n        prevItem = items2[index];\n        const nextItem = __spreadValues(__spreadValues({}, prevItem), item);\n        nextItems[index] = nextItem;\n        itemsMap.set(item.id, nextItem);\n      } else {\n        nextItems.push(item);\n        itemsMap.set(item.id, item);\n      }\n      return nextItems;\n    });\n    const unmergeItem = () => {\n      setItems((items2) => {\n        if (!prevItem) {\n          if (canDeleteFromMap) {\n            itemsMap.delete(item.id);\n          }\n          return items2.filter(({ id }) => id !== item.id);\n        }\n        const index = items2.findIndex(({ id }) => id === item.id);\n        if (index === -1) return items2;\n        const nextItems = items2.slice();\n        nextItems[index] = prevItem;\n        itemsMap.set(item.id, prevItem);\n        return nextItems;\n      });\n    };\n    return unmergeItem;\n  };\n  const registerItem = (item) => mergeItem(\n    item,\n    (getItems) => privateStore.setState(\"items\", getItems),\n    true\n  );\n  return __spreadProps(__spreadValues({}, collection), {\n    registerItem,\n    renderItem: (item) => chain(\n      registerItem(item),\n      mergeItem(\n        item,\n        (getItems) => privateStore.setState(\"renderedItems\", getItems)\n      )\n    ),\n    item: (id) => {\n      if (!id) return null;\n      let item = itemsMap.get(id);\n      if (!item) {\n        const { items: items2 } = privateStore.getState();\n        item = items2.find((item2) => item2.id === id);\n        if (item) {\n          itemsMap.set(id, item);\n        }\n      }\n      return item || null;\n    },\n    // @ts-expect-error Internal\n    __unstablePrivateStore: privateStore\n  });\n}\n\nexport {\n  createCollectionStore\n};\n", "\"use client\";\nimport {\n  useStore,\n  useStoreProps\n} from \"./RTNCFSKZ.js\";\nimport {\n  useUpdateEffect\n} from \"./5GGHRIN3.js\";\n\n// src/collection/collection-store.ts\nimport * as Core from \"@ariakit/core/collection/collection-store\";\nfunction useCollectionStoreProps(store, update, props) {\n  useUpdateEffect(update, [props.store]);\n  useStoreProps(store, props, \"items\", \"setItems\");\n  return store;\n}\nfunction useCollectionStore(props = {}) {\n  const [store, update] = useStore(Core.createCollectionStore, props);\n  return useCollectionStoreProps(store, update, props);\n}\n\nexport {\n  useCollectionStoreProps,\n  useCollectionStore\n};\n", "\"use client\";\nimport {\n  flatten2DArray,\n  reverseArray\n} from \"./7PRQYBBV.js\";\nimport {\n  createCollectionStore\n} from \"./EO4GVUA4.js\";\nimport {\n  createStore,\n  setup,\n  sync\n} from \"./BCALMBPZ.js\";\nimport {\n  defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-store.ts\nvar NULL_ITEM = { id: null };\nfunction findFirstEnabledItem(items, excludeId) {\n  return items.find((item) => {\n    if (excludeId) {\n      return !item.disabled && item.id !== excludeId;\n    }\n    return !item.disabled;\n  });\n}\nfunction getEnabledItems(items, excludeId) {\n  return items.filter((item) => {\n    if (excludeId) {\n      return !item.disabled && item.id !== excludeId;\n    }\n    return !item.disabled;\n  });\n}\nfunction getItemsInRow(items, rowId) {\n  return items.filter((item) => item.rowId === rowId);\n}\nfunction flipItems(items, activeId, shouldInsertNullItem = false) {\n  const index = items.findIndex((item) => item.id === activeId);\n  return [\n    ...items.slice(index + 1),\n    ...shouldInsertNullItem ? [NULL_ITEM] : [],\n    ...items.slice(0, index)\n  ];\n}\nfunction groupItemsByRows(items) {\n  const rows = [];\n  for (const item of items) {\n    const row = rows.find((currentRow) => {\n      var _a;\n      return ((_a = currentRow[0]) == null ? void 0 : _a.rowId) === item.rowId;\n    });\n    if (row) {\n      row.push(item);\n    } else {\n      rows.push([item]);\n    }\n  }\n  return rows;\n}\nfunction getMaxRowLength(array) {\n  let maxLength = 0;\n  for (const { length } of array) {\n    if (length > maxLength) {\n      maxLength = length;\n    }\n  }\n  return maxLength;\n}\nfunction createEmptyItem(rowId) {\n  return {\n    id: \"__EMPTY_ITEM__\",\n    disabled: true,\n    rowId\n  };\n}\nfunction normalizeRows(rows, activeId, focusShift) {\n  const maxLength = getMaxRowLength(rows);\n  for (const row of rows) {\n    for (let i = 0; i < maxLength; i += 1) {\n      const item = row[i];\n      if (!item || focusShift && item.disabled) {\n        const isFirst = i === 0;\n        const previousItem = isFirst && focusShift ? findFirstEnabledItem(row) : row[i - 1];\n        row[i] = previousItem && activeId !== previousItem.id && focusShift ? previousItem : createEmptyItem(previousItem == null ? void 0 : previousItem.rowId);\n      }\n    }\n  }\n  return rows;\n}\nfunction verticalizeItems(items) {\n  const rows = groupItemsByRows(items);\n  const maxLength = getMaxRowLength(rows);\n  const verticalized = [];\n  for (let i = 0; i < maxLength; i += 1) {\n    for (const row of rows) {\n      const item = row[i];\n      if (item) {\n        verticalized.push(__spreadProps(__spreadValues({}, item), {\n          // If there's no rowId, it means that it's not a grid composite, but\n          // a single row instead. So, instead of verticalizing it, that is,\n          // assigning a different rowId based on the column index, we keep it\n          // undefined so they will be part of the same row. This is useful\n          // when using up/down on one-dimensional composites.\n          rowId: item.rowId ? `${i}` : void 0\n        }));\n      }\n    }\n  }\n  return verticalized;\n}\nfunction createCompositeStore(props = {}) {\n  var _a;\n  const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n  const collection = createCollectionStore(props);\n  const activeId = defaultValue(\n    props.activeId,\n    syncState == null ? void 0 : syncState.activeId,\n    props.defaultActiveId\n  );\n  const initialState = __spreadProps(__spreadValues({}, collection.getState()), {\n    id: defaultValue(\n      props.id,\n      syncState == null ? void 0 : syncState.id,\n      `id-${Math.random().toString(36).slice(2, 8)}`\n    ),\n    activeId,\n    baseElement: defaultValue(syncState == null ? void 0 : syncState.baseElement, null),\n    includesBaseElement: defaultValue(\n      props.includesBaseElement,\n      syncState == null ? void 0 : syncState.includesBaseElement,\n      activeId === null\n    ),\n    moves: defaultValue(syncState == null ? void 0 : syncState.moves, 0),\n    orientation: defaultValue(\n      props.orientation,\n      syncState == null ? void 0 : syncState.orientation,\n      \"both\"\n    ),\n    rtl: defaultValue(props.rtl, syncState == null ? void 0 : syncState.rtl, false),\n    virtualFocus: defaultValue(\n      props.virtualFocus,\n      syncState == null ? void 0 : syncState.virtualFocus,\n      false\n    ),\n    focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, false),\n    focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, false),\n    focusShift: defaultValue(props.focusShift, syncState == null ? void 0 : syncState.focusShift, false)\n  });\n  const composite = createStore(initialState, collection, props.store);\n  setup(\n    composite,\n    () => sync(composite, [\"renderedItems\", \"activeId\"], (state) => {\n      composite.setState(\"activeId\", (activeId2) => {\n        var _a2;\n        if (activeId2 !== void 0) return activeId2;\n        return (_a2 = findFirstEnabledItem(state.renderedItems)) == null ? void 0 : _a2.id;\n      });\n    })\n  );\n  const getNextId = (direction = \"next\", options = {}) => {\n    var _a2, _b;\n    const defaultState = composite.getState();\n    const {\n      skip = 0,\n      activeId: activeId2 = defaultState.activeId,\n      focusShift = defaultState.focusShift,\n      focusLoop = defaultState.focusLoop,\n      focusWrap = defaultState.focusWrap,\n      includesBaseElement = defaultState.includesBaseElement,\n      renderedItems = defaultState.renderedItems,\n      rtl = defaultState.rtl\n    } = options;\n    const isVerticalDirection = direction === \"up\" || direction === \"down\";\n    const isNextDirection = direction === \"next\" || direction === \"down\";\n    const canReverse = isNextDirection ? rtl && !isVerticalDirection : !rtl || isVerticalDirection;\n    const canShift = focusShift && !skip;\n    let items = !isVerticalDirection ? renderedItems : flatten2DArray(\n      normalizeRows(groupItemsByRows(renderedItems), activeId2, canShift)\n    );\n    items = canReverse ? reverseArray(items) : items;\n    items = isVerticalDirection ? verticalizeItems(items) : items;\n    if (activeId2 == null) {\n      return (_a2 = findFirstEnabledItem(items)) == null ? void 0 : _a2.id;\n    }\n    const activeItem = items.find((item) => item.id === activeId2);\n    if (!activeItem) {\n      return (_b = findFirstEnabledItem(items)) == null ? void 0 : _b.id;\n    }\n    const isGrid = items.some((item) => item.rowId);\n    const activeIndex = items.indexOf(activeItem);\n    const nextItems = items.slice(activeIndex + 1);\n    const nextItemsInRow = getItemsInRow(nextItems, activeItem.rowId);\n    if (skip) {\n      const nextEnabledItemsInRow = getEnabledItems(nextItemsInRow, activeId2);\n      const nextItem2 = nextEnabledItemsInRow.slice(skip)[0] || // If we can't find an item, just return the last one.\n      nextEnabledItemsInRow[nextEnabledItemsInRow.length - 1];\n      return nextItem2 == null ? void 0 : nextItem2.id;\n    }\n    const canLoop = focusLoop && (isVerticalDirection ? focusLoop !== \"horizontal\" : focusLoop !== \"vertical\");\n    const canWrap = isGrid && focusWrap && (isVerticalDirection ? focusWrap !== \"horizontal\" : focusWrap !== \"vertical\");\n    const hasNullItem = isNextDirection ? (!isGrid || isVerticalDirection) && canLoop && includesBaseElement : isVerticalDirection ? includesBaseElement : false;\n    if (canLoop) {\n      const loopItems = canWrap && !hasNullItem ? items : getItemsInRow(items, activeItem.rowId);\n      const sortedItems = flipItems(loopItems, activeId2, hasNullItem);\n      const nextItem2 = findFirstEnabledItem(sortedItems, activeId2);\n      return nextItem2 == null ? void 0 : nextItem2.id;\n    }\n    if (canWrap) {\n      const nextItem2 = findFirstEnabledItem(\n        // We can use nextItems, which contains all the next items, including\n        // items from other rows, to wrap between rows. However, if there is a\n        // null item (the composite container), we'll only use the next items in\n        // the row. So moving next from the last item will focus on the\n        // composite container. On grid composites, horizontal navigation never\n        // focuses on the composite container, only vertical.\n        hasNullItem ? nextItemsInRow : nextItems,\n        activeId2\n      );\n      const nextId = hasNullItem ? (nextItem2 == null ? void 0 : nextItem2.id) || null : nextItem2 == null ? void 0 : nextItem2.id;\n      return nextId;\n    }\n    const nextItem = findFirstEnabledItem(nextItemsInRow, activeId2);\n    if (!nextItem && hasNullItem) {\n      return null;\n    }\n    return nextItem == null ? void 0 : nextItem.id;\n  };\n  return __spreadProps(__spreadValues(__spreadValues({}, collection), composite), {\n    setBaseElement: (element) => composite.setState(\"baseElement\", element),\n    setActiveId: (id) => composite.setState(\"activeId\", id),\n    move: (id) => {\n      if (id === void 0) return;\n      composite.setState(\"activeId\", id);\n      composite.setState(\"moves\", (moves) => moves + 1);\n    },\n    first: () => {\n      var _a2;\n      return (_a2 = findFirstEnabledItem(composite.getState().renderedItems)) == null ? void 0 : _a2.id;\n    },\n    last: () => {\n      var _a2;\n      return (_a2 = findFirstEnabledItem(reverseArray(composite.getState().renderedItems))) == null ? void 0 : _a2.id;\n    },\n    next: (options) => {\n      if (options !== void 0 && typeof options === \"number\") {\n        options = { skip: options };\n      }\n      return getNextId(\"next\", options);\n    },\n    previous: (options) => {\n      if (options !== void 0 && typeof options === \"number\") {\n        options = { skip: options };\n      }\n      return getNextId(\"previous\", options);\n    },\n    down: (options) => {\n      if (options !== void 0 && typeof options === \"number\") {\n        options = { skip: options };\n      }\n      return getNextId(\"down\", options);\n    },\n    up: (options) => {\n      if (options !== void 0 && typeof options === \"number\") {\n        options = { skip: options };\n      }\n      return getNextId(\"up\", options);\n    }\n  });\n}\n\nexport {\n  createCompositeStore\n};\n", "\"use client\";\nimport {\n  useCollectionStoreProps\n} from \"./AMMIPFT4.js\";\nimport {\n  useStore,\n  useStoreProps\n} from \"./RTNCFSKZ.js\";\nimport {\n  useId\n} from \"./5GGHRIN3.js\";\nimport {\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-store.ts\nimport * as Core from \"@ariakit/core/composite/composite-store\";\nfunction useCompositeStoreOptions(props) {\n  const id = useId(props.id);\n  return __spreadValues({ id }, props);\n}\nfunction useCompositeStoreProps(store, update, props) {\n  store = useCollectionStoreProps(store, update, props);\n  useStoreProps(store, props, \"activeId\", \"setActiveId\");\n  useStoreProps(store, props, \"includesBaseElement\");\n  useStoreProps(store, props, \"virtualFocus\");\n  useStoreProps(store, props, \"orientation\");\n  useStoreProps(store, props, \"rtl\");\n  useStoreProps(store, props, \"focusLoop\");\n  useStoreProps(store, props, \"focusWrap\");\n  useStoreProps(store, props, \"focusShift\");\n  return store;\n}\nfunction useCompositeStore(props = {}) {\n  props = useCompositeStoreOptions(props);\n  const [store, update] = useStore(Core.createCompositeStore, props);\n  return useCompositeStoreProps(store, update, props);\n}\n\nexport {\n  useCompositeStoreOptions,\n  useCompositeStoreProps,\n  useCompositeStore\n};\n", "\"use client\";\nimport {\n  PopoverContextProvider,\n  PopoverScopedContextProvider\n} from \"./Y67KZUMI.js\";\nimport {\n  CompositeContextProvider,\n  CompositeScopedContextProvider\n} from \"./APTFW6PT.js\";\nimport {\n  createStoreContext\n} from \"./VOQWLFSQ.js\";\n\n// src/combobox/combobox-context.tsx\nimport { createContext } from \"react\";\nvar ComboboxListRoleContext = createContext(\n  void 0\n);\nvar ctx = createStoreContext(\n  [PopoverContextProvider, CompositeContextProvider],\n  [PopoverScopedContextProvider, CompositeScopedContextProvider]\n);\nvar useComboboxContext = ctx.useContext;\nvar useComboboxScopedContext = ctx.useScopedContext;\nvar useComboboxProviderContext = ctx.useProviderContext;\nvar ComboboxContextProvider = ctx.ContextProvider;\nvar ComboboxScopedContextProvider = ctx.ScopedContextProvider;\nvar ComboboxItemValueContext = createContext(\n  void 0\n);\nvar ComboboxItemCheckedContext = createContext(false);\n\nexport {\n  ComboboxListRoleContext,\n  useComboboxContext,\n  useComboboxScopedContext,\n  useComboboxProviderContext,\n  ComboboxContextProvider,\n  ComboboxScopedContextProvider,\n  ComboboxItemValueContext,\n  ComboboxItemCheckedContext\n};\n", "\"use client\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  __objRest,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/separator/separator.tsx\nvar TagName = \"hr\";\nvar useSeparator = createHook(\n  function useSeparator2(_a) {\n    var _b = _a, { orientation = \"horizontal\" } = _b, props = __objRest(_b, [\"orientation\"]);\n    props = __spreadValues({\n      role: \"separator\",\n      \"aria-orientation\": orientation\n    }, props);\n    return props;\n  }\n);\nvar Separator = forwardRef(function Separator2(props) {\n  const htmlProps = useSeparator(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useSeparator,\n  Separator\n};\n", "\"use client\";\nimport {\n  useSeparator\n} from \"./IZKKKUS7.js\";\nimport {\n  useCompositeContext\n} from \"./APTFW6PT.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-separator.tsx\nimport { invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"hr\";\nvar useCompositeSeparator = createHook(function useCompositeSeparator2(_a) {\n  var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n  const context = useCompositeContext();\n  store = store || context;\n  invariant(\n    store,\n    process.env.NODE_ENV !== \"production\" && \"CompositeSeparator must be wrapped in a Composite component.\"\n  );\n  const orientation = store.useState(\n    (state) => state.orientation === \"horizontal\" ? \"vertical\" : \"horizontal\"\n  );\n  props = useSeparator(__spreadProps(__spreadValues({}, props), { orientation }));\n  return props;\n});\nvar CompositeSeparator = forwardRef(function CompositeSeparator2(props) {\n  const htmlProps = useCompositeSeparator(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useCompositeSeparator,\n  CompositeSeparator\n};\n", "\"use client\";\nimport {\n  PopoverContextProvider,\n  PopoverScopedContextProvider\n} from \"./Y67KZUMI.js\";\nimport {\n  createStoreContext\n} from \"./VOQWLFSQ.js\";\n\n// src/hovercard/hovercard-context.tsx\nvar ctx = createStoreContext(\n  [PopoverContextProvider],\n  [PopoverScopedContextProvider]\n);\nvar useHovercardContext = ctx.useContext;\nvar useHovercardScopedContext = ctx.useScopedContext;\nvar useHovercardProviderContext = ctx.useProviderContext;\nvar HovercardContextProvider = ctx.ContextProvider;\nvar HovercardScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n  useHovercardContext,\n  useHovercardScopedContext,\n  useHovercardProviderContext,\n  HovercardContextProvider,\n  HovercardScopedContextProvider\n};\n", "\"use client\";\n\n// src/hovercard/utils/polygon.ts\nfunction getEventPoint(event) {\n  return [event.clientX, event.clientY];\n}\nfunction isPointInPolygon(point, polygon) {\n  const [x, y] = point;\n  let inside = false;\n  const length = polygon.length;\n  for (let l = length, i = 0, j = l - 1; i < l; j = i++) {\n    const [xi, yi] = polygon[i];\n    const [xj, yj] = polygon[j];\n    const [, vy] = polygon[j === 0 ? l - 1 : j - 1] || [0, 0];\n    const where = (yi - yj) * (x - xi) - (xi - xj) * (y - yi);\n    if (yj < yi) {\n      if (y >= yj && y < yi) {\n        if (where === 0) return true;\n        if (where > 0) {\n          if (y === yj) {\n            if (y > vy) {\n              inside = !inside;\n            }\n          } else {\n            inside = !inside;\n          }\n        }\n      }\n    } else if (yi < yj) {\n      if (y > yi && y <= yj) {\n        if (where === 0) return true;\n        if (where < 0) {\n          if (y === yj) {\n            if (y < vy) {\n              inside = !inside;\n            }\n          } else {\n            inside = !inside;\n          }\n        }\n      }\n    } else if (y === yi && (x >= xj && x <= xi || x >= xi && x <= xj)) {\n      return true;\n    }\n  }\n  return inside;\n}\nfunction getEnterPointPlacement(enterPoint, rect) {\n  const { top, right, bottom, left } = rect;\n  const [x, y] = enterPoint;\n  const placementX = x < left ? \"left\" : x > right ? \"right\" : null;\n  const placementY = y < top ? \"top\" : y > bottom ? \"bottom\" : null;\n  return [placementX, placementY];\n}\nfunction getElementPolygon(element, enterPoint) {\n  const rect = element.getBoundingClientRect();\n  const { top, right, bottom, left } = rect;\n  const [x, y] = getEnterPointPlacement(enterPoint, rect);\n  const polygon = [enterPoint];\n  if (x) {\n    if (y !== \"top\") {\n      polygon.push([x === \"left\" ? left : right, top]);\n    }\n    polygon.push([x === \"left\" ? right : left, top]);\n    polygon.push([x === \"left\" ? right : left, bottom]);\n    if (y !== \"bottom\") {\n      polygon.push([x === \"left\" ? left : right, bottom]);\n    }\n  } else if (y === \"top\") {\n    polygon.push([left, top]);\n    polygon.push([left, bottom]);\n    polygon.push([right, bottom]);\n    polygon.push([right, top]);\n  } else {\n    polygon.push([left, bottom]);\n    polygon.push([left, top]);\n    polygon.push([right, top]);\n    polygon.push([right, bottom]);\n  }\n  return polygon;\n}\n\nexport {\n  getEventPoint,\n  isPointInPolygon,\n  getElementPolygon\n};\n", "\"use client\";\n\n// src/portal/portal-context.tsx\nimport { createContext } from \"react\";\nvar PortalContext = createContext(null);\n\nexport {\n  PortalContext\n};\n", "\"use client\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/visually-hidden/visually-hidden.tsx\nvar TagName = \"span\";\nvar useVisuallyHidden = createHook(\n  function useVisuallyHidden2(props) {\n    props = __spreadProps(__spreadValues({}, props), {\n      style: __spreadValues({\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        whiteSpace: \"nowrap\",\n        width: \"1px\"\n      }, props.style)\n    });\n    return props;\n  }\n);\nvar VisuallyHidden = forwardRef(function VisuallyHidden2(props) {\n  const htmlProps = useVisuallyHidden(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useVisuallyHidden,\n  VisuallyHidden\n};\n", "\"use client\";\nimport {\n  useVisuallyHidden\n} from \"./DXGKYUAD.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/focus-trap/focus-trap.tsx\nvar TagName = \"span\";\nvar useFocusTrap = createHook(\n  function useFocusTrap2(props) {\n    props = __spreadProps(__spreadValues({\n      \"data-focus-trap\": \"\",\n      tabIndex: 0,\n      \"aria-hidden\": true\n    }, props), {\n      style: __spreadValues({\n        // Prevents unintended scroll jumps.\n        position: \"fixed\",\n        top: 0,\n        left: 0\n      }, props.style)\n    });\n    props = useVisuallyHidden(props);\n    return props;\n  }\n);\nvar FocusTrap = forwardRef(function FocusTrap2(props) {\n  const htmlProps = useFocusTrap(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useFocusTrap,\n  FocusTrap\n};\n", "\"use client\";\nimport {\n  PortalContext\n} from \"./AOQQTIBO.js\";\nimport {\n  FocusTrap\n} from \"./S2F2XXEH.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useMergeRefs,\n  useSafeLayoutEffect,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  setRef\n} from \"./SK3NAZA3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/portal/portal.tsx\nimport { getDocument } from \"@ariakit/core/utils/dom\";\nimport { isFocusEventOutside } from \"@ariakit/core/utils/events\";\nimport {\n  disableFocusIn,\n  getNextTabbable,\n  getPreviousTabbable,\n  restoreFocusIn\n} from \"@ariakit/core/utils/focus\";\nimport { useContext, useEffect, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction getRootElement(element) {\n  return getDocument(element).body;\n}\nfunction getPortalElement(element, portalElement) {\n  if (!portalElement) {\n    return getDocument(element).createElement(\"div\");\n  }\n  if (typeof portalElement === \"function\") {\n    return portalElement(element);\n  }\n  return portalElement;\n}\nfunction getRandomId(prefix = \"id\") {\n  return `${prefix ? `${prefix}-` : \"\"}${Math.random().toString(36).slice(2, 8)}`;\n}\nfunction queueFocus(element) {\n  queueMicrotask(() => {\n    element == null ? void 0 : element.focus();\n  });\n}\nvar usePortal = createHook(function usePortal2(_a) {\n  var _b = _a, {\n    preserveTabOrder,\n    preserveTabOrderAnchor,\n    portalElement,\n    portalRef,\n    portal = true\n  } = _b, props = __objRest(_b, [\n    \"preserveTabOrder\",\n    \"preserveTabOrderAnchor\",\n    \"portalElement\",\n    \"portalRef\",\n    \"portal\"\n  ]);\n  const ref = useRef(null);\n  const refProp = useMergeRefs(ref, props.ref);\n  const context = useContext(PortalContext);\n  const [portalNode, setPortalNode] = useState(null);\n  const [anchorPortalNode, setAnchorPortalNode] = useState(\n    null\n  );\n  const outerBeforeRef = useRef(null);\n  const innerBeforeRef = useRef(null);\n  const innerAfterRef = useRef(null);\n  const outerAfterRef = useRef(null);\n  useSafeLayoutEffect(() => {\n    const element = ref.current;\n    if (!element || !portal) {\n      setPortalNode(null);\n      return;\n    }\n    const portalEl = getPortalElement(element, portalElement);\n    if (!portalEl) {\n      setPortalNode(null);\n      return;\n    }\n    const isPortalInDocument = portalEl.isConnected;\n    if (!isPortalInDocument) {\n      const rootElement = context || getRootElement(element);\n      rootElement.appendChild(portalEl);\n    }\n    if (!portalEl.id) {\n      portalEl.id = element.id ? `portal/${element.id}` : getRandomId();\n    }\n    setPortalNode(portalEl);\n    setRef(portalRef, portalEl);\n    if (isPortalInDocument) return;\n    return () => {\n      portalEl.remove();\n      setRef(portalRef, null);\n    };\n  }, [portal, portalElement, context, portalRef]);\n  useSafeLayoutEffect(() => {\n    if (!portal) return;\n    if (!preserveTabOrder) return;\n    if (!preserveTabOrderAnchor) return;\n    const doc = getDocument(preserveTabOrderAnchor);\n    const element = doc.createElement(\"span\");\n    element.style.position = \"fixed\";\n    preserveTabOrderAnchor.insertAdjacentElement(\"afterend\", element);\n    setAnchorPortalNode(element);\n    return () => {\n      element.remove();\n      setAnchorPortalNode(null);\n    };\n  }, [portal, preserveTabOrder, preserveTabOrderAnchor]);\n  useEffect(() => {\n    if (!portalNode) return;\n    if (!preserveTabOrder) return;\n    let raf = 0;\n    const onFocus = (event) => {\n      if (!isFocusEventOutside(event)) return;\n      const focusing = event.type === \"focusin\";\n      cancelAnimationFrame(raf);\n      if (focusing) {\n        return restoreFocusIn(portalNode);\n      }\n      raf = requestAnimationFrame(() => {\n        disableFocusIn(portalNode, true);\n      });\n    };\n    portalNode.addEventListener(\"focusin\", onFocus, true);\n    portalNode.addEventListener(\"focusout\", onFocus, true);\n    return () => {\n      cancelAnimationFrame(raf);\n      portalNode.removeEventListener(\"focusin\", onFocus, true);\n      portalNode.removeEventListener(\"focusout\", onFocus, true);\n    };\n  }, [portalNode, preserveTabOrder]);\n  props = useWrapElement(\n    props,\n    (element) => {\n      element = // While the portal node is not in the DOM, we need to pass the\n      // current context to the portal context, otherwise it's going to\n      // reset to the body element on nested portals.\n      /* @__PURE__ */ jsx(PortalContext.Provider, { value: portalNode || context, children: element });\n      if (!portal) return element;\n      if (!portalNode) {\n        return /* @__PURE__ */ jsx(\n          \"span\",\n          {\n            ref: refProp,\n            id: props.id,\n            style: { position: \"fixed\" },\n            hidden: true\n          }\n        );\n      }\n      element = /* @__PURE__ */ jsxs(Fragment, { children: [\n        preserveTabOrder && portalNode && /* @__PURE__ */ jsx(\n          FocusTrap,\n          {\n            ref: innerBeforeRef,\n            \"data-focus-trap\": props.id,\n            className: \"__focus-trap-inner-before\",\n            onFocus: (event) => {\n              if (isFocusEventOutside(event, portalNode)) {\n                queueFocus(getNextTabbable());\n              } else {\n                queueFocus(outerBeforeRef.current);\n              }\n            }\n          }\n        ),\n        element,\n        preserveTabOrder && portalNode && /* @__PURE__ */ jsx(\n          FocusTrap,\n          {\n            ref: innerAfterRef,\n            \"data-focus-trap\": props.id,\n            className: \"__focus-trap-inner-after\",\n            onFocus: (event) => {\n              if (isFocusEventOutside(event, portalNode)) {\n                queueFocus(getPreviousTabbable());\n              } else {\n                queueFocus(outerAfterRef.current);\n              }\n            }\n          }\n        )\n      ] });\n      if (portalNode) {\n        element = createPortal(element, portalNode);\n      }\n      let preserveTabOrderElement = /* @__PURE__ */ jsxs(Fragment, { children: [\n        preserveTabOrder && portalNode && /* @__PURE__ */ jsx(\n          FocusTrap,\n          {\n            ref: outerBeforeRef,\n            \"data-focus-trap\": props.id,\n            className: \"__focus-trap-outer-before\",\n            onFocus: (event) => {\n              const fromOuter = event.relatedTarget === outerAfterRef.current;\n              if (!fromOuter && isFocusEventOutside(event, portalNode)) {\n                queueFocus(innerBeforeRef.current);\n              } else {\n                queueFocus(getPreviousTabbable());\n              }\n            }\n          }\n        ),\n        preserveTabOrder && // We're using position: fixed here so that the browser doesn't\n        // add margin to the element when setting gap on a parent element.\n        /* @__PURE__ */ jsx(\"span\", { \"aria-owns\": portalNode == null ? void 0 : portalNode.id, style: { position: \"fixed\" } }),\n        preserveTabOrder && portalNode && /* @__PURE__ */ jsx(\n          FocusTrap,\n          {\n            ref: outerAfterRef,\n            \"data-focus-trap\": props.id,\n            className: \"__focus-trap-outer-after\",\n            onFocus: (event) => {\n              if (isFocusEventOutside(event, portalNode)) {\n                queueFocus(innerAfterRef.current);\n              } else {\n                const nextTabbable = getNextTabbable();\n                if (nextTabbable === innerBeforeRef.current) {\n                  requestAnimationFrame(() => {\n                    var _a2;\n                    return (_a2 = getNextTabbable()) == null ? void 0 : _a2.focus();\n                  });\n                  return;\n                }\n                queueFocus(nextTabbable);\n              }\n            }\n          }\n        )\n      ] });\n      if (anchorPortalNode && preserveTabOrder) {\n        preserveTabOrderElement = createPortal(\n          preserveTabOrderElement,\n          anchorPortalNode\n        );\n      }\n      return /* @__PURE__ */ jsxs(Fragment, { children: [\n        preserveTabOrderElement,\n        element\n      ] });\n    },\n    [portalNode, context, portal, props.id, preserveTabOrder, anchorPortalNode]\n  );\n  props = __spreadProps(__spreadValues({}, props), {\n    ref: refProp\n  });\n  return props;\n});\nvar Portal = forwardRef(function Portal2(props) {\n  const htmlProps = usePortal(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  usePortal,\n  Portal\n};\n", "\"use client\";\n\n// src/heading/heading-context.tsx\nimport { createContext } from \"react\";\nvar HeadingContext = createContext(0);\n\nexport {\n  HeadingContext\n};\n", "\"use client\";\nimport {\n  HeadingContext\n} from \"./CZ4GFWYL.js\";\n\n// src/heading/heading-level.tsx\nimport { useContext } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction HeadingLevel({ level, children }) {\n  const contextLevel = useContext(HeadingContext);\n  const nextLevel = Math.max(\n    Math.min(level || contextLevel + 1, 6),\n    1\n  );\n  return /* @__PURE__ */ jsx(HeadingContext.Provider, { value: nextLevel, children });\n}\n\nexport {\n  HeadingLevel\n};\n", "\"use client\";\nimport {\n  FocusableContext\n} from \"./SWN3JYXT.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest\n} from \"./3YLGPPWQ.js\";\n\n// src/focusable/focusable-container.tsx\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar useFocusableContainer = createHook(function useFocusableContainer2(_a) {\n  var _b = _a, { autoFocusOnShow = true } = _b, props = __objRest(_b, [\"autoFocusOnShow\"]);\n  props = useWrapElement(\n    props,\n    (element) => /* @__PURE__ */ jsx(FocusableContext.Provider, { value: autoFocusOnShow, children: element }),\n    [autoFocusOnShow]\n  );\n  return props;\n});\nvar FocusableContainer = forwardRef(function FocusableContainer2(props) {\n  const htmlProps = useFocusableContainer(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useFocusableContainer,\n  FocusableContainer\n};\n", "\"use client\";\n\n// src/dialog/utils/prepend-hidden-dismiss.ts\nimport { getDocument } from \"@ariakit/core/utils/dom\";\nfunction prependHiddenDismiss(container, onClick) {\n  const document = getDocument(container);\n  const button = document.createElement(\"button\");\n  button.type = \"button\";\n  button.tabIndex = -1;\n  button.textContent = \"Dismiss popup\";\n  Object.assign(button.style, {\n    border: \"0px\",\n    clip: \"rect(0 0 0 0)\",\n    height: \"1px\",\n    margin: \"-1px\",\n    overflow: \"hidden\",\n    padding: \"0px\",\n    position: \"absolute\",\n    whiteSpace: \"nowrap\",\n    width: \"1px\"\n  });\n  button.addEventListener(\"click\", onClick);\n  container.prepend(button);\n  const removeHiddenDismiss = () => {\n    button.removeEventListener(\"click\", onClick);\n    button.remove();\n  };\n  return removeHiddenDismiss;\n}\n\nexport {\n  prependHiddenDismiss\n};\n", "\"use client\";\n\n// src/dialog/utils/use-previous-mouse-down-ref.ts\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { useEffect, useRef } from \"react\";\nfunction usePreviousMouseDownRef(enabled) {\n  const previousMouseDownRef = useRef();\n  useEffect(() => {\n    if (!enabled) {\n      previousMouseDownRef.current = null;\n      return;\n    }\n    const onMouseDown = (event) => {\n      previousMouseDownRef.current = event.target;\n    };\n    return addGlobalEventListener(\"mousedown\", onMouseDown, true);\n  }, [enabled]);\n  return previousMouseDownRef;\n}\n\nexport {\n  usePreviousMouseDownRef\n};\n", "\"use client\";\n\n// src/dialog/utils/orchestrate.ts\nvar cleanups = /* @__PURE__ */ new WeakMap();\nfunction orchestrate(element, key, setup) {\n  if (!cleanups.has(element)) {\n    cleanups.set(element, /* @__PURE__ */ new Map());\n  }\n  const elementCleanups = cleanups.get(element);\n  const prevCleanup = elementCleanups.get(key);\n  if (!prevCleanup) {\n    elementCleanups.set(key, setup());\n    return () => {\n      var _a;\n      (_a = elementCleanups.get(key)) == null ? void 0 : _a();\n      elementCleanups.delete(key);\n    };\n  }\n  const cleanup = setup();\n  const nextCleanup = () => {\n    cleanup();\n    prevCleanup();\n    elementCleanups.delete(key);\n  };\n  elementCleanups.set(key, nextCleanup);\n  return () => {\n    const isCurrent = elementCleanups.get(key) === nextCleanup;\n    if (!isCurrent) return;\n    cleanup();\n    elementCleanups.set(key, prevCleanup);\n  };\n}\nfunction setAttribute(element, attr, value) {\n  const setup = () => {\n    const previousValue = element.getAttribute(attr);\n    element.setAttribute(attr, value);\n    return () => {\n      if (previousValue == null) {\n        element.removeAttribute(attr);\n      } else {\n        element.setAttribute(attr, previousValue);\n      }\n    };\n  };\n  return orchestrate(element, attr, setup);\n}\nfunction setProperty(element, property, value) {\n  const setup = () => {\n    const exists = property in element;\n    const previousValue = element[property];\n    element[property] = value;\n    return () => {\n      if (!exists) {\n        delete element[property];\n      } else {\n        element[property] = previousValue;\n      }\n    };\n  };\n  return orchestrate(element, property, setup);\n}\nfunction assignStyle(element, style) {\n  if (!element) return () => {\n  };\n  const setup = () => {\n    const prevStyle = element.style.cssText;\n    Object.assign(element.style, style);\n    return () => {\n      element.style.cssText = prevStyle;\n    };\n  };\n  return orchestrate(element, \"style\", setup);\n}\nfunction setCSSProperty(element, property, value) {\n  if (!element) return () => {\n  };\n  const setup = () => {\n    const previousValue = element.style.getPropertyValue(property);\n    element.style.setProperty(property, value);\n    return () => {\n      if (previousValue) {\n        element.style.setProperty(property, previousValue);\n      } else {\n        element.style.removeProperty(property);\n      }\n    };\n  };\n  return orchestrate(element, property, setup);\n}\n\nexport {\n  orchestrate,\n  setAttribute,\n  setProperty,\n  assignStyle,\n  setCSSProperty\n};\n", "\"use client\";\nimport {\n  setProperty\n} from \"./K2ZF5NU7.js\";\n\n// src/dialog/utils/walk-tree-outside.ts\nimport { contains, getDocument } from \"@ariakit/core/utils/dom\";\nimport { chain } from \"@ariakit/core/utils/misc\";\nvar ignoreTags = [\"SCRIPT\", \"STYLE\"];\nfunction getSnapshotPropertyName(id) {\n  return `__ariakit-dialog-snapshot-${id}`;\n}\nfunction inSnapshot(id, element) {\n  const doc = getDocument(element);\n  const propertyName = getSnapshotPropertyName(id);\n  if (!doc.body[propertyName]) return true;\n  do {\n    if (element === doc.body) return false;\n    if (element[propertyName]) return true;\n    if (!element.parentElement) return false;\n    element = element.parentElement;\n  } while (true);\n}\nfunction isValidElement(id, element, ignoredElements) {\n  if (ignoreTags.includes(element.tagName)) return false;\n  if (!inSnapshot(id, element)) return false;\n  return !ignoredElements.some(\n    (enabledElement) => enabledElement && contains(element, enabledElement)\n  );\n}\nfunction walkTreeOutside(id, elements, callback, ancestorCallback) {\n  for (let element of elements) {\n    if (!(element == null ? void 0 : element.isConnected)) continue;\n    const hasAncestorAlready = elements.some((maybeAncestor) => {\n      if (!maybeAncestor) return false;\n      if (maybeAncestor === element) return false;\n      return maybeAncestor.contains(element);\n    });\n    const doc = getDocument(element);\n    const originalElement = element;\n    while (element.parentElement && element !== doc.body) {\n      ancestorCallback == null ? void 0 : ancestorCallback(element.parentElement, originalElement);\n      if (!hasAncestorAlready) {\n        for (const child of element.parentElement.children) {\n          if (isValidElement(id, child, elements)) {\n            callback(child, originalElement);\n          }\n        }\n      }\n      element = element.parentElement;\n    }\n  }\n}\nfunction createWalkTreeSnapshot(id, elements) {\n  const { body } = getDocument(elements[0]);\n  const cleanups = [];\n  const markElement = (element) => {\n    cleanups.push(setProperty(element, getSnapshotPropertyName(id), true));\n  };\n  walkTreeOutside(id, elements, markElement);\n  return chain(setProperty(body, getSnapshotPropertyName(id), true), () => {\n    for (const cleanup of cleanups) {\n      cleanup();\n    }\n  });\n}\n\nexport {\n  isValidElement,\n  walkTreeOutside,\n  createWalkTreeSnapshot\n};\n", "\"use client\";\n\n// src/dialog/utils/is-backdrop.ts\nfunction isBackdrop(element, ...ids) {\n  if (!element) return false;\n  const backdrop = element.getAttribute(\"data-backdrop\");\n  if (backdrop == null) return false;\n  if (backdrop === \"\") return true;\n  if (backdrop === \"true\") return true;\n  if (!ids.length) return true;\n  return ids.some((id) => backdrop === id);\n}\n\nexport {\n  isBackdrop\n};\n", "\"use client\";\nimport {\n  walkTreeOutside\n} from \"./AOUGVQZ3.js\";\nimport {\n  setProperty\n} from \"./K2ZF5NU7.js\";\nimport {\n  isBackdrop\n} from \"./63XF7ACK.js\";\n\n// src/dialog/utils/mark-tree-outside.ts\nimport { chain } from \"@ariakit/core/utils/misc\";\nfunction getPropertyName(id = \"\", ancestor = false) {\n  return `__ariakit-dialog-${ancestor ? \"ancestor\" : \"outside\"}${id ? `-${id}` : \"\"}`;\n}\nfunction markElement(element, id = \"\") {\n  return chain(\n    setProperty(element, getPropertyName(), true),\n    setProperty(element, getPropertyName(id), true)\n  );\n}\nfunction markAncestor(element, id = \"\") {\n  return chain(\n    setProperty(element, getPropertyName(\"\", true), true),\n    setProperty(element, getPropertyName(id, true), true)\n  );\n}\nfunction isElementMarked(element, id) {\n  const ancestorProperty = getPropertyName(id, true);\n  if (element[ancestorProperty]) return true;\n  const elementProperty = getPropertyName(id);\n  do {\n    if (element[elementProperty]) return true;\n    if (!element.parentElement) return false;\n    element = element.parentElement;\n  } while (true);\n}\nfunction markTreeOutside(id, elements) {\n  const cleanups = [];\n  const ids = elements.map((el) => el == null ? void 0 : el.id);\n  walkTreeOutside(\n    id,\n    elements,\n    (element) => {\n      if (isBackdrop(element, ...ids)) return;\n      cleanups.unshift(markElement(element, id));\n    },\n    (ancestor, element) => {\n      const isAnotherDialogAncestor = element.hasAttribute(\"data-dialog\") && element.id !== id;\n      if (isAnotherDialogAncestor) return;\n      cleanups.unshift(markAncestor(ancestor, id));\n    }\n  );\n  const restoreAccessibilityTree = () => {\n    for (const cleanup of cleanups) {\n      cleanup();\n    }\n  };\n  return restoreAccessibilityTree;\n}\n\nexport {\n  markElement,\n  markAncestor,\n  isElementMarked,\n  markTreeOutside\n};\n", "\"use client\";\nimport {\n  usePreviousMouseDownRef\n} from \"./HLTQOHKZ.js\";\nimport {\n  isElementMarked\n} from \"./3NDVDEB4.js\";\nimport {\n  isSafariFocusAncestor\n} from \"./OE2EFRVA.js\";\nimport {\n  useStoreState\n} from \"./RTNCFSKZ.js\";\nimport {\n  useEvent,\n  useSafeLayoutEffect\n} from \"./5GGHRIN3.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/dialog/utils/use-hide-on-interact-outside.ts\nimport { contains, getDocument, isVisible } from \"@ariakit/core/utils/dom\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { useEffect, useRef } from \"react\";\nfunction isInDocument(target) {\n  if (target.tagName === \"HTML\") return true;\n  return contains(getDocument(target).body, target);\n}\nfunction isDisclosure(disclosure, target) {\n  if (!disclosure) return false;\n  if (contains(disclosure, target)) return true;\n  const activeId = target.getAttribute(\"aria-activedescendant\");\n  if (activeId) {\n    const activeElement = getDocument(disclosure).getElementById(activeId);\n    if (activeElement) {\n      return contains(disclosure, activeElement);\n    }\n  }\n  return false;\n}\nfunction isMouseEventOnDialog(event, dialog) {\n  if (!(\"clientY\" in event)) return false;\n  const rect = dialog.getBoundingClientRect();\n  if (rect.width === 0 || rect.height === 0) return false;\n  return rect.top <= event.clientY && event.clientY <= rect.top + rect.height && rect.left <= event.clientX && event.clientX <= rect.left + rect.width;\n}\nfunction useEventOutside({\n  store,\n  type,\n  listener,\n  capture,\n  domReady\n}) {\n  const callListener = useEvent(listener);\n  const open = useStoreState(store, \"open\");\n  const focusedRef = useRef(false);\n  useSafeLayoutEffect(() => {\n    if (!open) return;\n    if (!domReady) return;\n    const { contentElement } = store.getState();\n    if (!contentElement) return;\n    const onFocus = () => {\n      focusedRef.current = true;\n    };\n    contentElement.addEventListener(\"focusin\", onFocus, true);\n    return () => contentElement.removeEventListener(\"focusin\", onFocus, true);\n  }, [store, open, domReady]);\n  useEffect(() => {\n    if (!open) return;\n    const onEvent = (event) => {\n      const { contentElement, disclosureElement } = store.getState();\n      const target = event.target;\n      if (!contentElement) return;\n      if (!target) return;\n      if (!isInDocument(target)) return;\n      if (contains(contentElement, target)) return;\n      if (isDisclosure(disclosureElement, target)) return;\n      if (target.hasAttribute(\"data-focus-trap\")) return;\n      if (isMouseEventOnDialog(event, contentElement)) return;\n      const focused = focusedRef.current;\n      if (focused && !isElementMarked(target, contentElement.id)) return;\n      if (isSafariFocusAncestor(target)) return;\n      callListener(event);\n    };\n    return addGlobalEventListener(type, onEvent, capture);\n  }, [open, capture]);\n}\nfunction shouldHideOnInteractOutside(hideOnInteractOutside, event) {\n  if (typeof hideOnInteractOutside === \"function\") {\n    return hideOnInteractOutside(event);\n  }\n  return !!hideOnInteractOutside;\n}\nfunction useHideOnInteractOutside(store, hideOnInteractOutside, domReady) {\n  const open = useStoreState(store, \"open\");\n  const previousMouseDownRef = usePreviousMouseDownRef(open);\n  const props = { store, domReady, capture: true };\n  useEventOutside(__spreadProps(__spreadValues({}, props), {\n    type: \"click\",\n    listener: (event) => {\n      const { contentElement } = store.getState();\n      const previousMouseDown = previousMouseDownRef.current;\n      if (!previousMouseDown) return;\n      if (!isVisible(previousMouseDown)) return;\n      if (!isElementMarked(previousMouseDown, contentElement == null ? void 0 : contentElement.id)) return;\n      if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) return;\n      store.hide();\n    }\n  }));\n  useEventOutside(__spreadProps(__spreadValues({}, props), {\n    type: \"focusin\",\n    listener: (event) => {\n      const { contentElement } = store.getState();\n      if (!contentElement) return;\n      if (event.target === getDocument(contentElement)) return;\n      if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) return;\n      store.hide();\n    }\n  }));\n  useEventOutside(__spreadProps(__spreadValues({}, props), {\n    type: \"contextmenu\",\n    listener: (event) => {\n      if (!shouldHideOnInteractOutside(hideOnInteractOutside, event)) return;\n      store.hide();\n    }\n  }));\n}\n\nexport {\n  useHideOnInteractOutside\n};\n", "\"use client\";\nimport {\n  useSafeLayoutEffect\n} from \"./5GGHRIN3.js\";\n\n// src/dialog/utils/use-nested-dialogs.tsx\nimport { chain } from \"@ariakit/core/utils/misc\";\nimport { sync } from \"@ariakit/core/utils/store\";\nimport {\n  createContext,\n  useCallback,\n  useContext,\n  useMemo,\n  useState\n} from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar NestedDialogsContext = createContext({});\nfunction useNestedDialogs(store) {\n  const context = useContext(NestedDialogsContext);\n  const [dialogs, setDialogs] = useState([]);\n  const add = useCallback(\n    (dialog) => {\n      var _a;\n      setDialogs((dialogs2) => [...dialogs2, dialog]);\n      return chain((_a = context.add) == null ? void 0 : _a.call(context, dialog), () => {\n        setDialogs((dialogs2) => dialogs2.filter((d) => d !== dialog));\n      });\n    },\n    [context]\n  );\n  useSafeLayoutEffect(() => {\n    return sync(store, [\"open\", \"contentElement\"], (state) => {\n      var _a;\n      if (!state.open) return;\n      if (!state.contentElement) return;\n      return (_a = context.add) == null ? void 0 : _a.call(context, store);\n    });\n  }, [store, context]);\n  const providerValue = useMemo(() => ({ store, add }), [store, add]);\n  const wrapElement = useCallback(\n    (element) => /* @__PURE__ */ jsx(NestedDialogsContext.Provider, { value: providerValue, children: element }),\n    [providerValue]\n  );\n  return { wrapElement, nestedDialogs: dialogs };\n}\n\nexport {\n  useNestedDialogs\n};\n", "\"use client\";\nimport {\n  useForceUpdate\n} from \"./5GGHRIN3.js\";\n\n// src/dialog/utils/use-root-dialog.ts\nimport { getDocument } from \"@ariakit/core/utils/dom\";\nimport { useCallback, useEffect } from \"react\";\nimport { flushSync } from \"react-dom\";\nfunction useRootDialog({\n  attribute,\n  contentId,\n  contentElement,\n  enabled\n}) {\n  const [updated, retry] = useForceUpdate();\n  const isRootDialog = useCallback(() => {\n    if (!enabled) return false;\n    if (!contentElement) return false;\n    const { body } = getDocument(contentElement);\n    const id = body.getAttribute(attribute);\n    return !id || id === contentId;\n  }, [updated, enabled, contentElement, attribute, contentId]);\n  useEffect(() => {\n    if (!enabled) return;\n    if (!contentId) return;\n    if (!contentElement) return;\n    const { body } = getDocument(contentElement);\n    if (isRootDialog()) {\n      body.setAttribute(attribute, contentId);\n      return () => body.removeAttribute(attribute);\n    }\n    const observer = new MutationObserver(() => flushSync(retry));\n    observer.observe(body, { attributeFilter: [attribute] });\n    return () => observer.disconnect();\n  }, [updated, enabled, contentId, contentElement, isRootDialog, attribute]);\n  return isRootDialog;\n}\n\nexport {\n  useRootDialog\n};\n", "\"use client\";\nimport {\n  useRootDialog\n} from \"./W6WVJJEY.js\";\nimport {\n  assignStyle,\n  setCSSProperty\n} from \"./K2ZF5NU7.js\";\n\n// src/dialog/utils/use-prevent-body-scroll.ts\nimport { getDocument, getWindow } from \"@ariakit/core/utils/dom\";\nimport { chain } from \"@ariakit/core/utils/misc\";\nimport { isApple, isMac } from \"@ariakit/core/utils/platform\";\nimport { useEffect } from \"react\";\nfunction getPaddingProperty(documentElement) {\n  const documentLeft = documentElement.getBoundingClientRect().left;\n  const scrollbarX = Math.round(documentLeft) + documentElement.scrollLeft;\n  return scrollbarX ? \"paddingLeft\" : \"paddingRight\";\n}\nfunction usePreventBodyScroll(contentElement, contentId, enabled) {\n  const isRootDialog = useRootDialog({\n    attribute: \"data-dialog-prevent-body-scroll\",\n    contentElement,\n    contentId,\n    enabled\n  });\n  useEffect(() => {\n    if (!isRootDialog()) return;\n    if (!contentElement) return;\n    const doc = getDocument(contentElement);\n    const win = getWindow(contentElement);\n    const { documentElement, body } = doc;\n    const cssScrollbarWidth = documentElement.style.getPropertyValue(\"--scrollbar-width\");\n    const scrollbarWidth = cssScrollbarWidth ? Number.parseInt(cssScrollbarWidth) : win.innerWidth - documentElement.clientWidth;\n    const setScrollbarWidthProperty = () => setCSSProperty(\n      documentElement,\n      \"--scrollbar-width\",\n      `${scrollbarWidth}px`\n    );\n    const paddingProperty = getPaddingProperty(documentElement);\n    const setStyle = () => assignStyle(body, {\n      overflow: \"hidden\",\n      [paddingProperty]: `${scrollbarWidth}px`\n    });\n    const setIOSStyle = () => {\n      var _a, _b;\n      const { scrollX, scrollY, visualViewport } = win;\n      const offsetLeft = (_a = visualViewport == null ? void 0 : visualViewport.offsetLeft) != null ? _a : 0;\n      const offsetTop = (_b = visualViewport == null ? void 0 : visualViewport.offsetTop) != null ? _b : 0;\n      const restoreStyle = assignStyle(body, {\n        position: \"fixed\",\n        overflow: \"hidden\",\n        top: `${-(scrollY - Math.floor(offsetTop))}px`,\n        left: `${-(scrollX - Math.floor(offsetLeft))}px`,\n        right: \"0\",\n        [paddingProperty]: `${scrollbarWidth}px`\n      });\n      return () => {\n        restoreStyle();\n        if (process.env.NODE_ENV !== \"test\") {\n          win.scrollTo({ left: scrollX, top: scrollY, behavior: \"instant\" });\n        }\n      };\n    };\n    const isIOS = isApple() && !isMac();\n    return chain(\n      setScrollbarWidthProperty(),\n      isIOS ? setIOSStyle() : setStyle()\n    );\n  }, [isRootDialog, contentElement]);\n}\n\nexport {\n  usePreventBodyScroll\n};\n", "\"use client\";\n\n// src/dialog/utils/is-focus-trap.ts\nfunction isFocusTrap(element, ...ids) {\n  if (!element) return false;\n  const attr = element.getAttribute(\"data-focus-trap\");\n  if (attr == null) return false;\n  if (!ids.length) return true;\n  if (attr === \"\") return false;\n  return ids.some((id) => attr === id);\n}\n\nexport {\n  isFocusTrap\n};\n", "\"use client\";\n\n// src/dialog/utils/supports-inert.ts\nfunction supportsInert() {\n  return \"inert\" in HTMLElement.prototype;\n}\n\nexport {\n  supportsInert\n};\n", "\"use client\";\nimport {\n  walkTreeOutside\n} from \"./AOUGVQZ3.js\";\nimport {\n  setAttribute\n} from \"./K2ZF5NU7.js\";\nimport {\n  isBackdrop\n} from \"./63XF7ACK.js\";\n\n// src/dialog/utils/disable-accessibility-tree-outside.ts\nfunction hideElementFromAccessibilityTree(element) {\n  return setAttribute(element, \"aria-hidden\", \"true\");\n}\nfunction disableAccessibilityTreeOutside(id, elements) {\n  const cleanups = [];\n  const ids = elements.map((el) => el == null ? void 0 : el.id);\n  walkTreeOutside(id, elements, (element) => {\n    if (isBackdrop(element, ...ids)) return;\n    cleanups.unshift(hideElementFromAccessibilityTree(element));\n  });\n  const restoreAccessibilityTree = () => {\n    for (const cleanup of cleanups) {\n      cleanup();\n    }\n  };\n  return restoreAccessibilityTree;\n}\n\nexport {\n  hideElementFromAccessibilityTree,\n  disableAccessibilityTreeOutside\n};\n", "\"use client\";\nimport {\n  isFocusTrap\n} from \"./IGR4SXG2.js\";\nimport {\n  supportsInert\n} from \"./677M2CI3.js\";\nimport {\n  hideElementFromAccessibilityTree\n} from \"./S7U6BLGA.js\";\nimport {\n  walkTreeOutside\n} from \"./AOUGVQZ3.js\";\nimport {\n  assignStyle,\n  orchestrate,\n  setAttribute,\n  setProperty\n} from \"./K2ZF5NU7.js\";\nimport {\n  isBackdrop\n} from \"./63XF7ACK.js\";\n\n// src/dialog/utils/disable-tree.ts\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { getAllTabbableIn } from \"@ariakit/core/utils/focus\";\nimport { chain, noop } from \"@ariakit/core/utils/misc\";\nfunction disableTree(element, ignoredElements) {\n  if (!(\"style\" in element)) return noop;\n  if (supportsInert()) {\n    return setProperty(element, \"inert\", true);\n  }\n  const tabbableElements = getAllTabbableIn(element, true);\n  const enableElements = tabbableElements.map((element2) => {\n    if (ignoredElements == null ? void 0 : ignoredElements.some((el) => el && contains(el, element2))) return noop;\n    const restoreFocusMethod = orchestrate(element2, \"focus\", () => {\n      element2.focus = noop;\n      return () => {\n        delete element2.focus;\n      };\n    });\n    return chain(setAttribute(element2, \"tabindex\", \"-1\"), restoreFocusMethod);\n  });\n  return chain(\n    ...enableElements,\n    hideElementFromAccessibilityTree(element),\n    assignStyle(element, {\n      pointerEvents: \"none\",\n      userSelect: \"none\",\n      cursor: \"default\"\n    })\n  );\n}\nfunction disableTreeOutside(id, elements) {\n  const cleanups = [];\n  const ids = elements.map((el) => el == null ? void 0 : el.id);\n  walkTreeOutside(\n    id,\n    elements,\n    (element) => {\n      if (isBackdrop(element, ...ids)) return;\n      if (isFocusTrap(element, ...ids)) return;\n      cleanups.unshift(disableTree(element, elements));\n    },\n    (element) => {\n      if (!element.hasAttribute(\"role\")) return;\n      if (elements.some((el) => el && contains(el, element))) return;\n      cleanups.unshift(setAttribute(element, \"role\", \"none\"));\n    }\n  );\n  const restoreTreeOutside = () => {\n    for (const cleanup of cleanups) {\n      cleanup();\n    }\n  };\n  return restoreTreeOutside;\n}\n\nexport {\n  disableTree,\n  disableTreeOutside\n};\n", "\"use client\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\n\n// src/role/role.tsx\nvar TagName = \"div\";\nvar elements = [\n  \"a\",\n  \"button\",\n  \"details\",\n  \"dialog\",\n  \"div\",\n  \"form\",\n  \"h1\",\n  \"h2\",\n  \"h3\",\n  \"h4\",\n  \"h5\",\n  \"h6\",\n  \"header\",\n  \"img\",\n  \"input\",\n  \"label\",\n  \"li\",\n  \"nav\",\n  \"ol\",\n  \"p\",\n  \"section\",\n  \"select\",\n  \"span\",\n  \"summary\",\n  \"textarea\",\n  \"ul\",\n  \"svg\"\n];\nvar useRole = createHook(\n  function useRole2(props) {\n    return props;\n  }\n);\nvar Role = forwardRef(\n  // @ts-expect-error\n  function Role2(props) {\n    return createElement(TagName, props);\n  }\n);\nObject.assign(\n  Role,\n  elements.reduce((acc, element) => {\n    acc[element] = forwardRef(function Role3(props) {\n      return createElement(element, props);\n    });\n    return acc;\n  }, {})\n);\n\nexport {\n  useRole,\n  Role\n};\n", "\"use client\";\nimport {\n  markAncestor\n} from \"./3NDVDEB4.js\";\nimport {\n  useDisclosureContent\n} from \"./K4R5DNTX.js\";\nimport {\n  useDisclosureStore\n} from \"./T22PY7TE.js\";\nimport {\n  Role\n} from \"./QJ4LGO2N.js\";\nimport {\n  useStoreState\n} from \"./RTNCFSKZ.js\";\nimport {\n  useSafeLayoutEffect\n} from \"./5GGHRIN3.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/dialog/dialog-backdrop.tsx\nimport { isValidElement, useEffect, useRef } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nfunction DialogBackdrop({\n  store,\n  backdrop,\n  alwaysVisible,\n  hidden\n}) {\n  const ref = useRef(null);\n  const disclosure = useDisclosureStore({ disclosure: store });\n  const contentElement = useStoreState(store, \"contentElement\");\n  useEffect(() => {\n    const backdrop2 = ref.current;\n    const dialog = contentElement;\n    if (!backdrop2) return;\n    if (!dialog) return;\n    backdrop2.style.zIndex = getComputedStyle(dialog).zIndex;\n  }, [contentElement]);\n  useSafeLayoutEffect(() => {\n    const id = contentElement == null ? void 0 : contentElement.id;\n    if (!id) return;\n    const backdrop2 = ref.current;\n    if (!backdrop2) return;\n    return markAncestor(backdrop2, id);\n  }, [contentElement]);\n  const props = useDisclosureContent({\n    ref,\n    store: disclosure,\n    role: \"presentation\",\n    \"data-backdrop\": (contentElement == null ? void 0 : contentElement.id) || \"\",\n    alwaysVisible,\n    hidden: hidden != null ? hidden : void 0,\n    style: {\n      position: \"fixed\",\n      top: 0,\n      right: 0,\n      bottom: 0,\n      left: 0\n    }\n  });\n  if (!backdrop) return null;\n  if (isValidElement(backdrop)) {\n    return /* @__PURE__ */ jsx(Role, __spreadProps(__spreadValues({}, props), { render: backdrop }));\n  }\n  const Component = typeof backdrop !== \"boolean\" ? backdrop : \"div\";\n  return /* @__PURE__ */ jsx(Role, __spreadProps(__spreadValues({}, props), { render: /* @__PURE__ */ jsx(Component, {}) }));\n}\n\nexport {\n  DialogBackdrop\n};\n", "\"use client\";\nimport {\n  createDisclosureStore\n} from \"./RCQ5P4YE.js\";\n\n// src/dialog/dialog-store.ts\nfunction createDialogStore(props = {}) {\n  return createDisclosureStore(props);\n}\n\nexport {\n  createDialogStore\n};\n", "\"use client\";\nimport {\n  useDisclosureStoreProps\n} from \"./T22PY7TE.js\";\nimport {\n  useStore\n} from \"./RTNCFSKZ.js\";\n\n// src/dialog/dialog-store.ts\nimport * as Core from \"@ariakit/core/dialog/dialog-store\";\nfunction useDialogStoreProps(store, update, props) {\n  return useDisclosureStoreProps(store, update, props);\n}\nfunction useDialogStore(props = {}) {\n  const [store, update] = useStore(Core.createDialogStore, props);\n  return useDialogStoreProps(store, update, props);\n}\n\nexport {\n  useDialogStoreProps,\n  useDialogStore\n};\n", "\"use client\";\nimport {\n  usePortal\n} from \"./M5DFOEFU.js\";\nimport {\n  HeadingLevel\n} from \"./5M6RIVE2.js\";\nimport {\n  useFocusableContainer\n} from \"./LC6GJMGV.js\";\nimport {\n  prependHiddenDismiss\n} from \"./6GXEOXGT.js\";\nimport {\n  useHideOnInteractOutside\n} from \"./JZEJYXOQ.js\";\nimport {\n  useNestedDialogs\n} from \"./PVECYOSC.js\";\nimport {\n  usePreventBodyScroll\n} from \"./SOMPWLIQ.js\";\nimport {\n  disableTree,\n  disableTreeOutside\n} from \"./Z5GCVBAY.js\";\nimport {\n  supportsInert\n} from \"./677M2CI3.js\";\nimport {\n  DialogBackdrop\n} from \"./FVE2C5B3.js\";\nimport {\n  isElementMarked,\n  markTreeOutside\n} from \"./3NDVDEB4.js\";\nimport {\n  createWalkTreeSnapshot\n} from \"./AOUGVQZ3.js\";\nimport {\n  isHidden,\n  useDisclosureContent\n} from \"./K4R5DNTX.js\";\nimport {\n  useDialogStore\n} from \"./Y2U4BRIM.js\";\nimport {\n  DialogDescriptionContext,\n  DialogHeadingContext,\n  DialogScopedContextProvider,\n  useDialogProviderContext\n} from \"./T2AZQXQU.js\";\nimport {\n  useFocusable\n} from \"./OE2EFRVA.js\";\nimport {\n  useStoreState\n} from \"./RTNCFSKZ.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useBooleanEvent,\n  useEvent,\n  useId,\n  useMergeRefs,\n  usePortalRef,\n  useSafeLayoutEffect,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/dialog/dialog.tsx\nimport {\n  contains,\n  getActiveElement,\n  getDocument,\n  getWindow,\n  isButton\n} from \"@ariakit/core/utils/dom\";\nimport {\n  addGlobalEventListener,\n  queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport {\n  focusIfNeeded,\n  getFirstTabbableIn,\n  isFocusable\n} from \"@ariakit/core/utils/focus\";\nimport { chain } from \"@ariakit/core/utils/misc\";\nimport { isSafari } from \"@ariakit/core/utils/platform\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar isSafariBrowser = isSafari();\nfunction isAlreadyFocusingAnotherElement(dialog) {\n  const activeElement = getActiveElement();\n  if (!activeElement) return false;\n  if (dialog && contains(dialog, activeElement)) return false;\n  if (isFocusable(activeElement)) return true;\n  return false;\n}\nfunction getElementFromProp(prop, focusable = false) {\n  if (!prop) return null;\n  const element = \"current\" in prop ? prop.current : prop;\n  if (!element) return null;\n  if (focusable) return isFocusable(element) ? element : null;\n  return element;\n}\nvar useDialog = createHook(function useDialog2(_a) {\n  var _b = _a, {\n    store: storeProp,\n    open: openProp,\n    onClose,\n    focusable = true,\n    modal = true,\n    portal = !!modal,\n    backdrop = !!modal,\n    hideOnEscape = true,\n    hideOnInteractOutside = true,\n    getPersistentElements,\n    preventBodyScroll = !!modal,\n    autoFocusOnShow = true,\n    autoFocusOnHide = true,\n    initialFocus,\n    finalFocus,\n    unmountOnHide,\n    unstable_treeSnapshotKey\n  } = _b, props = __objRest(_b, [\n    \"store\",\n    \"open\",\n    \"onClose\",\n    \"focusable\",\n    \"modal\",\n    \"portal\",\n    \"backdrop\",\n    \"hideOnEscape\",\n    \"hideOnInteractOutside\",\n    \"getPersistentElements\",\n    \"preventBodyScroll\",\n    \"autoFocusOnShow\",\n    \"autoFocusOnHide\",\n    \"initialFocus\",\n    \"finalFocus\",\n    \"unmountOnHide\",\n    \"unstable_treeSnapshotKey\"\n  ]);\n  const context = useDialogProviderContext();\n  const ref = useRef(null);\n  const store = useDialogStore({\n    store: storeProp || context,\n    open: openProp,\n    setOpen(open2) {\n      if (open2) return;\n      const dialog = ref.current;\n      if (!dialog) return;\n      const event = new Event(\"close\", { bubbles: false, cancelable: true });\n      if (onClose) {\n        dialog.addEventListener(\"close\", onClose, { once: true });\n      }\n      dialog.dispatchEvent(event);\n      if (!event.defaultPrevented) return;\n      store.setOpen(true);\n    }\n  });\n  const { portalRef, domReady } = usePortalRef(portal, props.portalRef);\n  const preserveTabOrderProp = props.preserveTabOrder;\n  const preserveTabOrder = useStoreState(\n    store,\n    (state) => preserveTabOrderProp && !modal && state.mounted\n  );\n  const id = useId(props.id);\n  const open = useStoreState(store, \"open\");\n  const mounted = useStoreState(store, \"mounted\");\n  const contentElement = useStoreState(store, \"contentElement\");\n  const hidden = isHidden(mounted, props.hidden, props.alwaysVisible);\n  usePreventBodyScroll(contentElement, id, preventBodyScroll && !hidden);\n  useHideOnInteractOutside(store, hideOnInteractOutside, domReady);\n  const { wrapElement, nestedDialogs } = useNestedDialogs(store);\n  props = useWrapElement(props, wrapElement, [wrapElement]);\n  useSafeLayoutEffect(() => {\n    if (!open) return;\n    const dialog = ref.current;\n    const activeElement = getActiveElement(dialog, true);\n    if (!activeElement) return;\n    if (activeElement.tagName === \"BODY\") return;\n    if (dialog && contains(dialog, activeElement)) return;\n    store.setDisclosureElement(activeElement);\n  }, [store, open]);\n  if (isSafariBrowser) {\n    useEffect(() => {\n      if (!mounted) return;\n      const { disclosureElement } = store.getState();\n      if (!disclosureElement) return;\n      if (!isButton(disclosureElement)) return;\n      const onMouseDown = () => {\n        let receivedFocus = false;\n        const onFocus = () => {\n          receivedFocus = true;\n        };\n        const options = { capture: true, once: true };\n        disclosureElement.addEventListener(\"focusin\", onFocus, options);\n        queueBeforeEvent(disclosureElement, \"mouseup\", () => {\n          disclosureElement.removeEventListener(\"focusin\", onFocus, true);\n          if (receivedFocus) return;\n          focusIfNeeded(disclosureElement);\n        });\n      };\n      disclosureElement.addEventListener(\"mousedown\", onMouseDown);\n      return () => {\n        disclosureElement.removeEventListener(\"mousedown\", onMouseDown);\n      };\n    }, [store, mounted]);\n  }\n  useEffect(() => {\n    if (!mounted) return;\n    if (!domReady) return;\n    const dialog = ref.current;\n    if (!dialog) return;\n    const win = getWindow(dialog);\n    const viewport = win.visualViewport || win;\n    const setViewportHeight = () => {\n      var _a2, _b2;\n      const height = (_b2 = (_a2 = win.visualViewport) == null ? void 0 : _a2.height) != null ? _b2 : win.innerHeight;\n      dialog.style.setProperty(\"--dialog-viewport-height\", `${height}px`);\n    };\n    setViewportHeight();\n    viewport.addEventListener(\"resize\", setViewportHeight);\n    return () => {\n      viewport.removeEventListener(\"resize\", setViewportHeight);\n    };\n  }, [mounted, domReady]);\n  useEffect(() => {\n    if (!modal) return;\n    if (!mounted) return;\n    if (!domReady) return;\n    const dialog = ref.current;\n    if (!dialog) return;\n    const existingDismiss = dialog.querySelector(\"[data-dialog-dismiss]\");\n    if (existingDismiss) return;\n    return prependHiddenDismiss(dialog, store.hide);\n  }, [store, modal, mounted, domReady]);\n  useSafeLayoutEffect(() => {\n    if (!supportsInert()) return;\n    if (open) return;\n    if (!mounted) return;\n    if (!domReady) return;\n    const dialog = ref.current;\n    if (!dialog) return;\n    return disableTree(dialog);\n  }, [open, mounted, domReady]);\n  const canTakeTreeSnapshot = open && domReady;\n  useSafeLayoutEffect(() => {\n    if (!id) return;\n    if (!canTakeTreeSnapshot) return;\n    const dialog = ref.current;\n    return createWalkTreeSnapshot(id, [dialog]);\n  }, [id, canTakeTreeSnapshot, unstable_treeSnapshotKey]);\n  const getPersistentElementsProp = useEvent(getPersistentElements);\n  useSafeLayoutEffect(() => {\n    if (!id) return;\n    if (!canTakeTreeSnapshot) return;\n    const { disclosureElement } = store.getState();\n    const dialog = ref.current;\n    const persistentElements = getPersistentElementsProp() || [];\n    const allElements = [\n      dialog,\n      ...persistentElements,\n      ...nestedDialogs.map((dialog2) => dialog2.getState().contentElement)\n    ];\n    if (modal) {\n      return chain(\n        markTreeOutside(id, allElements),\n        disableTreeOutside(id, allElements)\n      );\n    }\n    return markTreeOutside(id, [disclosureElement, ...allElements]);\n  }, [\n    id,\n    store,\n    canTakeTreeSnapshot,\n    getPersistentElementsProp,\n    nestedDialogs,\n    modal,\n    unstable_treeSnapshotKey\n  ]);\n  const mayAutoFocusOnShow = !!autoFocusOnShow;\n  const autoFocusOnShowProp = useBooleanEvent(autoFocusOnShow);\n  const [autoFocusEnabled, setAutoFocusEnabled] = useState(false);\n  useEffect(() => {\n    if (!open) return;\n    if (!mayAutoFocusOnShow) return;\n    if (!domReady) return;\n    if (!(contentElement == null ? void 0 : contentElement.isConnected)) return;\n    const element = getElementFromProp(initialFocus, true) || // If no initial focus is specified, we try to focus the first element\n    // with the autofocus attribute. If it's an Ariakit component, the\n    // Focusable component will consume the autoFocus prop and add the\n    // data-autofocus attribute to the element instead.\n    contentElement.querySelector(\n      \"[data-autofocus=true],[autofocus]\"\n    ) || // We have to fallback to the first focusable element otherwise portaled\n    // dialogs with preserveTabOrder set to true will not receive focus\n    // properly because the elements aren't tabbable until the dialog receives\n    // focus.\n    getFirstTabbableIn(contentElement, true, portal && preserveTabOrder) || // Finally, we fallback to the dialog element itself.\n    contentElement;\n    const isElementFocusable = isFocusable(element);\n    if (!autoFocusOnShowProp(isElementFocusable ? element : null)) return;\n    setAutoFocusEnabled(true);\n    queueMicrotask(() => {\n      element.focus();\n      if (!isSafariBrowser) return;\n      if (!isElementFocusable) return;\n      element.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n    });\n  }, [\n    open,\n    mayAutoFocusOnShow,\n    domReady,\n    contentElement,\n    initialFocus,\n    portal,\n    preserveTabOrder,\n    autoFocusOnShowProp\n  ]);\n  const mayAutoFocusOnHide = !!autoFocusOnHide;\n  const autoFocusOnHideProp = useBooleanEvent(autoFocusOnHide);\n  const [hasOpened, setHasOpened] = useState(false);\n  useEffect(() => {\n    if (!open) return;\n    setHasOpened(true);\n    return () => setHasOpened(false);\n  }, [open]);\n  const focusOnHide = useCallback(\n    (dialog, retry = true) => {\n      const { disclosureElement } = store.getState();\n      if (isAlreadyFocusingAnotherElement(dialog)) return;\n      let element = getElementFromProp(finalFocus) || disclosureElement;\n      if (element == null ? void 0 : element.id) {\n        const doc = getDocument(element);\n        const selector = `[aria-activedescendant=\"${element.id}\"]`;\n        const composite = doc.querySelector(selector);\n        if (composite) {\n          element = composite;\n        }\n      }\n      if (element && !isFocusable(element)) {\n        const maybeParentDialog = element.closest(\"[data-dialog]\");\n        if (maybeParentDialog == null ? void 0 : maybeParentDialog.id) {\n          const doc = getDocument(maybeParentDialog);\n          const selector = `[aria-controls~=\"${maybeParentDialog.id}\"]`;\n          const control = doc.querySelector(selector);\n          if (control) {\n            element = control;\n          }\n        }\n      }\n      const isElementFocusable = element && isFocusable(element);\n      if (!isElementFocusable && retry) {\n        requestAnimationFrame(() => focusOnHide(dialog, false));\n        return;\n      }\n      if (!autoFocusOnHideProp(isElementFocusable ? element : null)) return;\n      if (!isElementFocusable) return;\n      element == null ? void 0 : element.focus({ preventScroll: true });\n    },\n    [store, finalFocus, autoFocusOnHideProp]\n  );\n  const focusedOnHideRef = useRef(false);\n  useSafeLayoutEffect(() => {\n    if (open) return;\n    if (!hasOpened) return;\n    if (!mayAutoFocusOnHide) return;\n    const dialog = ref.current;\n    focusedOnHideRef.current = true;\n    focusOnHide(dialog);\n  }, [open, hasOpened, domReady, mayAutoFocusOnHide, focusOnHide]);\n  useEffect(() => {\n    if (!hasOpened) return;\n    if (!mayAutoFocusOnHide) return;\n    const dialog = ref.current;\n    return () => {\n      if (focusedOnHideRef.current) {\n        focusedOnHideRef.current = false;\n        return;\n      }\n      focusOnHide(dialog);\n    };\n  }, [hasOpened, mayAutoFocusOnHide, focusOnHide]);\n  const hideOnEscapeProp = useBooleanEvent(hideOnEscape);\n  useEffect(() => {\n    if (!domReady) return;\n    if (!mounted) return;\n    const onKeyDown = (event) => {\n      if (event.key !== \"Escape\") return;\n      if (event.defaultPrevented) return;\n      const dialog = ref.current;\n      if (!dialog) return;\n      if (isElementMarked(dialog)) return;\n      const target = event.target;\n      if (!target) return;\n      const { disclosureElement } = store.getState();\n      const isValidTarget = () => {\n        if (target.tagName === \"BODY\") return true;\n        if (contains(dialog, target)) return true;\n        if (!disclosureElement) return true;\n        if (contains(disclosureElement, target)) return true;\n        return false;\n      };\n      if (!isValidTarget()) return;\n      if (!hideOnEscapeProp(event)) return;\n      store.hide();\n    };\n    return addGlobalEventListener(\"keydown\", onKeyDown, true);\n  }, [store, domReady, mounted, hideOnEscapeProp]);\n  props = useWrapElement(\n    props,\n    (element) => /* @__PURE__ */ jsx(HeadingLevel, { level: modal ? 1 : void 0, children: element }),\n    [modal]\n  );\n  const hiddenProp = props.hidden;\n  const alwaysVisible = props.alwaysVisible;\n  props = useWrapElement(\n    props,\n    (element) => {\n      if (!backdrop) return element;\n      return /* @__PURE__ */ jsxs(Fragment, { children: [\n        /* @__PURE__ */ jsx(\n          DialogBackdrop,\n          {\n            store,\n            backdrop,\n            hidden: hiddenProp,\n            alwaysVisible\n          }\n        ),\n        element\n      ] });\n    },\n    [store, backdrop, hiddenProp, alwaysVisible]\n  );\n  const [headingId, setHeadingId] = useState();\n  const [descriptionId, setDescriptionId] = useState();\n  props = useWrapElement(\n    props,\n    (element) => /* @__PURE__ */ jsx(DialogScopedContextProvider, { value: store, children: /* @__PURE__ */ jsx(DialogHeadingContext.Provider, { value: setHeadingId, children: /* @__PURE__ */ jsx(DialogDescriptionContext.Provider, { value: setDescriptionId, children: element }) }) }),\n    [store]\n  );\n  props = __spreadProps(__spreadValues({\n    id,\n    \"data-dialog\": \"\",\n    role: \"dialog\",\n    tabIndex: focusable ? -1 : void 0,\n    \"aria-labelledby\": headingId,\n    \"aria-describedby\": descriptionId\n  }, props), {\n    ref: useMergeRefs(ref, props.ref)\n  });\n  props = useFocusableContainer(__spreadProps(__spreadValues({}, props), {\n    autoFocusOnShow: autoFocusEnabled\n  }));\n  props = useDisclosureContent(__spreadValues({ store }, props));\n  props = useFocusable(__spreadProps(__spreadValues({}, props), { focusable }));\n  props = usePortal(__spreadProps(__spreadValues({ portal }, props), { portalRef, preserveTabOrder }));\n  return props;\n});\nfunction createDialogComponent(Component, useProviderContext = useDialogProviderContext) {\n  return forwardRef(function DialogComponent(props) {\n    const context = useProviderContext();\n    const store = props.store || context;\n    const mounted = useStoreState(\n      store,\n      (state) => !props.unmountOnHide || (state == null ? void 0 : state.mounted) || !!props.open\n    );\n    if (!mounted) return null;\n    return /* @__PURE__ */ jsx(Component, __spreadValues({}, props));\n  });\n}\nvar Dialog = createDialogComponent(\n  forwardRef(function Dialog2(props) {\n    const htmlProps = useDialog(props);\n    return createElement(TagName, htmlProps);\n  }),\n  useDialogProviderContext\n);\n\nexport {\n  useDialog,\n  createDialogComponent,\n  Dialog\n};\n", "/**\n * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n  x: v,\n  y: v\n});\nconst oppositeSideMap = {\n  left: 'right',\n  right: 'left',\n  bottom: 'top',\n  top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n  start: 'end',\n  end: 'start'\n};\nfunction clamp(start, value, end) {\n  return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n  return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n  return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n  return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n  return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n  return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n  return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n  return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n  if (rtl === void 0) {\n    rtl = false;\n  }\n  const alignment = getAlignment(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const length = getAxisLength(alignmentAxis);\n  let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n  if (rects.reference[length] > rects.floating[length]) {\n    mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n  }\n  return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n  const oppositePlacement = getOppositePlacement(placement);\n  return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n  return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n  const lr = ['left', 'right'];\n  const rl = ['right', 'left'];\n  const tb = ['top', 'bottom'];\n  const bt = ['bottom', 'top'];\n  switch (side) {\n    case 'top':\n    case 'bottom':\n      if (rtl) return isStart ? rl : lr;\n      return isStart ? lr : rl;\n    case 'left':\n    case 'right':\n      return isStart ? tb : bt;\n    default:\n      return [];\n  }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n  const alignment = getAlignment(placement);\n  let list = getSideList(getSide(placement), direction === 'start', rtl);\n  if (alignment) {\n    list = list.map(side => side + \"-\" + alignment);\n    if (flipAlignment) {\n      list = list.concat(list.map(getOppositeAlignmentPlacement));\n    }\n  }\n  return list;\n}\nfunction getOppositePlacement(placement) {\n  return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n  return {\n    top: 0,\n    right: 0,\n    bottom: 0,\n    left: 0,\n    ...padding\n  };\n}\nfunction getPaddingObject(padding) {\n  return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n    top: padding,\n    right: padding,\n    bottom: padding,\n    left: padding\n  };\n}\nfunction rectToClientRect(rect) {\n  const {\n    x,\n    y,\n    width,\n    height\n  } = rect;\n  return {\n    width,\n    height,\n    top: y,\n    left: x,\n    right: x + width,\n    bottom: y + height,\n    x,\n    y\n  };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n", "import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n  let {\n    reference,\n    floating\n  } = _ref;\n  const sideAxis = getSideAxis(placement);\n  const alignmentAxis = getAlignmentAxis(placement);\n  const alignLength = getAxisLength(alignmentAxis);\n  const side = getSide(placement);\n  const isVertical = sideAxis === 'y';\n  const commonX = reference.x + reference.width / 2 - floating.width / 2;\n  const commonY = reference.y + reference.height / 2 - floating.height / 2;\n  const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n  let coords;\n  switch (side) {\n    case 'top':\n      coords = {\n        x: commonX,\n        y: reference.y - floating.height\n      };\n      break;\n    case 'bottom':\n      coords = {\n        x: commonX,\n        y: reference.y + reference.height\n      };\n      break;\n    case 'right':\n      coords = {\n        x: reference.x + reference.width,\n        y: commonY\n      };\n      break;\n    case 'left':\n      coords = {\n        x: reference.x - floating.width,\n        y: commonY\n      };\n      break;\n    default:\n      coords = {\n        x: reference.x,\n        y: reference.y\n      };\n  }\n  switch (getAlignment(placement)) {\n    case 'start':\n      coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n    case 'end':\n      coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n      break;\n  }\n  return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n  const {\n    placement = 'bottom',\n    strategy = 'absolute',\n    middleware = [],\n    platform\n  } = config;\n  const validMiddleware = middleware.filter(Boolean);\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n  let rects = await platform.getElementRects({\n    reference,\n    floating,\n    strategy\n  });\n  let {\n    x,\n    y\n  } = computeCoordsFromPlacement(rects, placement, rtl);\n  let statefulPlacement = placement;\n  let middlewareData = {};\n  let resetCount = 0;\n  for (let i = 0; i < validMiddleware.length; i++) {\n    const {\n      name,\n      fn\n    } = validMiddleware[i];\n    const {\n      x: nextX,\n      y: nextY,\n      data,\n      reset\n    } = await fn({\n      x,\n      y,\n      initialPlacement: placement,\n      placement: statefulPlacement,\n      strategy,\n      middlewareData,\n      rects,\n      platform,\n      elements: {\n        reference,\n        floating\n      }\n    });\n    x = nextX != null ? nextX : x;\n    y = nextY != null ? nextY : y;\n    middlewareData = {\n      ...middlewareData,\n      [name]: {\n        ...middlewareData[name],\n        ...data\n      }\n    };\n    if (reset && resetCount <= 50) {\n      resetCount++;\n      if (typeof reset === 'object') {\n        if (reset.placement) {\n          statefulPlacement = reset.placement;\n        }\n        if (reset.rects) {\n          rects = reset.rects === true ? await platform.getElementRects({\n            reference,\n            floating,\n            strategy\n          }) : reset.rects;\n        }\n        ({\n          x,\n          y\n        } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n      }\n      i = -1;\n    }\n  }\n  return {\n    x,\n    y,\n    placement: statefulPlacement,\n    strategy,\n    middlewareData\n  };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n  var _await$platform$isEle;\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    x,\n    y,\n    platform,\n    rects,\n    elements,\n    strategy\n  } = state;\n  const {\n    boundary = 'clippingAncestors',\n    rootBoundary = 'viewport',\n    elementContext = 'floating',\n    altBoundary = false,\n    padding = 0\n  } = evaluate(options, state);\n  const paddingObject = getPaddingObject(padding);\n  const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n  const element = elements[altBoundary ? altContext : elementContext];\n  const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n    element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n    boundary,\n    rootBoundary,\n    strategy\n  }));\n  const rect = elementContext === 'floating' ? {\n    x,\n    y,\n    width: rects.floating.width,\n    height: rects.floating.height\n  } : rects.reference;\n  const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n  const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n    x: 1,\n    y: 1\n  } : {\n    x: 1,\n    y: 1\n  };\n  const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  }) : rect);\n  return {\n    top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n    bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n    left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n    right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n  };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n  name: 'arrow',\n  options,\n  async fn(state) {\n    const {\n      x,\n      y,\n      placement,\n      rects,\n      platform,\n      elements,\n      middlewareData\n    } = state;\n    // Since `element` is required, we don't Partial<> the type.\n    const {\n      element,\n      padding = 0\n    } = evaluate(options, state) || {};\n    if (element == null) {\n      return {};\n    }\n    const paddingObject = getPaddingObject(padding);\n    const coords = {\n      x,\n      y\n    };\n    const axis = getAlignmentAxis(placement);\n    const length = getAxisLength(axis);\n    const arrowDimensions = await platform.getDimensions(element);\n    const isYAxis = axis === 'y';\n    const minProp = isYAxis ? 'top' : 'left';\n    const maxProp = isYAxis ? 'bottom' : 'right';\n    const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n    const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n    const startDiff = coords[axis] - rects.reference[axis];\n    const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n    let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n    // DOM platform can return `window` as the `offsetParent`.\n    if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n      clientSize = elements.floating[clientProp] || rects.floating[length];\n    }\n    const centerToReference = endDiff / 2 - startDiff / 2;\n\n    // If the padding is large enough that it causes the arrow to no longer be\n    // centered, modify the padding so that it is centered.\n    const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n    const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n    const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n    // Make sure the arrow doesn't overflow the floating element if the center\n    // point is outside the floating element's bounds.\n    const min$1 = minPadding;\n    const max = clientSize - arrowDimensions[length] - maxPadding;\n    const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n    const offset = clamp(min$1, center, max);\n\n    // If the reference is small enough that the arrow's padding causes it to\n    // to point to nothing for an aligned placement, adjust the offset of the\n    // floating element itself. To ensure `shift()` continues to take action,\n    // a single reset is performed when this is true.\n    const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n    const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n    return {\n      [axis]: coords[axis] + alignmentOffset,\n      data: {\n        [axis]: offset,\n        centerOffset: center - offset - alignmentOffset,\n        ...(shouldAddOffset && {\n          alignmentOffset\n        })\n      },\n      reset: shouldAddOffset\n    };\n  }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n  const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n  return allowedPlacementsSortedByAlignment.filter(placement => {\n    if (alignment) {\n      return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n    }\n    return true;\n  });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'autoPlacement',\n    options,\n    async fn(state) {\n      var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n      const {\n        rects,\n        middlewareData,\n        placement,\n        platform,\n        elements\n      } = state;\n      const {\n        crossAxis = false,\n        alignment,\n        allowedPlacements = placements,\n        autoAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n      const currentPlacement = placements$1[currentIndex];\n      if (currentPlacement == null) {\n        return {};\n      }\n      const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n      // Make `computeCoords` start from the right place.\n      if (placement !== currentPlacement) {\n        return {\n          reset: {\n            placement: placements$1[0]\n          }\n        };\n      }\n      const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n      const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n        placement: currentPlacement,\n        overflows: currentOverflows\n      }];\n      const nextPlacement = placements$1[currentIndex + 1];\n\n      // There are more placements to check.\n      if (nextPlacement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: nextPlacement\n          }\n        };\n      }\n      const placementsSortedByMostSpace = allOverflows.map(d => {\n        const alignment = getAlignment(d.placement);\n        return [d.placement, alignment && crossAxis ?\n        // Check along the mainAxis and main crossAxis side.\n        d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n        // Check only the mainAxis.\n        d.overflows[0], d.overflows];\n      }).sort((a, b) => a[1] - b[1]);\n      const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n      // Aligned placements should not check their opposite crossAxis\n      // side.\n      getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n      const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n      if (resetPlacement !== placement) {\n        return {\n          data: {\n            index: currentIndex + 1,\n            overflows: allOverflows\n          },\n          reset: {\n            placement: resetPlacement\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'flip',\n    options,\n    async fn(state) {\n      var _middlewareData$arrow, _middlewareData$flip;\n      const {\n        placement,\n        middlewareData,\n        rects,\n        initialPlacement,\n        platform,\n        elements\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true,\n        fallbackPlacements: specifiedFallbackPlacements,\n        fallbackStrategy = 'bestFit',\n        fallbackAxisSideDirection = 'none',\n        flipAlignment = true,\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n\n      // If a reset by the arrow was caused due to an alignment offset being\n      // added, we should skip any logic now since `flip()` has already done its\n      // work.\n      // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n      if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      const side = getSide(placement);\n      const initialSideAxis = getSideAxis(initialPlacement);\n      const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n      const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n      const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n      const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n      if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n        fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n      }\n      const placements = [initialPlacement, ...fallbackPlacements];\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const overflows = [];\n      let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n      if (checkMainAxis) {\n        overflows.push(overflow[side]);\n      }\n      if (checkCrossAxis) {\n        const sides = getAlignmentSides(placement, rects, rtl);\n        overflows.push(overflow[sides[0]], overflow[sides[1]]);\n      }\n      overflowsData = [...overflowsData, {\n        placement,\n        overflows\n      }];\n\n      // One or more sides is overflowing.\n      if (!overflows.every(side => side <= 0)) {\n        var _middlewareData$flip2, _overflowsData$filter;\n        const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n        const nextPlacement = placements[nextIndex];\n        if (nextPlacement) {\n          // Try next placement and re-run the lifecycle.\n          return {\n            data: {\n              index: nextIndex,\n              overflows: overflowsData\n            },\n            reset: {\n              placement: nextPlacement\n            }\n          };\n        }\n\n        // First, find the candidates that fit on the mainAxis side of overflow,\n        // then find the placement that fits the best on the main crossAxis side.\n        let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n        // Otherwise fallback.\n        if (!resetPlacement) {\n          switch (fallbackStrategy) {\n            case 'bestFit':\n              {\n                var _overflowsData$filter2;\n                const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n                  if (hasFallbackAxisSideDirection) {\n                    const currentSideAxis = getSideAxis(d.placement);\n                    return currentSideAxis === initialSideAxis ||\n                    // Create a bias to the `y` side axis due to horizontal\n                    // reading directions favoring greater width.\n                    currentSideAxis === 'y';\n                  }\n                  return true;\n                }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n                if (placement) {\n                  resetPlacement = placement;\n                }\n                break;\n              }\n            case 'initialPlacement':\n              resetPlacement = initialPlacement;\n              break;\n          }\n        }\n        if (placement !== resetPlacement) {\n          return {\n            reset: {\n              placement: resetPlacement\n            }\n          };\n        }\n      }\n      return {};\n    }\n  };\n};\n\nfunction getSideOffsets(overflow, rect) {\n  return {\n    top: overflow.top - rect.height,\n    right: overflow.right - rect.width,\n    bottom: overflow.bottom - rect.height,\n    left: overflow.left - rect.width\n  };\n}\nfunction isAnySideFullyClipped(overflow) {\n  return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'hide',\n    options,\n    async fn(state) {\n      const {\n        rects\n      } = state;\n      const {\n        strategy = 'referenceHidden',\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      switch (strategy) {\n        case 'referenceHidden':\n          {\n            const overflow = await detectOverflow(state, {\n              ...detectOverflowOptions,\n              elementContext: 'reference'\n            });\n            const offsets = getSideOffsets(overflow, rects.reference);\n            return {\n              data: {\n                referenceHiddenOffsets: offsets,\n                referenceHidden: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        case 'escaped':\n          {\n            const overflow = await detectOverflow(state, {\n              ...detectOverflowOptions,\n              altBoundary: true\n            });\n            const offsets = getSideOffsets(overflow, rects.floating);\n            return {\n              data: {\n                escapedOffsets: offsets,\n                escaped: isAnySideFullyClipped(offsets)\n              }\n            };\n          }\n        default:\n          {\n            return {};\n          }\n      }\n    }\n  };\n};\n\nfunction getBoundingRect(rects) {\n  const minX = min(...rects.map(rect => rect.left));\n  const minY = min(...rects.map(rect => rect.top));\n  const maxX = max(...rects.map(rect => rect.right));\n  const maxY = max(...rects.map(rect => rect.bottom));\n  return {\n    x: minX,\n    y: minY,\n    width: maxX - minX,\n    height: maxY - minY\n  };\n}\nfunction getRectsByLine(rects) {\n  const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n  const groups = [];\n  let prevRect = null;\n  for (let i = 0; i < sortedRects.length; i++) {\n    const rect = sortedRects[i];\n    if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n      groups.push([rect]);\n    } else {\n      groups[groups.length - 1].push(rect);\n    }\n    prevRect = rect;\n  }\n  return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'inline',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        elements,\n        rects,\n        platform,\n        strategy\n      } = state;\n      // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n      // ClientRect's bounds, despite the event listener being triggered. A\n      // padding of 2 seems to handle this issue.\n      const {\n        padding = 2,\n        x,\n        y\n      } = evaluate(options, state);\n      const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n      const clientRects = getRectsByLine(nativeClientRects);\n      const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n      const paddingObject = getPaddingObject(padding);\n      function getBoundingClientRect() {\n        // There are two rects and they are disjoined.\n        if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n          // Find the first rect in which the point is fully inside.\n          return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n        }\n\n        // There are 2 or more connected rects.\n        if (clientRects.length >= 2) {\n          if (getSideAxis(placement) === 'y') {\n            const firstRect = clientRects[0];\n            const lastRect = clientRects[clientRects.length - 1];\n            const isTop = getSide(placement) === 'top';\n            const top = firstRect.top;\n            const bottom = lastRect.bottom;\n            const left = isTop ? firstRect.left : lastRect.left;\n            const right = isTop ? firstRect.right : lastRect.right;\n            const width = right - left;\n            const height = bottom - top;\n            return {\n              top,\n              bottom,\n              left,\n              right,\n              width,\n              height,\n              x: left,\n              y: top\n            };\n          }\n          const isLeftSide = getSide(placement) === 'left';\n          const maxRight = max(...clientRects.map(rect => rect.right));\n          const minLeft = min(...clientRects.map(rect => rect.left));\n          const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n          const top = measureRects[0].top;\n          const bottom = measureRects[measureRects.length - 1].bottom;\n          const left = minLeft;\n          const right = maxRight;\n          const width = right - left;\n          const height = bottom - top;\n          return {\n            top,\n            bottom,\n            left,\n            right,\n            width,\n            height,\n            x: left,\n            y: top\n          };\n        }\n        return fallback;\n      }\n      const resetRects = await platform.getElementRects({\n        reference: {\n          getBoundingClientRect\n        },\n        floating: elements.floating,\n        strategy\n      });\n      if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n        return {\n          reset: {\n            rects: resetRects\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n  const {\n    placement,\n    platform,\n    elements\n  } = state;\n  const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n  const side = getSide(placement);\n  const alignment = getAlignment(placement);\n  const isVertical = getSideAxis(placement) === 'y';\n  const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n  const crossAxisMulti = rtl && isVertical ? -1 : 1;\n  const rawValue = evaluate(options, state);\n\n  // eslint-disable-next-line prefer-const\n  let {\n    mainAxis,\n    crossAxis,\n    alignmentAxis\n  } = typeof rawValue === 'number' ? {\n    mainAxis: rawValue,\n    crossAxis: 0,\n    alignmentAxis: null\n  } : {\n    mainAxis: 0,\n    crossAxis: 0,\n    alignmentAxis: null,\n    ...rawValue\n  };\n  if (alignment && typeof alignmentAxis === 'number') {\n    crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n  }\n  return isVertical ? {\n    x: crossAxis * crossAxisMulti,\n    y: mainAxis * mainAxisMulti\n  } : {\n    x: mainAxis * mainAxisMulti,\n    y: crossAxis * crossAxisMulti\n  };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n  if (options === void 0) {\n    options = 0;\n  }\n  return {\n    name: 'offset',\n    options,\n    async fn(state) {\n      var _middlewareData$offse, _middlewareData$arrow;\n      const {\n        x,\n        y,\n        placement,\n        middlewareData\n      } = state;\n      const diffCoords = await convertValueToCoords(state, options);\n\n      // If the placement is the same and the arrow caused an alignment offset\n      // then we don't need to change the positioning coordinates.\n      if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n        return {};\n      }\n      return {\n        x: x + diffCoords.x,\n        y: y + diffCoords.y,\n        data: {\n          ...diffCoords,\n          placement\n        }\n      };\n    }\n  };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'shift',\n    options,\n    async fn(state) {\n      const {\n        x,\n        y,\n        placement\n      } = state;\n      const {\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = false,\n        limiter = {\n          fn: _ref => {\n            let {\n              x,\n              y\n            } = _ref;\n            return {\n              x,\n              y\n            };\n          }\n        },\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const crossAxis = getSideAxis(getSide(placement));\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      if (checkMainAxis) {\n        const minSide = mainAxis === 'y' ? 'top' : 'left';\n        const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n        const min = mainAxisCoord + overflow[minSide];\n        const max = mainAxisCoord - overflow[maxSide];\n        mainAxisCoord = clamp(min, mainAxisCoord, max);\n      }\n      if (checkCrossAxis) {\n        const minSide = crossAxis === 'y' ? 'top' : 'left';\n        const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n        const min = crossAxisCoord + overflow[minSide];\n        const max = crossAxisCoord - overflow[maxSide];\n        crossAxisCoord = clamp(min, crossAxisCoord, max);\n      }\n      const limitedCoords = limiter.fn({\n        ...state,\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      });\n      return {\n        ...limitedCoords,\n        data: {\n          x: limitedCoords.x - x,\n          y: limitedCoords.y - y\n        }\n      };\n    }\n  };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    options,\n    fn(state) {\n      const {\n        x,\n        y,\n        placement,\n        rects,\n        middlewareData\n      } = state;\n      const {\n        offset = 0,\n        mainAxis: checkMainAxis = true,\n        crossAxis: checkCrossAxis = true\n      } = evaluate(options, state);\n      const coords = {\n        x,\n        y\n      };\n      const crossAxis = getSideAxis(placement);\n      const mainAxis = getOppositeAxis(crossAxis);\n      let mainAxisCoord = coords[mainAxis];\n      let crossAxisCoord = coords[crossAxis];\n      const rawOffset = evaluate(offset, state);\n      const computedOffset = typeof rawOffset === 'number' ? {\n        mainAxis: rawOffset,\n        crossAxis: 0\n      } : {\n        mainAxis: 0,\n        crossAxis: 0,\n        ...rawOffset\n      };\n      if (checkMainAxis) {\n        const len = mainAxis === 'y' ? 'height' : 'width';\n        const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n        const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n        if (mainAxisCoord < limitMin) {\n          mainAxisCoord = limitMin;\n        } else if (mainAxisCoord > limitMax) {\n          mainAxisCoord = limitMax;\n        }\n      }\n      if (checkCrossAxis) {\n        var _middlewareData$offse, _middlewareData$offse2;\n        const len = mainAxis === 'y' ? 'width' : 'height';\n        const isOriginSide = ['top', 'left'].includes(getSide(placement));\n        const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n        const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n        if (crossAxisCoord < limitMin) {\n          crossAxisCoord = limitMin;\n        } else if (crossAxisCoord > limitMax) {\n          crossAxisCoord = limitMax;\n        }\n      }\n      return {\n        [mainAxis]: mainAxisCoord,\n        [crossAxis]: crossAxisCoord\n      };\n    }\n  };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element \u2014\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n  if (options === void 0) {\n    options = {};\n  }\n  return {\n    name: 'size',\n    options,\n    async fn(state) {\n      const {\n        placement,\n        rects,\n        platform,\n        elements\n      } = state;\n      const {\n        apply = () => {},\n        ...detectOverflowOptions\n      } = evaluate(options, state);\n      const overflow = await detectOverflow(state, detectOverflowOptions);\n      const side = getSide(placement);\n      const alignment = getAlignment(placement);\n      const isYAxis = getSideAxis(placement) === 'y';\n      const {\n        width,\n        height\n      } = rects.floating;\n      let heightSide;\n      let widthSide;\n      if (side === 'top' || side === 'bottom') {\n        heightSide = side;\n        widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n      } else {\n        widthSide = side;\n        heightSide = alignment === 'end' ? 'top' : 'bottom';\n      }\n      const maximumClippingHeight = height - overflow.top - overflow.bottom;\n      const maximumClippingWidth = width - overflow.left - overflow.right;\n      const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n      const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n      const noShift = !state.middlewareData.shift;\n      let availableHeight = overflowAvailableHeight;\n      let availableWidth = overflowAvailableWidth;\n      if (isYAxis) {\n        availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n      } else {\n        availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n      }\n      if (noShift && !alignment) {\n        const xMin = max(overflow.left, 0);\n        const xMax = max(overflow.right, 0);\n        const yMin = max(overflow.top, 0);\n        const yMax = max(overflow.bottom, 0);\n        if (isYAxis) {\n          availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n        } else {\n          availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n        }\n      }\n      await apply({\n        ...state,\n        availableWidth,\n        availableHeight\n      });\n      const nextDimensions = await platform.getDimensions(elements.floating);\n      if (width !== nextDimensions.width || height !== nextDimensions.height) {\n        return {\n          reset: {\n            rects: true\n          }\n        };\n      }\n      return {};\n    }\n  };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n", "function getNodeName(node) {\n  if (isNode(node)) {\n    return (node.nodeName || '').toLowerCase();\n  }\n  // Mocked nodes in testing environments may not be instances of Node. By\n  // returning `#document` an infinite loop won't occur.\n  // https://github.com/floating-ui/floating-ui/issues/2317\n  return '#document';\n}\nfunction getWindow(node) {\n  var _node$ownerDocument;\n  return (node == null || (_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\nfunction getDocumentElement(node) {\n  var _ref;\n  return (_ref = (isNode(node) ? node.ownerDocument : node.document) || window.document) == null ? void 0 : _ref.documentElement;\n}\nfunction isNode(value) {\n  return value instanceof Node || value instanceof getWindow(value).Node;\n}\nfunction isElement(value) {\n  return value instanceof Element || value instanceof getWindow(value).Element;\n}\nfunction isHTMLElement(value) {\n  return value instanceof HTMLElement || value instanceof getWindow(value).HTMLElement;\n}\nfunction isShadowRoot(value) {\n  // Browsers without `ShadowRoot` support.\n  if (typeof ShadowRoot === 'undefined') {\n    return false;\n  }\n  return value instanceof ShadowRoot || value instanceof getWindow(value).ShadowRoot;\n}\nfunction isOverflowElement(element) {\n  const {\n    overflow,\n    overflowX,\n    overflowY,\n    display\n  } = getComputedStyle(element);\n  return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n  return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isTopLayer(element) {\n  return [':popover-open', ':modal'].some(selector => {\n    try {\n      return element.matches(selector);\n    } catch (e) {\n      return false;\n    }\n  });\n}\nfunction isContainingBlock(elementOrCss) {\n  const webkit = isWebKit();\n  const css = isElement(elementOrCss) ? getComputedStyle(elementOrCss) : elementOrCss;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !webkit && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !webkit && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction getContainingBlock(element) {\n  let currentNode = getParentNode(element);\n  while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    if (isContainingBlock(currentNode)) {\n      return currentNode;\n    } else if (isTopLayer(currentNode)) {\n      return null;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  return null;\n}\nfunction isWebKit() {\n  if (typeof CSS === 'undefined' || !CSS.supports) return false;\n  return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n  return ['html', 'body', '#document'].includes(getNodeName(node));\n}\nfunction getComputedStyle(element) {\n  return getWindow(element).getComputedStyle(element);\n}\nfunction getNodeScroll(element) {\n  if (isElement(element)) {\n    return {\n      scrollLeft: element.scrollLeft,\n      scrollTop: element.scrollTop\n    };\n  }\n  return {\n    scrollLeft: element.scrollX,\n    scrollTop: element.scrollY\n  };\n}\nfunction getParentNode(node) {\n  if (getNodeName(node) === 'html') {\n    return node;\n  }\n  const result =\n  // Step into the shadow DOM of the parent of a slotted node.\n  node.assignedSlot ||\n  // DOM Element detected.\n  node.parentNode ||\n  // ShadowRoot detected.\n  isShadowRoot(node) && node.host ||\n  // Fallback.\n  getDocumentElement(node);\n  return isShadowRoot(result) ? result.host : result;\n}\nfunction getNearestOverflowAncestor(node) {\n  const parentNode = getParentNode(node);\n  if (isLastTraversableNode(parentNode)) {\n    return node.ownerDocument ? node.ownerDocument.body : node.body;\n  }\n  if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n    return parentNode;\n  }\n  return getNearestOverflowAncestor(parentNode);\n}\nfunction getOverflowAncestors(node, list, traverseIframes) {\n  var _node$ownerDocument2;\n  if (list === void 0) {\n    list = [];\n  }\n  if (traverseIframes === void 0) {\n    traverseIframes = true;\n  }\n  const scrollableAncestor = getNearestOverflowAncestor(node);\n  const isBody = scrollableAncestor === ((_node$ownerDocument2 = node.ownerDocument) == null ? void 0 : _node$ownerDocument2.body);\n  const win = getWindow(scrollableAncestor);\n  if (isBody) {\n    return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : [], win.frameElement && traverseIframes ? getOverflowAncestors(win.frameElement) : []);\n  }\n  return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor, [], traverseIframes));\n}\n\nexport { getComputedStyle, getContainingBlock, getDocumentElement, getNearestOverflowAncestor, getNodeName, getNodeScroll, getOverflowAncestors, getParentNode, getWindow, isContainingBlock, isElement, isHTMLElement, isLastTraversableNode, isNode, isOverflowElement, isShadowRoot, isTableElement, isTopLayer, isWebKit };\n", "import { rectToClientRect, detectOverflow as detectOverflow$1, offset as offset$1, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, isTopLayer, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n  const css = getComputedStyle(element);\n  // In testing environments, the `width` and `height` properties are empty\n  // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n  let width = parseFloat(css.width) || 0;\n  let height = parseFloat(css.height) || 0;\n  const hasOffset = isHTMLElement(element);\n  const offsetWidth = hasOffset ? element.offsetWidth : width;\n  const offsetHeight = hasOffset ? element.offsetHeight : height;\n  const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n  if (shouldFallback) {\n    width = offsetWidth;\n    height = offsetHeight;\n  }\n  return {\n    width,\n    height,\n    $: shouldFallback\n  };\n}\n\nfunction unwrapElement(element) {\n  return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n  const domElement = unwrapElement(element);\n  if (!isHTMLElement(domElement)) {\n    return createCoords(1);\n  }\n  const rect = domElement.getBoundingClientRect();\n  const {\n    width,\n    height,\n    $\n  } = getCssDimensions(domElement);\n  let x = ($ ? round(rect.width) : rect.width) / width;\n  let y = ($ ? round(rect.height) : rect.height) / height;\n\n  // 0, NaN, or Infinity should always fallback to 1.\n\n  if (!x || !Number.isFinite(x)) {\n    x = 1;\n  }\n  if (!y || !Number.isFinite(y)) {\n    y = 1;\n  }\n  return {\n    x,\n    y\n  };\n}\n\nconst noOffsets = /*#__PURE__*/createCoords(0);\nfunction getVisualOffsets(element) {\n  const win = getWindow(element);\n  if (!isWebKit() || !win.visualViewport) {\n    return noOffsets;\n  }\n  return {\n    x: win.visualViewport.offsetLeft,\n    y: win.visualViewport.offsetTop\n  };\n}\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n  if (isFixed === void 0) {\n    isFixed = false;\n  }\n  if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n    return false;\n  }\n  return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n  if (includeScale === void 0) {\n    includeScale = false;\n  }\n  if (isFixedStrategy === void 0) {\n    isFixedStrategy = false;\n  }\n  const clientRect = element.getBoundingClientRect();\n  const domElement = unwrapElement(element);\n  let scale = createCoords(1);\n  if (includeScale) {\n    if (offsetParent) {\n      if (isElement(offsetParent)) {\n        scale = getScale(offsetParent);\n      }\n    } else {\n      scale = getScale(element);\n    }\n  }\n  const visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n  let x = (clientRect.left + visualOffsets.x) / scale.x;\n  let y = (clientRect.top + visualOffsets.y) / scale.y;\n  let width = clientRect.width / scale.x;\n  let height = clientRect.height / scale.y;\n  if (domElement) {\n    const win = getWindow(domElement);\n    const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n    let currentWin = win;\n    let currentIFrame = currentWin.frameElement;\n    while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n      const iframeScale = getScale(currentIFrame);\n      const iframeRect = currentIFrame.getBoundingClientRect();\n      const css = getComputedStyle(currentIFrame);\n      const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n      const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n      x *= iframeScale.x;\n      y *= iframeScale.y;\n      width *= iframeScale.x;\n      height *= iframeScale.y;\n      x += left;\n      y += top;\n      currentWin = getWindow(currentIFrame);\n      currentIFrame = currentWin.frameElement;\n    }\n  }\n  return rectToClientRect({\n    width,\n    height,\n    x,\n    y\n  });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n  let {\n    elements,\n    rect,\n    offsetParent,\n    strategy\n  } = _ref;\n  const isFixed = strategy === 'fixed';\n  const documentElement = getDocumentElement(offsetParent);\n  const topLayer = elements ? isTopLayer(elements.floating) : false;\n  if (offsetParent === documentElement || topLayer && isFixed) {\n    return rect;\n  }\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  let scale = createCoords(1);\n  const offsets = createCoords(0);\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isHTMLElement(offsetParent)) {\n      const offsetRect = getBoundingClientRect(offsetParent);\n      scale = getScale(offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    }\n  }\n  return {\n    width: rect.width * scale.x,\n    height: rect.height * scale.y,\n    x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n    y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n  };\n}\n\nfunction getClientRects(element) {\n  return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n  // If <html> has a CSS width greater than the viewport, then this will be\n  // incorrect for RTL.\n  return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n  const html = getDocumentElement(element);\n  const scroll = getNodeScroll(element);\n  const body = element.ownerDocument.body;\n  const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n  const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n  let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n  const y = -scroll.scrollTop;\n  if (getComputedStyle(body).direction === 'rtl') {\n    x += max(html.clientWidth, body.clientWidth) - width;\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\nfunction getViewportRect(element, strategy) {\n  const win = getWindow(element);\n  const html = getDocumentElement(element);\n  const visualViewport = win.visualViewport;\n  let width = html.clientWidth;\n  let height = html.clientHeight;\n  let x = 0;\n  let y = 0;\n  if (visualViewport) {\n    width = visualViewport.width;\n    height = visualViewport.height;\n    const visualViewportBased = isWebKit();\n    if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n      x = visualViewport.offsetLeft;\n      y = visualViewport.offsetTop;\n    }\n  }\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n  const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n  const top = clientRect.top + element.clientTop;\n  const left = clientRect.left + element.clientLeft;\n  const scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n  const width = element.clientWidth * scale.x;\n  const height = element.clientHeight * scale.y;\n  const x = left * scale.x;\n  const y = top * scale.y;\n  return {\n    width,\n    height,\n    x,\n    y\n  };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n  let rect;\n  if (clippingAncestor === 'viewport') {\n    rect = getViewportRect(element, strategy);\n  } else if (clippingAncestor === 'document') {\n    rect = getDocumentRect(getDocumentElement(element));\n  } else if (isElement(clippingAncestor)) {\n    rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n  } else {\n    const visualOffsets = getVisualOffsets(element);\n    rect = {\n      ...clippingAncestor,\n      x: clippingAncestor.x - visualOffsets.x,\n      y: clippingAncestor.y - visualOffsets.y\n    };\n  }\n  return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n  const parentNode = getParentNode(element);\n  if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n    return false;\n  }\n  return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n  const cachedResult = cache.get(element);\n  if (cachedResult) {\n    return cachedResult;\n  }\n  let result = getOverflowAncestors(element, [], false).filter(el => isElement(el) && getNodeName(el) !== 'body');\n  let currentContainingBlockComputedStyle = null;\n  const elementIsFixed = getComputedStyle(element).position === 'fixed';\n  let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n  // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n  while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n    const computedStyle = getComputedStyle(currentNode);\n    const currentNodeIsContaining = isContainingBlock(currentNode);\n    if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n      currentContainingBlockComputedStyle = null;\n    }\n    const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n    if (shouldDropCurrentNode) {\n      // Drop non-containing blocks.\n      result = result.filter(ancestor => ancestor !== currentNode);\n    } else {\n      // Record last containing block for next iteration.\n      currentContainingBlockComputedStyle = computedStyle;\n    }\n    currentNode = getParentNode(currentNode);\n  }\n  cache.set(element, result);\n  return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n  let {\n    element,\n    boundary,\n    rootBoundary,\n    strategy\n  } = _ref;\n  const elementClippingAncestors = boundary === 'clippingAncestors' ? isTopLayer(element) ? [] : getClippingElementAncestors(element, this._c) : [].concat(boundary);\n  const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n  const firstClippingAncestor = clippingAncestors[0];\n  const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n    const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n    accRect.top = max(rect.top, accRect.top);\n    accRect.right = min(rect.right, accRect.right);\n    accRect.bottom = min(rect.bottom, accRect.bottom);\n    accRect.left = max(rect.left, accRect.left);\n    return accRect;\n  }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n  return {\n    width: clippingRect.right - clippingRect.left,\n    height: clippingRect.bottom - clippingRect.top,\n    x: clippingRect.left,\n    y: clippingRect.top\n  };\n}\n\nfunction getDimensions(element) {\n  const {\n    width,\n    height\n  } = getCssDimensions(element);\n  return {\n    width,\n    height\n  };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n  const isOffsetParentAnElement = isHTMLElement(offsetParent);\n  const documentElement = getDocumentElement(offsetParent);\n  const isFixed = strategy === 'fixed';\n  const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n  let scroll = {\n    scrollLeft: 0,\n    scrollTop: 0\n  };\n  const offsets = createCoords(0);\n  if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n    if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n      scroll = getNodeScroll(offsetParent);\n    }\n    if (isOffsetParentAnElement) {\n      const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n      offsets.x = offsetRect.x + offsetParent.clientLeft;\n      offsets.y = offsetRect.y + offsetParent.clientTop;\n    } else if (documentElement) {\n      offsets.x = getWindowScrollBarX(documentElement);\n    }\n  }\n  const x = rect.left + scroll.scrollLeft - offsets.x;\n  const y = rect.top + scroll.scrollTop - offsets.y;\n  return {\n    x,\n    y,\n    width: rect.width,\n    height: rect.height\n  };\n}\n\nfunction isStaticPositioned(element) {\n  return getComputedStyle(element).position === 'static';\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n  if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n    return null;\n  }\n  if (polyfill) {\n    return polyfill(element);\n  }\n  return element.offsetParent;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n  const win = getWindow(element);\n  if (isTopLayer(element)) {\n    return win;\n  }\n  if (!isHTMLElement(element)) {\n    let svgOffsetParent = getParentNode(element);\n    while (svgOffsetParent && !isLastTraversableNode(svgOffsetParent)) {\n      if (isElement(svgOffsetParent) && !isStaticPositioned(svgOffsetParent)) {\n        return svgOffsetParent;\n      }\n      svgOffsetParent = getParentNode(svgOffsetParent);\n    }\n    return win;\n  }\n  let offsetParent = getTrueOffsetParent(element, polyfill);\n  while (offsetParent && isTableElement(offsetParent) && isStaticPositioned(offsetParent)) {\n    offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n  }\n  if (offsetParent && isLastTraversableNode(offsetParent) && isStaticPositioned(offsetParent) && !isContainingBlock(offsetParent)) {\n    return win;\n  }\n  return offsetParent || getContainingBlock(element) || win;\n}\n\nconst getElementRects = async function (data) {\n  const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n  const getDimensionsFn = this.getDimensions;\n  const floatingDimensions = await getDimensionsFn(data.floating);\n  return {\n    reference: getRectRelativeToOffsetParent(data.reference, await getOffsetParentFn(data.floating), data.strategy),\n    floating: {\n      x: 0,\n      y: 0,\n      width: floatingDimensions.width,\n      height: floatingDimensions.height\n    }\n  };\n};\n\nfunction isRTL(element) {\n  return getComputedStyle(element).direction === 'rtl';\n}\n\nconst platform = {\n  convertOffsetParentRelativeRectToViewportRelativeRect,\n  getDocumentElement,\n  getClippingRect,\n  getOffsetParent,\n  getElementRects,\n  getClientRects,\n  getDimensions,\n  getScale,\n  isElement,\n  isRTL\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n  let io = null;\n  let timeoutId;\n  const root = getDocumentElement(element);\n  function cleanup() {\n    var _io;\n    clearTimeout(timeoutId);\n    (_io = io) == null || _io.disconnect();\n    io = null;\n  }\n  function refresh(skip, threshold) {\n    if (skip === void 0) {\n      skip = false;\n    }\n    if (threshold === void 0) {\n      threshold = 1;\n    }\n    cleanup();\n    const {\n      left,\n      top,\n      width,\n      height\n    } = element.getBoundingClientRect();\n    if (!skip) {\n      onMove();\n    }\n    if (!width || !height) {\n      return;\n    }\n    const insetTop = floor(top);\n    const insetRight = floor(root.clientWidth - (left + width));\n    const insetBottom = floor(root.clientHeight - (top + height));\n    const insetLeft = floor(left);\n    const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n    const options = {\n      rootMargin,\n      threshold: max(0, min(1, threshold)) || 1\n    };\n    let isFirstUpdate = true;\n    function handleObserve(entries) {\n      const ratio = entries[0].intersectionRatio;\n      if (ratio !== threshold) {\n        if (!isFirstUpdate) {\n          return refresh();\n        }\n        if (!ratio) {\n          // If the reference is clipped, the ratio is 0. Throttle the refresh\n          // to prevent an infinite loop of updates.\n          timeoutId = setTimeout(() => {\n            refresh(false, 1e-7);\n          }, 1000);\n        } else {\n          refresh(false, ratio);\n        }\n      }\n      isFirstUpdate = false;\n    }\n\n    // Older browsers don't support a `document` as the root and will throw an\n    // error.\n    try {\n      io = new IntersectionObserver(handleObserve, {\n        ...options,\n        // Handle <iframe>s\n        root: root.ownerDocument\n      });\n    } catch (e) {\n      io = new IntersectionObserver(handleObserve, options);\n    }\n    io.observe(element);\n  }\n  refresh(true);\n  return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n  if (options === void 0) {\n    options = {};\n  }\n  const {\n    ancestorScroll = true,\n    ancestorResize = true,\n    elementResize = typeof ResizeObserver === 'function',\n    layoutShift = typeof IntersectionObserver === 'function',\n    animationFrame = false\n  } = options;\n  const referenceEl = unwrapElement(reference);\n  const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n  ancestors.forEach(ancestor => {\n    ancestorScroll && ancestor.addEventListener('scroll', update, {\n      passive: true\n    });\n    ancestorResize && ancestor.addEventListener('resize', update);\n  });\n  const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n  let reobserveFrame = -1;\n  let resizeObserver = null;\n  if (elementResize) {\n    resizeObserver = new ResizeObserver(_ref => {\n      let [firstEntry] = _ref;\n      if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n        // Prevent update loops when using the `size` middleware.\n        // https://github.com/floating-ui/floating-ui/issues/1740\n        resizeObserver.unobserve(floating);\n        cancelAnimationFrame(reobserveFrame);\n        reobserveFrame = requestAnimationFrame(() => {\n          var _resizeObserver;\n          (_resizeObserver = resizeObserver) == null || _resizeObserver.observe(floating);\n        });\n      }\n      update();\n    });\n    if (referenceEl && !animationFrame) {\n      resizeObserver.observe(referenceEl);\n    }\n    resizeObserver.observe(floating);\n  }\n  let frameId;\n  let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n  if (animationFrame) {\n    frameLoop();\n  }\n  function frameLoop() {\n    const nextRefRect = getBoundingClientRect(reference);\n    if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n      update();\n    }\n    prevRefRect = nextRefRect;\n    frameId = requestAnimationFrame(frameLoop);\n  }\n  update();\n  return () => {\n    var _resizeObserver2;\n    ancestors.forEach(ancestor => {\n      ancestorScroll && ancestor.removeEventListener('scroll', update);\n      ancestorResize && ancestor.removeEventListener('resize', update);\n    });\n    cleanupIo == null || cleanupIo();\n    (_resizeObserver2 = resizeObserver) == null || _resizeObserver2.disconnect();\n    resizeObserver = null;\n    if (animationFrame) {\n      cancelAnimationFrame(frameId);\n    }\n  };\n}\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nconst detectOverflow = detectOverflow$1;\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = offset$1;\n\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = autoPlacement$1;\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = shift$1;\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = flip$1;\n\n/**\n * Provides data that allows you to change the size of the floating element \u2014\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = size$1;\n\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = hide$1;\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = arrow$1;\n\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = inline$1;\n\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = limitShift$1;\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n */\nconst computePosition = (reference, floating, options) => {\n  // This caches the expensive `getClippingElementAncestors` function so that\n  // multiple lifecycle resets re-use the same result. It only lives for a\n  // single call. If other functions become expensive, we can add them as well.\n  const cache = new Map();\n  const mergedOptions = {\n    platform,\n    ...options\n  };\n  const platformWithCache = {\n    ...mergedOptions.platform,\n    _c: cache\n  };\n  return computePosition$1(reference, floating, {\n    ...mergedOptions,\n    platform: platformWithCache\n  });\n};\n\nexport { arrow, autoPlacement, autoUpdate, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, platform, shift, size };\n", "\"use client\";\nimport {\n  createDialogComponent,\n  useDialog\n} from \"./CAGBPNDP.js\";\nimport {\n  PopoverScopedContextProvider,\n  usePopoverProviderContext\n} from \"./Y67KZUMI.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useEvent,\n  usePortalRef,\n  useSafeLayoutEffect,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/popover/popover.tsx\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport {\n  arrow,\n  autoUpdate,\n  computePosition,\n  flip,\n  limitShift,\n  offset,\n  shift,\n  size\n} from \"@floating-ui/dom\";\nimport { useRef, useState } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction createDOMRect(x = 0, y = 0, width = 0, height = 0) {\n  if (typeof DOMRect === \"function\") {\n    return new DOMRect(x, y, width, height);\n  }\n  const rect = {\n    x,\n    y,\n    width,\n    height,\n    top: y,\n    right: x + width,\n    bottom: y + height,\n    left: x\n  };\n  return __spreadProps(__spreadValues({}, rect), { toJSON: () => rect });\n}\nfunction getDOMRect(anchorRect) {\n  if (!anchorRect) return createDOMRect();\n  const { x, y, width, height } = anchorRect;\n  return createDOMRect(x, y, width, height);\n}\nfunction getAnchorElement(anchorElement, getAnchorRect) {\n  const contextElement = anchorElement || void 0;\n  return {\n    contextElement,\n    getBoundingClientRect: () => {\n      const anchor = anchorElement;\n      const anchorRect = getAnchorRect == null ? void 0 : getAnchorRect(anchor);\n      if (anchorRect || !anchor) {\n        return getDOMRect(anchorRect);\n      }\n      return anchor.getBoundingClientRect();\n    }\n  };\n}\nfunction isValidPlacement(flip2) {\n  return /^(?:top|bottom|left|right)(?:-(?:start|end))?$/.test(flip2);\n}\nfunction roundByDPR(value) {\n  const dpr = window.devicePixelRatio || 1;\n  return Math.round(value * dpr) / dpr;\n}\nfunction getOffsetMiddleware(arrowElement, props) {\n  return offset(({ placement }) => {\n    var _a;\n    const arrowOffset = ((arrowElement == null ? void 0 : arrowElement.clientHeight) || 0) / 2;\n    const finalGutter = typeof props.gutter === \"number\" ? props.gutter + arrowOffset : (_a = props.gutter) != null ? _a : arrowOffset;\n    const hasAlignment = !!placement.split(\"-\")[1];\n    return {\n      crossAxis: !hasAlignment ? props.shift : void 0,\n      mainAxis: finalGutter,\n      alignmentAxis: props.shift\n    };\n  });\n}\nfunction getFlipMiddleware(props) {\n  if (props.flip === false) return;\n  const fallbackPlacements = typeof props.flip === \"string\" ? props.flip.split(\" \") : void 0;\n  invariant(\n    !fallbackPlacements || fallbackPlacements.every(isValidPlacement),\n    process.env.NODE_ENV !== \"production\" && \"`flip` expects a spaced-delimited list of placements\"\n  );\n  return flip({\n    padding: props.overflowPadding,\n    fallbackPlacements\n  });\n}\nfunction getShiftMiddleware(props) {\n  if (!props.slide && !props.overlap) return;\n  return shift({\n    mainAxis: props.slide,\n    crossAxis: props.overlap,\n    padding: props.overflowPadding,\n    limiter: limitShift()\n  });\n}\nfunction getSizeMiddleware(props) {\n  return size({\n    padding: props.overflowPadding,\n    apply({ elements, availableWidth, availableHeight, rects }) {\n      const wrapper = elements.floating;\n      const referenceWidth = Math.round(rects.reference.width);\n      availableWidth = Math.floor(availableWidth);\n      availableHeight = Math.floor(availableHeight);\n      wrapper.style.setProperty(\n        \"--popover-anchor-width\",\n        `${referenceWidth}px`\n      );\n      wrapper.style.setProperty(\n        \"--popover-available-width\",\n        `${availableWidth}px`\n      );\n      wrapper.style.setProperty(\n        \"--popover-available-height\",\n        `${availableHeight}px`\n      );\n      if (props.sameWidth) {\n        wrapper.style.width = `${referenceWidth}px`;\n      }\n      if (props.fitViewport) {\n        wrapper.style.maxWidth = `${availableWidth}px`;\n        wrapper.style.maxHeight = `${availableHeight}px`;\n      }\n    }\n  });\n}\nfunction getArrowMiddleware(arrowElement, props) {\n  if (!arrowElement) return;\n  return arrow({\n    element: arrowElement,\n    padding: props.arrowPadding\n  });\n}\nvar usePopover = createHook(\n  function usePopover2(_a) {\n    var _b = _a, {\n      store,\n      modal = false,\n      portal = !!modal,\n      preserveTabOrder = true,\n      autoFocusOnShow = true,\n      wrapperProps,\n      fixed = false,\n      flip: flip2 = true,\n      shift: shift2 = 0,\n      slide = true,\n      overlap = false,\n      sameWidth = false,\n      fitViewport = false,\n      gutter,\n      arrowPadding = 4,\n      overflowPadding = 8,\n      getAnchorRect,\n      updatePosition\n    } = _b, props = __objRest(_b, [\n      \"store\",\n      \"modal\",\n      \"portal\",\n      \"preserveTabOrder\",\n      \"autoFocusOnShow\",\n      \"wrapperProps\",\n      \"fixed\",\n      \"flip\",\n      \"shift\",\n      \"slide\",\n      \"overlap\",\n      \"sameWidth\",\n      \"fitViewport\",\n      \"gutter\",\n      \"arrowPadding\",\n      \"overflowPadding\",\n      \"getAnchorRect\",\n      \"updatePosition\"\n    ]);\n    const context = usePopoverProviderContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"Popover must receive a `store` prop or be wrapped in a PopoverProvider component.\"\n    );\n    const arrowElement = store.useState(\"arrowElement\");\n    const anchorElement = store.useState(\"anchorElement\");\n    const disclosureElement = store.useState(\"disclosureElement\");\n    const popoverElement = store.useState(\"popoverElement\");\n    const contentElement = store.useState(\"contentElement\");\n    const placement = store.useState(\"placement\");\n    const mounted = store.useState(\"mounted\");\n    const rendered = store.useState(\"rendered\");\n    const defaultArrowElementRef = useRef(null);\n    const [positioned, setPositioned] = useState(false);\n    const { portalRef, domReady } = usePortalRef(portal, props.portalRef);\n    const getAnchorRectProp = useEvent(getAnchorRect);\n    const updatePositionProp = useEvent(updatePosition);\n    const hasCustomUpdatePosition = !!updatePosition;\n    useSafeLayoutEffect(() => {\n      if (!(popoverElement == null ? void 0 : popoverElement.isConnected)) return;\n      popoverElement.style.setProperty(\n        \"--popover-overflow-padding\",\n        `${overflowPadding}px`\n      );\n      const anchor = getAnchorElement(anchorElement, getAnchorRectProp);\n      const updatePosition2 = async () => {\n        if (!mounted) return;\n        if (!arrowElement) {\n          defaultArrowElementRef.current = defaultArrowElementRef.current || document.createElement(\"div\");\n        }\n        const arrow2 = arrowElement || defaultArrowElementRef.current;\n        const middleware = [\n          getOffsetMiddleware(arrow2, { gutter, shift: shift2 }),\n          getFlipMiddleware({ flip: flip2, overflowPadding }),\n          getShiftMiddleware({ slide, shift: shift2, overlap, overflowPadding }),\n          getArrowMiddleware(arrow2, { arrowPadding }),\n          getSizeMiddleware({\n            sameWidth,\n            fitViewport,\n            overflowPadding\n          })\n        ];\n        const pos = await computePosition(anchor, popoverElement, {\n          placement,\n          strategy: fixed ? \"fixed\" : \"absolute\",\n          middleware\n        });\n        store == null ? void 0 : store.setState(\"currentPlacement\", pos.placement);\n        setPositioned(true);\n        const x = roundByDPR(pos.x);\n        const y = roundByDPR(pos.y);\n        Object.assign(popoverElement.style, {\n          top: \"0\",\n          left: \"0\",\n          transform: `translate3d(${x}px,${y}px,0)`\n        });\n        if (arrow2 && pos.middlewareData.arrow) {\n          const { x: arrowX, y: arrowY } = pos.middlewareData.arrow;\n          const side = pos.placement.split(\"-\")[0];\n          const centerX = arrow2.clientWidth / 2;\n          const centerY = arrow2.clientHeight / 2;\n          const originX = arrowX != null ? arrowX + centerX : -centerX;\n          const originY = arrowY != null ? arrowY + centerY : -centerY;\n          popoverElement.style.setProperty(\n            \"--popover-transform-origin\",\n            {\n              top: `${originX}px calc(100% + ${centerY}px)`,\n              bottom: `${originX}px ${-centerY}px`,\n              left: `calc(100% + ${centerX}px) ${originY}px`,\n              right: `${-centerX}px ${originY}px`\n            }[side]\n          );\n          Object.assign(arrow2.style, {\n            left: arrowX != null ? `${arrowX}px` : \"\",\n            top: arrowY != null ? `${arrowY}px` : \"\",\n            [side]: \"100%\"\n          });\n        }\n      };\n      const update = async () => {\n        if (hasCustomUpdatePosition) {\n          await updatePositionProp({ updatePosition: updatePosition2 });\n          setPositioned(true);\n        } else {\n          await updatePosition2();\n        }\n      };\n      const cancelAutoUpdate = autoUpdate(anchor, popoverElement, update, {\n        // JSDOM doesn't support ResizeObserver\n        elementResize: typeof ResizeObserver === \"function\"\n      });\n      return () => {\n        setPositioned(false);\n        cancelAutoUpdate();\n      };\n    }, [\n      store,\n      rendered,\n      popoverElement,\n      arrowElement,\n      anchorElement,\n      popoverElement,\n      placement,\n      mounted,\n      domReady,\n      fixed,\n      flip2,\n      shift2,\n      slide,\n      overlap,\n      sameWidth,\n      fitViewport,\n      gutter,\n      arrowPadding,\n      overflowPadding,\n      getAnchorRectProp,\n      hasCustomUpdatePosition,\n      updatePositionProp\n    ]);\n    useSafeLayoutEffect(() => {\n      if (!mounted) return;\n      if (!domReady) return;\n      if (!(popoverElement == null ? void 0 : popoverElement.isConnected)) return;\n      if (!(contentElement == null ? void 0 : contentElement.isConnected)) return;\n      const applyZIndex = () => {\n        popoverElement.style.zIndex = getComputedStyle(contentElement).zIndex;\n      };\n      applyZIndex();\n      let raf = requestAnimationFrame(() => {\n        raf = requestAnimationFrame(applyZIndex);\n      });\n      return () => cancelAnimationFrame(raf);\n    }, [mounted, domReady, popoverElement, contentElement]);\n    const position = fixed ? \"fixed\" : \"absolute\";\n    props = useWrapElement(\n      props,\n      (element) => /* @__PURE__ */ jsx(\n        \"div\",\n        __spreadProps(__spreadValues({}, wrapperProps), {\n          style: __spreadValues({\n            // https://floating-ui.com/docs/computeposition#initial-layout\n            position,\n            top: 0,\n            left: 0,\n            width: \"max-content\"\n          }, wrapperProps == null ? void 0 : wrapperProps.style),\n          ref: store == null ? void 0 : store.setPopoverElement,\n          children: element\n        })\n      ),\n      [store, position, wrapperProps]\n    );\n    props = useWrapElement(\n      props,\n      (element) => /* @__PURE__ */ jsx(PopoverScopedContextProvider, { value: store, children: element }),\n      [store]\n    );\n    props = __spreadProps(__spreadValues({\n      // data-placing is not part of the public API. We're setting this here so\n      // we can wait for the popover to be positioned before other components\n      // move focus into it. For example, this attribute is observed by the\n      // Combobox component with the autoSelect behavior.\n      \"data-placing\": !positioned || void 0\n    }, props), {\n      style: __spreadValues({\n        position: \"relative\"\n      }, props.style)\n    });\n    props = useDialog(__spreadProps(__spreadValues({\n      store,\n      modal,\n      portal,\n      preserveTabOrder,\n      preserveTabOrderAnchor: disclosureElement || anchorElement,\n      autoFocusOnShow: positioned && autoFocusOnShow\n    }, props), {\n      portalRef\n    }));\n    return props;\n  }\n);\nvar Popover = createDialogComponent(\n  forwardRef(function Popover2(props) {\n    const htmlProps = usePopover(props);\n    return createElement(TagName, htmlProps);\n  }),\n  usePopoverProviderContext\n);\n\nexport {\n  usePopover,\n  Popover\n};\n", "\"use client\";\nimport {\n  getElementPolygon,\n  getEventPoint,\n  isPointInPolygon\n} from \"./X7QOZUD3.js\";\nimport {\n  HovercardScopedContextProvider,\n  useHovercardProviderContext\n} from \"./7Z7JH52O.js\";\nimport {\n  usePopover\n} from \"./C6DAL6ZN.js\";\nimport {\n  createDialogComponent\n} from \"./CAGBPNDP.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useBooleanEvent,\n  useEvent,\n  useIsMouseMoving,\n  useLiveRef,\n  useMergeRefs,\n  usePortalRef,\n  useSafeLayoutEffect,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/hovercard/hovercard.tsx\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport {\n  chain,\n  invariant,\n  isFalsyBooleanCallback\n} from \"@ariakit/core/utils/misc\";\nimport { sync } from \"@ariakit/core/utils/store\";\nimport {\n  createContext,\n  useCallback,\n  useContext,\n  useEffect,\n  useRef,\n  useState\n} from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isMovingOnHovercard(target, card, anchor, nested) {\n  if (hasFocusWithin(card)) return true;\n  if (!target) return false;\n  if (contains(card, target)) return true;\n  if (anchor && contains(anchor, target)) return true;\n  if (nested == null ? void 0 : nested.some((card2) => isMovingOnHovercard(target, card2, anchor))) {\n    return true;\n  }\n  return false;\n}\nfunction useAutoFocusOnHide(_a) {\n  var _b = _a, {\n    store\n  } = _b, props = __objRest(_b, [\n    \"store\"\n  ]);\n  const [autoFocusOnHide, setAutoFocusOnHide] = useState(false);\n  const mounted = store.useState(\"mounted\");\n  useEffect(() => {\n    if (!mounted) {\n      setAutoFocusOnHide(false);\n    }\n  }, [mounted]);\n  const onFocusProp = props.onFocus;\n  const onFocus = useEvent((event) => {\n    onFocusProp == null ? void 0 : onFocusProp(event);\n    if (event.defaultPrevented) return;\n    setAutoFocusOnHide(true);\n  });\n  const finalFocusRef = useRef(null);\n  useEffect(() => {\n    return sync(store, [\"anchorElement\"], (state) => {\n      finalFocusRef.current = state.anchorElement;\n    });\n  }, []);\n  props = __spreadProps(__spreadValues({\n    autoFocusOnHide,\n    finalFocus: finalFocusRef\n  }, props), {\n    onFocus\n  });\n  return props;\n}\nvar NestedHovercardContext = createContext(null);\nvar useHovercard = createHook(\n  function useHovercard2(_a) {\n    var _b = _a, {\n      store,\n      modal = false,\n      portal = !!modal,\n      hideOnEscape = true,\n      hideOnHoverOutside = true,\n      disablePointerEventsOnApproach = !!hideOnHoverOutside\n    } = _b, props = __objRest(_b, [\n      \"store\",\n      \"modal\",\n      \"portal\",\n      \"hideOnEscape\",\n      \"hideOnHoverOutside\",\n      \"disablePointerEventsOnApproach\"\n    ]);\n    const context = useHovercardProviderContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"Hovercard must receive a `store` prop or be wrapped in a HovercardProvider component.\"\n    );\n    const ref = useRef(null);\n    const [nestedHovercards, setNestedHovercards] = useState([]);\n    const hideTimeoutRef = useRef(0);\n    const enterPointRef = useRef(null);\n    const { portalRef, domReady } = usePortalRef(portal, props.portalRef);\n    const isMouseMoving = useIsMouseMoving();\n    const mayHideOnHoverOutside = !!hideOnHoverOutside;\n    const hideOnHoverOutsideProp = useBooleanEvent(hideOnHoverOutside);\n    const mayDisablePointerEvents = !!disablePointerEventsOnApproach;\n    const disablePointerEventsProp = useBooleanEvent(\n      disablePointerEventsOnApproach\n    );\n    const open = store.useState(\"open\");\n    const mounted = store.useState(\"mounted\");\n    useEffect(() => {\n      if (!domReady) return;\n      if (!mounted) return;\n      if (!mayHideOnHoverOutside && !mayDisablePointerEvents) return;\n      const element = ref.current;\n      if (!element) return;\n      const onMouseMove = (event) => {\n        if (!store) return;\n        if (!isMouseMoving()) return;\n        const { anchorElement, hideTimeout, timeout } = store.getState();\n        const enterPoint = enterPointRef.current;\n        const [target] = event.composedPath();\n        const anchor = anchorElement;\n        if (isMovingOnHovercard(target, element, anchor, nestedHovercards)) {\n          enterPointRef.current = target && anchor && contains(anchor, target) ? getEventPoint(event) : null;\n          window.clearTimeout(hideTimeoutRef.current);\n          hideTimeoutRef.current = 0;\n          return;\n        }\n        if (hideTimeoutRef.current) return;\n        if (enterPoint) {\n          const currentPoint = getEventPoint(event);\n          const polygon = getElementPolygon(element, enterPoint);\n          if (isPointInPolygon(currentPoint, polygon)) {\n            enterPointRef.current = currentPoint;\n            if (!disablePointerEventsProp(event)) return;\n            event.preventDefault();\n            event.stopPropagation();\n            return;\n          }\n        }\n        if (!hideOnHoverOutsideProp(event)) return;\n        hideTimeoutRef.current = window.setTimeout(() => {\n          hideTimeoutRef.current = 0;\n          store == null ? void 0 : store.hide();\n        }, hideTimeout != null ? hideTimeout : timeout);\n      };\n      return chain(\n        addGlobalEventListener(\"mousemove\", onMouseMove, true),\n        () => clearTimeout(hideTimeoutRef.current)\n      );\n    }, [\n      store,\n      isMouseMoving,\n      domReady,\n      mounted,\n      mayHideOnHoverOutside,\n      mayDisablePointerEvents,\n      nestedHovercards,\n      disablePointerEventsProp,\n      hideOnHoverOutsideProp\n    ]);\n    useEffect(() => {\n      if (!domReady) return;\n      if (!mounted) return;\n      if (!mayDisablePointerEvents) return;\n      const disableEvent = (event) => {\n        const element = ref.current;\n        if (!element) return;\n        const enterPoint = enterPointRef.current;\n        if (!enterPoint) return;\n        const polygon = getElementPolygon(element, enterPoint);\n        if (isPointInPolygon(getEventPoint(event), polygon)) {\n          if (!disablePointerEventsProp(event)) return;\n          event.preventDefault();\n          event.stopPropagation();\n        }\n      };\n      return chain(\n        // Note: we may need to add pointer events here in the future.\n        addGlobalEventListener(\"mouseenter\", disableEvent, true),\n        addGlobalEventListener(\"mouseover\", disableEvent, true),\n        addGlobalEventListener(\"mouseout\", disableEvent, true),\n        addGlobalEventListener(\"mouseleave\", disableEvent, true)\n      );\n    }, [domReady, mounted, mayDisablePointerEvents, disablePointerEventsProp]);\n    useEffect(() => {\n      if (!domReady) return;\n      if (open) return;\n      store == null ? void 0 : store.setAutoFocusOnShow(false);\n    }, [store, domReady, open]);\n    const openRef = useLiveRef(open);\n    useEffect(() => {\n      if (!domReady) return;\n      return () => {\n        if (!openRef.current) {\n          store == null ? void 0 : store.setAutoFocusOnShow(false);\n        }\n      };\n    }, [store, domReady]);\n    const registerOnParent = useContext(NestedHovercardContext);\n    useSafeLayoutEffect(() => {\n      if (modal) return;\n      if (!portal) return;\n      if (!mounted) return;\n      if (!domReady) return;\n      const element = ref.current;\n      if (!element) return;\n      return registerOnParent == null ? void 0 : registerOnParent(element);\n    }, [modal, portal, mounted, domReady]);\n    const registerNestedHovercard = useCallback(\n      (element) => {\n        setNestedHovercards((prevElements) => [...prevElements, element]);\n        const parentUnregister = registerOnParent == null ? void 0 : registerOnParent(element);\n        return () => {\n          setNestedHovercards(\n            (prevElements) => prevElements.filter((item) => item !== element)\n          );\n          parentUnregister == null ? void 0 : parentUnregister();\n        };\n      },\n      [registerOnParent]\n    );\n    props = useWrapElement(\n      props,\n      (element) => /* @__PURE__ */ jsx(HovercardScopedContextProvider, { value: store, children: /* @__PURE__ */ jsx(NestedHovercardContext.Provider, { value: registerNestedHovercard, children: element }) }),\n      [store, registerNestedHovercard]\n    );\n    props = __spreadProps(__spreadValues({}, props), {\n      ref: useMergeRefs(ref, props.ref)\n    });\n    props = useAutoFocusOnHide(__spreadValues({ store }, props));\n    const autoFocusOnShow = store.useState(\n      (state) => modal || state.autoFocusOnShow\n    );\n    props = usePopover(__spreadProps(__spreadValues({\n      store,\n      modal,\n      portal,\n      autoFocusOnShow\n    }, props), {\n      portalRef,\n      hideOnEscape(event) {\n        if (isFalsyBooleanCallback(hideOnEscape, event)) return false;\n        requestAnimationFrame(() => {\n          requestAnimationFrame(() => {\n            store == null ? void 0 : store.hide();\n          });\n        });\n        return true;\n      }\n    }));\n    return props;\n  }\n);\nvar Hovercard = createDialogComponent(\n  forwardRef(function Hovercard2(props) {\n    const htmlProps = useHovercard(props);\n    return createElement(TagName, htmlProps);\n  }),\n  useHovercardProviderContext\n);\n\nexport {\n  useHovercard,\n  Hovercard\n};\n", "\"use client\";\nimport {\n  useHovercardProviderContext\n} from \"./7Z7JH52O.js\";\nimport {\n  useFocusable\n} from \"./OE2EFRVA.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useBooleanEvent,\n  useEvent,\n  useIsMouseMoving,\n  useMergeRefs\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/hovercard/hovercard-anchor.tsx\nimport { addGlobalEventListener } from \"@ariakit/core/utils/events\";\nimport { disabledFromProps, invariant } from \"@ariakit/core/utils/misc\";\nimport { useCallback, useEffect, useRef } from \"react\";\nvar TagName = \"a\";\nvar useHovercardAnchor = createHook(\n  function useHovercardAnchor2(_a) {\n    var _b = _a, { store, showOnHover = true } = _b, props = __objRest(_b, [\"store\", \"showOnHover\"]);\n    const context = useHovercardProviderContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"HovercardAnchor must receive a `store` prop or be wrapped in a HovercardProvider component.\"\n    );\n    const disabled = disabledFromProps(props);\n    const showTimeoutRef = useRef(0);\n    useEffect(() => () => window.clearTimeout(showTimeoutRef.current), []);\n    useEffect(() => {\n      const onMouseLeave = (event) => {\n        if (!store) return;\n        const { anchorElement } = store.getState();\n        if (!anchorElement) return;\n        if (event.target !== anchorElement) return;\n        window.clearTimeout(showTimeoutRef.current);\n        showTimeoutRef.current = 0;\n      };\n      return addGlobalEventListener(\"mouseleave\", onMouseLeave, true);\n    }, [store]);\n    const onMouseMoveProp = props.onMouseMove;\n    const showOnHoverProp = useBooleanEvent(showOnHover);\n    const isMouseMoving = useIsMouseMoving();\n    const onMouseMove = useEvent((event) => {\n      onMouseMoveProp == null ? void 0 : onMouseMoveProp(event);\n      if (disabled) return;\n      if (!store) return;\n      if (event.defaultPrevented) return;\n      if (showTimeoutRef.current) return;\n      if (!isMouseMoving()) return;\n      if (!showOnHoverProp(event)) return;\n      const element = event.currentTarget;\n      store.setAnchorElement(element);\n      store.setDisclosureElement(element);\n      const { showTimeout, timeout } = store.getState();\n      const showHovercard = () => {\n        showTimeoutRef.current = 0;\n        if (!isMouseMoving()) return;\n        store == null ? void 0 : store.setAnchorElement(element);\n        store == null ? void 0 : store.show();\n        queueMicrotask(() => {\n          store == null ? void 0 : store.setDisclosureElement(element);\n        });\n      };\n      const timeoutMs = showTimeout != null ? showTimeout : timeout;\n      if (timeoutMs === 0) {\n        showHovercard();\n      } else {\n        showTimeoutRef.current = window.setTimeout(showHovercard, timeoutMs);\n      }\n    });\n    const onClickProp = props.onClick;\n    const onClick = useEvent((event) => {\n      onClickProp == null ? void 0 : onClickProp(event);\n      if (!store) return;\n      window.clearTimeout(showTimeoutRef.current);\n      showTimeoutRef.current = 0;\n    });\n    const ref = useCallback(\n      (element) => {\n        if (!store) return;\n        const { anchorElement } = store.getState();\n        if (anchorElement == null ? void 0 : anchorElement.isConnected) return;\n        store.setAnchorElement(element);\n      },\n      [store]\n    );\n    props = __spreadProps(__spreadValues({}, props), {\n      ref: useMergeRefs(ref, props.ref),\n      onMouseMove,\n      onClick\n    });\n    props = useFocusable(props);\n    return props;\n  }\n);\nvar HovercardAnchor = forwardRef(function HovercardAnchor2(props) {\n  const htmlProps = useHovercardAnchor(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useHovercardAnchor,\n  HovercardAnchor\n};\n", "\"use client\";\nimport {\n  createDialogStore\n} from \"./FZZ2AVHF.js\";\nimport {\n  createStore,\n  mergeStore,\n  omit,\n  throwOnConflictingProps\n} from \"./BCALMBPZ.js\";\nimport {\n  defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/popover/popover-store.ts\nfunction createPopoverStore(_a = {}) {\n  var _b = _a, {\n    popover: otherPopover\n  } = _b, props = __objRest(_b, [\n    \"popover\"\n  ]);\n  const store = mergeStore(\n    props.store,\n    omit(otherPopover, [\n      \"arrowElement\",\n      \"anchorElement\",\n      \"contentElement\",\n      \"popoverElement\",\n      \"disclosureElement\"\n    ])\n  );\n  throwOnConflictingProps(props, store);\n  const syncState = store == null ? void 0 : store.getState();\n  const dialog = createDialogStore(__spreadProps(__spreadValues({}, props), { store }));\n  const placement = defaultValue(\n    props.placement,\n    syncState == null ? void 0 : syncState.placement,\n    \"bottom\"\n  );\n  const initialState = __spreadProps(__spreadValues({}, dialog.getState()), {\n    placement,\n    currentPlacement: placement,\n    anchorElement: defaultValue(syncState == null ? void 0 : syncState.anchorElement, null),\n    popoverElement: defaultValue(syncState == null ? void 0 : syncState.popoverElement, null),\n    arrowElement: defaultValue(syncState == null ? void 0 : syncState.arrowElement, null),\n    rendered: Symbol(\"rendered\")\n  });\n  const popover = createStore(initialState, dialog, store);\n  return __spreadProps(__spreadValues(__spreadValues({}, dialog), popover), {\n    setAnchorElement: (element) => popover.setState(\"anchorElement\", element),\n    setPopoverElement: (element) => popover.setState(\"popoverElement\", element),\n    setArrowElement: (element) => popover.setState(\"arrowElement\", element),\n    render: () => popover.setState(\"rendered\", Symbol(\"rendered\"))\n  });\n}\n\nexport {\n  createPopoverStore\n};\n", "\"use client\";\nimport {\n  useDialogStoreProps\n} from \"./Y2U4BRIM.js\";\nimport {\n  useStore,\n  useStoreProps\n} from \"./RTNCFSKZ.js\";\nimport {\n  useUpdateEffect\n} from \"./5GGHRIN3.js\";\n\n// src/popover/popover-store.ts\nimport * as Core from \"@ariakit/core/popover/popover-store\";\nfunction usePopoverStoreProps(store, update, props) {\n  useUpdateEffect(update, [props.popover]);\n  useStoreProps(store, props, \"placement\");\n  return useDialogStoreProps(store, update, props);\n}\nfunction usePopoverStore(props = {}) {\n  const [store, update] = useStore(Core.createPopoverStore, props);\n  return usePopoverStoreProps(store, update, props);\n}\n\nexport {\n  usePopoverStoreProps,\n  usePopoverStore\n};\n", "\"use client\";\nimport {\n  createPopoverStore\n} from \"./ME2CUF3F.js\";\nimport {\n  createStore\n} from \"./BCALMBPZ.js\";\nimport {\n  defaultValue\n} from \"./PBFD2E7P.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/hovercard/hovercard-store.ts\nfunction createHovercardStore(props = {}) {\n  var _a;\n  const syncState = (_a = props.store) == null ? void 0 : _a.getState();\n  const popover = createPopoverStore(__spreadProps(__spreadValues({}, props), {\n    placement: defaultValue(\n      props.placement,\n      syncState == null ? void 0 : syncState.placement,\n      \"bottom\"\n    )\n  }));\n  const timeout = defaultValue(props.timeout, syncState == null ? void 0 : syncState.timeout, 500);\n  const initialState = __spreadProps(__spreadValues({}, popover.getState()), {\n    timeout,\n    showTimeout: defaultValue(props.showTimeout, syncState == null ? void 0 : syncState.showTimeout),\n    hideTimeout: defaultValue(props.hideTimeout, syncState == null ? void 0 : syncState.hideTimeout),\n    autoFocusOnShow: defaultValue(syncState == null ? void 0 : syncState.autoFocusOnShow, false)\n  });\n  const hovercard = createStore(initialState, popover, props.store);\n  return __spreadProps(__spreadValues(__spreadValues({}, popover), hovercard), {\n    setAutoFocusOnShow: (value) => hovercard.setState(\"autoFocusOnShow\", value)\n  });\n}\n\nexport {\n  createHovercardStore\n};\n", "\"use client\";\nimport {\n  usePopoverStoreProps\n} from \"./RUY5BUJG.js\";\nimport {\n  useStore,\n  useStoreProps\n} from \"./RTNCFSKZ.js\";\n\n// src/hovercard/hovercard-store.ts\nimport * as Core from \"@ariakit/core/hovercard/hovercard-store\";\nfunction useHovercardStoreProps(store, update, props) {\n  useStoreProps(store, props, \"timeout\");\n  useStoreProps(store, props, \"showTimeout\");\n  useStoreProps(store, props, \"hideTimeout\");\n  return usePopoverStoreProps(store, update, props);\n}\nfunction useHovercardStore(props = {}) {\n  const [store, update] = useStore(Core.createHovercardStore, props);\n  return useHovercardStoreProps(store, update, props);\n}\n\nexport {\n  useHovercardStoreProps,\n  useHovercardStore\n};\n", "\"use client\";\nimport {\n  CompositeContextProvider,\n  CompositeScopedContextProvider\n} from \"./APTFW6PT.js\";\nimport {\n  createStoreContext\n} from \"./VOQWLFSQ.js\";\n\n// src/menubar/menubar-context.tsx\nimport { createContext } from \"react\";\nvar menubar = createStoreContext(\n  [CompositeContextProvider],\n  [CompositeScopedContextProvider]\n);\nvar useMenubarContext = menubar.useContext;\nvar useMenubarScopedContext = menubar.useScopedContext;\nvar useMenubarProviderContext = menubar.useProviderContext;\nvar MenubarContextProvider = menubar.ContextProvider;\nvar MenubarScopedContextProvider = menubar.ScopedContextProvider;\nvar MenuItemCheckedContext = createContext(\n  void 0\n);\n\nexport {\n  useMenubarContext,\n  useMenubarScopedContext,\n  useMenubarProviderContext,\n  MenubarContextProvider,\n  MenubarScopedContextProvider,\n  MenuItemCheckedContext\n};\n", "\"use client\";\nimport {\n  usePopoverProviderContext\n} from \"./Y67KZUMI.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useMergeRefs\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/popover/popover-anchor.tsx\nvar TagName = \"div\";\nvar usePopoverAnchor = createHook(\n  function usePopoverAnchor2(_a) {\n    var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n    const context = usePopoverProviderContext();\n    store = store || context;\n    props = __spreadProps(__spreadValues({}, props), {\n      ref: useMergeRefs(store == null ? void 0 : store.setAnchorElement, props.ref)\n    });\n    return props;\n  }\n);\nvar PopoverAnchor = forwardRef(function PopoverAnchor2(props) {\n  const htmlProps = usePopoverAnchor(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  usePopoverAnchor,\n  PopoverAnchor\n};\n", "\"use client\";\nimport {\n  useCommand\n} from \"./2W3RN7C5.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useMergeRefs,\n  useTagName\n} from \"./5GGHRIN3.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/button/button.tsx\nimport { isButton } from \"@ariakit/core/utils/dom\";\nimport { useEffect, useRef, useState } from \"react\";\nvar TagName = \"button\";\nvar useButton = createHook(\n  function useButton2(props) {\n    const ref = useRef(null);\n    const tagName = useTagName(ref, TagName);\n    const [isNativeButton, setIsNativeButton] = useState(\n      () => !!tagName && isButton({ tagName, type: props.type })\n    );\n    useEffect(() => {\n      if (!ref.current) return;\n      setIsNativeButton(isButton(ref.current));\n    }, []);\n    props = __spreadProps(__spreadValues({\n      role: !isNativeButton && tagName !== \"a\" ? \"button\" : void 0\n    }, props), {\n      ref: useMergeRefs(ref, props.ref)\n    });\n    props = useCommand(props);\n    return props;\n  }\n);\nvar Button = forwardRef(function Button2(props) {\n  const htmlProps = useButton(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useButton,\n  Button\n};\n", "\"use client\";\nimport {\n  useDisclosureProviderContext\n} from \"./ABN76PSX.js\";\nimport {\n  useButton\n} from \"./XCKGTAUF.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useBooleanEvent,\n  useEvent,\n  useMergeRefs,\n  useMetadataProps\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/disclosure/disclosure.tsx\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { useEffect, useRef, useState } from \"react\";\nvar TagName = \"button\";\nvar symbol = Symbol(\"disclosure\");\nvar useDisclosure = createHook(\n  function useDisclosure2(_a) {\n    var _b = _a, { store, toggleOnClick = true } = _b, props = __objRest(_b, [\"store\", \"toggleOnClick\"]);\n    const context = useDisclosureProviderContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"Disclosure must receive a `store` prop or be wrapped in a DisclosureProvider component.\"\n    );\n    const ref = useRef(null);\n    const [expanded, setExpanded] = useState(false);\n    const disclosureElement = store.useState(\"disclosureElement\");\n    const open = store.useState(\"open\");\n    useEffect(() => {\n      let isCurrentDisclosure = disclosureElement === ref.current;\n      if (!(disclosureElement == null ? void 0 : disclosureElement.isConnected)) {\n        store == null ? void 0 : store.setDisclosureElement(ref.current);\n        isCurrentDisclosure = true;\n      }\n      setExpanded(open && isCurrentDisclosure);\n    }, [disclosureElement, store, open]);\n    const onClickProp = props.onClick;\n    const toggleOnClickProp = useBooleanEvent(toggleOnClick);\n    const [isDuplicate, metadataProps] = useMetadataProps(props, symbol, true);\n    const onClick = useEvent((event) => {\n      onClickProp == null ? void 0 : onClickProp(event);\n      if (event.defaultPrevented) return;\n      if (isDuplicate) return;\n      if (!toggleOnClickProp(event)) return;\n      store == null ? void 0 : store.setDisclosureElement(event.currentTarget);\n      store == null ? void 0 : store.toggle();\n    });\n    const contentElement = store.useState(\"contentElement\");\n    props = __spreadProps(__spreadValues(__spreadValues({\n      \"aria-expanded\": expanded,\n      \"aria-controls\": contentElement == null ? void 0 : contentElement.id\n    }, metadataProps), props), {\n      ref: useMergeRefs(ref, props.ref),\n      onClick\n    });\n    props = useButton(props);\n    return props;\n  }\n);\nvar Disclosure = forwardRef(function Disclosure2(props) {\n  const htmlProps = useDisclosure(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useDisclosure,\n  Disclosure\n};\n", "\"use client\";\nimport {\n  useDisclosure\n} from \"./NMGNQVTG.js\";\nimport {\n  useDialogProviderContext\n} from \"./T2AZQXQU.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  __objRest,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/dialog/dialog-disclosure.tsx\nimport { getPopupRole } from \"@ariakit/core/utils/dom\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"button\";\nvar useDialogDisclosure = createHook(\n  function useDialogDisclosure2(_a) {\n    var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n    const context = useDialogProviderContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"DialogDisclosure must receive a `store` prop or be wrapped in a DialogProvider component.\"\n    );\n    const contentElement = store.useState(\"contentElement\");\n    props = __spreadValues({\n      \"aria-haspopup\": getPopupRole(contentElement, \"dialog\")\n    }, props);\n    props = useDisclosure(__spreadValues({ store }, props));\n    return props;\n  }\n);\nvar DialogDisclosure = forwardRef(function DialogDisclosure2(props) {\n  const htmlProps = useDialogDisclosure(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useDialogDisclosure,\n  DialogDisclosure\n};\n", "\"use client\";\nimport {\n  usePopoverAnchor\n} from \"./HMCFFQCB.js\";\nimport {\n  useDialogDisclosure\n} from \"./ZTXFEM5L.js\";\nimport {\n  PopoverScopedContextProvider,\n  usePopoverProviderContext\n} from \"./Y67KZUMI.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useEvent,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/popover/popover-disclosure.tsx\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"button\";\nvar usePopoverDisclosure = createHook(function usePopoverDisclosure2(_a) {\n  var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n  const context = usePopoverProviderContext();\n  store = store || context;\n  invariant(\n    store,\n    process.env.NODE_ENV !== \"production\" && \"PopoverDisclosure must receive a `store` prop or be wrapped in a PopoverProvider component.\"\n  );\n  const onClickProp = props.onClick;\n  const onClick = useEvent((event) => {\n    store == null ? void 0 : store.setAnchorElement(event.currentTarget);\n    onClickProp == null ? void 0 : onClickProp(event);\n  });\n  props = useWrapElement(\n    props,\n    (element) => /* @__PURE__ */ jsx(PopoverScopedContextProvider, { value: store, children: element }),\n    [store]\n  );\n  props = __spreadProps(__spreadValues({}, props), {\n    onClick\n  });\n  props = usePopoverAnchor(__spreadValues({ store }, props));\n  props = useDialogDisclosure(__spreadValues({ store }, props));\n  return props;\n});\nvar PopoverDisclosure = forwardRef(function PopoverDisclosure2(props) {\n  const htmlProps = usePopoverDisclosure(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  usePopoverDisclosure,\n  PopoverDisclosure\n};\n", "\"use client\";\nimport {\n  flipItems\n} from \"./5VQZOHHZ.js\";\nimport {\n  useCompositeContext\n} from \"./APTFW6PT.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useEvent\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-typeahead.tsx\nimport {\n  getDocument,\n  isTextField,\n  sortBasedOnDOMPosition\n} from \"@ariakit/core/utils/dom\";\nimport { isSelfTarget } from \"@ariakit/core/utils/events\";\nimport {\n  invariant,\n  normalizeString,\n  removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { useRef } from \"react\";\nvar TagName = \"div\";\nvar chars = \"\";\nfunction clearChars() {\n  chars = \"\";\n}\nfunction isValidTypeaheadEvent(event) {\n  const target = event.target;\n  if (target && isTextField(target)) return false;\n  if (event.key === \" \" && chars.length) return true;\n  return event.key.length === 1 && !event.ctrlKey && !event.altKey && !event.metaKey && /^[\\p{Letter}\\p{Number}]$/u.test(event.key);\n}\nfunction isSelfTargetOrItem(event, items) {\n  if (isSelfTarget(event)) return true;\n  const target = event.target;\n  if (!target) return false;\n  const isItem = items.some((item) => item.element === target);\n  return isItem;\n}\nfunction getEnabledItems(items) {\n  return items.filter((item) => !item.disabled);\n}\nfunction itemTextStartsWith(item, text) {\n  var _a;\n  const itemText = ((_a = item.element) == null ? void 0 : _a.textContent) || item.children || // The composite item object itself doesn't include a value property, but\n  // other components like Select do. Since CompositeTypeahead is a generic\n  // component that can be used with those as well, we also consider the value\n  // property as a fallback for the typeahead text content.\n  \"value\" in item && item.value;\n  if (!itemText) return false;\n  return normalizeString(itemText).trim().toLowerCase().startsWith(text.toLowerCase());\n}\nfunction getSameInitialItems(items, char, activeId) {\n  if (!activeId) return items;\n  const activeItem = items.find((item) => item.id === activeId);\n  if (!activeItem) return items;\n  if (!itemTextStartsWith(activeItem, char)) return items;\n  if (chars !== char && itemTextStartsWith(activeItem, chars)) return items;\n  chars = char;\n  return flipItems(\n    items.filter((item) => itemTextStartsWith(item, chars)),\n    activeId\n  ).filter((item) => item.id !== activeId);\n}\nvar useCompositeTypeahead = createHook(function useCompositeTypeahead2(_a) {\n  var _b = _a, { store, typeahead = true } = _b, props = __objRest(_b, [\"store\", \"typeahead\"]);\n  const context = useCompositeContext();\n  store = store || context;\n  invariant(\n    store,\n    process.env.NODE_ENV !== \"production\" && \"CompositeTypeahead must be a Composite component\"\n  );\n  const onKeyDownCaptureProp = props.onKeyDownCapture;\n  const cleanupTimeoutRef = useRef(0);\n  const onKeyDownCapture = useEvent((event) => {\n    onKeyDownCaptureProp == null ? void 0 : onKeyDownCaptureProp(event);\n    if (event.defaultPrevented) return;\n    if (!typeahead) return;\n    if (!store) return;\n    if (!isValidTypeaheadEvent(event)) {\n      return clearChars();\n    }\n    const { renderedItems, items, activeId, id } = store.getState();\n    let enabledItems = getEnabledItems(\n      items.length > renderedItems.length ? items : renderedItems\n    );\n    const document = getDocument(event.currentTarget);\n    const selector = `[data-offscreen-id=\"${id}\"]`;\n    const offscreenItems = document.querySelectorAll(selector);\n    for (const element of offscreenItems) {\n      const disabled = element.ariaDisabled === \"true\" || \"disabled\" in element && !!element.disabled;\n      enabledItems.push({ id: element.id, element, disabled });\n    }\n    if (offscreenItems.length) {\n      enabledItems = sortBasedOnDOMPosition(enabledItems, (i) => i.element);\n    }\n    if (!isSelfTargetOrItem(event, enabledItems)) return clearChars();\n    event.preventDefault();\n    window.clearTimeout(cleanupTimeoutRef.current);\n    cleanupTimeoutRef.current = window.setTimeout(() => {\n      chars = \"\";\n    }, 500);\n    const char = event.key.toLowerCase();\n    chars += char;\n    enabledItems = getSameInitialItems(enabledItems, char, activeId);\n    const item = enabledItems.find((item2) => itemTextStartsWith(item2, chars));\n    if (item) {\n      store.move(item.id);\n    } else {\n      clearChars();\n    }\n  });\n  props = __spreadProps(__spreadValues({}, props), {\n    onKeyDownCapture\n  });\n  return removeUndefinedValues(props);\n});\nvar CompositeTypeahead = forwardRef(function CompositeTypeahead2(props) {\n  const htmlProps = useCompositeTypeahead(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useCompositeTypeahead,\n  CompositeTypeahead\n};\n", "\"use client\";\nimport {\n  useCompositeContext\n} from \"./APTFW6PT.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef,\n  memo\n} from \"./VOQWLFSQ.js\";\nimport {\n  useBooleanEvent,\n  useEvent,\n  useIsMouseMoving,\n  useMergeRefs\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/composite/composite-hover.tsx\nimport { contains } from \"@ariakit/core/utils/dom\";\nimport { hasFocus, hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport {\n  hasOwnProperty,\n  invariant,\n  removeUndefinedValues\n} from \"@ariakit/core/utils/misc\";\nimport { useCallback } from \"react\";\nvar TagName = \"div\";\nfunction getMouseDestination(event) {\n  const relatedTarget = event.relatedTarget;\n  if ((relatedTarget == null ? void 0 : relatedTarget.nodeType) === Node.ELEMENT_NODE) {\n    return relatedTarget;\n  }\n  return null;\n}\nfunction hoveringInside(event) {\n  const nextElement = getMouseDestination(event);\n  if (!nextElement) return false;\n  return contains(event.currentTarget, nextElement);\n}\nvar symbol = Symbol(\"composite-hover\");\nfunction movingToAnotherItem(event) {\n  let dest = getMouseDestination(event);\n  if (!dest) return false;\n  do {\n    if (hasOwnProperty(dest, symbol) && dest[symbol]) return true;\n    dest = dest.parentElement;\n  } while (dest);\n  return false;\n}\nvar useCompositeHover = createHook(\n  function useCompositeHover2(_a) {\n    var _b = _a, {\n      store,\n      focusOnHover = true,\n      blurOnHoverEnd = !!focusOnHover\n    } = _b, props = __objRest(_b, [\n      \"store\",\n      \"focusOnHover\",\n      \"blurOnHoverEnd\"\n    ]);\n    const context = useCompositeContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"CompositeHover must be wrapped in a Composite component.\"\n    );\n    const isMouseMoving = useIsMouseMoving();\n    const onMouseMoveProp = props.onMouseMove;\n    const focusOnHoverProp = useBooleanEvent(focusOnHover);\n    const onMouseMove = useEvent((event) => {\n      onMouseMoveProp == null ? void 0 : onMouseMoveProp(event);\n      if (event.defaultPrevented) return;\n      if (!isMouseMoving()) return;\n      if (!focusOnHoverProp(event)) return;\n      if (!hasFocusWithin(event.currentTarget)) {\n        const baseElement = store == null ? void 0 : store.getState().baseElement;\n        if (baseElement && !hasFocus(baseElement)) {\n          baseElement.focus();\n        }\n      }\n      store == null ? void 0 : store.setActiveId(event.currentTarget.id);\n    });\n    const onMouseLeaveProp = props.onMouseLeave;\n    const blurOnHoverEndProp = useBooleanEvent(blurOnHoverEnd);\n    const onMouseLeave = useEvent((event) => {\n      var _a2;\n      onMouseLeaveProp == null ? void 0 : onMouseLeaveProp(event);\n      if (event.defaultPrevented) return;\n      if (!isMouseMoving()) return;\n      if (hoveringInside(event)) return;\n      if (movingToAnotherItem(event)) return;\n      if (!focusOnHoverProp(event)) return;\n      if (!blurOnHoverEndProp(event)) return;\n      store == null ? void 0 : store.setActiveId(null);\n      (_a2 = store == null ? void 0 : store.getState().baseElement) == null ? void 0 : _a2.focus();\n    });\n    const ref = useCallback((element) => {\n      if (!element) return;\n      element[symbol] = true;\n    }, []);\n    props = __spreadProps(__spreadValues({}, props), {\n      ref: useMergeRefs(ref, props.ref),\n      onMouseMove,\n      onMouseLeave\n    });\n    return removeUndefinedValues(props);\n  }\n);\nvar CompositeHover = memo(\n  forwardRef(function CompositeHover2(props) {\n    const htmlProps = useCompositeHover(props);\n    return createElement(TagName, htmlProps);\n  })\n);\n\nexport {\n  useCompositeHover,\n  CompositeHover\n};\n", "\"use client\";\nimport {\n  MenubarContextProvider,\n  MenubarScopedContextProvider,\n  useMenubarContext,\n  useMenubarProviderContext,\n  useMenubarScopedContext\n} from \"./JUCYQ5OS.js\";\nimport {\n  HovercardContextProvider,\n  HovercardScopedContextProvider\n} from \"./7Z7JH52O.js\";\nimport {\n  CompositeContextProvider,\n  CompositeScopedContextProvider\n} from \"./APTFW6PT.js\";\nimport {\n  createStoreContext\n} from \"./VOQWLFSQ.js\";\n\n// src/menu/menu-context.tsx\nimport { createContext } from \"react\";\nvar menu = createStoreContext(\n  [CompositeContextProvider, HovercardContextProvider],\n  [CompositeScopedContextProvider, HovercardScopedContextProvider]\n);\nvar useMenuContext = menu.useContext;\nvar useMenuScopedContext = menu.useScopedContext;\nvar useMenuProviderContext = menu.useProviderContext;\nvar MenuContextProvider = menu.ContextProvider;\nvar MenuScopedContextProvider = menu.ScopedContextProvider;\nvar useMenuBarContext = useMenubarContext;\nvar useMenuBarScopedContext = useMenubarScopedContext;\nvar useMenuBarProviderContext = useMenubarProviderContext;\nvar MenuBarContextProvider = MenubarContextProvider;\nvar MenuBarScopedContextProvider = MenubarScopedContextProvider;\nvar MenuItemCheckedContext = createContext(\n  void 0\n);\n\nexport {\n  useMenuContext,\n  useMenuScopedContext,\n  useMenuProviderContext,\n  MenuContextProvider,\n  MenuScopedContextProvider,\n  useMenuBarContext,\n  useMenuBarScopedContext,\n  useMenuBarProviderContext,\n  MenuBarContextProvider,\n  MenuBarScopedContextProvider,\n  MenuItemCheckedContext\n};\n", "\"use client\";\nimport {\n  MenuScopedContextProvider,\n  useMenuProviderContext\n} from \"./4QTMCR75.js\";\nimport {\n  useCompositeTypeahead\n} from \"./OYOFZOGB.js\";\nimport {\n  isHidden\n} from \"./K4R5DNTX.js\";\nimport {\n  useComposite\n} from \"./NSTBQJLB.js\";\nimport {\n  useStoreState\n} from \"./RTNCFSKZ.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useEvent,\n  useId,\n  useMergeRefs,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/menu/menu-list.tsx\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { useEffect, useState } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction useAriaLabelledBy(_a) {\n  var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n  const [id, setId] = useState(void 0);\n  const label = props[\"aria-label\"];\n  const disclosureElement = useStoreState(store, \"disclosureElement\");\n  const contentElement = useStoreState(store, \"contentElement\");\n  useEffect(() => {\n    const disclosure = disclosureElement;\n    if (!disclosure) return;\n    const menu = contentElement;\n    if (!menu) return;\n    const menuLabel = label || menu.hasAttribute(\"aria-label\");\n    if (menuLabel) {\n      setId(void 0);\n    } else if (disclosure.id) {\n      setId(disclosure.id);\n    }\n  }, [label, disclosureElement, contentElement]);\n  return id;\n}\nvar useMenuList = createHook(\n  function useMenuList2(_a) {\n    var _b = _a, { store, alwaysVisible, composite } = _b, props = __objRest(_b, [\"store\", \"alwaysVisible\", \"composite\"]);\n    const context = useMenuProviderContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"MenuList must receive a `store` prop or be wrapped in a MenuProvider component.\"\n    );\n    const parentMenu = store.parent;\n    const parentMenubar = store.menubar;\n    const hasParentMenu = !!parentMenu;\n    const id = useId(props.id);\n    const onKeyDownProp = props.onKeyDown;\n    const dir = store.useState(\n      (state) => state.placement.split(\"-\")[0]\n    );\n    const orientation = store.useState(\n      (state) => state.orientation === \"both\" ? void 0 : state.orientation\n    );\n    const isHorizontal = orientation !== \"vertical\";\n    const isMenubarHorizontal = useStoreState(\n      parentMenubar,\n      (state) => !!state && state.orientation !== \"vertical\"\n    );\n    const onKeyDown = useEvent((event) => {\n      onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n      if (event.defaultPrevented) return;\n      if (hasParentMenu || parentMenubar && !isHorizontal) {\n        const hideMap = {\n          ArrowRight: () => dir === \"left\" && !isHorizontal,\n          ArrowLeft: () => dir === \"right\" && !isHorizontal,\n          ArrowUp: () => dir === \"bottom\" && isHorizontal,\n          ArrowDown: () => dir === \"top\" && isHorizontal\n        };\n        const action = hideMap[event.key];\n        if (action == null ? void 0 : action()) {\n          event.stopPropagation();\n          event.preventDefault();\n          return store == null ? void 0 : store.hide();\n        }\n      }\n      if (parentMenubar) {\n        const keyMap = {\n          ArrowRight: () => {\n            if (!isMenubarHorizontal) return;\n            return parentMenubar.next();\n          },\n          ArrowLeft: () => {\n            if (!isMenubarHorizontal) return;\n            return parentMenubar.previous();\n          },\n          ArrowDown: () => {\n            if (isMenubarHorizontal) return;\n            return parentMenubar.next();\n          },\n          ArrowUp: () => {\n            if (isMenubarHorizontal) return;\n            return parentMenubar.previous();\n          }\n        };\n        const action = keyMap[event.key];\n        const id2 = action == null ? void 0 : action();\n        if (id2 !== void 0) {\n          event.stopPropagation();\n          event.preventDefault();\n          parentMenubar.move(id2);\n        }\n      }\n    });\n    props = useWrapElement(\n      props,\n      (element) => /* @__PURE__ */ jsx(MenuScopedContextProvider, { value: store, children: element }),\n      [store]\n    );\n    const ariaLabelledBy = useAriaLabelledBy(__spreadValues({ store }, props));\n    const mounted = store.useState(\"mounted\");\n    const hidden = isHidden(mounted, props.hidden, alwaysVisible);\n    const style = hidden ? __spreadProps(__spreadValues({}, props.style), { display: \"none\" }) : props.style;\n    props = __spreadProps(__spreadValues({\n      id,\n      \"aria-labelledby\": ariaLabelledBy,\n      hidden\n    }, props), {\n      ref: useMergeRefs(id ? store.setContentElement : null, props.ref),\n      style,\n      onKeyDown\n    });\n    const hasCombobox = !!store.combobox;\n    composite = composite != null ? composite : !hasCombobox;\n    if (composite) {\n      props = __spreadValues({\n        role: \"menu\",\n        \"aria-orientation\": orientation\n      }, props);\n    }\n    props = useComposite(__spreadValues({ store, composite }, props));\n    props = useCompositeTypeahead(__spreadValues({ store, typeahead: !hasCombobox }, props));\n    return props;\n  }\n);\nvar MenuList = forwardRef(function MenuList2(props) {\n  const htmlProps = useMenuList(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useMenuList,\n  MenuList\n};\n", "\"use client\";\nimport {\n  useMenuList\n} from \"../__chunks/W5BTY3ZG.js\";\nimport {\n  useHovercard\n} from \"../__chunks/IUFFNNPK.js\";\nimport \"../__chunks/X7QOZUD3.js\";\nimport {\n  useMenuProviderContext\n} from \"../__chunks/4QTMCR75.js\";\nimport \"../__chunks/JUCYQ5OS.js\";\nimport \"../__chunks/7Z7JH52O.js\";\nimport \"../__chunks/OYOFZOGB.js\";\nimport \"../__chunks/C6DAL6ZN.js\";\nimport {\n  createDialogComponent\n} from \"../__chunks/CAGBPNDP.js\";\nimport \"../__chunks/M5DFOEFU.js\";\nimport \"../__chunks/AOQQTIBO.js\";\nimport \"../__chunks/5M6RIVE2.js\";\nimport \"../__chunks/S2F2XXEH.js\";\nimport \"../__chunks/DXGKYUAD.js\";\nimport \"../__chunks/LC6GJMGV.js\";\nimport \"../__chunks/6GXEOXGT.js\";\nimport \"../__chunks/JZEJYXOQ.js\";\nimport \"../__chunks/HLTQOHKZ.js\";\nimport \"../__chunks/PVECYOSC.js\";\nimport \"../__chunks/SOMPWLIQ.js\";\nimport \"../__chunks/W6WVJJEY.js\";\nimport \"../__chunks/CZ4GFWYL.js\";\nimport \"../__chunks/Z5GCVBAY.js\";\nimport \"../__chunks/IGR4SXG2.js\";\nimport \"../__chunks/677M2CI3.js\";\nimport \"../__chunks/S7U6BLGA.js\";\nimport \"../__chunks/FVE2C5B3.js\";\nimport \"../__chunks/3NDVDEB4.js\";\nimport \"../__chunks/AOUGVQZ3.js\";\nimport \"../__chunks/K2ZF5NU7.js\";\nimport \"../__chunks/63XF7ACK.js\";\nimport \"../__chunks/K4R5DNTX.js\";\nimport \"../__chunks/Y2U4BRIM.js\";\nimport \"../__chunks/T22PY7TE.js\";\nimport \"../__chunks/NSTBQJLB.js\";\nimport \"../__chunks/5VQZOHHZ.js\";\nimport \"../__chunks/QJ4LGO2N.js\";\nimport \"../__chunks/Y67KZUMI.js\";\nimport \"../__chunks/T2AZQXQU.js\";\nimport \"../__chunks/ABN76PSX.js\";\nimport \"../__chunks/APTFW6PT.js\";\nimport \"../__chunks/OE2EFRVA.js\";\nimport \"../__chunks/SWN3JYXT.js\";\nimport {\n  useStoreState\n} from \"../__chunks/RTNCFSKZ.js\";\nimport \"../__chunks/5CPL3B7G.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"../__chunks/VOQWLFSQ.js\";\nimport {\n  useMergeRefs\n} from \"../__chunks/5GGHRIN3.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/menu/menu.tsx\nimport { fireEvent } from \"@ariakit/core/utils/events\";\nimport { hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport { invariant, isFalsyBooleanCallback } from \"@ariakit/core/utils/misc\";\nimport { createRef, useEffect, useMemo, useRef, useState } from \"react\";\nvar TagName = \"div\";\nvar useMenu = createHook(function useMenu2(_a) {\n  var _b = _a, {\n    store,\n    modal: modalProp = false,\n    portal = !!modalProp,\n    hideOnEscape = true,\n    autoFocusOnShow = true,\n    hideOnHoverOutside,\n    alwaysVisible\n  } = _b, props = __objRest(_b, [\n    \"store\",\n    \"modal\",\n    \"portal\",\n    \"hideOnEscape\",\n    \"autoFocusOnShow\",\n    \"hideOnHoverOutside\",\n    \"alwaysVisible\"\n  ]);\n  const context = useMenuProviderContext();\n  store = store || context;\n  invariant(\n    store,\n    process.env.NODE_ENV !== \"production\" && \"Menu must receive a `store` prop or be wrapped in a MenuProvider component.\"\n  );\n  const ref = useRef(null);\n  const parentMenu = store.parent;\n  const parentMenubar = store.menubar;\n  const hasParentMenu = !!parentMenu;\n  const parentIsMenubar = !!parentMenubar && !hasParentMenu;\n  props = __spreadProps(__spreadValues({}, props), {\n    ref: useMergeRefs(ref, props.ref)\n  });\n  const _a2 = useMenuList(__spreadValues({\n    store,\n    alwaysVisible\n  }, props)), { \"aria-labelledby\": ariaLabelledBy } = _a2, menuListProps = __objRest(_a2, [\"aria-labelledby\"]);\n  props = menuListProps;\n  const [initialFocusRef, setInitialFocusRef] = useState();\n  const autoFocusOnShowState = store.useState(\"autoFocusOnShow\");\n  const initialFocus = store.useState(\"initialFocus\");\n  const baseElement = store.useState(\"baseElement\");\n  const items = store.useState(\"renderedItems\");\n  useEffect(() => {\n    let cleaning = false;\n    setInitialFocusRef((prevInitialFocusRef) => {\n      var _a3, _b2, _c;\n      if (cleaning) return;\n      if (!autoFocusOnShowState) return;\n      if ((_a3 = prevInitialFocusRef == null ? void 0 : prevInitialFocusRef.current) == null ? void 0 : _a3.isConnected) return prevInitialFocusRef;\n      const ref2 = createRef();\n      switch (initialFocus) {\n        // TODO: Refactor\n        case \"first\":\n          ref2.current = ((_b2 = items.find((item) => !item.disabled && item.element)) == null ? void 0 : _b2.element) || null;\n          break;\n        case \"last\":\n          ref2.current = ((_c = [...items].reverse().find((item) => !item.disabled && item.element)) == null ? void 0 : _c.element) || null;\n          break;\n        default:\n          ref2.current = baseElement;\n      }\n      return ref2;\n    });\n    return () => {\n      cleaning = true;\n    };\n  }, [store, autoFocusOnShowState, initialFocus, items, baseElement]);\n  const modal = hasParentMenu ? false : modalProp;\n  const mayAutoFocusOnShow = !!autoFocusOnShow;\n  const canAutoFocusOnShow = !!initialFocusRef || !!props.initialFocus || !!modal;\n  const contentElement = useStoreState(\n    store.combobox || store,\n    \"contentElement\"\n  );\n  const parentContentElement = useStoreState(\n    (parentMenu == null ? void 0 : parentMenu.combobox) || parentMenu,\n    \"contentElement\"\n  );\n  const preserveTabOrderAnchor = useMemo(() => {\n    if (!parentContentElement) return;\n    if (!contentElement) return;\n    const role = contentElement.getAttribute(\"role\");\n    const parentRole = parentContentElement.getAttribute(\"role\");\n    const parentIsMenuOrMenubar = parentRole === \"menu\" || parentRole === \"menubar\";\n    if (parentIsMenuOrMenubar && role === \"menu\") return;\n    return parentContentElement;\n  }, [contentElement, parentContentElement]);\n  if (preserveTabOrderAnchor !== void 0) {\n    props = __spreadValues({\n      preserveTabOrderAnchor\n    }, props);\n  }\n  props = useHovercard(__spreadProps(__spreadValues({\n    store,\n    alwaysVisible,\n    initialFocus: initialFocusRef,\n    autoFocusOnShow: mayAutoFocusOnShow ? canAutoFocusOnShow && autoFocusOnShow : autoFocusOnShowState || !!modal\n  }, props), {\n    hideOnEscape(event) {\n      if (isFalsyBooleanCallback(hideOnEscape, event)) return false;\n      store == null ? void 0 : store.hideAll();\n      return true;\n    },\n    hideOnHoverOutside(event) {\n      const disclosureElement = store == null ? void 0 : store.getState().disclosureElement;\n      const getHideOnHoverOutside = () => {\n        if (typeof hideOnHoverOutside === \"function\") {\n          return hideOnHoverOutside(event);\n        }\n        if (hideOnHoverOutside != null) return hideOnHoverOutside;\n        if (hasParentMenu) return true;\n        if (!parentIsMenubar) return false;\n        if (!disclosureElement) return true;\n        if (hasFocusWithin(disclosureElement)) return false;\n        return true;\n      };\n      if (!getHideOnHoverOutside()) return false;\n      if (event.defaultPrevented) return true;\n      if (!hasParentMenu) return true;\n      if (!disclosureElement) return true;\n      fireEvent(disclosureElement, \"mouseout\", event);\n      if (!hasFocusWithin(disclosureElement)) return true;\n      requestAnimationFrame(() => {\n        if (hasFocusWithin(disclosureElement)) return;\n        store == null ? void 0 : store.hide();\n      });\n      return false;\n    },\n    modal,\n    portal,\n    backdrop: hasParentMenu ? false : props.backdrop\n  }));\n  props = __spreadValues({\n    \"aria-labelledby\": ariaLabelledBy\n  }, props);\n  return props;\n});\nvar Menu = createDialogComponent(\n  forwardRef(function Menu2(props) {\n    const htmlProps = useMenu(props);\n    return createElement(TagName, htmlProps);\n  }),\n  useMenuProviderContext\n);\nexport {\n  Menu,\n  useMenu\n};\n", "\"use client\";\nimport {\n  MenuContextProvider,\n  useMenuProviderContext\n} from \"../__chunks/4QTMCR75.js\";\nimport \"../__chunks/JUCYQ5OS.js\";\nimport {\n  useHovercardAnchor\n} from \"../__chunks/TRDK6LYC.js\";\nimport \"../__chunks/7Z7JH52O.js\";\nimport {\n  useCompositeTypeahead\n} from \"../__chunks/OYOFZOGB.js\";\nimport {\n  usePopoverDisclosure\n} from \"../__chunks/4I4MLMKD.js\";\nimport \"../__chunks/HMCFFQCB.js\";\nimport \"../__chunks/ZTXFEM5L.js\";\nimport \"../__chunks/NMGNQVTG.js\";\nimport \"../__chunks/5VQZOHHZ.js\";\nimport {\n  Role\n} from \"../__chunks/QJ4LGO2N.js\";\nimport \"../__chunks/Y67KZUMI.js\";\nimport \"../__chunks/T2AZQXQU.js\";\nimport \"../__chunks/ABN76PSX.js\";\nimport \"../__chunks/APTFW6PT.js\";\nimport \"../__chunks/XCKGTAUF.js\";\nimport \"../__chunks/2W3RN7C5.js\";\nimport \"../__chunks/OE2EFRVA.js\";\nimport \"../__chunks/SWN3JYXT.js\";\nimport {\n  useStoreState\n} from \"../__chunks/RTNCFSKZ.js\";\nimport \"../__chunks/5CPL3B7G.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"../__chunks/VOQWLFSQ.js\";\nimport {\n  useEvent,\n  useId,\n  useMergeRefs,\n  useWrapElement\n} from \"../__chunks/5GGHRIN3.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/menu/menu-button.tsx\nimport { getPopupItemRole, getPopupRole } from \"@ariakit/core/utils/dom\";\nimport { disabledFromProps, invariant } from \"@ariakit/core/utils/misc\";\nimport { useRef } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"button\";\nfunction getInitialFocus(event, dir) {\n  const keyMap = {\n    ArrowDown: dir === \"bottom\" || dir === \"top\" ? \"first\" : false,\n    ArrowUp: dir === \"bottom\" || dir === \"top\" ? \"last\" : false,\n    ArrowRight: dir === \"right\" ? \"first\" : false,\n    ArrowLeft: dir === \"left\" ? \"first\" : false\n  };\n  return keyMap[event.key];\n}\nfunction hasActiveItem(items, excludeElement) {\n  return !!(items == null ? void 0 : items.some((item) => {\n    if (!item.element) return false;\n    if (item.element === excludeElement) return false;\n    return item.element.getAttribute(\"aria-expanded\") === \"true\";\n  }));\n}\nvar useMenuButton = createHook(\n  function useMenuButton2(_a) {\n    var _b = _a, {\n      store,\n      focusable,\n      accessibleWhenDisabled,\n      showOnHover\n    } = _b, props = __objRest(_b, [\n      \"store\",\n      \"focusable\",\n      \"accessibleWhenDisabled\",\n      \"showOnHover\"\n    ]);\n    const context = useMenuProviderContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"MenuButton must receive a `store` prop or be wrapped in a MenuProvider component.\"\n    );\n    const ref = useRef(null);\n    const parentMenu = store.parent;\n    const parentMenubar = store.menubar;\n    const hasParentMenu = !!parentMenu;\n    const parentIsMenubar = !!parentMenubar && !hasParentMenu;\n    const disabled = disabledFromProps(props);\n    const showMenu = () => {\n      const trigger = ref.current;\n      if (!trigger) return;\n      store == null ? void 0 : store.setDisclosureElement(trigger);\n      store == null ? void 0 : store.setAnchorElement(trigger);\n      store == null ? void 0 : store.show();\n    };\n    const onFocusProp = props.onFocus;\n    const onFocus = useEvent((event) => {\n      onFocusProp == null ? void 0 : onFocusProp(event);\n      if (disabled) return;\n      if (event.defaultPrevented) return;\n      store == null ? void 0 : store.setAutoFocusOnShow(false);\n      store == null ? void 0 : store.setActiveId(null);\n      if (!parentMenubar) return;\n      if (!parentIsMenubar) return;\n      const { items } = parentMenubar.getState();\n      if (hasActiveItem(items, event.currentTarget)) {\n        showMenu();\n      }\n    });\n    const dir = useStoreState(\n      store,\n      (state) => state.placement.split(\"-\")[0]\n    );\n    const onKeyDownProp = props.onKeyDown;\n    const onKeyDown = useEvent((event) => {\n      onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n      if (disabled) return;\n      if (event.defaultPrevented) return;\n      const initialFocus = getInitialFocus(event, dir);\n      if (initialFocus) {\n        event.preventDefault();\n        showMenu();\n        store == null ? void 0 : store.setAutoFocusOnShow(true);\n        store == null ? void 0 : store.setInitialFocus(initialFocus);\n      }\n    });\n    const onClickProp = props.onClick;\n    const onClick = useEvent((event) => {\n      onClickProp == null ? void 0 : onClickProp(event);\n      if (event.defaultPrevented) return;\n      if (!store) return;\n      const isKeyboardClick = !event.detail;\n      const { open } = store.getState();\n      if (!open || isKeyboardClick) {\n        if (!hasParentMenu || isKeyboardClick) {\n          store.setAutoFocusOnShow(true);\n        }\n        store.setInitialFocus(isKeyboardClick ? \"first\" : \"container\");\n      }\n      if (hasParentMenu) {\n        showMenu();\n      }\n    });\n    props = useWrapElement(\n      props,\n      (element) => /* @__PURE__ */ jsx(MenuContextProvider, { value: store, children: element }),\n      [store]\n    );\n    if (hasParentMenu) {\n      props = __spreadProps(__spreadValues({}, props), {\n        render: /* @__PURE__ */ jsx(Role.div, { render: props.render })\n      });\n    }\n    const id = useId(props.id);\n    const parentContentElement = useStoreState(\n      (parentMenu == null ? void 0 : parentMenu.combobox) || parentMenu,\n      \"contentElement\"\n    );\n    const role = hasParentMenu || parentIsMenubar ? getPopupItemRole(parentContentElement, \"menuitem\") : void 0;\n    const contentElement = store.useState(\"contentElement\");\n    props = __spreadProps(__spreadValues({\n      id,\n      role,\n      \"aria-haspopup\": getPopupRole(contentElement, \"menu\")\n    }, props), {\n      ref: useMergeRefs(ref, props.ref),\n      onFocus,\n      onKeyDown,\n      onClick\n    });\n    props = useHovercardAnchor(__spreadProps(__spreadValues({\n      store,\n      focusable,\n      accessibleWhenDisabled\n    }, props), {\n      showOnHover: (event) => {\n        const getShowOnHover = () => {\n          if (typeof showOnHover === \"function\") return showOnHover(event);\n          if (showOnHover != null) return showOnHover;\n          if (hasParentMenu) return true;\n          if (!parentMenubar) return false;\n          const { items } = parentMenubar.getState();\n          return parentIsMenubar && hasActiveItem(items);\n        };\n        const canShowOnHover = getShowOnHover();\n        if (!canShowOnHover) return false;\n        const parent = parentIsMenubar ? parentMenubar : parentMenu;\n        if (!parent) return true;\n        parent.setActiveId(event.currentTarget.id);\n        return true;\n      }\n    }));\n    props = usePopoverDisclosure(__spreadValues({\n      store,\n      toggleOnClick: !hasParentMenu,\n      focusable,\n      accessibleWhenDisabled\n    }, props));\n    props = useCompositeTypeahead(__spreadValues({\n      store,\n      typeahead: parentIsMenubar\n    }, props));\n    return props;\n  }\n);\nvar MenuButton = forwardRef(function MenuButton2(props) {\n  const htmlProps = useMenuButton(props);\n  return createElement(TagName, htmlProps);\n});\nexport {\n  MenuButton,\n  useMenuButton\n};\n", "\"use client\";\nimport {\n  useMenuScopedContext\n} from \"./4QTMCR75.js\";\nimport {\n  useMenubarScopedContext\n} from \"./JUCYQ5OS.js\";\nimport {\n  useCompositeHover\n} from \"./IABE5EV2.js\";\nimport {\n  useCompositeItem\n} from \"./SBSPVDDI.js\";\nimport {\n  useStoreState\n} from \"./RTNCFSKZ.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef,\n  memo\n} from \"./VOQWLFSQ.js\";\nimport {\n  useBooleanEvent,\n  useEvent\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/menu/menu-item.tsx\nimport { getDocument, getPopupItemRole } from \"@ariakit/core/utils/dom\";\nimport { isDownloading, isOpeningInNewTab } from \"@ariakit/core/utils/events\";\nimport { hasFocusWithin } from \"@ariakit/core/utils/focus\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nvar TagName = \"div\";\nfunction menuHasFocus(baseElement, items, currentTarget) {\n  var _a;\n  if (!baseElement) return false;\n  if (hasFocusWithin(baseElement)) return true;\n  const expandedItem = items == null ? void 0 : items.find((item) => {\n    var _a2;\n    if (item.element === currentTarget) return false;\n    return ((_a2 = item.element) == null ? void 0 : _a2.getAttribute(\"aria-expanded\")) === \"true\";\n  });\n  const expandedMenuId = (_a = expandedItem == null ? void 0 : expandedItem.element) == null ? void 0 : _a.getAttribute(\"aria-controls\");\n  if (!expandedMenuId) return false;\n  const doc = getDocument(baseElement);\n  const expandedMenu = doc.getElementById(expandedMenuId);\n  if (!expandedMenu) return false;\n  if (hasFocusWithin(expandedMenu)) return true;\n  return !!expandedMenu.querySelector(\"[role=menuitem][aria-expanded=true]\");\n}\nvar useMenuItem = createHook(\n  function useMenuItem2(_a) {\n    var _b = _a, {\n      store,\n      hideOnClick = true,\n      preventScrollOnKeyDown = true,\n      focusOnHover,\n      blurOnHoverEnd\n    } = _b, props = __objRest(_b, [\n      \"store\",\n      \"hideOnClick\",\n      \"preventScrollOnKeyDown\",\n      \"focusOnHover\",\n      \"blurOnHoverEnd\"\n    ]);\n    const menuContext = useMenuScopedContext(true);\n    const menubarContext = useMenubarScopedContext();\n    store = store || menuContext || menubarContext;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"MenuItem must be wrapped in a MenuList, Menu or Menubar component\"\n    );\n    const onClickProp = props.onClick;\n    const hideOnClickProp = useBooleanEvent(hideOnClick);\n    const hideMenu = \"hideAll\" in store ? store.hideAll : void 0;\n    const isWithinMenu = !!hideMenu;\n    const onClick = useEvent((event) => {\n      onClickProp == null ? void 0 : onClickProp(event);\n      if (event.defaultPrevented) return;\n      if (isDownloading(event)) return;\n      if (isOpeningInNewTab(event)) return;\n      if (!hideMenu) return;\n      const popupType = event.currentTarget.getAttribute(\"aria-haspopup\");\n      if (popupType === \"menu\") return;\n      if (!hideOnClickProp(event)) return;\n      hideMenu();\n    });\n    const contentElement = useStoreState(\n      store,\n      (state) => \"contentElement\" in state ? state.contentElement : null\n    );\n    const role = getPopupItemRole(contentElement, \"menuitem\");\n    props = __spreadProps(__spreadValues({\n      role\n    }, props), {\n      onClick\n    });\n    props = useCompositeItem(__spreadValues({\n      store,\n      preventScrollOnKeyDown\n    }, props));\n    props = useCompositeHover(__spreadProps(__spreadValues({\n      store\n    }, props), {\n      focusOnHover(event) {\n        const getFocusOnHover = () => {\n          if (typeof focusOnHover === \"function\") return focusOnHover(event);\n          if (focusOnHover != null) return focusOnHover;\n          return true;\n        };\n        if (!store) return false;\n        if (!getFocusOnHover()) return false;\n        const { baseElement, items } = store.getState();\n        if (isWithinMenu) {\n          if (event.currentTarget.hasAttribute(\"aria-expanded\")) {\n            event.currentTarget.focus();\n          }\n          return true;\n        }\n        if (menuHasFocus(baseElement, items, event.currentTarget)) {\n          event.currentTarget.focus();\n          return true;\n        }\n        return false;\n      },\n      blurOnHoverEnd(event) {\n        if (typeof blurOnHoverEnd === \"function\") return blurOnHoverEnd(event);\n        if (blurOnHoverEnd != null) return blurOnHoverEnd;\n        return isWithinMenu;\n      }\n    }));\n    return props;\n  }\n);\nvar MenuItem = memo(\n  forwardRef(function MenuItem2(props) {\n    const htmlProps = useMenuItem(props);\n    return createElement(TagName, htmlProps);\n  })\n);\n\nexport {\n  useMenuItem,\n  MenuItem\n};\n", "\"use client\";\nimport {\n  createHovercardStore\n} from \"../__chunks/JTLIIJ4U.js\";\nimport \"../__chunks/ME2CUF3F.js\";\nimport {\n  createCompositeStore\n} from \"../__chunks/2CHYBBFH.js\";\nimport \"../__chunks/7PRQYBBV.js\";\nimport \"../__chunks/FZZ2AVHF.js\";\nimport \"../__chunks/RCQ5P4YE.js\";\nimport \"../__chunks/EO4GVUA4.js\";\nimport \"../__chunks/DTR5TSDJ.js\";\nimport {\n  createStore,\n  mergeStore,\n  omit,\n  pick,\n  setup,\n  sync,\n  throwOnConflictingProps\n} from \"../__chunks/BCALMBPZ.js\";\nimport {\n  applyState,\n  defaultValue\n} from \"../__chunks/PBFD2E7P.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/menu/menu-store.ts\nfunction createMenuStore(_a = {}) {\n  var _b = _a, {\n    combobox,\n    parent,\n    menubar\n  } = _b, props = __objRest(_b, [\n    \"combobox\",\n    \"parent\",\n    \"menubar\"\n  ]);\n  const parentIsMenubar = !!menubar && !parent;\n  const store = mergeStore(\n    props.store,\n    pick(parent, [\"values\"]),\n    omit(combobox, [\n      \"arrowElement\",\n      \"anchorElement\",\n      \"contentElement\",\n      \"popoverElement\",\n      \"disclosureElement\"\n    ])\n  );\n  throwOnConflictingProps(props, store);\n  const syncState = store.getState();\n  const composite = createCompositeStore(__spreadProps(__spreadValues({}, props), {\n    store,\n    orientation: defaultValue(\n      props.orientation,\n      syncState.orientation,\n      \"vertical\"\n    )\n  }));\n  const hovercard = createHovercardStore(__spreadProps(__spreadValues({}, props), {\n    store,\n    placement: defaultValue(\n      props.placement,\n      syncState.placement,\n      \"bottom-start\"\n    ),\n    timeout: defaultValue(\n      props.timeout,\n      syncState.timeout,\n      parentIsMenubar ? 0 : 150\n    ),\n    hideTimeout: defaultValue(props.hideTimeout, syncState.hideTimeout, 0)\n  }));\n  const initialState = __spreadProps(__spreadValues(__spreadValues({}, composite.getState()), hovercard.getState()), {\n    initialFocus: defaultValue(syncState.initialFocus, \"container\"),\n    values: defaultValue(\n      props.values,\n      syncState.values,\n      props.defaultValues,\n      {}\n    )\n  });\n  const menu = createStore(initialState, composite, hovercard, store);\n  setup(\n    menu,\n    () => sync(menu, [\"mounted\"], (state) => {\n      if (state.mounted) return;\n      menu.setState(\"activeId\", null);\n    })\n  );\n  setup(\n    menu,\n    () => sync(parent, [\"orientation\"], (state) => {\n      menu.setState(\n        \"placement\",\n        state.orientation === \"vertical\" ? \"right-start\" : \"bottom-start\"\n      );\n    })\n  );\n  return __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, composite), hovercard), menu), {\n    combobox,\n    parent,\n    menubar,\n    hideAll: () => {\n      hovercard.hide();\n      parent == null ? void 0 : parent.hideAll();\n    },\n    setInitialFocus: (value) => menu.setState(\"initialFocus\", value),\n    setValues: (values) => menu.setState(\"values\", values),\n    setValue: (name, value) => {\n      if (name === \"__proto__\") return;\n      if (name === \"constructor\") return;\n      if (Array.isArray(name)) return;\n      menu.setState(\"values\", (values) => {\n        const prevValue = values[name];\n        const nextValue = applyState(value, prevValue);\n        if (nextValue === prevValue) return values;\n        return __spreadProps(__spreadValues({}, values), {\n          [name]: nextValue !== void 0 && nextValue\n        });\n      });\n    }\n  });\n}\nexport {\n  createMenuStore\n};\n", "\"use client\";\nimport {\n  useMenuContext\n} from \"./4QTMCR75.js\";\nimport {\n  useMenubarContext\n} from \"./JUCYQ5OS.js\";\nimport {\n  useHovercardStoreProps\n} from \"./GVVKDT6A.js\";\nimport {\n  useCompositeStoreProps\n} from \"./B7UTNDHN.js\";\nimport {\n  useComboboxProviderContext\n} from \"./OLVWQA7U.js\";\nimport {\n  useStore,\n  useStoreProps\n} from \"./RTNCFSKZ.js\";\nimport {\n  useUpdateEffect\n} from \"./5GGHRIN3.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/menu/menu-store.ts\nimport * as Core from \"@ariakit/core/menu/menu-store\";\nfunction useMenuStoreProps(store, update, props) {\n  useUpdateEffect(update, [props.combobox, props.parent, props.menubar]);\n  useStoreProps(store, props, \"values\", \"setValues\");\n  return Object.assign(\n    useHovercardStoreProps(\n      useCompositeStoreProps(store, update, props),\n      update,\n      props\n    ),\n    {\n      combobox: props.combobox,\n      parent: props.parent,\n      menubar: props.menubar\n    }\n  );\n}\nfunction useMenuStore(props = {}) {\n  const parent = useMenuContext();\n  const menubar = useMenubarContext();\n  const combobox = useComboboxProviderContext();\n  props = __spreadProps(__spreadValues({}, props), {\n    parent: props.parent !== void 0 ? props.parent : parent,\n    menubar: props.menubar !== void 0 ? props.menubar : menubar,\n    combobox: props.combobox !== void 0 ? props.combobox : combobox\n  });\n  const [store, update] = useStore(Core.createMenuStore, props);\n  return useMenuStoreProps(store, update, props);\n}\n\nexport {\n  useMenuStoreProps,\n  useMenuStore\n};\n", "\"use client\";\nimport {\n  useMenuStore\n} from \"../__chunks/BV5PFOXH.js\";\nimport {\n  MenuContextProvider\n} from \"../__chunks/4QTMCR75.js\";\nimport \"../__chunks/JUCYQ5OS.js\";\nimport \"../__chunks/GVVKDT6A.js\";\nimport \"../__chunks/7Z7JH52O.js\";\nimport \"../__chunks/RUY5BUJG.js\";\nimport \"../__chunks/B7UTNDHN.js\";\nimport \"../__chunks/Y2U4BRIM.js\";\nimport \"../__chunks/T22PY7TE.js\";\nimport \"../__chunks/AMMIPFT4.js\";\nimport \"../__chunks/OLVWQA7U.js\";\nimport \"../__chunks/Y67KZUMI.js\";\nimport \"../__chunks/T2AZQXQU.js\";\nimport \"../__chunks/ABN76PSX.js\";\nimport \"../__chunks/APTFW6PT.js\";\nimport \"../__chunks/RTNCFSKZ.js\";\nimport \"../__chunks/5CPL3B7G.js\";\nimport \"../__chunks/VOQWLFSQ.js\";\nimport \"../__chunks/5GGHRIN3.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport \"../__chunks/3YLGPPWQ.js\";\n\n// src/menu/menu-provider.tsx\nimport { jsx } from \"react/jsx-runtime\";\nfunction MenuProvider(props = {}) {\n  const store = useMenuStore(props);\n  return /* @__PURE__ */ jsx(MenuContextProvider, { value: store, children: props.children });\n}\nexport {\n  MenuProvider\n};\n", "\"use client\";\nimport {\n  useMenuContext\n} from \"../__chunks/4QTMCR75.js\";\nimport \"../__chunks/JUCYQ5OS.js\";\nimport \"../__chunks/7Z7JH52O.js\";\nimport {\n  useCompositeSeparator\n} from \"../__chunks/JJEANXHI.js\";\nimport \"../__chunks/IZKKKUS7.js\";\nimport \"../__chunks/Y67KZUMI.js\";\nimport \"../__chunks/T2AZQXQU.js\";\nimport \"../__chunks/ABN76PSX.js\";\nimport \"../__chunks/APTFW6PT.js\";\nimport \"../__chunks/5CPL3B7G.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"../__chunks/VOQWLFSQ.js\";\nimport \"../__chunks/5GGHRIN3.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n  __objRest,\n  __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/menu/menu-separator.tsx\nvar TagName = \"hr\";\nvar useMenuSeparator = createHook(\n  function useMenuSeparator2(_a) {\n    var _b = _a, { store } = _b, props = __objRest(_b, [\"store\"]);\n    const context = useMenuContext();\n    store = store || context;\n    props = useCompositeSeparator(__spreadValues({ store }, props));\n    return props;\n  }\n);\nvar MenuSeparator = forwardRef(function MenuSeparator2(props) {\n  const htmlProps = useMenuSeparator(props);\n  return createElement(TagName, htmlProps);\n});\nexport {\n  MenuSeparator,\n  useMenuSeparator\n};\n", "\"use client\";\nimport {\n  useComposite\n} from \"../__chunks/NSTBQJLB.js\";\nimport {\n  usePopoverAnchor\n} from \"../__chunks/HMCFFQCB.js\";\nimport \"../__chunks/5VQZOHHZ.js\";\nimport {\n  useComboboxProviderContext\n} from \"../__chunks/OLVWQA7U.js\";\nimport \"../__chunks/Y67KZUMI.js\";\nimport \"../__chunks/T2AZQXQU.js\";\nimport \"../__chunks/ABN76PSX.js\";\nimport \"../__chunks/APTFW6PT.js\";\nimport \"../__chunks/OE2EFRVA.js\";\nimport \"../__chunks/SWN3JYXT.js\";\nimport \"../__chunks/5CPL3B7G.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"../__chunks/VOQWLFSQ.js\";\nimport {\n  useBooleanEvent,\n  useEvent,\n  useForceUpdate,\n  useId,\n  useMergeRefs,\n  useSafeLayoutEffect,\n  useUpdateEffect,\n  useUpdateLayoutEffect\n} from \"../__chunks/5GGHRIN3.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox.tsx\nimport {\n  getPopupRole,\n  getScrollingElement,\n  getTextboxSelection,\n  setSelectionRange\n} from \"@ariakit/core/utils/dom\";\nimport {\n  isFocusEventOutside,\n  queueBeforeEvent\n} from \"@ariakit/core/utils/events\";\nimport { hasFocus } from \"@ariakit/core/utils/focus\";\nimport {\n  invariant,\n  isFalsyBooleanCallback,\n  noop,\n  normalizeString\n} from \"@ariakit/core/utils/misc\";\nimport { sync } from \"@ariakit/core/utils/store\";\nimport { useEffect, useMemo, useRef, useState } from \"react\";\nvar TagName = \"input\";\nfunction isFirstItemAutoSelected(items, activeValue, autoSelect) {\n  if (!autoSelect) return false;\n  const firstItem = items.find((item) => !item.disabled && item.value);\n  return (firstItem == null ? void 0 : firstItem.value) === activeValue;\n}\nfunction hasCompletionString(value, activeValue) {\n  if (!activeValue) return false;\n  if (value == null) return false;\n  value = normalizeString(value);\n  return activeValue.length > value.length && activeValue.toLowerCase().indexOf(value.toLowerCase()) === 0;\n}\nfunction isInputEvent(event) {\n  return event.type === \"input\";\n}\nfunction isAriaAutoCompleteValue(value) {\n  return value === \"inline\" || value === \"list\" || value === \"both\" || value === \"none\";\n}\nfunction getDefaultAutoSelectId(items) {\n  const item = items.find((item2) => {\n    var _a;\n    if (item2.disabled) return false;\n    return ((_a = item2.element) == null ? void 0 : _a.getAttribute(\"role\")) !== \"tab\";\n  });\n  return item == null ? void 0 : item.id;\n}\nvar useCombobox = createHook(\n  function useCombobox2(_a) {\n    var _b = _a, {\n      store,\n      focusable = true,\n      autoSelect: autoSelectProp = false,\n      getAutoSelectId,\n      setValueOnChange,\n      showMinLength = 0,\n      showOnChange,\n      showOnMouseDown,\n      showOnClick = showOnMouseDown,\n      showOnKeyDown,\n      showOnKeyPress = showOnKeyDown,\n      blurActiveItemOnClick,\n      setValueOnClick = true,\n      moveOnKeyPress = true,\n      autoComplete = \"list\"\n    } = _b, props = __objRest(_b, [\n      \"store\",\n      \"focusable\",\n      \"autoSelect\",\n      \"getAutoSelectId\",\n      \"setValueOnChange\",\n      \"showMinLength\",\n      \"showOnChange\",\n      \"showOnMouseDown\",\n      \"showOnClick\",\n      \"showOnKeyDown\",\n      \"showOnKeyPress\",\n      \"blurActiveItemOnClick\",\n      \"setValueOnClick\",\n      \"moveOnKeyPress\",\n      \"autoComplete\"\n    ]);\n    const context = useComboboxProviderContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"Combobox must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n    );\n    const ref = useRef(null);\n    const [valueUpdated, forceValueUpdate] = useForceUpdate();\n    const canAutoSelectRef = useRef(false);\n    const composingRef = useRef(false);\n    const autoSelect = store.useState(\n      (state) => state.virtualFocus && autoSelectProp\n    );\n    const inline = autoComplete === \"inline\" || autoComplete === \"both\";\n    const [canInline, setCanInline] = useState(inline);\n    useUpdateLayoutEffect(() => {\n      if (!inline) return;\n      setCanInline(true);\n    }, [inline]);\n    const storeValue = store.useState(\"value\");\n    const prevSelectedValueRef = useRef();\n    useEffect(() => {\n      return sync(store, [\"selectedValue\", \"activeId\"], (_, prev) => {\n        prevSelectedValueRef.current = prev.selectedValue;\n      });\n    }, []);\n    const inlineActiveValue = store.useState((state) => {\n      var _a2;\n      if (!inline) return;\n      if (!canInline) return;\n      if (state.activeValue && Array.isArray(state.selectedValue)) {\n        if (state.selectedValue.includes(state.activeValue)) return;\n        if ((_a2 = prevSelectedValueRef.current) == null ? void 0 : _a2.includes(state.activeValue)) return;\n      }\n      return state.activeValue;\n    });\n    const items = store.useState(\"renderedItems\");\n    const open = store.useState(\"open\");\n    const contentElement = store.useState(\"contentElement\");\n    const value = useMemo(() => {\n      if (!inline) return storeValue;\n      if (!canInline) return storeValue;\n      const firstItemAutoSelected = isFirstItemAutoSelected(\n        items,\n        inlineActiveValue,\n        autoSelect\n      );\n      if (firstItemAutoSelected) {\n        if (hasCompletionString(storeValue, inlineActiveValue)) {\n          const slice = (inlineActiveValue == null ? void 0 : inlineActiveValue.slice(storeValue.length)) || \"\";\n          return storeValue + slice;\n        }\n        return storeValue;\n      }\n      return inlineActiveValue || storeValue;\n    }, [inline, canInline, items, inlineActiveValue, autoSelect, storeValue]);\n    useEffect(() => {\n      const element = ref.current;\n      if (!element) return;\n      const onCompositeItemMove = () => setCanInline(true);\n      element.addEventListener(\"combobox-item-move\", onCompositeItemMove);\n      return () => {\n        element.removeEventListener(\"combobox-item-move\", onCompositeItemMove);\n      };\n    }, []);\n    useEffect(() => {\n      if (!inline) return;\n      if (!canInline) return;\n      if (!inlineActiveValue) return;\n      const firstItemAutoSelected = isFirstItemAutoSelected(\n        items,\n        inlineActiveValue,\n        autoSelect\n      );\n      if (!firstItemAutoSelected) return;\n      if (!hasCompletionString(storeValue, inlineActiveValue)) return;\n      let cleanup = noop;\n      queueMicrotask(() => {\n        const element = ref.current;\n        if (!element) return;\n        const { start: prevStart, end: prevEnd } = getTextboxSelection(element);\n        const nextStart = storeValue.length;\n        const nextEnd = inlineActiveValue.length;\n        setSelectionRange(element, nextStart, nextEnd);\n        cleanup = () => {\n          if (!hasFocus(element)) return;\n          const { start, end } = getTextboxSelection(element);\n          if (start !== nextStart) return;\n          if (end !== nextEnd) return;\n          setSelectionRange(element, prevStart, prevEnd);\n        };\n      });\n      return () => cleanup();\n    }, [\n      valueUpdated,\n      inline,\n      canInline,\n      inlineActiveValue,\n      items,\n      autoSelect,\n      storeValue\n    ]);\n    const scrollingElementRef = useRef(null);\n    const getAutoSelectIdProp = useEvent(getAutoSelectId);\n    const autoSelectIdRef = useRef(null);\n    useEffect(() => {\n      if (!open) return;\n      if (!contentElement) return;\n      const scrollingElement = getScrollingElement(contentElement);\n      if (!scrollingElement) return;\n      scrollingElementRef.current = scrollingElement;\n      const onUserScroll = () => {\n        canAutoSelectRef.current = false;\n      };\n      const onScroll = () => {\n        if (!store) return;\n        if (!canAutoSelectRef.current) return;\n        const { activeId } = store.getState();\n        if (activeId === null) return;\n        if (activeId === autoSelectIdRef.current) return;\n        canAutoSelectRef.current = false;\n      };\n      const options = { passive: true, capture: true };\n      scrollingElement.addEventListener(\"wheel\", onUserScroll, options);\n      scrollingElement.addEventListener(\"touchmove\", onUserScroll, options);\n      scrollingElement.addEventListener(\"scroll\", onScroll, options);\n      return () => {\n        scrollingElement.removeEventListener(\"wheel\", onUserScroll, true);\n        scrollingElement.removeEventListener(\"touchmove\", onUserScroll, true);\n        scrollingElement.removeEventListener(\"scroll\", onScroll, true);\n      };\n    }, [open, contentElement, store]);\n    useSafeLayoutEffect(() => {\n      if (!storeValue) return;\n      if (composingRef.current) return;\n      canAutoSelectRef.current = true;\n    }, [storeValue]);\n    useSafeLayoutEffect(() => {\n      if (autoSelect !== \"always\" && open) return;\n      canAutoSelectRef.current = open;\n    }, [autoSelect, open]);\n    const resetValueOnSelect = store.useState(\"resetValueOnSelect\");\n    useUpdateEffect(() => {\n      var _a2, _b2;\n      const canAutoSelect = canAutoSelectRef.current;\n      if (!store) return;\n      if (!open) return;\n      if (!canAutoSelect && !resetValueOnSelect) return;\n      const { baseElement, contentElement: contentElement2, activeId } = store.getState();\n      if (baseElement && !hasFocus(baseElement)) return;\n      if (contentElement2 == null ? void 0 : contentElement2.hasAttribute(\"data-placing\")) {\n        const observer = new MutationObserver(forceValueUpdate);\n        observer.observe(contentElement2, { attributeFilter: [\"data-placing\"] });\n        return () => observer.disconnect();\n      }\n      if (autoSelect && canAutoSelect) {\n        const userAutoSelectId = getAutoSelectIdProp(items);\n        const autoSelectId = userAutoSelectId !== void 0 ? userAutoSelectId : (_a2 = getDefaultAutoSelectId(items)) != null ? _a2 : store.first();\n        autoSelectIdRef.current = autoSelectId;\n        store.move(autoSelectId != null ? autoSelectId : null);\n      } else {\n        const element = (_b2 = store.item(activeId || store.first())) == null ? void 0 : _b2.element;\n        if (element && \"scrollIntoView\" in element) {\n          element.scrollIntoView({ block: \"nearest\", inline: \"nearest\" });\n        }\n      }\n      return;\n    }, [\n      store,\n      open,\n      valueUpdated,\n      storeValue,\n      autoSelect,\n      resetValueOnSelect,\n      getAutoSelectIdProp,\n      items\n    ]);\n    useEffect(() => {\n      if (!inline) return;\n      const combobox = ref.current;\n      if (!combobox) return;\n      const elements = [combobox, contentElement].filter(\n        (value2) => !!value2\n      );\n      const onBlur2 = (event) => {\n        if (elements.every((el) => isFocusEventOutside(event, el))) {\n          store == null ? void 0 : store.setValue(value);\n        }\n      };\n      for (const element of elements) {\n        element.addEventListener(\"focusout\", onBlur2);\n      }\n      return () => {\n        for (const element of elements) {\n          element.removeEventListener(\"focusout\", onBlur2);\n        }\n      };\n    }, [inline, contentElement, store, value]);\n    const canShow = (event) => {\n      const currentTarget = event.currentTarget;\n      return currentTarget.value.length >= showMinLength;\n    };\n    const onChangeProp = props.onChange;\n    const showOnChangeProp = useBooleanEvent(showOnChange != null ? showOnChange : canShow);\n    const setValueOnChangeProp = useBooleanEvent(\n      // If the combobox is combined with tags, the value will be set by the tag\n      // input component.\n      setValueOnChange != null ? setValueOnChange : !store.tag\n    );\n    const onChange = useEvent((event) => {\n      onChangeProp == null ? void 0 : onChangeProp(event);\n      if (event.defaultPrevented) return;\n      if (!store) return;\n      const currentTarget = event.currentTarget;\n      const { value: value2, selectionStart, selectionEnd } = currentTarget;\n      const nativeEvent = event.nativeEvent;\n      canAutoSelectRef.current = true;\n      if (isInputEvent(nativeEvent)) {\n        if (nativeEvent.isComposing) {\n          canAutoSelectRef.current = false;\n          composingRef.current = true;\n        }\n        if (inline) {\n          const textInserted = nativeEvent.inputType === \"insertText\" || nativeEvent.inputType === \"insertCompositionText\";\n          const caretAtEnd = selectionStart === value2.length;\n          setCanInline(textInserted && caretAtEnd);\n        }\n      }\n      if (setValueOnChangeProp(event)) {\n        const isSameValue = value2 === store.getState().value;\n        store.setValue(value2);\n        queueMicrotask(() => {\n          setSelectionRange(currentTarget, selectionStart, selectionEnd);\n        });\n        if (inline && autoSelect && isSameValue) {\n          forceValueUpdate();\n        }\n      }\n      if (showOnChangeProp(event)) {\n        store.show();\n      }\n      if (!autoSelect || !canAutoSelectRef.current) {\n        store.setActiveId(null);\n      }\n    });\n    const onCompositionEndProp = props.onCompositionEnd;\n    const onCompositionEnd = useEvent((event) => {\n      canAutoSelectRef.current = true;\n      composingRef.current = false;\n      onCompositionEndProp == null ? void 0 : onCompositionEndProp(event);\n      if (event.defaultPrevented) return;\n      if (!autoSelect) return;\n      forceValueUpdate();\n    });\n    const onMouseDownProp = props.onMouseDown;\n    const blurActiveItemOnClickProp = useBooleanEvent(\n      blurActiveItemOnClick != null ? blurActiveItemOnClick : () => !!(store == null ? void 0 : store.getState().includesBaseElement)\n    );\n    const setValueOnClickProp = useBooleanEvent(setValueOnClick);\n    const showOnClickProp = useBooleanEvent(showOnClick != null ? showOnClick : canShow);\n    const onMouseDown = useEvent((event) => {\n      onMouseDownProp == null ? void 0 : onMouseDownProp(event);\n      if (event.defaultPrevented) return;\n      if (event.button) return;\n      if (event.ctrlKey) return;\n      if (!store) return;\n      if (blurActiveItemOnClickProp(event)) {\n        store.setActiveId(null);\n      }\n      if (setValueOnClickProp(event)) {\n        store.setValue(value);\n      }\n      if (showOnClickProp(event)) {\n        queueBeforeEvent(event.currentTarget, \"mouseup\", store.show);\n      }\n    });\n    const onKeyDownProp = props.onKeyDown;\n    const showOnKeyPressProp = useBooleanEvent(showOnKeyPress != null ? showOnKeyPress : canShow);\n    const onKeyDown = useEvent((event) => {\n      onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n      if (!event.repeat) {\n        canAutoSelectRef.current = false;\n      }\n      if (event.defaultPrevented) return;\n      if (event.ctrlKey) return;\n      if (event.altKey) return;\n      if (event.shiftKey) return;\n      if (event.metaKey) return;\n      if (!store) return;\n      const { open: open2 } = store.getState();\n      if (open2) return;\n      if (event.key === \"ArrowUp\" || event.key === \"ArrowDown\") {\n        if (showOnKeyPressProp(event)) {\n          event.preventDefault();\n          store.show();\n        }\n      }\n    });\n    const onBlurProp = props.onBlur;\n    const onBlur = useEvent((event) => {\n      canAutoSelectRef.current = false;\n      onBlurProp == null ? void 0 : onBlurProp(event);\n      if (event.defaultPrevented) return;\n    });\n    const id = useId(props.id);\n    const ariaAutoComplete = isAriaAutoCompleteValue(autoComplete) ? autoComplete : void 0;\n    const isActiveItem = store.useState((state) => state.activeId === null);\n    props = __spreadProps(__spreadValues({\n      id,\n      role: \"combobox\",\n      \"aria-autocomplete\": ariaAutoComplete,\n      \"aria-haspopup\": getPopupRole(contentElement, \"listbox\"),\n      \"aria-expanded\": open,\n      \"aria-controls\": contentElement == null ? void 0 : contentElement.id,\n      \"data-active-item\": isActiveItem || void 0,\n      value\n    }, props), {\n      ref: useMergeRefs(ref, props.ref),\n      onChange,\n      onCompositionEnd,\n      onMouseDown,\n      onKeyDown,\n      onBlur\n    });\n    props = useComposite(__spreadProps(__spreadValues({\n      store,\n      focusable\n    }, props), {\n      // Enable inline autocomplete when the user moves from the combobox input\n      // to an item.\n      moveOnKeyPress: (event) => {\n        if (isFalsyBooleanCallback(moveOnKeyPress, event)) return false;\n        if (inline) setCanInline(true);\n        return true;\n      }\n    }));\n    props = usePopoverAnchor(__spreadValues({ store }, props));\n    return __spreadValues({ autoComplete: \"off\" }, props);\n  }\n);\nvar Combobox = forwardRef(function Combobox2(props) {\n  const htmlProps = useCombobox(props);\n  return createElement(TagName, htmlProps);\n});\nexport {\n  Combobox,\n  useCombobox\n};\n", "\"use client\";\nimport {\n  useCompositeHover\n} from \"./IABE5EV2.js\";\nimport {\n  useCompositeItem\n} from \"./SBSPVDDI.js\";\nimport {\n  ComboboxItemCheckedContext,\n  ComboboxItemValueContext,\n  ComboboxListRoleContext,\n  useComboboxScopedContext\n} from \"./OLVWQA7U.js\";\nimport {\n  useStoreStateObject\n} from \"./RTNCFSKZ.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef,\n  memo\n} from \"./VOQWLFSQ.js\";\nimport {\n  useBooleanEvent,\n  useEvent,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/combobox/combobox-item.tsx\nimport { isTextField } from \"@ariakit/core/utils/dom\";\nimport { isDownloading, isOpeningInNewTab } from \"@ariakit/core/utils/events\";\nimport { hasFocus } from \"@ariakit/core/utils/focus\";\nimport { invariant } from \"@ariakit/core/utils/misc\";\nimport { useCallback, useContext } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nfunction isSelected(storeValue, itemValue) {\n  if (itemValue == null) return;\n  if (storeValue == null) return false;\n  if (Array.isArray(storeValue)) {\n    return storeValue.includes(itemValue);\n  }\n  return storeValue === itemValue;\n}\nfunction getItemRole(popupRole) {\n  var _a;\n  const itemRoleByPopupRole = {\n    menu: \"menuitem\",\n    listbox: \"option\",\n    tree: \"treeitem\"\n  };\n  const key = popupRole;\n  return (_a = itemRoleByPopupRole[key]) != null ? _a : \"option\";\n}\nvar useComboboxItem = createHook(\n  function useComboboxItem2(_a) {\n    var _b = _a, {\n      store,\n      value,\n      hideOnClick,\n      setValueOnClick,\n      selectValueOnClick = true,\n      resetValueOnSelect,\n      focusOnHover = false,\n      moveOnKeyPress = true,\n      getItem: getItemProp\n    } = _b, props = __objRest(_b, [\n      \"store\",\n      \"value\",\n      \"hideOnClick\",\n      \"setValueOnClick\",\n      \"selectValueOnClick\",\n      \"resetValueOnSelect\",\n      \"focusOnHover\",\n      \"moveOnKeyPress\",\n      \"getItem\"\n    ]);\n    var _a2;\n    const context = useComboboxScopedContext();\n    store = store || context;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"ComboboxItem must be wrapped in a ComboboxList or ComboboxPopover component.\"\n    );\n    const { resetValueOnSelectState, multiSelectable, selected } = useStoreStateObject(store, {\n      resetValueOnSelectState: \"resetValueOnSelect\",\n      multiSelectable(state) {\n        return Array.isArray(state.selectedValue);\n      },\n      selected(state) {\n        return isSelected(state.selectedValue, value);\n      }\n    });\n    const getItem = useCallback(\n      (item) => {\n        const nextItem = __spreadProps(__spreadValues({}, item), { value });\n        if (getItemProp) {\n          return getItemProp(nextItem);\n        }\n        return nextItem;\n      },\n      [value, getItemProp]\n    );\n    setValueOnClick = setValueOnClick != null ? setValueOnClick : !multiSelectable;\n    hideOnClick = hideOnClick != null ? hideOnClick : value != null && !multiSelectable;\n    const onClickProp = props.onClick;\n    const setValueOnClickProp = useBooleanEvent(setValueOnClick);\n    const selectValueOnClickProp = useBooleanEvent(selectValueOnClick);\n    const resetValueOnSelectProp = useBooleanEvent(\n      (_a2 = resetValueOnSelect != null ? resetValueOnSelect : resetValueOnSelectState) != null ? _a2 : multiSelectable\n    );\n    const hideOnClickProp = useBooleanEvent(hideOnClick);\n    const onClick = useEvent((event) => {\n      onClickProp == null ? void 0 : onClickProp(event);\n      if (event.defaultPrevented) return;\n      if (isDownloading(event)) return;\n      if (isOpeningInNewTab(event)) return;\n      if (value != null) {\n        if (selectValueOnClickProp(event)) {\n          if (resetValueOnSelectProp(event)) {\n            store == null ? void 0 : store.resetValue();\n          }\n          store == null ? void 0 : store.setSelectedValue((prevValue) => {\n            if (!Array.isArray(prevValue)) return value;\n            if (prevValue.includes(value)) {\n              return prevValue.filter((v) => v !== value);\n            }\n            return [...prevValue, value];\n          });\n        }\n        if (setValueOnClickProp(event)) {\n          store == null ? void 0 : store.setValue(value);\n        }\n      }\n      if (hideOnClickProp(event)) {\n        store == null ? void 0 : store.hide();\n      }\n    });\n    const onKeyDownProp = props.onKeyDown;\n    const onKeyDown = useEvent((event) => {\n      onKeyDownProp == null ? void 0 : onKeyDownProp(event);\n      if (event.defaultPrevented) return;\n      const baseElement = store == null ? void 0 : store.getState().baseElement;\n      if (!baseElement) return;\n      if (hasFocus(baseElement)) return;\n      const printable = event.key.length === 1;\n      if (printable || event.key === \"Backspace\" || event.key === \"Delete\") {\n        queueMicrotask(() => baseElement.focus());\n        if (isTextField(baseElement)) {\n          store == null ? void 0 : store.setValue(baseElement.value);\n        }\n      }\n    });\n    if (multiSelectable && selected != null) {\n      props = __spreadValues({\n        \"aria-selected\": selected\n      }, props);\n    }\n    props = useWrapElement(\n      props,\n      (element) => /* @__PURE__ */ jsx(ComboboxItemValueContext.Provider, { value, children: /* @__PURE__ */ jsx(ComboboxItemCheckedContext.Provider, { value: selected != null ? selected : false, children: element }) }),\n      [value, selected]\n    );\n    const popupRole = useContext(ComboboxListRoleContext);\n    props = __spreadProps(__spreadValues({\n      role: getItemRole(popupRole),\n      children: value\n    }, props), {\n      onClick,\n      onKeyDown\n    });\n    const moveOnKeyPressProp = useBooleanEvent(moveOnKeyPress);\n    props = useCompositeItem(__spreadProps(__spreadValues({\n      store\n    }, props), {\n      getItem,\n      // Dispatch a custom event on the combobox input when moving to an item\n      // with the keyboard so the Combobox component can enable inline\n      // autocompletion.\n      moveOnKeyPress: (event) => {\n        if (!moveOnKeyPressProp(event)) return false;\n        const moveEvent = new Event(\"combobox-item-move\");\n        const baseElement = store == null ? void 0 : store.getState().baseElement;\n        baseElement == null ? void 0 : baseElement.dispatchEvent(moveEvent);\n        return true;\n      }\n    }));\n    props = useCompositeHover(__spreadValues({ store, focusOnHover }, props));\n    return props;\n  }\n);\nvar ComboboxItem = memo(\n  forwardRef(function ComboboxItem2(props) {\n    const htmlProps = useComboboxItem(props);\n    return createElement(TagName, htmlProps);\n  })\n);\n\nexport {\n  useComboboxItem,\n  ComboboxItem\n};\n", "\"use client\";\nimport {\n  isHidden\n} from \"./K4R5DNTX.js\";\nimport {\n  ComboboxListRoleContext,\n  ComboboxScopedContextProvider,\n  useComboboxContext,\n  useComboboxScopedContext\n} from \"./OLVWQA7U.js\";\nimport {\n  createElement,\n  createHook,\n  forwardRef\n} from \"./VOQWLFSQ.js\";\nimport {\n  useAttribute,\n  useId,\n  useMergeRefs,\n  useSafeLayoutEffect,\n  useWrapElement\n} from \"./5GGHRIN3.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/combobox/combobox-list.tsx\nimport { invariant, removeUndefinedValues } from \"@ariakit/core/utils/misc\";\nimport { useRef, useState } from \"react\";\nimport { jsx } from \"react/jsx-runtime\";\nvar TagName = \"div\";\nvar useComboboxList = createHook(\n  function useComboboxList2(_a) {\n    var _b = _a, { store, alwaysVisible } = _b, props = __objRest(_b, [\"store\", \"alwaysVisible\"]);\n    const scopedContext = useComboboxScopedContext(true);\n    const context = useComboboxContext();\n    store = store || context;\n    const scopedContextSameStore = !!store && store === scopedContext;\n    invariant(\n      store,\n      process.env.NODE_ENV !== \"production\" && \"ComboboxList must receive a `store` prop or be wrapped in a ComboboxProvider component.\"\n    );\n    const ref = useRef(null);\n    const id = useId(props.id);\n    const mounted = store.useState(\"mounted\");\n    const hidden = isHidden(mounted, props.hidden, alwaysVisible);\n    const style = hidden ? __spreadProps(__spreadValues({}, props.style), { display: \"none\" }) : props.style;\n    const multiSelectable = store.useState(\n      (state) => Array.isArray(state.selectedValue)\n    );\n    const role = useAttribute(ref, \"role\", props.role);\n    const isCompositeRole = role === \"listbox\" || role === \"tree\" || role === \"grid\";\n    const ariaMultiSelectable = isCompositeRole ? multiSelectable || void 0 : void 0;\n    const [hasListboxInside, setHasListboxInside] = useState(false);\n    const contentElement = store.useState(\"contentElement\");\n    useSafeLayoutEffect(() => {\n      if (!mounted) return;\n      const element = ref.current;\n      if (!element) return;\n      if (contentElement !== element) return;\n      const callback = () => {\n        setHasListboxInside(!!element.querySelector(\"[role='listbox']\"));\n      };\n      const observer = new MutationObserver(callback);\n      observer.observe(element, {\n        subtree: true,\n        childList: true,\n        attributeFilter: [\"role\"]\n      });\n      callback();\n      return () => observer.disconnect();\n    }, [mounted, contentElement]);\n    if (!hasListboxInside) {\n      props = __spreadValues({\n        role: \"listbox\",\n        \"aria-multiselectable\": ariaMultiSelectable\n      }, props);\n    }\n    props = useWrapElement(\n      props,\n      (element) => /* @__PURE__ */ jsx(ComboboxScopedContextProvider, { value: store, children: /* @__PURE__ */ jsx(ComboboxListRoleContext.Provider, { value: role, children: element }) }),\n      [store, role]\n    );\n    const setContentElement = id && (!scopedContext || !scopedContextSameStore) ? store.setContentElement : null;\n    props = __spreadProps(__spreadValues({\n      id,\n      hidden\n    }, props), {\n      ref: useMergeRefs(setContentElement, ref, props.ref),\n      style\n    });\n    return removeUndefinedValues(props);\n  }\n);\nvar ComboboxList = forwardRef(function ComboboxList2(props) {\n  const htmlProps = useComboboxList(props);\n  return createElement(TagName, htmlProps);\n});\n\nexport {\n  useComboboxList,\n  ComboboxList\n};\n", "\"use client\";\nimport {\n  CompositeContextProvider,\n  CompositeScopedContextProvider\n} from \"./APTFW6PT.js\";\nimport {\n  createStoreContext\n} from \"./VOQWLFSQ.js\";\n\n// src/tag/tag-context.tsx\nimport { createContext } from \"react\";\nvar TagValueContext = createContext(null);\nvar TagRemoveIdContext = createContext(\n  null\n);\nvar ctx = createStoreContext(\n  [CompositeContextProvider],\n  [CompositeScopedContextProvider]\n);\nvar useTagContext = ctx.useContext;\nvar useTagScopedContext = ctx.useScopedContext;\nvar useTagProviderContext = ctx.useProviderContext;\nvar TagContextProvider = ctx.ContextProvider;\nvar TagScopedContextProvider = ctx.ScopedContextProvider;\n\nexport {\n  TagValueContext,\n  TagRemoveIdContext,\n  useTagContext,\n  useTagScopedContext,\n  useTagProviderContext,\n  TagContextProvider,\n  TagScopedContextProvider\n};\n", "\"use client\";\nimport {\n  isSafari,\n  isTouchDevice\n} from \"../__chunks/QAGXQEUG.js\";\nimport {\n  createPopoverStore\n} from \"../__chunks/ME2CUF3F.js\";\nimport {\n  createCompositeStore\n} from \"../__chunks/2CHYBBFH.js\";\nimport \"../__chunks/7PRQYBBV.js\";\nimport \"../__chunks/FZZ2AVHF.js\";\nimport \"../__chunks/RCQ5P4YE.js\";\nimport \"../__chunks/EO4GVUA4.js\";\nimport \"../__chunks/DTR5TSDJ.js\";\nimport {\n  batch,\n  createStore,\n  mergeStore,\n  pick,\n  setup,\n  sync,\n  throwOnConflictingProps\n} from \"../__chunks/BCALMBPZ.js\";\nimport {\n  chain,\n  defaultValue\n} from \"../__chunks/PBFD2E7P.js\";\nimport {\n  __objRest,\n  __spreadProps,\n  __spreadValues\n} from \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-store.ts\nvar isTouchSafari = isSafari() && isTouchDevice();\nfunction createComboboxStore(_a = {}) {\n  var _b = _a, {\n    tag\n  } = _b, props = __objRest(_b, [\n    \"tag\"\n  ]);\n  const store = mergeStore(props.store, pick(tag, [\"value\", \"rtl\"]));\n  throwOnConflictingProps(props, store);\n  const tagState = tag == null ? void 0 : tag.getState();\n  const syncState = store == null ? void 0 : store.getState();\n  const activeId = defaultValue(\n    props.activeId,\n    syncState == null ? void 0 : syncState.activeId,\n    props.defaultActiveId,\n    null\n  );\n  const composite = createCompositeStore(__spreadProps(__spreadValues({}, props), {\n    activeId,\n    includesBaseElement: defaultValue(\n      props.includesBaseElement,\n      syncState == null ? void 0 : syncState.includesBaseElement,\n      true\n    ),\n    orientation: defaultValue(\n      props.orientation,\n      syncState == null ? void 0 : syncState.orientation,\n      \"vertical\"\n    ),\n    focusLoop: defaultValue(props.focusLoop, syncState == null ? void 0 : syncState.focusLoop, true),\n    focusWrap: defaultValue(props.focusWrap, syncState == null ? void 0 : syncState.focusWrap, true),\n    virtualFocus: defaultValue(\n      props.virtualFocus,\n      syncState == null ? void 0 : syncState.virtualFocus,\n      true\n    )\n  }));\n  const popover = createPopoverStore(__spreadProps(__spreadValues({}, props), {\n    placement: defaultValue(\n      props.placement,\n      syncState == null ? void 0 : syncState.placement,\n      \"bottom-start\"\n    )\n  }));\n  const value = defaultValue(\n    props.value,\n    syncState == null ? void 0 : syncState.value,\n    props.defaultValue,\n    \"\"\n  );\n  const selectedValue = defaultValue(\n    props.selectedValue,\n    syncState == null ? void 0 : syncState.selectedValue,\n    tagState == null ? void 0 : tagState.values,\n    props.defaultSelectedValue,\n    \"\"\n  );\n  const multiSelectable = Array.isArray(selectedValue);\n  const initialState = __spreadProps(__spreadValues(__spreadValues({}, composite.getState()), popover.getState()), {\n    value,\n    selectedValue,\n    resetValueOnSelect: defaultValue(\n      props.resetValueOnSelect,\n      syncState == null ? void 0 : syncState.resetValueOnSelect,\n      multiSelectable\n    ),\n    resetValueOnHide: defaultValue(\n      props.resetValueOnHide,\n      syncState == null ? void 0 : syncState.resetValueOnHide,\n      multiSelectable && !tag\n    ),\n    activeValue: syncState == null ? void 0 : syncState.activeValue\n  });\n  const combobox = createStore(initialState, composite, popover, store);\n  if (isTouchSafari) {\n    setup(\n      combobox,\n      () => sync(combobox, [\"virtualFocus\"], () => {\n        combobox.setState(\"virtualFocus\", false);\n      })\n    );\n  }\n  setup(combobox, () => {\n    if (!tag) return;\n    return chain(\n      sync(combobox, [\"selectedValue\"], (state) => {\n        if (!Array.isArray(state.selectedValue)) return;\n        tag.setValues(state.selectedValue);\n      }),\n      sync(tag, [\"values\"], (state) => {\n        combobox.setState(\"selectedValue\", state.values);\n      })\n    );\n  });\n  setup(\n    combobox,\n    () => sync(combobox, [\"resetValueOnHide\", \"mounted\"], (state) => {\n      if (!state.resetValueOnHide) return;\n      if (state.mounted) return;\n      combobox.setState(\"value\", value);\n    })\n  );\n  setup(\n    combobox,\n    () => sync(combobox, [\"open\"], (state) => {\n      if (state.open) return;\n      combobox.setState(\"activeId\", activeId);\n      combobox.setState(\"moves\", 0);\n    })\n  );\n  setup(\n    combobox,\n    () => sync(combobox, [\"moves\", \"activeId\"], (state, prevState) => {\n      if (state.moves === prevState.moves) {\n        combobox.setState(\"activeValue\", void 0);\n      }\n    })\n  );\n  setup(\n    combobox,\n    () => batch(combobox, [\"moves\", \"renderedItems\"], (state, prev) => {\n      if (state.moves === prev.moves) return;\n      const { activeId: activeId2 } = combobox.getState();\n      const activeItem = composite.item(activeId2);\n      combobox.setState(\"activeValue\", activeItem == null ? void 0 : activeItem.value);\n    })\n  );\n  return __spreadProps(__spreadValues(__spreadValues(__spreadValues({}, popover), composite), combobox), {\n    tag,\n    setValue: (value2) => combobox.setState(\"value\", value2),\n    resetValue: () => combobox.setState(\"value\", initialState.value),\n    setSelectedValue: (selectedValue2) => combobox.setState(\"selectedValue\", selectedValue2)\n  });\n}\nexport {\n  createComboboxStore\n};\n", "\"use client\";\nimport {\n  useTagContext\n} from \"./VJQU3YUE.js\";\nimport {\n  usePopoverStoreProps\n} from \"./RUY5BUJG.js\";\nimport {\n  useCompositeStoreOptions,\n  useCompositeStoreProps\n} from \"./B7UTNDHN.js\";\nimport {\n  useStore,\n  useStoreProps\n} from \"./RTNCFSKZ.js\";\nimport {\n  useUpdateEffect\n} from \"./5GGHRIN3.js\";\nimport {\n  __spreadProps,\n  __spreadValues\n} from \"./3YLGPPWQ.js\";\n\n// src/combobox/combobox-store.ts\nimport * as Core from \"@ariakit/core/combobox/combobox-store\";\nfunction useComboboxStoreOptions(props) {\n  const tag = useTagContext();\n  props = __spreadProps(__spreadValues({}, props), {\n    tag: props.tag !== void 0 ? props.tag : tag\n  });\n  return useCompositeStoreOptions(props);\n}\nfunction useComboboxStoreProps(store, update, props) {\n  useUpdateEffect(update, [props.tag]);\n  useStoreProps(store, props, \"value\", \"setValue\");\n  useStoreProps(store, props, \"selectedValue\", \"setSelectedValue\");\n  useStoreProps(store, props, \"resetValueOnHide\");\n  useStoreProps(store, props, \"resetValueOnSelect\");\n  return Object.assign(\n    useCompositeStoreProps(\n      usePopoverStoreProps(store, update, props),\n      update,\n      props\n    ),\n    { tag: props.tag }\n  );\n}\nfunction useComboboxStore(props = {}) {\n  props = useComboboxStoreOptions(props);\n  const [store, update] = useStore(Core.createComboboxStore, props);\n  return useComboboxStoreProps(store, update, props);\n}\n\nexport {\n  useComboboxStoreOptions,\n  useComboboxStoreProps,\n  useComboboxStore\n};\n", "\"use client\";\nimport {\n  useComboboxStore\n} from \"../__chunks/HI6DYBVE.js\";\nimport \"../__chunks/VJQU3YUE.js\";\nimport \"../__chunks/RUY5BUJG.js\";\nimport \"../__chunks/B7UTNDHN.js\";\nimport \"../__chunks/Y2U4BRIM.js\";\nimport \"../__chunks/T22PY7TE.js\";\nimport \"../__chunks/AMMIPFT4.js\";\nimport {\n  ComboboxContextProvider\n} from \"../__chunks/OLVWQA7U.js\";\nimport \"../__chunks/Y67KZUMI.js\";\nimport \"../__chunks/T2AZQXQU.js\";\nimport \"../__chunks/ABN76PSX.js\";\nimport \"../__chunks/APTFW6PT.js\";\nimport \"../__chunks/RTNCFSKZ.js\";\nimport \"../__chunks/5CPL3B7G.js\";\nimport \"../__chunks/VOQWLFSQ.js\";\nimport \"../__chunks/5GGHRIN3.js\";\nimport \"../__chunks/SK3NAZA3.js\";\nimport \"../__chunks/3YLGPPWQ.js\";\n\n// src/combobox/combobox-provider.tsx\nimport { jsx } from \"react/jsx-runtime\";\nfunction ComboboxProvider(props = {}) {\n  const store = useComboboxStore(props);\n  return /* @__PURE__ */ jsx(ComboboxContextProvider, { value: store, children: props.children });\n}\nexport {\n  ComboboxProvider\n};\n", "import { subscribe } from \"@ariakit/core/utils/store\"\nimport type { HovercardStoreState, MenuStoreProps } from \"@ariakit/react\"\nimport { useMenuStore } from \"@ariakit/react\"\nimport { type ThemeOverrideMode, useViewportResize } from \"@framerjs/fresco\"\nimport { reportableError } from \"@framerjs/shared\"\nimport { cx } from \"@linaria/core\"\nimport type { VekterEngineScheduler } from \"document/VekterEngineScheduler.ts\"\nimport { dispatchAction } from \"document/components/actions/ActionResponder.tsx\"\nimport type { Point } from \"library/render/types/Point.ts\"\nimport type { Rect } from \"library/render/types/Rect.ts\"\nimport { useStableCallback } from \"library/utils/useStableCallback.ts\"\nimport { startTransition, useCallback, useEffect, useMemo, useState } from \"react\"\nimport { isArray, isFunction, isString, isUndefined } from \"utils/typeChecks.ts\"\nimport * as styles from \"./Menu.styles.ts\"\nimport type { RootMenuProps } from \"./Menu.tsx\"\nimport { Menu, isValidMenuDragGesture } from \"./Menu.tsx\"\nimport { MenuConfigProvider } from \"./MenuConfigContext.tsx\"\nimport type { MenuItemOptionsWithPath } from \"./types.ts\"\n\nexport interface ContextMenuState {\n\titems: readonly MenuItemOptionsWithPath[]\n\tconfig: MenuConfig\n\tstartTime: number\n}\n\nexport interface MenuConfig extends MenuStoreProps {\n\tlocation: Point | Rect\n\tclassName?: string\n\tgutter?: RootMenuProps[\"gutter\"]\n\t/**\n\t * Controls the placement of the submenus relative to the trigger element.\n\t * When passed, the placement state of the submenus becomes controlled state.\n\t */\n\tsubmenuPlacement?: HovercardStoreState[\"placement\"]\n\t/**\n\t * Controls whether the menu should be searchable or not. Defaults to `true`.\n\t * If set to `true`, the menu always renders the search input.\n\t * If left `undefined`, whether the menu renders the search input\n\t * is based on the number of items. If there are more than 10 items,\n\t * the menu renders the search input.\n\t *\n\t * If you want to disable the search input, set this to `false`.\n\t */\n\tsearchable?: boolean\n\t/**\n\t * Sets fixed width for the menu. If not set, the menu width is based on the content.\n\t */\n\twidth?: number\n\t/**\n\t * Whether to automatically close the menu when an item is selected. If set to `false`,\n\t * the caller is responsible for keeping the UI up-to-date after user interaction.\n\t * Defaults to `true`.\n\t */\n\tcloseOnSelect?: boolean\n\t/**\n\t * Sets the menu to use an unsaturated (gray) style for active menu items.\n\t * Defaults to `false`. When not set, the menu will use the default blue highlight.\n\t */\n\tunsaturated?: boolean\n\t/** When defined, sets the theme override to be used inside the portal menu. */\n\tmode?: ThemeOverrideMode\n\tonDone?: () => void\n\tonCancel?: () => void\n\t/**\n\t * `onSelect` is to execute a custom action, the `selection` object is passed to it.\n\t * That essentially makes the menu controlled and any `click` handlers on the menu items\n\t * will not be executed.\n\t *\n\t * This is useful when you want to execute main menu actions.\n\t */\n\tonSelect?: (event: React.MouseEvent, item: MenuItemOptionsWithPath) => void\n}\n\n// The minimum number of items that need be present in the menu to render the search input.\nconst minSearchableItems = 10\n\n/** Only exported for testing purposes. */\nexport const defaultMenuStoreValues: MenuStoreProps = {\n\tplacement: \"bottom-start\",\n\torientation: \"vertical\",\n}\n\nconst dataIsContextMenuDataAttribute = \"data-is-context-menu\"\nexport const dataIsContextMenuSelector = `[${dataIsContextMenuDataAttribute}=\"true\"]`\n\ninterface VekterContextMenuProps {\n\tvekterTaskScheduler: VekterEngineScheduler\n\tsetEditReason: (reason: string) => void\n\tonKeyDown: (event: React.KeyboardEvent) => void\n\tonKeyUp: (event: React.KeyboardEvent) => void\n}\n\ntype ContextMenuProps = {\n\tmenu: { items: readonly MenuItemOptionsWithPath[]; config: MenuConfig; startTime: number } | null\n\tonClose: () => void\n} & (\n\t| ({ environment: \"onPage\" | \"dashboard\" } & Partial<{\n\t\t\t[K in keyof VekterContextMenuProps]: undefined\n\t  }>)\n\t| ({\n\t\t\tenvironment: \"project\"\n\t  } & VekterContextMenuProps)\n)\n\nexport function ContextMenu({\n\tmenu,\n\tonClose,\n\tvekterTaskScheduler,\n\tsetEditReason,\n\tonKeyDown,\n\tonKeyUp,\n}: ContextMenuProps) {\n\tconst [searchValue, setSearchValue] = useState(\"\")\n\n\tconst stableOnClose = useStableCallback(onClose)\n\n\tconst hasSearch = useMemo(() => {\n\t\tif (!menu) return false\n\t\tif (menu.config.searchable === false) return false\n\t\t// When explicitly enabled, always render the search input.\n\t\tif (menu.config.searchable === true) return true\n\t\tconst searchableMenuItemCount = getSearchableMenuItemCount(menu.items)\n\t\treturn searchableMenuItemCount > minSearchableItems\n\t}, [menu])\n\n\tconst filteredItems = useMemo(() => {\n\t\tif (!hasSearch || !menu?.items) return menu?.items ?? []\n\t\treturn filterMenuItems(searchValue, menu.items)\n\t}, [hasSearch, menu?.items, searchValue])\n\n\tconst menuStore = useMenuStore({\n\t\t...defaultMenuStoreValues,\n\t\tplacement: menu?.config.placement ?? defaultMenuStoreValues.placement,\n\t})\n\n\tconst shouldShow = (menu?.items.length ?? 0) > 0\n\tconst [mouseDidMove, setMouseDidMove] = useState(false)\n\n\tuseEffect(() => {\n\t\tif (!shouldShow) return\n\n\t\tconst abortController = new AbortController()\n\n\t\tmenuStore.show()\n\n\t\tlet didMove = false\n\n\t\tconst handleMouseUp = (event: MouseEvent) => {\n\t\t\tconst startTime = menu?.startTime\n\t\t\tif (!isValidMenuDragGesture(didMove, startTime)) return\n\n\t\t\tif (!isBackdropElement(event.target)) return\n\n\t\t\tmenuStore.hide()\n\t\t}\n\n\t\tconst handleMouseMove = () => {\n\t\t\tdidMove = true\n\t\t\tsetMouseDidMove(true)\n\t\t}\n\n\t\twindow.addEventListener(\"mouseup\", handleMouseUp, { signal: abortController.signal })\n\t\twindow.addEventListener(\"mousemove\", handleMouseMove, { once: true, signal: abortController.signal })\n\n\t\treturn () => {\n\t\t\tabortController.abort()\n\t\t\tsetMouseDidMove(false)\n\t\t}\n\t}, [shouldShow, menuStore, menu])\n\n\t// Close the menu when the window is resized\n\tuseViewportResize(menuStore.hide, shouldShow)\n\n\t// Clear the menu state after the leave animation completes, to prevent the menu contents from\n\t// being changed while the menu is still animating. Instead of using the onClose event, we listen\n\t// to the unmount event \u2014 a known AriaKit workaround to the lack of animation events, which\n\t// requires `unmountOnHide: true`.\n\tuseEffect(() => {\n\t\treturn subscribe(menuStore, [\"mounted\"], (state, prevState) => {\n\t\t\tif (prevState.mounted && !state.mounted) {\n\t\t\t\tsetSearchValue(\"\")\n\t\t\t\tstableOnClose() // Clears the menu state and configuration\n\t\t\t}\n\t\t})\n\t}, [menuStore])\n\n\tconst handleGetAnchorRect = useCallback(() => {\n\t\treturn menu?.config.location ?? null\n\t}, [menu?.config.location])\n\n\tconst handleSelection = useCallback(\n\t\t(event: React.MouseEvent, item: MenuItemOptionsWithPath) => {\n\t\t\tif (!menu || menu?.items.length === 0) return\n\n\t\t\texecuteWithScheduler(() => {\n\t\t\t\tconst editReason = !isUndefined(item.editReason) ? item.editReason : (item.role ?? item.label)\n\t\t\t\tif (editReason) {\n\t\t\t\t\tsetEditReason?.(editReason)\n\t\t\t\t}\n\n\t\t\t\tif (menu?.config.onSelect) {\n\t\t\t\t\tmenu?.config.onSelect(event, item)\n\t\t\t\t} else if (item.click) {\n\t\t\t\t\titem.click()\n\t\t\t\t} else if (item.role) {\n\t\t\t\t\tdispatchAction(item.role, { fromContextMenu: true })\n\t\t\t\t}\n\t\t\t}, vekterTaskScheduler)\n\t\t},\n\t\t[menu, setEditReason, vekterTaskScheduler],\n\t)\n\n\tconst handleSearch = useCallback((value: string) => startTransition(() => setSearchValue(value)), [])\n\n\tconst rootMenuProps = useMemo(() => {\n\t\treturn {\n\t\t\tstore: menuStore,\n\t\t\tgetAnchorRect: handleGetAnchorRect,\n\t\t\tgutter: menu?.config.gutter,\n\t\t\tclassName: cx(styles.menuProvider, menu?.config?.className),\n\t\t\tonKeyDown,\n\t\t\tonKeyUp,\n\t\t\t[dataIsContextMenuDataAttribute]: true,\n\t\t} satisfies RootMenuProps\n\t}, [handleGetAnchorRect, menu?.config.gutter, menu?.config?.className, menuStore, onKeyDown, onKeyUp])\n\n\tuseEffect(() => {\n\t\tconst onGlobalMenuEvent = (event: Event) => {\n\t\t\tif (isBackdropElement(event.target)) {\n\t\t\t\tevent.preventDefault()\n\t\t\t}\n\t\t}\n\n\t\tdocument?.addEventListener(\"contextmenu\", onGlobalMenuEvent)\n\n\t\treturn () => {\n\t\t\tdocument?.removeEventListener(\"contextmenu\", onGlobalMenuEvent)\n\t\t}\n\t}, [])\n\n\treturn (\n\t\t<MenuConfigProvider\n\t\t\tstartTime={menu?.startTime}\n\t\t\tmouseDidMove={mouseDidMove}\n\t\t\tcloseOnSelect={menu?.config?.closeOnSelect ?? true}\n\t\t>\n\t\t\t<Menu\n\t\t\t\titems={filteredItems}\n\t\t\t\tmenuProps={rootMenuProps}\n\t\t\t\tunsaturated={menu?.config?.unsaturated}\n\t\t\t\tonSelection={handleSelection}\n\t\t\t\tsubmenuPlacement={menu?.config?.submenuPlacement}\n\t\t\t\tsearchValue={hasSearch ? searchValue : undefined}\n\t\t\t\tonSearch={hasSearch ? handleSearch : undefined}\n\t\t\t\twidth={menu?.config?.width}\n\t\t\t\tmode={menu?.config?.mode}\n\t\t\t/>\n\t\t</MenuConfigProvider>\n\t)\n}\n\nexport function isBackdropElement(element: unknown): element is HTMLElement {\n\tif (!(element instanceof HTMLElement)) return false\n\n\tconst backdropAttribute = element.getAttribute(\"data-backdrop\")\n\treturn isString(backdropAttribute) && backdropAttribute.length > 0\n}\n\nfunction executeWithScheduler(action: () => void, taskScheduler: VekterEngineScheduler | undefined) {\n\ttaskScheduler?.enterEventHandling()\n\ttry {\n\t\treturn action()\n\t} catch (error) {\n\t\ttaskScheduler?.errorInEventHandler(reportableError(error))\n\t\tthrow error\n\t} finally {\n\t\ttaskScheduler?.exitEventHandling()\n\t}\n}\n\n/**\n * Filters the menu items based on the search query. The search is case-insensitive.\n * Since we don't know how many nested submenus, we need to recursively filter the items.\n * Include the parent menu only if there are visible items in it.\n * @param search The search query to filter the menu items.\n * @param items The menu items to filter.\n * */\nexport function filterMenuItems(\n\tsearch: string,\n\titems: readonly MenuItemOptionsWithPath[],\n): readonly MenuItemOptionsWithPath[] {\n\tif (search === \"\") return items\n\tconst searchQuery = search.toLowerCase()\n\n\tconst filteredItems: MenuItemOptionsWithPath[] = []\n\tfor (const item of items) {\n\t\tif (!isSearchableItem(item)) continue\n\n\t\tconst label = item.label?.toLowerCase()\n\t\tconst description = item.description?.toLowerCase()\n\t\tconst aliasesMatch = item.aliases?.some(alias => alias.toLowerCase().includes(searchQuery))\n\t\tconst isMatch = label?.includes(searchQuery) || description?.includes(searchQuery) || aliasesMatch\n\n\t\tif (isMatch) {\n\t\t\tfilteredItems.push(item)\n\t\t\tcontinue\n\t\t}\n\n\t\tif (Array.isArray(item.submenu)) {\n\t\t\tconst filteredSubmenu = filterMenuItems(searchQuery, item.submenu)\n\n\t\t\tif (filteredSubmenu.length > 0) {\n\t\t\t\tfilteredItems.push({ ...item, submenu: filteredSubmenu })\n\t\t\t}\n\t\t}\n\t}\n\n\treturn filteredItems\n}\n\n// we need to check if the item is valid to be selected\n// if the item is not visible or disabled, we need to skip it\n// if the item is a separator, we need to skip it\n// if the item is empty submenu, we need to skip it\nfunction isSearchableItem(item: MenuItemOptionsWithPath): boolean {\n\tif (item.type === \"separator\") return false\n\tif (item.visible === false) return false\n\tif (item.enabled === false) return false\n\tif (isFunction(item.submenu)) return false\n\tif (isArray(item.submenu) && item.submenu.length === 0) return false\n\treturn true\n}\n\nfunction getSearchableMenuItemCount(items: readonly MenuItemOptionsWithPath[]): number {\n\tlet count = 0\n\n\tfor (const item of items) {\n\t\tif (!isSearchableItem(item)) continue\n\n\t\tcount += 1\n\n\t\tif (Array.isArray(item.submenu)) {\n\t\t\tcount += getSearchableMenuItemCount(item.submenu)\n\t\t}\n\t}\n\n\treturn count\n}\n", "import \"Menu.styles_1anxfqd.wyw.css\"; import { sharedTooltipToolbar } from \"@framerjs/fresco/src/components/Tooltip.styles\";\nimport { cx } from \"@linaria/core\";\nexport const maxMenuHeightFixed = 800;\nexport const maxMenuHeightPercentage = 0.9;\nexport const menuGutter = 4;\nexport const separatorHeight = 1;\nexport const menuItemWrapper = \"menuItemWrapper_mu6ry6k\";\nexport const itemTooltip = cx(sharedTooltipToolbar, \"itemTooltip_i1irwbe6\");\nexport const buttonArrow = \"buttonArrow_bqwxsfx\";\nexport const acceleratorList = \"acceleratorList_ay9bzvl\";\nexport const accelerator = \"accelerator_ahvwyj9\";\nexport const delimiter = \"delimiter_d1aq9ud6\";\nexport const badge = \"badge_b1r3i2ed\";\nexport const description = \"description_ddwpnn1\";\nexport const checkboxContainer = \"checkboxContainer_ck05by6\";\nexport const checkbox = \"checkbox_c1ide4av\";\nexport const label = \"label_lqsdyuc\";\nexport const labelWithNoRightElement = cx(label, \"labelWithNoRightElement_l10bnj1v\");\nexport const menuIcon = \"menuIcon_m1lrhh4u\";\nexport const menuItem = \"menuItem_m1fc9sk1\";\nexport const menuItemWithDescription = cx(menuItem, \"menuItemWithDescription_mfbiwg1\");\nexport const menuItemWithCheckedPadding = \"menuItemWithCheckedPadding_m154ipfz\";\nexport const menuItemWithAvatar = \"menuItemWithAvatar_m1e3rcy1\";\nexport const separator = \"separator_sxzzb2k\";\nexport const menu = \"menu_m8c9l16\";\nexport const animatedMenu = \"animatedMenu_a1t22t6v\";\nexport const menuUnsaturated = \"menuUnsaturated_me5hedy\";\nexport const menuProvider = \"menuProvider_msnmoi2\";\nexport const withSearchableItems = \"withSearchableItems_w19qrosd\";\nexport const searchInputWrapper = \"searchInputWrapper_s1vev1e1\";\nexport const searchInput = \"searchInput_ssbtwy1\";\nexport const searchIconWrapper = \"searchIconWrapper_s1d3tuh7\";\nexport const emptyMenu = \"emptyMenu_e1nw69yk\";\nexport const autosized = \"autosized_a5l2dp5\";\nexport const menuItemWithIcon = \"menuItemWithIcon_m4c5y86\";\nexport const menuItemWithSubmenuIcon = \"menuItemWithSubmenuIcon_mz1j6h7\";", "import type {\n\tMenuButtonProps as AriakitMenuButtonProps,\n\tMenuProps as AriakitMenuProps,\n\tMenuSeparatorProps as AriakitMenuSeparatorProps,\n\tComboboxItemProps,\n\tHovercardStoreState,\n\tMenuStore,\n} from \"@ariakit/react\"\nimport {\n\tCombobox as AriakitCombobox,\n\tComboboxList as AriakitComboboxList,\n\tComboboxProvider as AriakitComboboxProvider,\n\tMenu as AriakitMenu,\n\tMenuButton as AriakitMenuButton,\n\tMenuItem as AriakitMenuItem,\n\tMenuProvider as AriakitMenuProvider,\n\tMenuSeparator as AriakitMenuSeparator,\n\tComboboxItem,\n\tHovercard,\n\tuseHovercardStore,\n\tuseMenuContext,\n} from \"@ariakit/react\"\nimport { buttonIsLeftClick, usePrefersMouseDown } from \"@framerjs/app-shared/src/PreferMouseDown.tsx\"\nimport type { MenuOptionIcon } from \"@framerjs/framer-services\"\nimport {\n\tCenterChild,\n\tIconChevronRight,\n\tIconMenuCheckmark,\n\tIconMenuSearch,\n\tStack,\n\tThemeOverride,\n\ttype ThemeOverrideMode,\n\tnoTextSelection,\n\ttruncateWithEllipsis,\n\tuseMergeRefs,\n\twithoutScrollbar,\n} from \"@framerjs/fresco\"\nimport { AutoSized } from \"@framerjs/fresco/layout-transitions\"\nimport { dimensions } from \"@framerjs/fresco/tokens\"\nimport { assert, assertNever, isAppleDevice } from \"@framerjs/shared\"\nimport { hasFinePointer, isSmallTouchScreen } from \"@framerjs/shared/src/environment.ts\"\nimport { cx } from \"@linaria/core\"\nimport { Dictionary } from \"app/dictionary.ts\"\nimport * as React from \"react\"\nimport { isFunction, isNullish, isNumber, isString, isUndefined } from \"utils/typeChecks.ts\"\nimport { TeamAvatar } from \"web/components/TeamAvatar.tsx\"\nimport { getAcceleratorTokens } from \"web/pages/project/lib/getAcceleratorLabel.ts\"\nimport { CursorScroll } from \"./CursorScroll.tsx\"\nimport * as styles from \"./Menu.styles.ts\"\nimport { WithinMenuComboboxProvider, useIsWithinMenuCombobox, useMenuConfig } from \"./MenuConfigContext.tsx\"\nimport type { MenuItemOptionsWithPath } from \"./types.ts\"\nimport { useMenuItemDisabled } from \"./useMenuItemDisabled.tsx\"\n\nexport type RootMenuProps = Pick<\n\tAriakitMenuProps,\n\t| \"store\"\n\t| \"onClose\"\n\t| \"getAnchorRect\"\n\t| \"className\"\n\t| \"onSelect\"\n\t| \"onKeyDown\"\n\t| \"onKeyUp\"\n\t| \"hideOnInteractOutside\"\n\t| \"onPointerEnter\"\n\t| \"onPointerLeave\"\n\t| \"gutter\"\n> & {\n\t// Allow any data-is-* attributes for DOM queries (e.g., data-is-context-menu for outside click detection)\n\t[key: `data-is-${string}`]: boolean\n}\n\nexport interface MenuProps extends AriakitMenuButtonProps<\"div\"> {\n\tlabel?: React.ReactNode\n\tsearchValue?: string | undefined\n\tonSearch?: ((value: string) => void) | undefined\n\titems: readonly MenuItemOptionsWithPath[]\n\tmenuProps?: RootMenuProps\n\tonSelection?: (event: React.MouseEvent, selection: MenuItemOptionsWithPath) => void\n\tchecked?: boolean\n\ticon?: MenuOptionIcon\n\tsubmenuPlacement?: HovercardStoreState[\"placement\"]\n\tacceleratorLabelTokens?: string[]\n\twidth?: number\n\tenabled?: MenuItemOptionsWithPath[\"enabled\"]\n\tunsaturated?: boolean\n\tmode?: ThemeOverrideMode\n}\n\n// The time it takes for submenu to appear when hovering over the parent menu item\nconst defaultTimeout = 0\n\nexport const Menu = React.memo(\n\tReact.forwardRef<HTMLDivElement, MenuProps>(function Menu(\n\t\t{\n\t\t\titems,\n\t\t\tlabel,\n\t\t\tmenuProps,\n\t\t\tonSearch,\n\t\t\tonSelection,\n\t\t\tsearchValue,\n\t\t\twidth,\n\t\t\tsubmenuPlacement,\n\t\t\tenabled,\n\t\t\ticon,\n\t\t\tacceleratorLabelTokens,\n\t\t\tunsaturated,\n\t\t\tmode,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst showSearchInput = isString(searchValue) && !!onSearch\n\n\t\tconst parent = useMenuContext()\n\t\tconst placement = useMenuPlacement(menuProps?.store, parent, submenuPlacement)\n\t\tconst disabled = useMenuItemDisabled(enabled, items)\n\n\t\tconst menuHeight = React.useMemo(() => {\n\t\t\tconst menuItemHeight = hasFinePointer()\n\t\t\t\t? dimensions.values.contentItemHeight\n\t\t\t\t: dimensions.values.contentItemHeightTouch\n\t\t\tlet height = 0\n\t\t\tconst fullSeparatorHeight = styles.separatorHeight + dimensions.values.menuGap * 2\n\t\t\tfor (const item of items) {\n\t\t\t\tconst isSeparator = item.type === \"separator\"\n\t\t\t\tconst itemHeight = isSeparator ? fullSeparatorHeight : menuItemHeight\n\t\t\t\theight += itemHeight\n\t\t\t}\n\t\t\treturn height\n\t\t}, [items])\n\n\t\tconst isRootMenu = !parent\n\n\t\tconst element = (\n\t\t\t<AriakitMenuProvider placement={placement} timeout={defaultTimeout}>\n\t\t\t\t{parent && (\n\t\t\t\t\t<AriakitMenuButton\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\trender={menuButtonProps => (\n\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t{...menuButtonProps}\n\t\t\t\t\t\t\t\thasSubmenu\n\t\t\t\t\t\t\t\tclassName={cx(\n\t\t\t\t\t\t\t\t\tmenuButtonProps.className,\n\t\t\t\t\t\t\t\t\ticon && styles.menuItemWithIcon,\n\t\t\t\t\t\t\t\t\ticon && styles.menuItemWithSubmenuIcon,\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t{props.checked && (\n\t\t\t\t\t\t\t<CenterChild className={styles.checkbox}>\n\t\t\t\t\t\t\t\t<IconMenuCheckmark />\n\t\t\t\t\t\t\t</CenterChild>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{icon && <MenuIcon icon={icon} />}\n\t\t\t\t\t\t<span className={cx(styles.label, truncateWithEllipsis)}>{label}</span>\n\t\t\t\t\t\t{acceleratorLabelTokens && <AcceleratorList acceleratorLabelTokens={acceleratorLabelTokens} />}\n\t\t\t\t\t\t<span className={styles.buttonArrow} aria-hidden=\"true\">\n\t\t\t\t\t\t\t<IconChevronRight />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</AriakitMenuButton>\n\t\t\t\t)}\n\t\t\t\t<AriakitMenu\n\t\t\t\t\tmodal\n\t\t\t\t\tportal\n\t\t\t\t\toverlap\n\t\t\t\t\tunmountOnHide\n\t\t\t\t\t{...menuProps}\n\t\t\t\t\tgutter={menuProps?.gutter ?? (parent ? dimensions.values.menuPadding * 2 : styles.menuGutter)}\n\t\t\t\t\tshift={parent ? dimensions.values.menuPadding * -1 : undefined}\n\t\t\t\t\tclassName={cx(\n\t\t\t\t\t\tstyles.menu,\n\t\t\t\t\t\tisRootMenu && styles.animatedMenu,\n\t\t\t\t\t\tunsaturated && styles.menuUnsaturated,\n\t\t\t\t\t\tmenuProps?.className,\n\t\t\t\t\t\twithoutScrollbar,\n\t\t\t\t\t)}\n\t\t\t\t\tstyle={{ width }}\n\t\t\t\t\trender={htmlProps => (\n\t\t\t\t\t\t<ThemeOverride mode={mode}>\n\t\t\t\t\t\t\t<div {...htmlProps} />\n\t\t\t\t\t\t</ThemeOverride>\n\t\t\t\t\t)}\n\t\t\t\t>\n\t\t\t\t\t<WithSearchableItems\n\t\t\t\t\t\tsearchValue={searchValue}\n\t\t\t\t\t\titemsLength={items.length}\n\t\t\t\t\t\tmenuHeight={menuHeight}\n\t\t\t\t\t\twithinCombobox={showSearchInput}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RecursiveMenu\n\t\t\t\t\t\t\titems={items}\n\t\t\t\t\t\t\tonSelect={onSelection}\n\t\t\t\t\t\t\tsubmenuPlacement={submenuPlacement}\n\t\t\t\t\t\t\tunsaturated={unsaturated}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</WithSearchableItems>\n\t\t\t\t</AriakitMenu>\n\t\t\t</AriakitMenuProvider>\n\t\t)\n\n\t\tif (showSearchInput || onSearch) {\n\t\t\treturn (\n\t\t\t\t<AriakitComboboxProvider\n\t\t\t\t\topen\n\t\t\t\t\tresetValueOnHide\n\t\t\t\t\tincludesBaseElement={false}\n\t\t\t\t\tvalue={searchValue ?? \"\"}\n\t\t\t\t\tsetValue={onSearch}\n\t\t\t\t>\n\t\t\t\t\t{element}\n\t\t\t\t</AriakitComboboxProvider>\n\t\t\t)\n\t\t}\n\n\t\treturn element\n\t}),\n)\n\nconst defaultSubmenuPlacement = \"right-start\"\nconst touchSubmenuPlacement = \"bottom-start\" // On small touchscreen devices, open below to avoid overlap\n\n/**\n * When the menu is nested inside another menu, the placement of the nested menu\n * should be the same as the placement of the parent menu. This might differ from the\n * default submenu placement, because the parent menu can render in a different placement\n * when there is not enough space to render the menu in the default submenu placement.\n *\n * @param rootStore The menu store of the root menu.\n * @param parent The menu store of the parent menu.\n * @returns The placement of the menu.\n */\nfunction useMenuPlacement(\n\trootStore: MenuStore | undefined,\n\tparent: MenuStore | undefined,\n\tsubmenuPlacement?: HovercardStoreState[\"placement\"],\n) {\n\tconst rootMenuPlacement = rootStore?.useState().currentPlacement\n\tconst parentPlacement = parent?.useState().currentPlacement\n\n\tconst isNestedSubmenu = !isNullish(parent?.parent)\n\n\t// If the the parent menu has a placement thats not the default, we need to use that one\n\t// to prevent the submenus being rendered on top of each other\n\tif (isNestedSubmenu && !isUndefined(parentPlacement)) {\n\t\treturn parentPlacement\n\t}\n\n\tif (parent) {\n\t\t// On small touch screens, open submenus below to avoid overlap with the button\n\t\tconst defaultPlacement = isSmallTouchScreen() ? touchSubmenuPlacement : defaultSubmenuPlacement\n\t\treturn submenuPlacement ?? defaultPlacement\n\t}\n\n\treturn rootMenuPlacement\n}\n\ninterface WithSearchableItemsProps {\n\tchildren: React.ReactNode\n\tsearchValue: Pick<MenuProps, \"searchValue\">[\"searchValue\"]\n\titemsLength: number\n\tmenuHeight: number\n\twithinCombobox: boolean\n}\n\nconst WithSearchableItems = React.memo(function WithSearchableItems({\n\tchildren,\n\tsearchValue,\n\titemsLength,\n\tmenuHeight,\n\twithinCombobox,\n}: WithSearchableItemsProps) {\n\tconst searchInputRef = React.useRef<HTMLInputElement>(null)\n\n\tReact.useEffect(() => {\n\t\tif (!withinCombobox) return\n\n\t\tconst animationFrame = requestAnimationFrame(() => {\n\t\t\tsearchInputRef.current?.focus()\n\t\t})\n\n\t\treturn () => cancelAnimationFrame(animationFrame)\n\t}, [withinCombobox])\n\n\tif (!withinCombobox) {\n\t\treturn (\n\t\t\t<WithinMenuComboboxProvider withinCombobox={withinCombobox}>\n\t\t\t\t<CursorScroll menuHeight={menuHeight}>{children}</CursorScroll>\n\t\t\t</WithinMenuComboboxProvider>\n\t\t)\n\t}\n\n\treturn (\n\t\t<WithinMenuComboboxProvider withinCombobox={withinCombobox}>\n\t\t\t<div className={styles.withSearchableItems}>\n\t\t\t\t<div className={styles.searchInputWrapper}>\n\t\t\t\t\t<div className={styles.searchIconWrapper}>\n\t\t\t\t\t\t<IconMenuSearch />\n\t\t\t\t\t</div>\n\t\t\t\t\t<AriakitCombobox\n\t\t\t\t\t\tref={searchInputRef}\n\t\t\t\t\t\tautoFocus\n\t\t\t\t\t\tautoSelect\n\t\t\t\t\t\tspellCheck={false}\n\t\t\t\t\t\tvalue={searchValue}\n\t\t\t\t\t\tplaceholder=\"Type to search\u2026\"\n\t\t\t\t\t\tclassName={styles.searchInput}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t<CursorScroll menuHeight={menuHeight}>\n\t\t\t\t\t<AriakitComboboxList>\n\t\t\t\t\t\t<AutoSized duration={0.125} dependencies={[itemsLength]} className={styles.autosized}>\n\t\t\t\t\t\t\t{itemsLength === 0 ? <div className={styles.emptyMenu}>{Dictionary.NoSearchResults}</div> : children}\n\t\t\t\t\t\t</AutoSized>\n\t\t\t\t\t</AriakitComboboxList>\n\t\t\t\t</CursorScroll>\n\t\t\t</div>\n\t\t</WithinMenuComboboxProvider>\n\t)\n})\n\nconst MenuSeparator = (props: AriakitMenuSeparatorProps) => {\n\treturn <AriakitMenuSeparator {...props} className={cx(styles.separator, props.className)} />\n}\n\nconst defaultIconSize = 14\n\nconst MenuIcon = ({ icon }: { icon: NonNullable<MenuItemOptionsWithPath[\"icon\"]> }) => {\n\tconst iconStyle: React.CSSProperties = {\n\t\theight: icon.height ?? defaultIconSize,\n\t\twidth: icon.width ?? defaultIconSize,\n\t}\n\tif (icon.inlineSVG) {\n\t\t// biome-ignore lint/security/noDangerouslySetInnerHtml: For inline SVGs, the source is trusted.\n\t\treturn <span className={styles.menuIcon} style={iconStyle} dangerouslySetInnerHTML={{ __html: icon.src }} />\n\t}\n\treturn (\n\t\t<span className={styles.menuIcon}>\n\t\t\t<img\n\t\t\t\tstyle={iconStyle}\n\t\t\t\tsrc={icon.src}\n\t\t\t\tcrossOrigin={icon.crossOrigin !== \"disabled\" ? (icon.crossOrigin ?? \"anonymous\") : undefined}\n\t\t\t\talt=\"icon\"\n\t\t\t\tdecoding=\"async\"\n\t\t\t/>\n\t\t</span>\n\t)\n}\n\nfunction convertToMouseEvent(event: React.KeyboardEvent<HTMLDivElement>): React.MouseEvent<HTMLDivElement> {\n\tconst mouseEvent = new MouseEvent(\"click\", {\n\t\tbubbles: true,\n\t\tcancelable: false,\n\t\tview: window,\n\t\tbutton: 0,\n\t\tbuttons: 1,\n\t})\n\treturn {\n\t\t...mouseEvent,\n\t\t...event,\n\t\tnativeEvent: {\n\t\t\t...mouseEvent,\n\t\t\t...event.nativeEvent,\n\t\t},\n\t}\n}\n\ntype MenuDOMItemProps = Omit<ComboboxItemProps, \"store\">\ninterface MenuItemProps extends MenuDOMItemProps {\n\tname?: string\n\tchecked?: boolean\n\tbadge?: string\n\tbadgeClassName?: string\n\tacceleratorLabelTokens?: string[]\n\ticon?: MenuItemOptionsWithPath[\"icon\"]\n\tavatar?: MenuItemOptionsWithPath[\"avatar\"]\n\tdescription?: string\n\thasSubmenu?: boolean\n\tenabled?: MenuItemOptionsWithPath[\"enabled\"]\n\talignIconWithSubmenuPadding?: boolean\n\ttooltip?: React.ReactNode\n\treadonly?: boolean\n}\n\nconst MenuItem = React.memo(\n\tReact.forwardRef<HTMLDivElement, MenuItemProps>(function MenuItem({ ...props }, ref) {\n\t\treturn (\n\t\t\t<div className={cx(styles.menuItemWrapper, noTextSelection)}>\n\t\t\t\t<MenuItemInner ref={ref} {...props} />\n\t\t\t</div>\n\t\t)\n\t}),\n)\n\nconst MenuItemInner = React.memo(\n\tReact.forwardRef<HTMLDivElement, MenuItemProps>(function MenuItemInner(\n\t\t{\n\t\t\tname,\n\t\t\tvalue,\n\t\t\tbadge,\n\t\t\tbadgeClassName,\n\t\t\tchecked,\n\t\t\tacceleratorLabelTokens,\n\t\t\ticon,\n\t\t\tavatar,\n\t\t\tdescription,\n\t\t\thasSubmenu = false,\n\t\t\tenabled,\n\t\t\talignIconWithSubmenuPadding = false,\n\t\t\ttooltip,\n\t\t\treadonly = false,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) {\n\t\tconst { closeOnSelect, startTime, mouseDidMove } = useMenuConfig()\n\t\tconst isWithinMenuCombobox = useIsWithinMenuCombobox()\n\t\tconst menu = useMenuContext()\n\t\tconst disabled = useMenuItemDisabled(enabled)\n\n\t\tassert(menu, \"MenuItem must be used inside a Menu\")\n\n\t\tconst rowRef = React.useRef<HTMLDivElement | null>(null)\n\t\tconst mergedRef = useMergeRefs(ref, rowRef)\n\n\t\tconst useMouseUpForClicks = usePrefersMouseDown()\n\n\t\tconst onClickHandler = props.onClick\n\t\tconst openNestedMenu = React.useCallback(() => {\n\t\t\tmenu.setAutoFocusOnShow(true)\n\t\t\tmenu.setInitialFocus(\"first\")\n\t\t\tmenu.setOpen(true)\n\t\t}, [menu])\n\n\t\tconst handleKeyDown = React.useCallback(\n\t\t\t(event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\t\t\tif (event.key === \"ArrowRight\" || event.key === \"ArrowLeft\") {\n\t\t\t\t\tevent.stopPropagation()\n\t\t\t\t\tswitch (event.key) {\n\t\t\t\t\t\tcase \"ArrowLeft\": {\n\t\t\t\t\t\t\tconst parent = hasSubmenu ? menu?.parent : menu\n\t\t\t\t\t\t\tconst inRootMenu = parent?.getState().items.length === 0\n\n\t\t\t\t\t\t\t// When we are in the root menu, we don't need to close it.\n\t\t\t\t\t\t\tif (inRootMenu) break\n\n\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\tparent?.hide()\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcase \"ArrowRight\": {\n\t\t\t\t\t\t\t// When the item has a submenu, we need to open it. For items without\n\t\t\t\t\t\t\t// submenus, we don't need to do anything on ArrowRight.\n\t\t\t\t\t\t\tif (menu) {\n\t\t\t\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\t\t\t\topenNestedMenu()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t}\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tassertNever(event.key)\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (useMouseUpForClicks && event.key === \"Enter\") {\n\t\t\t\t\tevent.preventDefault()\n\t\t\t\t\tevent.stopPropagation()\n\n\t\t\t\t\tif (menu.getState().open) {\n\t\t\t\t\t\t// we know there is no further submenu, so simulate a click\n\t\t\t\t\t\tonClickHandler?.(convertToMouseEvent(event))\n\t\t\t\t\t\tmenu.hideAll()\n\t\t\t\t\t} else {\n\t\t\t\t\t\topenNestedMenu()\n\t\t\t\t\t}\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tprops.onKeyDownCapture?.(event)\n\t\t\t},\n\t\t\t[hasSubmenu, menu, props.onKeyDownCapture, useMouseUpForClicks, openNestedMenu, onClickHandler],\n\t\t)\n\n\t\tconst hideOnClick = React.useCallback(\n\t\t\t(event: React.MouseEvent) => {\n\t\t\t\tif (!closeOnSelect) return false\n\n\t\t\t\t// Make sure that clicking on a combobox item that opens a nested menu/dialog does\n\t\t\t\t// not close the menu.\n\t\t\t\tconst expandable = event.currentTarget.hasAttribute(\"aria-expanded\")\n\t\t\t\tif (expandable) return false\n\n\t\t\t\t// Make ComboboxItem close the popout when clicked. That's already the default\n\t\t\t\t// behavior for AriakitMenuItem.\n\t\t\t\tmenu.hideAll()\n\t\t\t\treturn true\n\t\t\t},\n\t\t\t[closeOnSelect, menu],\n\t\t)\n\n\t\tconst handleMouseUp = React.useCallback(\n\t\t\t(event: React.MouseEvent<HTMLDivElement>) => {\n\t\t\t\t// When calling with `ctrlKey` true, any extra action that would normally be\n\t\t\t\t// triggered when the meta key/ctrl key is pressed also triggers when the middle\n\t\t\t\t// mouse button is clicked. This impacts the actions in useActionManager.\n\t\t\t\tif (event.button === 1 /* middle mouse button */) {\n\t\t\t\t\tonClickHandler?.({ ...event, ctrlKey: true })\n\t\t\t\t\thideOnClick(event) // close menu like for regular clicks\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\tif (!useMouseUpForClicks || !buttonIsLeftClick(event.button)) return\n\t\t\t\tif (!isValidMenuDragGesture(mouseDidMove, startTime)) return\n\n\t\t\t\t// By calling the onClick handler here, we allow drag clicks.\n\t\t\t\tonClickHandler?.(event)\n\t\t\t\thideOnClick(event) // Close menu like for regular clicks.\n\t\t\t},\n\t\t\t[onClickHandler, hideOnClick, startTime, mouseDidMove, useMouseUpForClicks],\n\t\t)\n\n\t\t// On touch devices, disable hover-to-open for submenus and use click-to-open instead\n\t\t// TODO: this has an issue with tall submenus where the initial tap selects the overlapping item\n\t\tconst shouldFocusOnHover = hasFinePointer()\n\n\t\tconst defaultProps: MenuDOMItemProps = {\n\t\t\tref: mergedRef,\n\t\t\tfocusOnHover: shouldFocusOnHover,\n\t\t\tblurOnHoverEnd: shouldFocusOnHover,\n\t\t\t...props,\n\t\t\tclassName: cx(\n\t\t\t\tstyles.menuItem,\n\t\t\t\tdescription && styles.menuItemWithDescription,\n\t\t\t\tavatar && styles.menuItemWithAvatar,\n\t\t\t\ticon && styles.menuItemWithIcon,\n\t\t\t\ticon && alignIconWithSubmenuPadding && styles.menuItemWithSubmenuIcon,\n\t\t\t\tprops.className,\n\t\t\t),\n\t\t\t\"data-selected\": icon && checked ? \"true\" : undefined,\n\n\t\t\t// If we prefer mousedown, the menu can be drag-clicked, so we hook up mouseup\n\t\t\t// additionally (menu opens via mousedown, so the selection/click happens via mouseup\n\t\t\t// and then closes the menu to avoid \"double\" triggering the click).\n\t\t\t// For submenu items, keep AriaKit's onClick handler (it handles opening the submenu)\n\t\t\tonClick: useMouseUpForClicks ? undefined : onClickHandler,\n\t\t\thideOnClick: useMouseUpForClicks ? undefined : hideOnClick,\n\t\t\tonMouseUp: handleMouseUp, // Mouseup is also used to trigger middle mouse clicks.\n\n\t\t\tonKeyDownCapture: handleKeyDown,\n\t\t\tdisabled,\n\t\t}\n\n\t\tif (avatar) {\n\t\t\tdefaultProps.children = (\n\t\t\t\t<>\n\t\t\t\t\t<TeamAvatar avatar={avatar.src} displayName={avatar.displayName} />\n\t\t\t\t\t<span className={truncateWithEllipsis}>{defaultProps.children}</span>\n\t\t\t\t</>\n\t\t\t)\n\t\t} else if (icon) {\n\t\t\tdefaultProps.children = (\n\t\t\t\t<span className={styles.label}>\n\t\t\t\t\t<MenuIcon icon={icon} />\n\t\t\t\t\t{defaultProps.children}\n\t\t\t\t</span>\n\t\t\t)\n\t\t}\n\n\t\tif (description) {\n\t\t\tdefaultProps.children = (\n\t\t\t\t<Stack direction=\"column\" gap={2}>\n\t\t\t\t\t<span className={styles.label}>{defaultProps.children}</span>\n\t\t\t\t\t<span className={styles.description}>{description}</span>\n\t\t\t\t</Stack>\n\t\t\t)\n\t\t}\n\n\t\t// If the item is checkable, we render a checkmark icon next to the label.\n\t\t// For menu items with icons, we skip the checkmark and use color-based indication instead.\n\t\tif (checked && !hasSubmenu && !icon) {\n\t\t\tdefaultProps.children = (\n\t\t\t\t<span className={styles.checkboxContainer}>\n\t\t\t\t\t<CenterChild className={styles.checkbox}>\n\t\t\t\t\t\t<IconMenuCheckmark />\n\t\t\t\t\t</CenterChild>\n\t\t\t\t\t{defaultProps.children}\n\t\t\t\t</span>\n\t\t\t)\n\t\t}\n\n\t\tif (acceleratorLabelTokens) {\n\t\t\tdefaultProps.children = (\n\t\t\t\t<>\n\t\t\t\t\t<span className={truncateWithEllipsis}>{defaultProps.children}</span>\n\t\t\t\t\t<AcceleratorList acceleratorLabelTokens={acceleratorLabelTokens} />\n\t\t\t\t</>\n\t\t\t)\n\t\t} else if (badge) {\n\t\t\tdefaultProps.children = (\n\t\t\t\t<>\n\t\t\t\t\t<span className={truncateWithEllipsis}>{defaultProps.children}</span>\n\t\t\t\t\t<span className={cx(styles.badge, badgeClassName)}>{badge}</span>\n\t\t\t\t</>\n\t\t\t)\n\t\t} else if (hasSubmenu) {\n\t\t\tdefaultProps.children = <span className={cx(styles.label, truncateWithEllipsis)}>{defaultProps.children}</span>\n\t\t} else {\n\t\t\tdefaultProps.children = (\n\t\t\t\t<span className={cx(styles.labelWithNoRightElement, truncateWithEllipsis)}>{defaultProps.children}</span>\n\t\t\t)\n\t\t}\n\n\t\tconst selectValueOnClick = React.useCallback(() => {\n\t\t\tif (name == null || value == null) return false\n\t\t\t// By default, clicking on a ComboboxItem will update the selectedValue state of the\n\t\t\t// combobox. However, since we're sharing state between combobox and menu, we also need\n\t\t\t// to update the menu's values state.\n\t\t\tmenu.setValue(name, value)\n\t\t\treturn true\n\t\t}, [menu, name, value])\n\n\t\t// Display-only rows render as a plain element so they get no hover/active state, are not\n\t\t// keyboard-focusable, and don't close the menu on click.\n\t\tif (readonly) {\n\t\t\treturn (\n\t\t\t\t<div ref={ref} role=\"presentation\" className={defaultProps.className}>\n\t\t\t\t\t{defaultProps.children}\n\t\t\t\t</div>\n\t\t\t)\n\t\t}\n\n\t\t// If the item is not rendered in a search menu (combobox), we can render it.\n\t\tconst itemElement = isWithinMenuCombobox ? (\n\t\t\t<ComboboxItem {...defaultProps} setValueOnClick={false} value={value} selectValueOnClick={selectValueOnClick} />\n\t\t) : (\n\t\t\t<AriakitMenuItem {...defaultProps} />\n\t\t)\n\n\t\tif (!tooltip) return itemElement\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{itemElement}\n\t\t\t\t<MenuItemTooltip anchorRef={rowRef}>{tooltip}</MenuItemTooltip>\n\t\t\t</>\n\t\t)\n\t}),\n)\n\n// Hovercard gives the row tooltip viewport collision handling (flips when it would overflow).\nconst MenuItemTooltip = React.memo(function MenuItemTooltip({\n\tanchorRef,\n\tchildren,\n}: {\n\tanchorRef: React.RefObject<HTMLElement | null>\n\tchildren: React.ReactNode\n}) {\n\tconst store = useHovercardStore({ placement: \"right-start\" })\n\n\tReact.useEffect(() => {\n\t\tconst row = anchorRef.current\n\t\tif (!row) return\n\n\t\tstore.setAnchorElement(row)\n\t\tconst show = () => store.show()\n\t\tconst hide = () => store.hide()\n\t\trow.addEventListener(\"pointerenter\", show)\n\t\trow.addEventListener(\"pointerleave\", hide)\n\t\treturn () => {\n\t\t\trow.removeEventListener(\"pointerenter\", show)\n\t\t\trow.removeEventListener(\"pointerleave\", hide)\n\t\t}\n\t}, [store, anchorRef])\n\n\treturn (\n\t\t<Hovercard\n\t\t\tstore={store}\n\t\t\tportal\n\t\t\tunmountOnHide\n\t\t\tgutter={8}\n\t\t\tclassName={styles.itemTooltip}\n\t\t\trender={htmlProps => (\n\t\t\t\t<ThemeOverride>\n\t\t\t\t\t<div {...htmlProps} />\n\t\t\t\t</ThemeOverride>\n\t\t\t)}\n\t\t>\n\t\t\t{children}\n\t\t</Hovercard>\n\t)\n})\n\nfunction AcceleratorList({ acceleratorLabelTokens }: { acceleratorLabelTokens: string[] }) {\n\tconst isApple = isAppleDevice()\n\tconst tokenDelimiter = isApple ? undefined : \"+\"\n\n\treturn (\n\t\t<span className={styles.acceleratorList}>\n\t\t\t{acceleratorLabelTokens.map((token, index) => {\n\t\t\t\tconst hasDelimiter = tokenDelimiter && index < acceleratorLabelTokens.length - 1\n\t\t\t\treturn (\n\t\t\t\t\t<span key={token} className={styles.accelerator}>\n\t\t\t\t\t\t{token}\n\t\t\t\t\t\t{hasDelimiter && <span className={styles.delimiter}>{tokenDelimiter}</span>}\n\t\t\t\t\t</span>\n\t\t\t\t)\n\t\t\t})}\n\t\t</span>\n\t)\n}\n\ninterface RecursiveMenuProps {\n\titems: readonly MenuItemOptionsWithPath[]\n\tonSelect?: (event: React.MouseEvent, selection: MenuItemOptionsWithPath) => void\n\tsubmenuPlacement?: HovercardStoreState[\"placement\"]\n\tunsaturated?: boolean\n}\n\nconst RecursiveMenu = React.memo(({ items, onSelect, submenuPlacement, unsaturated }: RecursiveMenuProps) => {\n\t// For checked item padding, exclude menu items with icons (they use color-based indication instead of checkmarks)\n\tconst hasCheckedItem = items.some(item => item.type !== \"separator\" && item.checked === true && !item.icon)\n\tconst alignLeafIconRowsWithSubmenus = items.some(item => item.type !== \"separator\" && item.icon && item.submenu)\n\n\treturn items.map(item => {\n\t\tconst itemKey = item.path.join(\"+\")\n\n\t\tif (item.type === \"separator\") {\n\t\t\treturn <MenuSeparator key={itemKey} />\n\t\t}\n\n\t\t// Don't add checkmark padding for menu items with icons\n\t\tconst className = cx(hasCheckedItem && item.checked !== true && !item.icon && styles.menuItemWithCheckedPadding)\n\n\t\tconst acceleratorLabelTokens = getAcceleratorLabelTokens(item)\n\n\t\tif (item.submenu) {\n\t\t\treturn (\n\t\t\t\t<Menu\n\t\t\t\t\tkey={itemKey}\n\t\t\t\t\tlabel={item.label}\n\t\t\t\t\tenabled={item.enabled}\n\t\t\t\t\tchecked={item.checked}\n\t\t\t\t\ticon={item.icon}\n\t\t\t\t\tclassName={className}\n\t\t\t\t\titems={isFunction(item.submenu) ? item.submenu() : item.submenu}\n\t\t\t\t\tonSelection={onSelect}\n\t\t\t\t\tsubmenuPlacement={submenuPlacement}\n\t\t\t\t\tacceleratorLabelTokens={acceleratorLabelTokens}\n\t\t\t\t\tunsaturated={unsaturated}\n\t\t\t\t/>\n\t\t\t)\n\t\t}\n\n\t\tconst itemIsChecked = item.checked || item.mixed\n\n\t\treturn (\n\t\t\t<MenuItem\n\t\t\t\tkey={itemKey}\n\t\t\t\tonClick={item.readonly ? undefined : event => onSelect?.(event, item)}\n\t\t\t\treadonly={item.readonly}\n\t\t\t\tbadge={item.badge}\n\t\t\t\tbadgeClassName={item.badgeClassName}\n\t\t\t\ttooltip={item.tooltip}\n\t\t\t\tenabled={item.enabled}\n\t\t\t\tchecked={itemIsChecked}\n\t\t\t\tacceleratorLabelTokens={acceleratorLabelTokens}\n\t\t\t\ticon={item.icon}\n\t\t\t\talignIconWithSubmenuPadding={Boolean(item.icon) && alignLeafIconRowsWithSubmenus}\n\t\t\t\tavatar={item.avatar}\n\t\t\t\tdescription={item.description}\n\t\t\t\tclassName={className}\n\t\t\t>\n\t\t\t\t{getItemLabel(item)}\n\t\t\t</MenuItem>\n\t\t)\n\t})\n})\n\nfunction getItemLabel(item: MenuItemOptionsWithPath): string {\n\tif (!isString(item.label)) return \"\"\n\tif (item.ellipsis) return `${item.label}\u2026`\n\treturn item.label\n}\n\nfunction getAcceleratorLabelTokens(item: MenuItemOptionsWithPath) {\n\tif (item.acceleratorLabelTokens) return item.acceleratorLabelTokens\n\tconst accelerator =\n\t\t!isAppleDevice() && !isUndefined(item.acceleratorWindows) ? item.acceleratorWindows : item.accelerator\n\tconst acceleratorLabel =\n\t\t!isAppleDevice() && !isUndefined(item.acceleratorLabelWindows)\n\t\t\t? item.acceleratorLabelWindows\n\t\t\t: item.acceleratorLabel\n\tif (acceleratorLabel) return getAcceleratorTokens(acceleratorLabel)\n\tif (accelerator) return getAcceleratorTokens(accelerator)\n}\n\n/**\n * Make sure only drags can select menu items on mouse up, otherwise the user might accidentally\n * select a menu item when a click opens the menu and the item appears right below the cursor.\n */\nexport function isValidMenuDragGesture(mouseDidMove: boolean, startTime: number | undefined): boolean {\n\t// Menu items are only highlighted on mouse move, so make sure the mouse has been moved before\n\t// allowing for a drag click.\n\tif (!mouseDidMove) return false\n\n\tif (!isNumber(startTime)) return false\n\n\tconst minDragTime = 200\n\tconst dragTime = performance.now() - startTime\n\treturn dragTime >= minDragTime\n}\n", "import { IconScrollArrow, Scroll, Stack, useViewportHeight } from \"@framerjs/fresco\"\nimport { dimensions } from \"@framerjs/fresco/tokens\"\nimport { hasFinePointer } from \"@framerjs/shared/src/environment.ts\"\nimport { cx } from \"@linaria/core\"\nimport type { PropsWithChildren } from \"react\"\nimport { useEffect, useRef, useState } from \"react\"\nimport {\n\ttype IntersectionObserverOptions,\n\tuseSharedIntersectionObserver,\n} from \"../utils/useSharedIntersectionObserver.ts\"\nimport * as styles from \"./CursorScroll.styles.ts\"\nimport { maxMenuHeightFixed, maxMenuHeightPercentage } from \"./Menu.styles.ts\"\nimport { useIsWithinMenuCombobox } from \"./MenuConfigContext.tsx\"\n\nconst scrollInterval = 50\nconst intersectionObserverOptions: IntersectionObserverOptions = { enabled: true }\n\nexport const CursorScroll = ({ menuHeight, children }: PropsWithChildren<{ menuHeight: number }>) => {\n\tconst isWithinMenuCombobox = useIsWithinMenuCombobox()\n\n\tconst viewportHeight = useViewportHeight()\n\tconst maxMenuHeightRelative = viewportHeight * maxMenuHeightPercentage\n\tconst maxMenuHeight = Math.min(maxMenuHeightRelative, maxMenuHeightFixed)\n\tconst needsScroll = menuHeight > maxMenuHeight\n\n\tif (needsScroll) {\n\t\treturn <HoverScroll>{children}</HoverScroll>\n\t}\n\n\treturn <div className={cx(isWithinMenuCombobox && styles.contentContainerWithPadding)}>{children}</div>\n}\n\nconst HoverScroll = ({ children }: PropsWithChildren) => {\n\tconst isWithinMenuCombobox = useIsWithinMenuCombobox()\n\tconst scrollRef = useRef<HTMLDivElement>(null)\n\tconst firstElementRef = useRef<HTMLDivElement | null>(null)\n\tconst lastElementRef = useRef<HTMLDivElement | null>(null)\n\n\tconst shouldShowScrollIndicators = hasFinePointer()\n\n\tconst [hoveredDirection, setHoveredDirection] = useState<\"up\" | \"down\" | null>(null)\n\tconst [firstElementInView, setFirstElementInView] = useState(true)\n\n\t// We know that the last element is not in view, since we're using this Scroll component.\n\tconst [lastElementInView, setLastElementInView] = useState(false)\n\n\tuseSharedIntersectionObserver(\n\t\tfirstElementRef,\n\t\tentries => {\n\t\t\tconst [entry] = entries\n\t\t\tif (!entry) return\n\t\t\tsetFirstElementInView(entry.isIntersecting)\n\t\t},\n\t\t{\n\t\t\troot: scrollRef,\n\t\t\t...intersectionObserverOptions,\n\t\t},\n\t)\n\n\tuseSharedIntersectionObserver(\n\t\tlastElementRef,\n\t\tentries => {\n\t\t\tconst [entry] = entries\n\t\t\tif (!entry) return\n\t\t\tsetLastElementInView(entry.isIntersecting)\n\t\t},\n\t\t{\n\t\t\troot: scrollRef,\n\t\t\t...intersectionObserverOptions,\n\t\t},\n\t)\n\n\tuseEffect(() => {\n\t\tlet intervalIsDown: NodeJS.Timeout | undefined = undefined\n\t\tlet intervalIsUp: NodeJS.Timeout | undefined = undefined\n\t\tconst scrollAmount = dimensions.values.contentItemHeight\n\n\t\tconst handleScrollDown = () => {\n\t\t\tif (scrollRef.current) {\n\t\t\t\tscrollRef.current.scrollBy({\n\t\t\t\t\ttop: scrollAmount,\n\t\t\t\t\tbehavior: \"smooth\",\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tconst handleScrollUp = () => {\n\t\t\tif (scrollRef.current) {\n\t\t\t\tscrollRef.current.scrollBy({\n\t\t\t\t\ttop: -scrollAmount,\n\t\t\t\t\tbehavior: \"smooth\",\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif (hoveredDirection === \"down\") {\n\t\t\tintervalIsDown = setInterval(handleScrollDown, scrollInterval)\n\t\t} else {\n\t\t\tclearInterval(intervalIsDown)\n\t\t}\n\n\t\tif (hoveredDirection === \"up\") {\n\t\t\tintervalIsUp = setInterval(handleScrollUp, scrollInterval)\n\t\t} else {\n\t\t\tclearInterval(intervalIsUp)\n\t\t}\n\n\t\treturn () => {\n\t\t\tclearInterval(intervalIsDown)\n\t\t\tclearInterval(intervalIsUp)\n\t\t}\n\t}, [hoveredDirection])\n\n\tconst onMouseEnterArrowUp = () => setHoveredDirection(\"up\")\n\tconst onMouseEnterArrowDown = () => setHoveredDirection(\"down\")\n\tconst onMouseLeaveArrow = () => setHoveredDirection(null)\n\n\treturn (\n\t\t<div className={styles.container}>\n\t\t\t{shouldShowScrollIndicators && !firstElementInView && (\n\t\t\t\t<CursorScrollButton direction=\"up\" onMouseEnter={onMouseEnterArrowUp} onMouseLeave={onMouseLeaveArrow} />\n\t\t\t)}\n\n\t\t\t<Scroll ref={scrollRef} onWheel={onMouseLeaveArrow}>\n\t\t\t\t<div className={styles.scrollContent}>\n\t\t\t\t\t<div ref={firstElementRef} className={styles.firstBoundaryElement} />\n\t\t\t\t\t<div className={cx(isWithinMenuCombobox && styles.contentContainerWithPadding)}>{children}</div>\n\t\t\t\t\t<div ref={lastElementRef} className={styles.lastBoundaryElement} />\n\t\t\t\t</div>\n\t\t\t</Scroll>\n\n\t\t\t{shouldShowScrollIndicators && !lastElementInView && (\n\t\t\t\t<CursorScrollButton direction=\"down\" onMouseEnter={onMouseEnterArrowDown} onMouseLeave={onMouseLeaveArrow} />\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nconst CursorScrollButton = ({\n\tdirection,\n\tonMouseEnter,\n\tonMouseLeave,\n}: {\n\tdirection: \"up\" | \"down\"\n\tonMouseEnter: () => void\n\tonMouseLeave: () => void\n}) => {\n\treturn (\n\t\t<Stack gap={0} className={direction === \"up\" ? styles.upOverlayContainer : styles.downOverlayContainer}>\n\t\t\t{direction === \"down\" && <div className={styles.downOverlayGradient} />}\n\t\t\t{/* biome-ignore lint/nursery/noStaticElementInteractions: not a button because only works on hover */}\n\t\t\t<div\n\t\t\t\trole=\"presentation\"\n\t\t\t\taria-label={`Auto scroll content ${direction}`}\n\t\t\t\tonMouseEnter={onMouseEnter}\n\t\t\t\tonMouseLeave={onMouseLeave}\n\t\t\t\tclassName={styles.overlayControl}\n\t\t\t>\n\t\t\t\t<IconScrollArrow direction={direction} />\n\t\t\t</div>\n\t\t\t{direction === \"up\" && <div className={styles.upOverlayGradient} />}\n\t\t</Stack>\n\t)\n}\n", "import type { RefObject } from \"react\"\nimport { createContext, useContext, useEffect } from \"react\"\nimport { useConstant } from \"./useConstant.ts\"\n\n// Note: This code has been duplicated from library, because the hook below is written in a way that isn't granular suspense ready (during hydration).\n// However, vekter doesn't need to be hydrated, so we decided to copy the code here instead. See https://github.com/framer/FramerStudio/pull/19399#discussion_r1829232400.\nclass SharedIntersectionObserver {\n\t// Note: we don\u2019t want to use #-style private fields here because (as of esbuild 0.17)\n\t// they leave non-tree-shakeable symbols in the bundle: https://framer-team.slack.com/archives/C05V49Q4NJ2/p1715653184830179\n\tprivate sharedIntersectionObserver\n\tprivate callbacks = new WeakMap<Element, IntersectionObserverCallback>()\n\n\tconstructor(options: IntersectionObserverInit) {\n\t\tif (!document) return\n\t\tthis.sharedIntersectionObserver = new IntersectionObserver(this.resizeObserverCallback.bind(this), options)\n\t}\n\n\tprivate resizeObserverCallback(entries: IntersectionObserverEntry[], observer: IntersectionObserver) {\n\t\tfor (const entry of entries) {\n\t\t\tconst callbackForElement = this.callbacks.get(entry.target)\n\t\t\tif (callbackForElement) callbackForElement([entry], observer)\n\t\t}\n\t}\n\n\tobserveElementWithCallback(element: HTMLElement, callback: IntersectionObserverCallback) {\n\t\tif (!this.sharedIntersectionObserver) return\n\t\tthis.sharedIntersectionObserver.observe(element)\n\t\tthis.callbacks.set(element, callback)\n\t}\n\n\tunobserve(element: HTMLElement) {\n\t\tif (!this.sharedIntersectionObserver) return\n\t\tthis.sharedIntersectionObserver.unobserve(element)\n\t\tthis.callbacks.delete(element)\n\t}\n\tget root() {\n\t\treturn this.sharedIntersectionObserver?.root\n\t}\n}\n\ntype SharedObserverMap = Map<string, SharedIntersectionObserver>\nconst SharedIntersectionObserverContext = /* @__PURE__ */ createContext<SharedObserverMap>(new Map())\n\nexport interface IntersectionObserverOptions {\n\troot?: RefObject<Element | Document> | null\n\trootMargin?: string\n\tthreshold?: number | number[]\n\tenabled?: boolean\n}\n\n/**\n * @internal\n */\nexport function useSharedIntersectionObserver(\n\tref: RefObject<HTMLElement>,\n\tcallback: IntersectionObserverCallback,\n\toptions: IntersectionObserverOptions,\n) {\n\t// We can ignore rules-of-hooks if the client doesn't support the\n\t// Intersection Observer. This cannot change during the lifecycle of the\n\t// component, so we can save some performance.\n\tif (typeof IntersectionObserver === \"undefined\") return\n\n\t// biome-ignore lint/correctness/useHookAtTopLevel: <explanation>\n\tconst key = useConstant(() => `${options.rootMargin}`)\n\t// biome-ignore lint/correctness/useHookAtTopLevel: <explanation>\n\tconst observers = useContext(SharedIntersectionObserverContext)\n\tconst { enabled } = options\n\n\t// biome-ignore lint/correctness/useHookAtTopLevel: <explanation>\n\t// biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n\tuseEffect(() => {\n\t\tconst element = ref.current\n\t\tif (!enabled || !element) return\n\n\t\tlet observer = observers.get(key)\n\n\t\tif (!observer || observer.root !== options.root?.current) {\n\t\t\tconst { root, ...rest } = options\n\t\t\tobserver = new SharedIntersectionObserver({ ...rest, root: root?.current })\n\t\t\tobservers.set(key, observer)\n\t\t}\n\n\t\tobserver.observeElementWithCallback(element, callback)\n\n\t\treturn () => observer?.unobserve(element)\n\t}, [enabled])\n}\n", "import \"CursorScroll.styles_1od4vbk.wyw.css\"; import { cx } from \"@linaria/core\";\nexport const container = \"container_c2v15of\";\nexport const contentContainerWithPadding = \"contentContainerWithPadding_c1tr39qo\";\nconst absoluteBottom = \"absoluteBottom_a103jkx3\";\nconst absoluteTop = \"absoluteTop_auzolsl\";\nconst overlayContainer = \"overlayContainer_o179w3e7\";\nexport const upOverlayContainer = cx(overlayContainer, absoluteTop);\nexport const downOverlayContainer = cx(overlayContainer, absoluteBottom);\nconst overlayGradient = \"overlayGradient_o1h5p0we\";\nexport const upOverlayGradient = cx(overlayGradient, \"upOverlayGradient_u1hfkq3i\");\nexport const downOverlayGradient = cx(overlayGradient, \"downOverlayGradient_dh1045z\");\nexport const overlayControl = \"overlayControl_o1sgpxwn\";\nexport const scrollContent = \"scrollContent_swuysmr\";\nconst boundaryElement = \"boundaryElement_b3o367f\";\nexport const firstBoundaryElement = cx(boundaryElement, absoluteTop);\nexport const lastBoundaryElement = cx(boundaryElement, absoluteBottom);", "import type { PropsWithChildren, ReactNode } from \"react\"\nimport { createContext, useContext, useMemo } from \"react\"\n\ninterface MenuConfig {\n\tcloseOnSelect: boolean\n\tstartTime: number | undefined\n\tmouseDidMove: boolean\n}\n\nconst MenuConfigContext = createContext<MenuConfig>({\n\tcloseOnSelect: true,\n\tstartTime: undefined,\n\tmouseDidMove: false,\n})\nMenuConfigContext.displayName = \"MenuConfigContext\"\n\nexport const useMenuConfig = () => useContext(MenuConfigContext)\n\ninterface Props extends MenuConfig {\n\tchildren: ReactNode\n}\n\nexport function MenuConfigProvider({ children, closeOnSelect, startTime, mouseDidMove }: Props) {\n\tconst value = useMemo(\n\t\t(): MenuConfig => ({\n\t\t\tcloseOnSelect,\n\t\t\tstartTime,\n\t\t\tmouseDidMove,\n\t\t}),\n\t\t[closeOnSelect, startTime, mouseDidMove],\n\t)\n\treturn <MenuConfigContext.Provider value={value}>{children}</MenuConfigContext.Provider>\n}\n\nconst WithinMenuComboboxContext = createContext<boolean>(false)\nWithinMenuComboboxContext.displayName = \"WithinMenuComboboxContext\"\n\nexport function useIsWithinMenuCombobox() {\n\treturn useContext(WithinMenuComboboxContext)\n}\n\nexport function WithinMenuComboboxProvider({\n\tchildren,\n\twithinCombobox,\n}: PropsWithChildren<{ withinCombobox: boolean }>) {\n\treturn <WithinMenuComboboxContext.Provider value={withinCombobox}>{children}</WithinMenuComboboxContext.Provider>\n}\n", "import { useEffect, useState } from \"react\"\nimport { isFunction, isUndefined } from \"utils/typeChecks.ts\"\nimport type { MenuItemOptionsWithPath } from \"./types.ts\"\n\n// When the enabled property is an async function that returns a promise.\n// Until the promise resolves, the menu item is set to this value.\nconst defaultDisabledWhenAsync = true\n\n/**\n * Checks if the menu item is disabled based on the provided enabled property.\n *\n * When checking whether a submenu is disabled, `items` argument is required.\n * A submenu parent is disabled if all its items are disabled.\n */\nexport function useMenuItemDisabled(\n\tenabled: MenuItemOptionsWithPath[\"enabled\"],\n\titems?: readonly MenuItemOptionsWithPath[],\n): boolean {\n\tconst [disabled, setDisabled] = useState(() => {\n\t\tif (isFunction(enabled) || items?.every(item => isFunction(item.enabled) || item.enabled === false)) {\n\t\t\treturn defaultDisabledWhenAsync\n\t\t}\n\t\treturn enabled === false\n\t})\n\n\tuseEffect(() => {\n\t\tlet isActive = true\n\t\tconst updateDisabled = async () => {\n\t\t\tconst [resolvedEnabled, disableSubmenu] = await Promise.all([\n\t\t\t\tresolveEnabledProperty(enabled),\n\t\t\t\tallSubmenuItemsAreDisabled(items),\n\t\t\t])\n\t\t\tif (!isActive) return\n\t\t\tsetDisabled(resolvedEnabled === false || disableSubmenu)\n\t\t}\n\n\t\tvoid updateDisabled()\n\n\t\treturn () => {\n\t\t\tisActive = false\n\t\t}\n\t}, [enabled, items])\n\n\treturn disabled\n}\n\nasync function resolveEnabledProperty(enabled: MenuItemOptionsWithPath[\"enabled\"]): Promise<boolean | undefined> {\n\tif (isFunction(enabled)) return enabled()\n\treturn enabled\n}\n\nasync function allSubmenuItemsAreDisabled(items: readonly MenuItemOptionsWithPath[] | undefined): Promise<boolean> {\n\tif (isUndefined(items) || items.length === 0) return false\n\n\tfor (const item of items) {\n\t\tif (item.type === \"separator\") continue\n\n\t\tconst isEnabled = await resolveEnabledProperty(item.enabled)\n\t\tif (isEnabled !== false) return false\n\t}\n\n\treturn true\n}\n"],
  "mappings": "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",
  "names": ["cleanups", "__defProp", "__defProps", "__getOwnPropDescs", "__getOwnPropSymbols", "__hasOwnProp", "__propIsEnum", "__defNormalProp", "__spreadValues", "__spreadProps", "__objRest", "__spreadValues", "isAppleDevice", "container", "import_react", "__spreadValues", "useMergeRefs", "defaultValue", "setAttribute", "__spreadProps", "__spreadValues", "useMergeRefs", "React", "Role", "__spreadProps", "__spreadValues", "__objRest", "useMergeRefs", "useRole", "useContext2", "import_react", "ctx", "import_react", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "import_react", "container", "elements", "container", "elements", "container", "container", "elements", "import_react", "TagName", "hasInstalledGlobalEventListeners", "__objRest", "label", "__spreadValues", "__spreadProps", "useMergeRefs", "import_react", "TagName", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "React", "useSyncExternalStoreExports", "selector", "__spreadValues", "createStore", "useState2", "__spreadProps", "import_react", "import_jsx_runtime", "TagName", "__objRest", "isTabbable", "__spreadProps", "__spreadValues", "isGrid", "useMergeRefs", "import_react", "import_jsx_runtime", "TagName", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "ctx", "import_react", "ctx", "import_react", "import_jsx_runtime", "TagName", "afterPaint", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "ctx", "NULL_ITEM", "findFirstEnabledItem", "flipItems", "groupItemsByRows", "isGrid", "__spreadValues", "import_react", "ctx", "TagName", "__objRest", "__spreadValues", "TagName", "__objRest", "__spreadProps", "__spreadValues", "ctx", "import_react", "TagName", "__spreadProps", "__spreadValues", "TagName", "__spreadProps", "__spreadValues", "import_react", "import_react_dom", "import_jsx_runtime", "TagName", "__objRest", "useMergeRefs", "__spreadProps", "__spreadValues", "import_react", "import_react", "import_jsx_runtime", "import_jsx_runtime", "TagName", "__objRest", "container", "document", "import_react", "setup", "isValidElement", "elements", "cleanups", "markElement", "elements", "cleanups", "import_react", "__spreadProps", "__spreadValues", "import_react", "import_jsx_runtime", "import_react", "import_react_dom", "import_react", "elements", "cleanups", "TagName", "import_react", "import_jsx_runtime", "__spreadProps", "__spreadValues", "import_react", "import_jsx_runtime", "TagName", "isSafariBrowser", "__objRest", "selector", "__spreadProps", "__spreadValues", "useMergeRefs", "platform", "elements", "max", "offset", "platform", "elements", "placements", "sides", "side", "placement", "overflow", "platform", "elements", "x", "y", "min", "max", "offset", "getWindow", "getComputedStyle", "selector", "getComputedStyle", "getWindow", "elements", "offset", "shift", "flip", "size", "arrow", "limitShift", "computePosition", "import_react", "import_jsx_runtime", "TagName", "__spreadProps", "__spreadValues", "flip2", "offset", "flip", "shift", "limitShift", "size", "elements", "arrow", "shift2", "__objRest", "arrow2", "computePosition", "import_react", "import_jsx_runtime", "TagName", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "import_react", "TagName", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "import_react", "TagName", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "import_react", "TagName", "__spreadProps", "__spreadValues", "useMergeRefs", "import_react", "TagName", "symbol", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "TagName", "__objRest", "__spreadValues", "import_jsx_runtime", "TagName", "__objRest", "__spreadProps", "__spreadValues", "import_react", "TagName", "isItem", "getEnabledItems", "__objRest", "document", "selector", "__spreadProps", "__spreadValues", "import_react", "TagName", "symbol", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "import_react", "MenuItemCheckedContext", "import_react", "import_jsx_runtime", "TagName", "__objRest", "label", "menu", "__spreadValues", "__spreadProps", "useMergeRefs", "import_react", "TagName", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "import_react", "import_jsx_runtime", "TagName", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "TagName", "__objRest", "__spreadProps", "__spreadValues", "menubar", "menu", "menubar", "__spreadProps", "__spreadValues", "import_jsx_runtime", "TagName", "__objRest", "__spreadValues", "import_react", "TagName", "__objRest", "inline", "elements", "__spreadProps", "__spreadValues", "useMergeRefs", "import_react", "import_jsx_runtime", "TagName", "__objRest", "__spreadProps", "__spreadValues", "import_react", "import_jsx_runtime", "TagName", "__objRest", "__spreadProps", "__spreadValues", "useMergeRefs", "import_react", "ctx", "__spreadProps", "__spreadValues", "import_jsx_runtime", "import_react", "menu", "React", "import_react", "import_react", "import_react", "import_jsx_runtime", "import_jsx_runtime", "import_react", "import_jsx_runtime", "Menu", "label", "MenuItem", "menu", "WithSearchableItems", "MenuSeparator", "MenuItemInner", "badge", "description", "MenuItemTooltip", "hide", "isApple", "accelerator", "import_jsx_runtime", "menu", "Menu", "label", "description"]
}
