{"version":3,"file":"static/chunks/75-e36a373dec3ec859.js","mappings":"sKAKA,gBACA,kCACA,CAMA,oBAAoC,GAAY,CAChD,IACA,GACA,GACA,GACA,GACA,GACA,cACA,OACA,QACA,UACA,WACA,WACA,WACA,kBACA,CACA,cACA,yBACA,oBACA,gBACA,YACA,CAAS,CACT,CAAO,CAEP,CACA,gBACA,qBACA,cAEA,CACA,UACA,uBACA,oBACA,WACA,CAAK,CACL,CACA,kBACA,UACI,GAAa,YACjB,cACA,mBACA,UACA,qDAEA,2BACA,QACA,yBAEA,SACA,iBAEA,0BAGA,UACA,UACA,sBAGA,mBACA,WACA,CAAO,EACP,mBACA,gBACA,YACA,CAAS,CACT,CAAO,EACP,UACA,CAAK,CACL,CACA,mBACA,eAEA,aACA,0CACA,CACA,eACA,eAEA,yBACA,iBACA,QACA,4DAEA,OACA,EACA,GACA,gBAEA,IACA,cACA,WACA,mDAIW,EAJX,6BACA,cACA,uBACA,CAAa,CACb,CAAW,CACX,CAAS,EAET,CAEA,eACA,GACA,0CACA,UACA,gBACA,QAA+B,QAAgB,CAC/C,QACA,OAGA,SAEA,CACA,CACA,MAEA,cADA,QAEA,iCAEA,QACA,mCAEA,gBACA,gCACA,QACA,EAAkB,mCAA0D,EAE5E,EACA,CAAK,EACL,UACA,6CAEA,WACA,wBAEA,MACA,qCAIA,OAHA,aACA,uCAEA,IAAoC,GAAa,WACjD,EACA,WACA,EACA,wBACA,aACA,IAGA,wBADA,6EAEA,CACA,QACA,wBACA,UACA,iBAhKA,OACA,iBAEA,OADA,OACA,CACA,EA4JA,aACA,UAEA,CACA,KACI,GAAa,YACjB,2BACA,UACA,CAAO,CACP,CAAK,CACL,CACA,wDC5JA,YACA,UACA,KACC,IACD,MAAiB,QAAc,IAC/B,EAAsB,OAAc,GACpC,EAA6B,OAA0B,GACvD,EAA2B,SAAa,CACxC,cACA,4BACA,GAGA,OADA,kDACA,CACA,CAAK,EACL,SAEA,cACI,QAAoB,IACpB,QAA+B,KACnC,CAAG,EACD,QAA0B,IAC5B,OAAqB,UAAc,CACnC,QAAc,EACd,EACA,EACA,IAGA,KAN6B,EAM7B,uBA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CA,OACA,QATA,GAWA,KAEA,EACA,cACA,WACA,EAhBA,EAiBA,KACA,WACA,IACA,KACA,kBACA,mBACA,EACA,IAEA,KAGA,KACA,iBACA,gBACA,IAEA,KACA,iBACA,mBACA,EACA,IAEA,KAGA,KACA,eACA,gBACA,GAGA,CACA,SACA,0BACA,CAAK,EACL,MAA2B,SAAG,CAC9B,EACA,CACA,QACA,WACA,YACA,cACA,SAAkC,SAAG,SAAoB,iBAAmD,SAAG,CACrG,IAAS,KACnB,CACA,KACA,qBACA,MACA,oBACA,EACA,CAAW,CACX,EAEA,GAEA,kBACA,WACA,EAAoB,YAAgB,CACpC,QACA,qBAAY,gBAAiD,EAC7D,SACA,SACA,OACA,EAAsB,OAAK,GAC3B,6BACA,yBACA,MAA2B,SAAG,CAC9B,EACA,CACA,QACA,OACA,WACA,YACA,SAAkC,SAAG,CDhErC,ECkEA,CACA,iCACA,aAA0B,GAAQ,GAClC,KACA,EAFkC,CAElC,EACA,MACA,WACA,OACA,iBACA,EACA,gBAEA,gBAEA,CACA,EAEA,EAEA,GAEA,gBACA,wBACA,EAAsB,YAAgB,CACtC,QACA,qBAAY,QAAmC,EAC/C,SACA,SACA,MAA2B,SAAG,CACxB,IAAS,IACf,CACA,iCACA,aAAsB,GAAQ,QAC9B,EAD8B,cAC9B,qBACA,KACA,KACA,EAEA,GAEA,gBACA,IAAI,EAAY,mBAChB,EAAuB,YAAgB,CACvC,QACA,qBAAY,QAAoC,EAChD,SACA,IAAgD,EAAY,GAC5D,IAA8D,EAAY,GAC1E,GAF4D,CAE5D,GACA,KAF0E,CAE/C,SAAG,aAAwB,iBAAmD,SAAG,CDlH5G,ECoHA,CACA,+CACA,iCACA,eACA,KACA,KACA,KACA,EACA,CAAO,CACP,GAEA,cAA+B,EAC/B,IAAI,EAAY,SAD2B,MAC3B,IAChB,GAAuB,YAAgB,CACvC,QACA,qBAAY,QAAoC,EAChD,SACA,IAAgD,EAAY,GAC5D,OACA,KAF4D,CAEjC,SAAG,CDtI9B,ECwIA,CACA,cACA,8BACA,iCACA,KACA,KACA,MACA,OACA,6EACA,2EACA,WAEA,EAEA,GAGA,SAAS,GAAQ,GACjB,OADiB,EACjB,eACA,CAHA,eAA+B,EAI/B,SACA,KACA,CAN2C,EAM3C,EACA,KACA","sources":["webpack://_N_E/../../node_modules/.pnpm/@tanstack+query-core@5.56.2/node_modules/@tanstack/query-core/build/modern/queriesObserver.js","webpack://_N_E/../../node_modules/.pnpm/@tanstack+react-query@5.56.2_react@18.3.1/node_modules/@tanstack/react-query/build/modern/useQueries.js","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-collapsible@1.1.3_@types+react-dom@18.3.1_@types+react@18.3.18_react-do_b573f2f14753c843b813a0cea82ea3f0/node_modules/@radix-ui/react-collapsible/dist/index.mjs","webpack://_N_E/../../node_modules/.pnpm/@radix-ui+react-accordion@1.2.3_@types+react-dom@18.3.1_@types+react@18.3.18_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/@radix-ui/react-accordion/dist/index.mjs"],"sourcesContent":["// src/queriesObserver.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { QueryObserver } from \"./queryObserver.js\";\nimport { Subscribable } from \"./subscribable.js\";\nimport { replaceEqualDeep } from \"./utils.js\";\nfunction difference(array1, array2) {\n  return array1.filter((x) => !array2.includes(x));\n}\nfunction replaceAt(array, index, value) {\n  const copy = array.slice(0);\n  copy[index] = value;\n  return copy;\n}\nvar QueriesObserver = class extends Subscribable {\n  #client;\n  #result;\n  #queries;\n  #observers;\n  #combinedResult;\n  #lastCombine;\n  #lastResult;\n  constructor(client, queries, _options) {\n    super();\n    this.#client = client;\n    this.#queries = [];\n    this.#observers = [];\n    this.#result = [];\n    this.setQueries(queries);\n  }\n  onSubscribe() {\n    if (this.listeners.size === 1) {\n      this.#observers.forEach((observer) => {\n        observer.subscribe((result) => {\n          this.#onUpdate(observer, result);\n        });\n      });\n    }\n  }\n  onUnsubscribe() {\n    if (!this.listeners.size) {\n      this.destroy();\n    }\n  }\n  destroy() {\n    this.listeners = /* @__PURE__ */ new Set();\n    this.#observers.forEach((observer) => {\n      observer.destroy();\n    });\n  }\n  setQueries(queries, _options, notifyOptions) {\n    this.#queries = queries;\n    notifyManager.batch(() => {\n      const prevObservers = this.#observers;\n      const newObserverMatches = this.#findMatchingObservers(this.#queries);\n      newObserverMatches.forEach(\n        (match) => match.observer.setOptions(match.defaultedQueryOptions, notifyOptions)\n      );\n      const newObservers = newObserverMatches.map((match) => match.observer);\n      const newResult = newObservers.map(\n        (observer) => observer.getCurrentResult()\n      );\n      const hasIndexChange = newObservers.some(\n        (observer, index) => observer !== prevObservers[index]\n      );\n      if (prevObservers.length === newObservers.length && !hasIndexChange) {\n        return;\n      }\n      this.#observers = newObservers;\n      this.#result = newResult;\n      if (!this.hasListeners()) {\n        return;\n      }\n      difference(prevObservers, newObservers).forEach((observer) => {\n        observer.destroy();\n      });\n      difference(newObservers, prevObservers).forEach((observer) => {\n        observer.subscribe((result) => {\n          this.#onUpdate(observer, result);\n        });\n      });\n      this.#notify();\n    });\n  }\n  getCurrentResult() {\n    return this.#result;\n  }\n  getQueries() {\n    return this.#observers.map((observer) => observer.getCurrentQuery());\n  }\n  getObservers() {\n    return this.#observers;\n  }\n  getOptimisticResult(queries, combine) {\n    const matches = this.#findMatchingObservers(queries);\n    const result = matches.map(\n      (match) => match.observer.getOptimisticResult(match.defaultedQueryOptions)\n    );\n    return [\n      result,\n      (r) => {\n        return this.#combineResult(r ?? result, combine);\n      },\n      () => {\n        return matches.map((match, index) => {\n          const observerResult = result[index];\n          return !match.defaultedQueryOptions.notifyOnChangeProps ? match.observer.trackResult(observerResult, (accessedProp) => {\n            matches.forEach((m) => {\n              m.observer.trackProp(accessedProp);\n            });\n          }) : observerResult;\n        });\n      }\n    ];\n  }\n  #combineResult(input, combine) {\n    if (combine) {\n      if (!this.#combinedResult || this.#result !== this.#lastResult || combine !== this.#lastCombine) {\n        this.#lastCombine = combine;\n        this.#lastResult = this.#result;\n        this.#combinedResult = replaceEqualDeep(\n          this.#combinedResult,\n          combine(input)\n        );\n      }\n      return this.#combinedResult;\n    }\n    return input;\n  }\n  #findMatchingObservers(queries) {\n    const prevObservers = this.#observers;\n    const prevObserversMap = new Map(\n      prevObservers.map((observer) => [observer.options.queryHash, observer])\n    );\n    const defaultedQueryOptions = queries.map(\n      (options) => this.#client.defaultQueryOptions(options)\n    );\n    const matchingObservers = defaultedQueryOptions.flatMap((defaultedOptions) => {\n      const match = prevObserversMap.get(defaultedOptions.queryHash);\n      if (match != null) {\n        return [{ defaultedQueryOptions: defaultedOptions, observer: match }];\n      }\n      return [];\n    });\n    const matchedQueryHashes = new Set(\n      matchingObservers.map((match) => match.defaultedQueryOptions.queryHash)\n    );\n    const unmatchedQueries = defaultedQueryOptions.filter(\n      (defaultedOptions) => !matchedQueryHashes.has(defaultedOptions.queryHash)\n    );\n    const getObserver = (options) => {\n      const defaultedOptions = this.#client.defaultQueryOptions(options);\n      const currentObserver = this.#observers.find(\n        (o) => o.options.queryHash === defaultedOptions.queryHash\n      );\n      return currentObserver ?? new QueryObserver(this.#client, defaultedOptions);\n    };\n    const newOrReusedObservers = unmatchedQueries.map((options) => {\n      return {\n        defaultedQueryOptions: options,\n        observer: getObserver(options)\n      };\n    });\n    const sortMatchesByOrderOfQueries = (a, b) => defaultedQueryOptions.indexOf(a.defaultedQueryOptions) - defaultedQueryOptions.indexOf(b.defaultedQueryOptions);\n    return matchingObservers.concat(newOrReusedObservers).sort(sortMatchesByOrderOfQueries);\n  }\n  #onUpdate(observer, result) {\n    const index = this.#observers.indexOf(observer);\n    if (index !== -1) {\n      this.#result = replaceAt(this.#result, index, result);\n      this.#notify();\n    }\n  }\n  #notify() {\n    notifyManager.batch(() => {\n      this.listeners.forEach((listener) => {\n        listener(this.#result);\n      });\n    });\n  }\n};\nexport {\n  QueriesObserver\n};\n//# sourceMappingURL=queriesObserver.js.map","\"use client\";\n\n// src/useQueries.ts\nimport * as React from \"react\";\nimport {\n  QueriesObserver,\n  QueryObserver,\n  notifyManager\n} from \"@tanstack/query-core\";\nimport { useQueryClient } from \"./QueryClientProvider.js\";\nimport { useIsRestoring } from \"./isRestoring.js\";\nimport { useQueryErrorResetBoundary } from \"./QueryErrorResetBoundary.js\";\nimport {\n  ensurePreventErrorBoundaryRetry,\n  getHasError,\n  useClearResetErrorBoundary\n} from \"./errorBoundaryUtils.js\";\nimport {\n  ensureSuspenseTimers,\n  fetchOptimistic,\n  shouldSuspend,\n  willFetch\n} from \"./suspense.js\";\nfunction useQueries({\n  queries,\n  ...options\n}, queryClient) {\n  const client = useQueryClient(queryClient);\n  const isRestoring = useIsRestoring();\n  const errorResetBoundary = useQueryErrorResetBoundary();\n  const defaultedQueries = React.useMemo(\n    () => queries.map((opts) => {\n      const defaultedOptions = client.defaultQueryOptions(\n        opts\n      );\n      defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n      return defaultedOptions;\n    }),\n    [queries, client, isRestoring]\n  );\n  defaultedQueries.forEach((query) => {\n    ensureSuspenseTimers(query);\n    ensurePreventErrorBoundaryRetry(query, errorResetBoundary);\n  });\n  useClearResetErrorBoundary(errorResetBoundary);\n  const [observer] = React.useState(\n    () => new QueriesObserver(\n      client,\n      defaultedQueries,\n      options\n    )\n  );\n  const [optimisticResult, getCombinedResult, trackResult] = observer.getOptimisticResult(\n    defaultedQueries,\n    options.combine\n  );\n  React.useSyncExternalStore(\n    React.useCallback(\n      (onStoreChange) => isRestoring ? () => void 0 : observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n      [observer, isRestoring]\n    ),\n    () => observer.getCurrentResult(),\n    () => observer.getCurrentResult()\n  );\n  React.useEffect(() => {\n    observer.setQueries(\n      defaultedQueries,\n      options,\n      {\n        listeners: false\n      }\n    );\n  }, [defaultedQueries, options, observer]);\n  const shouldAtLeastOneSuspend = optimisticResult.some(\n    (result, index) => shouldSuspend(defaultedQueries[index], result)\n  );\n  const suspensePromises = shouldAtLeastOneSuspend ? optimisticResult.flatMap((result, index) => {\n    const opts = defaultedQueries[index];\n    if (opts) {\n      const queryObserver = new QueryObserver(client, opts);\n      if (shouldSuspend(opts, result)) {\n        return fetchOptimistic(opts, queryObserver, errorResetBoundary);\n      } else if (willFetch(result, isRestoring)) {\n        void fetchOptimistic(opts, queryObserver, errorResetBoundary);\n      }\n    }\n    return [];\n  }) : [];\n  if (suspensePromises.length > 0) {\n    throw Promise.all(suspensePromises);\n  }\n  const firstSingleResultWhichShouldThrow = optimisticResult.find(\n    (result, index) => {\n      const query = defaultedQueries[index];\n      return query && getHasError({\n        result,\n        errorResetBoundary,\n        throwOnError: query.throwOnError,\n        query: client.getQueryCache().get(query.queryHash)\n      });\n    }\n  );\n  if (firstSingleResultWhichShouldThrow?.error) {\n    throw firstSingleResultWhichShouldThrow.error;\n  }\n  return getCombinedResult(trackResult());\n}\nexport {\n  useQueries\n};\n//# sourceMappingURL=useQueries.js.map","\"use client\";\n\n// packages/react/collapsible/src/collapsible.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { jsx } from \"react/jsx-runtime\";\nvar COLLAPSIBLE_NAME = \"Collapsible\";\nvar [createCollapsibleContext, createCollapsibleScope] = createContextScope(COLLAPSIBLE_NAME);\nvar [CollapsibleProvider, useCollapsibleContext] = createCollapsibleContext(COLLAPSIBLE_NAME);\nvar Collapsible = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      __scopeCollapsible,\n      open: openProp,\n      defaultOpen,\n      disabled,\n      onOpenChange,\n      ...collapsibleProps\n    } = props;\n    const [open = false, setOpen] = useControllableState({\n      prop: openProp,\n      defaultProp: defaultOpen,\n      onChange: onOpenChange\n    });\n    return /* @__PURE__ */ jsx(\n      CollapsibleProvider,\n      {\n        scope: __scopeCollapsible,\n        disabled,\n        contentId: useId(),\n        open,\n        onOpenToggle: React.useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen]),\n        children: /* @__PURE__ */ jsx(\n          Primitive.div,\n          {\n            \"data-state\": getState(open),\n            \"data-disabled\": disabled ? \"\" : void 0,\n            ...collapsibleProps,\n            ref: forwardedRef\n          }\n        )\n      }\n    );\n  }\n);\nCollapsible.displayName = COLLAPSIBLE_NAME;\nvar TRIGGER_NAME = \"CollapsibleTrigger\";\nvar CollapsibleTrigger = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeCollapsible, ...triggerProps } = props;\n    const context = useCollapsibleContext(TRIGGER_NAME, __scopeCollapsible);\n    return /* @__PURE__ */ jsx(\n      Primitive.button,\n      {\n        type: \"button\",\n        \"aria-controls\": context.contentId,\n        \"aria-expanded\": context.open || false,\n        \"data-state\": getState(context.open),\n        \"data-disabled\": context.disabled ? \"\" : void 0,\n        disabled: context.disabled,\n        ...triggerProps,\n        ref: forwardedRef,\n        onClick: composeEventHandlers(props.onClick, context.onOpenToggle)\n      }\n    );\n  }\n);\nCollapsibleTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"CollapsibleContent\";\nvar CollapsibleContent = React.forwardRef(\n  (props, forwardedRef) => {\n    const { forceMount, ...contentProps } = props;\n    const context = useCollapsibleContext(CONTENT_NAME, props.__scopeCollapsible);\n    return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: ({ present }) => /* @__PURE__ */ jsx(CollapsibleContentImpl, { ...contentProps, ref: forwardedRef, present }) });\n  }\n);\nCollapsibleContent.displayName = CONTENT_NAME;\nvar CollapsibleContentImpl = React.forwardRef((props, forwardedRef) => {\n  const { __scopeCollapsible, present, children, ...contentProps } = props;\n  const context = useCollapsibleContext(CONTENT_NAME, __scopeCollapsible);\n  const [isPresent, setIsPresent] = React.useState(present);\n  const ref = React.useRef(null);\n  const composedRefs = useComposedRefs(forwardedRef, ref);\n  const heightRef = React.useRef(0);\n  const height = heightRef.current;\n  const widthRef = React.useRef(0);\n  const width = widthRef.current;\n  const isOpen = context.open || isPresent;\n  const isMountAnimationPreventedRef = React.useRef(isOpen);\n  const originalStylesRef = React.useRef(void 0);\n  React.useEffect(() => {\n    const rAF = requestAnimationFrame(() => isMountAnimationPreventedRef.current = false);\n    return () => cancelAnimationFrame(rAF);\n  }, []);\n  useLayoutEffect(() => {\n    const node = ref.current;\n    if (node) {\n      originalStylesRef.current = originalStylesRef.current || {\n        transitionDuration: node.style.transitionDuration,\n        animationName: node.style.animationName\n      };\n      node.style.transitionDuration = \"0s\";\n      node.style.animationName = \"none\";\n      const rect = node.getBoundingClientRect();\n      heightRef.current = rect.height;\n      widthRef.current = rect.width;\n      if (!isMountAnimationPreventedRef.current) {\n        node.style.transitionDuration = originalStylesRef.current.transitionDuration;\n        node.style.animationName = originalStylesRef.current.animationName;\n      }\n      setIsPresent(present);\n    }\n  }, [context.open, present]);\n  return /* @__PURE__ */ jsx(\n    Primitive.div,\n    {\n      \"data-state\": getState(context.open),\n      \"data-disabled\": context.disabled ? \"\" : void 0,\n      id: context.contentId,\n      hidden: !isOpen,\n      ...contentProps,\n      ref: composedRefs,\n      style: {\n        [`--radix-collapsible-content-height`]: height ? `${height}px` : void 0,\n        [`--radix-collapsible-content-width`]: width ? `${width}px` : void 0,\n        ...props.style\n      },\n      children: isOpen && children\n    }\n  );\n});\nfunction getState(open) {\n  return open ? \"open\" : \"closed\";\n}\nvar Root = Collapsible;\nvar Trigger = CollapsibleTrigger;\nvar Content = CollapsibleContent;\nexport {\n  Collapsible,\n  CollapsibleContent,\n  CollapsibleTrigger,\n  Content,\n  Root,\n  Trigger,\n  createCollapsibleScope\n};\n//# sourceMappingURL=index.mjs.map\n","\"use client\";\n\n// packages/react/accordion/src/accordion.tsx\nimport React from \"react\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { createCollection } from \"@radix-ui/react-collection\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport * as CollapsiblePrimitive from \"@radix-ui/react-collapsible\";\nimport { createCollapsibleScope } from \"@radix-ui/react-collapsible\";\nimport { useId } from \"@radix-ui/react-id\";\nimport { useDirection } from \"@radix-ui/react-direction\";\nimport { jsx } from \"react/jsx-runtime\";\nvar ACCORDION_NAME = \"Accordion\";\nvar ACCORDION_KEYS = [\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\", \"ArrowLeft\", \"ArrowRight\"];\nvar [Collection, useCollection, createCollectionScope] = createCollection(ACCORDION_NAME);\nvar [createAccordionContext, createAccordionScope] = createContextScope(ACCORDION_NAME, [\n  createCollectionScope,\n  createCollapsibleScope\n]);\nvar useCollapsibleScope = createCollapsibleScope();\nvar Accordion = React.forwardRef(\n  (props, forwardedRef) => {\n    const { type, ...accordionProps } = props;\n    const singleProps = accordionProps;\n    const multipleProps = accordionProps;\n    return /* @__PURE__ */ jsx(Collection.Provider, { scope: props.__scopeAccordion, children: type === \"multiple\" ? /* @__PURE__ */ jsx(AccordionImplMultiple, { ...multipleProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(AccordionImplSingle, { ...singleProps, ref: forwardedRef }) });\n  }\n);\nAccordion.displayName = ACCORDION_NAME;\nvar [AccordionValueProvider, useAccordionValueContext] = createAccordionContext(ACCORDION_NAME);\nvar [AccordionCollapsibleProvider, useAccordionCollapsibleContext] = createAccordionContext(\n  ACCORDION_NAME,\n  { collapsible: false }\n);\nvar AccordionImplSingle = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      value: valueProp,\n      defaultValue,\n      onValueChange = () => {\n      },\n      collapsible = false,\n      ...accordionSingleProps\n    } = props;\n    const [value, setValue] = useControllableState({\n      prop: valueProp,\n      defaultProp: defaultValue,\n      onChange: onValueChange\n    });\n    return /* @__PURE__ */ jsx(\n      AccordionValueProvider,\n      {\n        scope: props.__scopeAccordion,\n        value: value ? [value] : [],\n        onItemOpen: setValue,\n        onItemClose: React.useCallback(() => collapsible && setValue(\"\"), [collapsible, setValue]),\n        children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionSingleProps, ref: forwardedRef }) })\n      }\n    );\n  }\n);\nvar AccordionImplMultiple = React.forwardRef((props, forwardedRef) => {\n  const {\n    value: valueProp,\n    defaultValue,\n    onValueChange = () => {\n    },\n    ...accordionMultipleProps\n  } = props;\n  const [value = [], setValue] = useControllableState({\n    prop: valueProp,\n    defaultProp: defaultValue,\n    onChange: onValueChange\n  });\n  const handleItemOpen = React.useCallback(\n    (itemValue) => setValue((prevValue = []) => [...prevValue, itemValue]),\n    [setValue]\n  );\n  const handleItemClose = React.useCallback(\n    (itemValue) => setValue((prevValue = []) => prevValue.filter((value2) => value2 !== itemValue)),\n    [setValue]\n  );\n  return /* @__PURE__ */ jsx(\n    AccordionValueProvider,\n    {\n      scope: props.__scopeAccordion,\n      value,\n      onItemOpen: handleItemOpen,\n      onItemClose: handleItemClose,\n      children: /* @__PURE__ */ jsx(AccordionCollapsibleProvider, { scope: props.__scopeAccordion, collapsible: true, children: /* @__PURE__ */ jsx(AccordionImpl, { ...accordionMultipleProps, ref: forwardedRef }) })\n    }\n  );\n});\nvar [AccordionImplProvider, useAccordionContext] = createAccordionContext(ACCORDION_NAME);\nvar AccordionImpl = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAccordion, disabled, dir, orientation = \"vertical\", ...accordionProps } = props;\n    const accordionRef = React.useRef(null);\n    const composedRefs = useComposedRefs(accordionRef, forwardedRef);\n    const getItems = useCollection(__scopeAccordion);\n    const direction = useDirection(dir);\n    const isDirectionLTR = direction === \"ltr\";\n    const handleKeyDown = composeEventHandlers(props.onKeyDown, (event) => {\n      if (!ACCORDION_KEYS.includes(event.key)) return;\n      const target = event.target;\n      const triggerCollection = getItems().filter((item) => !item.ref.current?.disabled);\n      const triggerIndex = triggerCollection.findIndex((item) => item.ref.current === target);\n      const triggerCount = triggerCollection.length;\n      if (triggerIndex === -1) return;\n      event.preventDefault();\n      let nextIndex = triggerIndex;\n      const homeIndex = 0;\n      const endIndex = triggerCount - 1;\n      const moveNext = () => {\n        nextIndex = triggerIndex + 1;\n        if (nextIndex > endIndex) {\n          nextIndex = homeIndex;\n        }\n      };\n      const movePrev = () => {\n        nextIndex = triggerIndex - 1;\n        if (nextIndex < homeIndex) {\n          nextIndex = endIndex;\n        }\n      };\n      switch (event.key) {\n        case \"Home\":\n          nextIndex = homeIndex;\n          break;\n        case \"End\":\n          nextIndex = endIndex;\n          break;\n        case \"ArrowRight\":\n          if (orientation === \"horizontal\") {\n            if (isDirectionLTR) {\n              moveNext();\n            } else {\n              movePrev();\n            }\n          }\n          break;\n        case \"ArrowDown\":\n          if (orientation === \"vertical\") {\n            moveNext();\n          }\n          break;\n        case \"ArrowLeft\":\n          if (orientation === \"horizontal\") {\n            if (isDirectionLTR) {\n              movePrev();\n            } else {\n              moveNext();\n            }\n          }\n          break;\n        case \"ArrowUp\":\n          if (orientation === \"vertical\") {\n            movePrev();\n          }\n          break;\n      }\n      const clampedIndex = nextIndex % triggerCount;\n      triggerCollection[clampedIndex].ref.current?.focus();\n    });\n    return /* @__PURE__ */ jsx(\n      AccordionImplProvider,\n      {\n        scope: __scopeAccordion,\n        disabled,\n        direction: dir,\n        orientation,\n        children: /* @__PURE__ */ jsx(Collection.Slot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n          Primitive.div,\n          {\n            ...accordionProps,\n            \"data-orientation\": orientation,\n            ref: composedRefs,\n            onKeyDown: disabled ? void 0 : handleKeyDown\n          }\n        ) })\n      }\n    );\n  }\n);\nvar ITEM_NAME = \"AccordionItem\";\nvar [AccordionItemProvider, useAccordionItemContext] = createAccordionContext(ITEM_NAME);\nvar AccordionItem = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAccordion, value, ...accordionItemProps } = props;\n    const accordionContext = useAccordionContext(ITEM_NAME, __scopeAccordion);\n    const valueContext = useAccordionValueContext(ITEM_NAME, __scopeAccordion);\n    const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n    const triggerId = useId();\n    const open = value && valueContext.value.includes(value) || false;\n    const disabled = accordionContext.disabled || props.disabled;\n    return /* @__PURE__ */ jsx(\n      AccordionItemProvider,\n      {\n        scope: __scopeAccordion,\n        open,\n        disabled,\n        triggerId,\n        children: /* @__PURE__ */ jsx(\n          CollapsiblePrimitive.Root,\n          {\n            \"data-orientation\": accordionContext.orientation,\n            \"data-state\": getState(open),\n            ...collapsibleScope,\n            ...accordionItemProps,\n            ref: forwardedRef,\n            disabled,\n            open,\n            onOpenChange: (open2) => {\n              if (open2) {\n                valueContext.onItemOpen(value);\n              } else {\n                valueContext.onItemClose(value);\n              }\n            }\n          }\n        )\n      }\n    );\n  }\n);\nAccordionItem.displayName = ITEM_NAME;\nvar HEADER_NAME = \"AccordionHeader\";\nvar AccordionHeader = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAccordion, ...headerProps } = props;\n    const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n    const itemContext = useAccordionItemContext(HEADER_NAME, __scopeAccordion);\n    return /* @__PURE__ */ jsx(\n      Primitive.h3,\n      {\n        \"data-orientation\": accordionContext.orientation,\n        \"data-state\": getState(itemContext.open),\n        \"data-disabled\": itemContext.disabled ? \"\" : void 0,\n        ...headerProps,\n        ref: forwardedRef\n      }\n    );\n  }\n);\nAccordionHeader.displayName = HEADER_NAME;\nvar TRIGGER_NAME = \"AccordionTrigger\";\nvar AccordionTrigger = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAccordion, ...triggerProps } = props;\n    const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n    const itemContext = useAccordionItemContext(TRIGGER_NAME, __scopeAccordion);\n    const collapsibleContext = useAccordionCollapsibleContext(TRIGGER_NAME, __scopeAccordion);\n    const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n    return /* @__PURE__ */ jsx(Collection.ItemSlot, { scope: __scopeAccordion, children: /* @__PURE__ */ jsx(\n      CollapsiblePrimitive.Trigger,\n      {\n        \"aria-disabled\": itemContext.open && !collapsibleContext.collapsible || void 0,\n        \"data-orientation\": accordionContext.orientation,\n        id: itemContext.triggerId,\n        ...collapsibleScope,\n        ...triggerProps,\n        ref: forwardedRef\n      }\n    ) });\n  }\n);\nAccordionTrigger.displayName = TRIGGER_NAME;\nvar CONTENT_NAME = \"AccordionContent\";\nvar AccordionContent = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeAccordion, ...contentProps } = props;\n    const accordionContext = useAccordionContext(ACCORDION_NAME, __scopeAccordion);\n    const itemContext = useAccordionItemContext(CONTENT_NAME, __scopeAccordion);\n    const collapsibleScope = useCollapsibleScope(__scopeAccordion);\n    return /* @__PURE__ */ jsx(\n      CollapsiblePrimitive.Content,\n      {\n        role: \"region\",\n        \"aria-labelledby\": itemContext.triggerId,\n        \"data-orientation\": accordionContext.orientation,\n        ...collapsibleScope,\n        ...contentProps,\n        ref: forwardedRef,\n        style: {\n          [\"--radix-accordion-content-height\"]: \"var(--radix-collapsible-content-height)\",\n          [\"--radix-accordion-content-width\"]: \"var(--radix-collapsible-content-width)\",\n          ...props.style\n        }\n      }\n    );\n  }\n);\nAccordionContent.displayName = CONTENT_NAME;\nfunction getState(open) {\n  return open ? \"open\" : \"closed\";\n}\nvar Root2 = Accordion;\nvar Item = AccordionItem;\nvar Header = AccordionHeader;\nvar Trigger2 = AccordionTrigger;\nvar Content2 = AccordionContent;\nexport {\n  Accordion,\n  AccordionContent,\n  AccordionHeader,\n  AccordionItem,\n  AccordionTrigger,\n  Content2 as Content,\n  Header,\n  Item,\n  Root2 as Root,\n  Trigger2 as Trigger,\n  createAccordionScope\n};\n//# sourceMappingURL=index.mjs.map\n"],"names":[],"sourceRoot":"","ignoreList":[0,1,2,3]}