@moondreamsdev/dreamer-ui 1.7.10-test.99 → 1.7.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +2 -11
  2. package/dist/Toast-DUpf_XxS.js +754 -0
  3. package/dist/Toast-DUpf_XxS.js.map +1 -0
  4. package/dist/Toast-Dj3X8g0Q.cjs +2 -0
  5. package/dist/Toast-Dj3X8g0Q.cjs.map +1 -0
  6. package/dist/Window-U9c7lCJ4.cjs +2 -0
  7. package/dist/Window-U9c7lCJ4.cjs.map +1 -0
  8. package/dist/{Window-uX5BuBwi.js → Window-bavT8vOT.js} +141 -21
  9. package/dist/Window-bavT8vOT.js.map +1 -0
  10. package/dist/components.cjs.js +2 -2
  11. package/dist/components.cjs.js.map +1 -1
  12. package/dist/components.esm.js +4250 -2867
  13. package/dist/components.esm.js.map +1 -1
  14. package/dist/hooks.cjs.js +1 -1
  15. package/dist/hooks.esm.js +6 -4
  16. package/dist/hooks.esm.js.map +1 -1
  17. package/dist/providers.cjs.js +1 -1
  18. package/dist/providers.esm.js +2 -2
  19. package/dist/src/components/accordion/Accordion.d.ts +36 -0
  20. package/dist/src/components/accordion/AccordionItem.d.ts +20 -0
  21. package/dist/src/components/actionmodal/ActionModal.d.ts +34 -0
  22. package/dist/src/components/avatar/Avatar.d.ts +24 -8
  23. package/dist/src/components/badge/Badge.d.ts +24 -2
  24. package/dist/src/components/button/Button.d.ts +22 -1
  25. package/dist/src/components/button/LoadingDots.d.ts +9 -0
  26. package/dist/src/components/button/variants.d.ts +4 -1
  27. package/dist/src/components/calendar/Calendar.d.ts +105 -0
  28. package/dist/src/components/calendar/hooks.d.ts +40 -0
  29. package/dist/src/components/calendar/index.d.ts +2 -0
  30. package/dist/src/components/calendar/variants.d.ts +41 -0
  31. package/dist/src/components/callout/Callout.d.ts +31 -10
  32. package/dist/src/components/card/Card.d.ts +29 -7
  33. package/dist/src/components/carousel/Carousel.d.ts +24 -1
  34. package/dist/src/components/checkbox/Checkbox.d.ts +37 -1
  35. package/dist/src/components/clickable/Clickable.d.ts +28 -0
  36. package/dist/src/components/code/Code.d.ts +18 -0
  37. package/dist/src/components/code-block/CodeBlock.d.ts +35 -10
  38. package/dist/src/components/code-block/classes.d.ts +2 -1
  39. package/dist/src/components/code-block/format.d.ts +2 -1
  40. package/dist/src/components/code-block/index.d.ts +1 -1
  41. package/dist/src/components/code-block/tokenize.d.ts +6 -2
  42. package/dist/src/components/code-block/types.d.ts +24 -1
  43. package/dist/src/components/disclosure/Disclosure.d.ts +30 -9
  44. package/dist/src/components/drawer/Drawer.d.ts +35 -10
  45. package/dist/src/components/dropdown-menu/DropdownMenu.d.ts +34 -0
  46. package/dist/src/components/dynamic-list/DynamicList.d.ts +68 -0
  47. package/dist/src/components/dynamic-list/hooks.d.ts +19 -0
  48. package/dist/src/components/dynamic-list/index.d.ts +2 -0
  49. package/dist/src/components/dynamic-list/markers.d.ts +8 -0
  50. package/dist/src/components/dynamic-list/variants.d.ts +4 -0
  51. package/dist/src/components/error-boundary/ErrorBoundary.d.ts +32 -9
  52. package/dist/src/components/form/Form.d.ts +28 -0
  53. package/dist/src/components/form/factories.d.ts +8 -0
  54. package/dist/src/components/form/hooks.d.ts +9 -0
  55. package/dist/src/components/form/index.d.ts +3 -0
  56. package/dist/src/components/form/types.d.ts +91 -0
  57. package/dist/src/components/form/variants.d.ts +32 -0
  58. package/dist/src/components/help-icon/HelpIcon.d.ts +48 -0
  59. package/dist/src/components/help-icon/index.d.ts +1 -0
  60. package/dist/src/components/index.d.ts +5 -1
  61. package/dist/src/components/input/Input.d.ts +30 -0
  62. package/dist/src/components/input/variants.d.ts +2 -0
  63. package/dist/src/components/label/Label.d.ts +33 -0
  64. package/dist/src/components/modal/Modal.d.ts +47 -1
  65. package/dist/src/components/pagination/Pagination.d.ts +36 -4
  66. package/dist/src/components/popover/Popover.d.ts +53 -3
  67. package/dist/src/components/radiogroup/RadioGroup.d.ts +33 -0
  68. package/dist/src/components/radiogroup/RadioGroupItem.d.ts +9 -0
  69. package/dist/src/components/scroll-area/ScrollArea.d.ts +25 -0
  70. package/dist/src/components/select/Select.d.ts +49 -0
  71. package/dist/src/components/separator/Separator.d.ts +23 -5
  72. package/dist/src/components/skeleton/Skeleton.d.ts +22 -2
  73. package/dist/src/components/skeleton/variants.d.ts +2 -0
  74. package/dist/src/components/slider/Slider.d.ts +46 -10
  75. package/dist/src/components/table/Table.d.ts +96 -0
  76. package/dist/src/components/table/hooks.d.ts +28 -0
  77. package/dist/src/components/table/index.d.ts +2 -0
  78. package/dist/src/components/table/variants.d.ts +14 -0
  79. package/dist/src/components/tabs/Tabs.d.ts +34 -9
  80. package/dist/src/components/textarea/Textarea.d.ts +37 -0
  81. package/dist/src/components/textarea/variants.d.ts +2 -0
  82. package/dist/src/components/toast/Toast.d.ts +39 -0
  83. package/dist/src/components/toggle/Toggle.d.ts +29 -0
  84. package/dist/src/components/tooltip/Tooltip.d.ts +42 -1
  85. package/dist/src/hooks/index.d.ts +1 -0
  86. package/dist/src/{components/carousel → hooks}/useScreenSize.d.ts +4 -4
  87. package/dist/src/symbols/ChevronUp.d.ts +2 -0
  88. package/dist/src/symbols/GripVertical.d.ts +2 -0
  89. package/dist/src/symbols/InfoCircledFilled.d.ts +2 -0
  90. package/dist/src/symbols/Plus.d.ts +2 -0
  91. package/dist/src/symbols/Trash.d.ts +2 -0
  92. package/dist/src/symbols/index.d.ts +5 -0
  93. package/dist/src/symbols/props.d.ts +2 -2
  94. package/dist/symbols.cjs.js +1 -1
  95. package/dist/symbols.esm.js +21 -16
  96. package/dist/theme.css +4 -1
  97. package/dist/useScreenSize-DiuQZBHb.js +32 -0
  98. package/dist/useScreenSize-DiuQZBHb.js.map +1 -0
  99. package/dist/useScreenSize-UGyolnfn.cjs +2 -0
  100. package/dist/useScreenSize-UGyolnfn.cjs.map +1 -0
  101. package/package.json +5 -1
  102. package/dist/Toast-CRG3g8vr.js +0 -512
  103. package/dist/Toast-CRG3g8vr.js.map +0 -1
  104. package/dist/Toast-wRAL8PRi.cjs +0 -2
  105. package/dist/Toast-wRAL8PRi.cjs.map +0 -1
  106. package/dist/Window-5IZnBJt9.cjs +0 -2
  107. package/dist/Window-5IZnBJt9.cjs.map +0 -1
  108. package/dist/Window-uX5BuBwi.js.map +0 -1
  109. package/dist/src/components/slot/Slot.d.ts +0 -7
  110. package/dist/src/components/slot/index.d.ts +0 -1
  111. package/dist/src/components/tooltip/hooks.d.ts +0 -31
@@ -1 +0,0 @@
1
- {"version":3,"file":"Toast-CRG3g8vr.js","sources":["join-BmgR_f4v.js","X-CIoyLewf.js","Toast-whzK8jlN.js","components.esm.js","../src/components/actionmodal/ActionModal.tsx","../src/components/dropdown-menu/DropdownContext.tsx","../src/components/tabs/TabsContext.tsx","../src/components/toast/Toast.tsx"],"sourcesContent":["function n(...t) {\n return t.filter((s) => typeof s == \"string\" && s).join(\" \").trim() || void 0;\n}\nexport {\n n as j\n};\n//# sourceMappingURL=join-BmgR_f4v.js.map\n","import { jsx as e } from \"react/jsx-runtime\";\nfunction t({\n size: C = 15,\n color: l = \"currentColor\",\n className: n = \"inline\",\n ...i\n}) {\n return /* @__PURE__ */ e(\n \"svg\",\n {\n ...i,\n width: C,\n height: C,\n className: n,\n viewBox: \"0 0 15 15\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /* @__PURE__ */ e(\n \"path\",\n {\n d: \"M0.877075 7.49988C0.877075 3.84219 3.84222 0.877045 7.49991 0.877045C11.1576 0.877045 14.1227 3.84219 14.1227 7.49988C14.1227 11.1575 11.1576 14.1227 7.49991 14.1227C3.84222 14.1227 0.877075 11.1575 0.877075 7.49988ZM7.49991 1.82704C4.36689 1.82704 1.82708 4.36686 1.82708 7.49988C1.82708 10.6329 4.36689 13.1727 7.49991 13.1727C10.6329 13.1727 13.1727 10.6329 13.1727 7.49988C13.1727 4.36686 10.6329 1.82704 7.49991 1.82704ZM9.85358 5.14644C10.0488 5.3417 10.0488 5.65829 9.85358 5.85355L8.20713 7.49999L9.85358 9.14644C10.0488 9.3417 10.0488 9.65829 9.85358 9.85355C9.65832 10.0488 9.34173 10.0488 9.14647 9.85355L7.50002 8.2071L5.85358 9.85355C5.65832 10.0488 5.34173 10.0488 5.14647 9.85355C4.95121 9.65829 4.95121 9.3417 5.14647 9.14644L6.79292 7.49999L5.14647 5.85355C4.95121 5.65829 4.95121 5.3417 5.14647 5.14644C5.34173 4.95118 5.65832 4.95118 5.85358 5.14644L7.50002 6.79289L9.14647 5.14644C9.34173 4.95118 9.65832 4.95118 9.85358 5.14644Z\",\n fill: l,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }\n )\n }\n );\n}\nfunction o({\n size: C = 15,\n color: l = \"currentColor\",\n className: n = \"inline\",\n ...i\n}) {\n return /* @__PURE__ */ e(\n \"svg\",\n {\n ...i,\n width: C,\n height: C,\n className: n,\n viewBox: \"0 0 15 15\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /* @__PURE__ */ e(\n \"path\",\n {\n d: \"M8.4449 0.608765C8.0183 -0.107015 6.9817 -0.107015 6.55509 0.608766L0.161178 11.3368C-0.275824 12.07 0.252503 13 1.10608 13H13.8939C14.7475 13 15.2758 12.07 14.8388 11.3368L8.4449 0.608765ZM7.4141 1.12073C7.45288 1.05566 7.54712 1.05566 7.5859 1.12073L13.9798 11.8488C14.0196 11.9154 13.9715 12 13.8939 12H1.10608C1.02849 12 0.980454 11.9154 1.02018 11.8488L7.4141 1.12073ZM6.8269 4.48611C6.81221 4.10423 7.11783 3.78663 7.5 3.78663C7.88217 3.78663 8.18778 4.10423 8.1731 4.48612L8.01921 8.48701C8.00848 8.766 7.7792 8.98664 7.5 8.98664C7.2208 8.98664 6.99151 8.766 6.98078 8.48701L6.8269 4.48611ZM8.24989 10.476C8.24989 10.8902 7.9141 11.226 7.49989 11.226C7.08567 11.226 6.74989 10.8902 6.74989 10.476C6.74989 10.0618 7.08567 9.72599 7.49989 9.72599C7.9141 9.72599 8.24989 10.0618 8.24989 10.476Z\",\n fill: l,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }\n )\n }\n );\n}\nfunction d({\n size: C = 15,\n color: l = \"currentColor\",\n className: n = \"inline\",\n ...i\n}) {\n return /* @__PURE__ */ e(\n \"svg\",\n {\n ...i,\n width: C,\n height: C,\n className: n,\n viewBox: \"0 0 15 15\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /* @__PURE__ */ e(\n \"path\",\n {\n d: \"M7.49991 0.876892C3.84222 0.876892 0.877075 3.84204 0.877075 7.49972C0.877075 11.1574 3.84222 14.1226 7.49991 14.1226C11.1576 14.1226 14.1227 11.1574 14.1227 7.49972C14.1227 3.84204 11.1576 0.876892 7.49991 0.876892ZM1.82707 7.49972C1.82707 4.36671 4.36689 1.82689 7.49991 1.82689C10.6329 1.82689 13.1727 4.36671 13.1727 7.49972C13.1727 10.6327 10.6329 13.1726 7.49991 13.1726C4.36689 13.1726 1.82707 10.6327 1.82707 7.49972ZM8.24992 4.49999C8.24992 4.9142 7.91413 5.24999 7.49992 5.24999C7.08571 5.24999 6.74992 4.9142 6.74992 4.49999C6.74992 4.08577 7.08571 3.74999 7.49992 3.74999C7.91413 3.74999 8.24992 4.08577 8.24992 4.49999ZM6.00003 5.99999H6.50003H7.50003C7.77618 5.99999 8.00003 6.22384 8.00003 6.49999V9.99999H8.50003H9.00003V11H8.50003H7.50003H6.50003H6.00003V9.99999H6.50003H7.00003V6.99999H6.50003H6.00003V5.99999Z\",\n fill: l,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }\n )\n }\n );\n}\nfunction h({ size: C = 15, color: l = \"currentColor\", className: n = \"inline\", ...i }) {\n return /* @__PURE__ */ e(\n \"svg\",\n {\n ...i,\n width: C,\n height: C,\n className: n,\n viewBox: \"0 0 15 15\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /* @__PURE__ */ e(\n \"path\",\n {\n d: \"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z\",\n fill: l,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }\n )\n }\n );\n}\nexport {\n t as C,\n o as E,\n d as I,\n h as X\n};\n//# sourceMappingURL=X-CIoyLewf.js.map\n","import { jsx as t, Fragment as S, jsxs as b } from \"react/jsx-runtime\";\nimport $, { createContext as e, useId as q, useState as v, useEffect as p, useRef as F, useCallback as z, useMemo as E, useContext as T } from \"react\";\nimport { createPortal as H } from \"react-dom\";\nimport { X as K, C as P, E as V, I as X } from \"./X-CIoyLewf.js\";\nimport { j as Z } from \"./join-BmgR_f4v.js\";\nfunction N(...l) {\n return l.filter((r) => typeof r == \"string\" && r).join(\" \").trim() || void 0;\n}\nfunction _({ size: l = 15, color: r = \"currentColor\", className: i = \"inline\", ...n }) {\n return /* @__PURE__ */ t(\n \"svg\",\n {\n ...n,\n width: l,\n height: l,\n className: i,\n viewBox: \"0 0 15 15\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /* @__PURE__ */ t(\n \"path\",\n {\n d: \"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z\",\n fill: r,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }\n )\n }\n );\n}\nfunction y(...l) {\n return l.filter((r) => typeof r == \"string\" && r).join(\" \").trim() || void 0;\n}\ne(void 0);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(void 0);\ne(void 0);\ne(null);\ne(void 0);\ne(void 0);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\ne(null);\nfunction G() {\n const [l, r] = v(0);\n return p(() => {\n const i = setInterval(() => {\n r((n) => (n + 1) % 3);\n }, 500);\n return () => clearInterval(i);\n }, []), /* @__PURE__ */ t(\"div\", { className: \"absolute inset-0 inline-flex items-center justify-center gap-x-2 align-middle\", children: [0, 1, 2].map((i) => /* @__PURE__ */ t(\n \"div\",\n {\n className: N(\n \"rounded-full transition-all duration-500 ease-in-out size-[0.35em] bg-current\",\n l === i && \"transform -translate-y-1\"\n )\n },\n i\n )) });\n}\nconst J = {\n base: \"\",\n primary: \"bg-primary text-primary-foreground hover:bg-primary/85 disabled:bg-muted disabled:text-muted-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/85 disabled:bg-muted/80 disabled:text-muted-foreground/80\",\n tertiary: \"text-primary hover:text-primary-foreground disabled:text-muted\",\n outline: \"border border-primary text-primary hover:border-primary-foreground hover:text-primary-foreground disabled:border-muted disabled:text-muted\",\n link: \"underline-offset-4 hover:underline disabled:underline disabled:text-muted\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/85 disabled:bg-muted disabled:text-muted-foreground\"\n}, Q = {\n stripped: \"\",\n fitted: \"size-fit\",\n sm: \"px-2 py-1 text-sm\",\n md: \"px-4 py-2 text-base\",\n lg: \"px-6 py-3 text-lg\",\n icon: \"p-1 w-fit aspect-square\",\n full: \"p-2 w-full\"\n}, U = {\n none: \"rounded-none\",\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n full: \"rounded-full\"\n}, w = {\n variant: \"primary\",\n size: \"md\",\n rounded: \"md\"\n};\nfunction W({\n variant: l = w.variant,\n size: r,\n rounded: i = w.rounded,\n loading: n,\n className: o,\n ...a\n}) {\n let u;\n l === \"link\" && !r ? u = \"fitted\" : u = r || w.size;\n const s = N(\n \"appearance-none focus:outline-none focus:ring not-disabled:hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed transition-all\",\n J[l],\n Q[u],\n U[i],\n n && \"relative pointer-events-none\",\n o\n );\n if (a.href && !a.disabled)\n return /* @__PURE__ */ t(\n \"a\",\n {\n ...a,\n rel: a.rel ? a.rel : a.target === \"_blank\" ? \"noopener noreferrer\" : void 0,\n \"aria-label\": a[\"aria-label\"],\n \"aria-description\": a[\"aria-description\"],\n href: a.href,\n className: s,\n children: a.children\n }\n );\n const d = a;\n return /* @__PURE__ */ b(\n \"button\",\n {\n ...d,\n \"aria-label\": d[\"aria-label\"],\n \"aria-description\": d[\"aria-description\"],\n \"aria-disabled\": d.disabled || n,\n \"aria-busy\": n,\n type: d.type ?? \"button\",\n className: s,\n children: [\n n && /* @__PURE__ */ t(G, {}),\n /* @__PURE__ */ t(\"span\", { className: N(n && \"invisible\"), children: d.children })\n ]\n }\n );\n}\nfunction Y(l) {\n const [r, i] = v(!1), [n, o] = v(!1);\n return p(() => {\n l ? (o(!0), setTimeout(() => i(!0), 10)) : (i(!1), setTimeout(() => o(!1), 150));\n }, [l]), { show: r, shouldRender: n };\n}\nfunction R(l, r) {\n p(() => {\n const i = (n) => {\n n.key === \"Escape\" && l && r();\n };\n return document.addEventListener(\"keydown\", i), l && (document.body.style.overflow = \"hidden\"), () => {\n document.removeEventListener(\"keydown\", i), document.body.style.overflow = \"auto\";\n };\n }, [l, r]);\n}\nfunction ee(l, r) {\n const i = F(null), n = z(() => {\n const o = document.getElementById(l);\n if (!o) return;\n const a = o.querySelectorAll('[data-modal-action=\"true\"]');\n if (a.length > 0) {\n a[0].focus();\n return;\n }\n const u = o.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (u.length > 0) {\n const s = Array.from(u).filter((d) => !(d instanceof HTMLButtonElement && d.getAttribute(\"data-modal-close-button\") === \"true\"));\n if (s.length > 0) {\n s[0].focus();\n return;\n }\n u[0].focus();\n return;\n }\n o.focus();\n }, [l]);\n p(() => (r && (i.current = document.activeElement, n()), () => {\n document.body.style.overflow = \"auto\", i.current instanceof HTMLElement && i.current.focus();\n }), [r, n]);\n}\nfunction le({\n id: l,\n isOpen: r,\n onClose: i,\n title: n,\n children: o,\n contentOnly: a = !1,\n className: u,\n overlayClassName: s,\n hideCloseButton: d = !1,\n actions: c = [],\n disableCloseOnOverlayClick: m = !1,\n ariaLabelledBy: f,\n ariaDescribedBy: h\n}) {\n const g = q(), k = l || `modal-${g}`, C = l ? `${l}-title` : `modal-title-${g}`, { show: j, shouldRender: x } = Y(r);\n if (ee(k, x), R(x, i), !x) return null;\n const M = () => n ? $.isValidElement(n) ? /* @__PURE__ */ t(\"div\", { className: \"mb-4\", children: n }) : /* @__PURE__ */ t(\"h2\", { className: \"mb-4 text-xl font-semibold\", id: C, children: n }) : null, A = () => c.length === 0 ? null : /* @__PURE__ */ t(\"div\", { className: \"mt-6 not-sm:grid gap-y-2 sm:flex sm:justify-start sm:flex-row-reverse sm:gap-x-3\", children: c.map((I, B) => {\n const { label: D, ...O } = I;\n return /* @__PURE__ */ t(W, { ...O, \"data-modal-action\": \"true\", children: D }, B);\n }) });\n return /* @__PURE__ */ t(S, { children: H(\n /* @__PURE__ */ t(\n \"div\",\n {\n \"aria-labelledby\": f ?? n ? C : void 0,\n \"aria-describedby\": h,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n className: \"fixed inset-0 z-[100] overflow-y-auto\",\n children: /* @__PURE__ */ b(\"div\", { className: \"flex min-h-screen items-center justify-center p-4\", children: [\n /* @__PURE__ */ t(\n \"div\",\n {\n className: y(\"fixed inset-0 bg-black/20 transition-all\", s),\n onClick: () => {\n m || i();\n }\n }\n ),\n a && /* @__PURE__ */ t(\"div\", { className: y(\"relative w-fit\", u), children: o }),\n !a && /* @__PURE__ */ b(\n \"div\",\n {\n id: k,\n tabIndex: -1,\n className: y(\n \"relative w-full max-w-xl transform rounded-lg shadow-xl bg-popover text-popover-foreground transition-all p-6 focus:ring ease-in duration-75\",\n j ? \"opacity-100 scale-100\" : \"opacity-0 scale-90\",\n u\n ),\n children: [\n !d && /* @__PURE__ */ t(\n \"button\",\n {\n type: \"button\",\n onClick: i,\n \"data-modal-close-button\": \"true\",\n className: \"rounded-md p-0.5 top-2.5 right-2.5 absolute opacity-80 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-gray-500 leading-0\",\n children: /* @__PURE__ */ t(_, { size: 18 })\n }\n ),\n M(),\n o,\n A()\n ]\n }\n )\n ] })\n }\n ),\n document.body\n ) });\n}\nfunction se({\n type: l,\n message: r,\n cancelText: i,\n confirmText: n,\n onConfirm: o,\n onClose: a,\n destructive: u = !1,\n title: s,\n ...d\n}) {\n const c = E(() => l === \"confirm\" ? {\n confirm: n || \"Confirm\",\n cancel: i || \"Cancel\",\n defaultTitle: s || \"Confirm Action\"\n } : {\n confirm: n || \"OK\",\n cancel: null,\n defaultTitle: s || \"Alert\"\n }, [l, n, s, i]), m = E(\n () => [\n ...c.cancel ? [\n {\n label: c.cancel,\n variant: \"secondary\",\n onClick: a\n }\n ] : [],\n {\n label: c.confirm,\n variant: u ? \"destructive\" : \"primary\",\n onClick: () => {\n o == null || o(), a();\n }\n }\n ],\n [c, u, o, a]\n );\n return /* @__PURE__ */ t(\n le,\n {\n ...d,\n title: s || c.defaultTitle,\n onClose: a,\n actions: m,\n disableCloseOnOverlayClick: l === \"confirm\",\n hideCloseButton: l === \"confirm\",\n children: typeof r == \"string\" ? /* @__PURE__ */ t(\"p\", { className: \"text-sm\", children: r }) : r\n }\n );\n}\nconst ne = e(null), de = () => {\n const l = T(ne);\n if (!l)\n throw new Error(\"DropdownMenu components must be used within a DropdownMenu component\");\n return l;\n}, te = e(null), ce = () => {\n const l = T(te);\n if (!l)\n throw new Error(\"Tabs components must be used within a Tabs component\");\n return l;\n}, L = {\n info: {\n className: \"bg-blue-50 border-blue-200 text-blue-900 dark:bg-blue-800 dark:border-blue-950 dark:text-blue-100\",\n icon: /* @__PURE__ */ t(X, { size: 20 })\n },\n warning: {\n className: \"bg-yellow-50 border-yellow-200 text-yellow-900 dark:bg-yellow-800 dark:border-yellow-950 dark:text-yellow-100\",\n icon: /* @__PURE__ */ t(V, { size: 20 })\n },\n error: {\n className: \"bg-red-50 border-red-200 text-red-900 dark:bg-red-800 dark:border-red-950 dark:text-red-100\",\n icon: /* @__PURE__ */ t(P, { size: 20 })\n }\n};\nfunction me({\n id: l,\n title: r,\n description: i,\n type: n = \"info\",\n action: o,\n duration: a = 5e3,\n onRemove: u,\n customTypes: s,\n customComponent: d\n}) {\n const [c, m] = v(!1), f = z(() => {\n m(!0), setTimeout(() => {\n u == null || u(l);\n }, 150);\n }, [l, u]);\n if (p(() => {\n if (a > 0) {\n const g = setTimeout(() => {\n f();\n }, a);\n return () => clearTimeout(g);\n }\n }, [a, l, u, f]), d)\n return /* @__PURE__ */ t(\n d,\n {\n id: l,\n title: r,\n description: i,\n type: n,\n action: o,\n duration: a,\n onRemove: u\n }\n );\n const h = (s == null ? void 0 : s[n]) || L[n] || L.info;\n return /* @__PURE__ */ b(\n \"div\",\n {\n role: n === \"error\" ? \"alert\" : \"status\",\n \"aria-live\": n === \"error\" ? void 0 : \"polite\",\n className: Z(\n \"relative flex items-start p-4 rounded-lg border shadow-lg transition-all duration-150 ease-in-out\",\n o && \"pb-3\",\n h.className,\n c ? \"opacity-0 translate-x-full\" : \"opacity-100 translate-x-0\"\n ),\n children: [\n /* @__PURE__ */ t(\"div\", { className: \"flex-shrink-0 mr-3\", children: h.icon }),\n /* @__PURE__ */ b(\"div\", { className: \"flex-grow min-w-0\", children: [\n /* @__PURE__ */ t(\"div\", { className: \"font-medium text-sm leading-5\", children: r }),\n i && /* @__PURE__ */ t(\"div\", { className: \"mt-1 text-sm opacity-90 leading-5\", children: i }),\n o && /* @__PURE__ */ t(\"div\", { className: \"mt-1.5\", children: /* @__PURE__ */ t(\n \"button\",\n {\n onClick: o.onClick,\n className: \"text-sm font-medium underline hover:no-underline focus:outline-none focus:ring-1 focus:ring-current rounded px-1 py-0.5 hover:cursor-pointer\",\n children: o.label\n }\n ) })\n ] }),\n /* @__PURE__ */ t(\n \"button\",\n {\n onClick: f,\n className: \"flex-shrink-0 ml-3 p-1 rounded-md hover:bg-black/10 dark:hover:bg-white/10 focus:outline-none focus:ring-1 focus:ring-current leading-0\",\n children: /* @__PURE__ */ t(K, { size: 16 })\n }\n )\n ]\n }\n );\n}\nexport {\n se as A,\n ne as D,\n me as T,\n te as a,\n ce as b,\n N as n,\n de as u\n};\n//# sourceMappingURL=Toast-whzK8jlN.js.map\n","var Ke = Object.defineProperty;\nvar We = (n, a, t) => a in n ? Ke(n, a, { enumerable: !0, configurable: !0, writable: !0, value: t }) : n[a] = t;\nvar Ee = (n, a, t) => We(n, typeof a != \"symbol\" ? a + \"\" : a, t);\nimport { jsxs as k, jsx as i, Fragment as Q } from \"react/jsx-runtime\";\nimport F, { useId as P, useState as z, createElement as Ae, useEffect as I, useRef as M, useCallback as $, useMemo as _, Component as Fe, isValidElement as He, cloneElement as _e } from \"react\";\nimport { j as N } from \"./join-BmgR_f4v.js\";\nimport { f as Te, j as qe, c as Re, g as Le, h as xe, b as ye, D as Ze, W as Ge, k as Ue, i as Ye, C as Xe, a as Je, l as Qe, E as Oe, Q as et, d as tt, e as rt } from \"./Window-uX5BuBwi.js\";\nimport { u as we, D as nt, n as V, a as ot, b as Ne } from \"./Toast-whzK8jlN.js\";\nimport { A as Dn, T as An } from \"./Toast-whzK8jlN.js\";\nimport { X as oe, E as de, C as at, I as Me } from \"./X-CIoyLewf.js\";\nimport { createPortal as ae } from \"react-dom\";\nimport { downloadFile as st, mergeRefs as it } from \"./utils.esm.js\";\nfunction he({\n id: n,\n title: a,\n content: t,\n children: r,\n className: e = \"\",\n disabled: o = !1,\n isOpen: s = !1,\n onToggle: l,\n triggerClassName: c = \"\",\n bodyClassName: f = \"\"\n}) {\n const u = P(), d = n || `accordion-item-${u}`, p = `${d}-header`, m = `${d}-panel`, v = () => {\n !o && l && l();\n }, b = (h) => {\n (h.key === \"Enter\" || h.key === \" \") && (h.preventDefault(), v());\n };\n return /* @__PURE__ */ k(\"div\", { className: N(\"border-b border-gray-200\", o && \"opacity-60 cursor-not-allowed\", e), children: [\n /* @__PURE__ */ k(\n \"button\",\n {\n id: p,\n type: \"button\",\n className: N(\n \"w-full text-left py-3 px-4 flex justify-between items-center focus:outline focus:outline-secondary\",\n o ? \"cursor-not-allowed\" : \"hover:bg-gray-50/10 cursor-pointer\",\n c\n ),\n \"aria-expanded\": s,\n \"aria-controls\": m,\n disabled: o,\n onClick: v,\n onKeyDown: b,\n children: [\n /* @__PURE__ */ i(\"span\", { children: a }),\n /* @__PURE__ */ i(\n \"span\",\n {\n className: N(\n \"transform transition-transform duration-300 ease-linear\",\n s ? \"rotate-180\" : \"rotate-0\"\n ),\n \"aria-hidden\": \"true\",\n children: /* @__PURE__ */ i(Te, { size: 18 })\n }\n )\n ]\n }\n ),\n /* @__PURE__ */ i(\n \"div\",\n {\n id: m,\n role: \"region\",\n \"aria-labelledby\": p,\n className: N(\n \"transition-all duration-300 ease-linear px-4\",\n s ? \"max-h-96 opacity-100 overflow-auto py-3\" : \"max-h-0 opacity-0 overflow-hidden\",\n f\n ),\n children: s && (r || t)\n }\n )\n ] });\n}\nfunction Ur({\n id: n,\n items: a = [],\n children: t,\n className: r = \"\",\n itemClassName: e = \"\",\n allowMultiple: o = !1,\n defaultOpenItems: s = [],\n triggersClassName: l = \"\",\n bodiesClassName: c = \"\"\n}) {\n const f = P(), u = n || `accordion-group-${f}`, [d, p] = z(new Set(s)), m = (h) => {\n p((y) => {\n const g = new Set(y);\n return g.has(h) ? g.delete(h) : (o || g.clear(), g.add(h)), g;\n });\n }, v = (h) => `${f}-item-${h}`, b = (h) => d.has(h);\n return /* @__PURE__ */ k(\"div\", { id: u, className: r, children: [\n a.length > 0 && a.map((h, y) => {\n const g = h.id || v(y);\n return /* @__PURE__ */ i(\n he,\n {\n id: g,\n title: h.title,\n content: h.content,\n disabled: h.disabled,\n isOpen: b(g),\n onToggle: () => m(g),\n className: e,\n triggerClassName: l,\n bodyClassName: c\n },\n g\n );\n }),\n a.length === 0 && t && F.Children.map(t, (h, y) => {\n if (F.isValidElement(h) && h.type === he) {\n const g = h.props.id || v(y);\n return /* @__PURE__ */ Ae(\n he,\n {\n ...h.props,\n key: g,\n id: g,\n className: N(e, h.props.className),\n isOpen: b(g),\n onToggle: () => m(g),\n triggerClassName: N(l, h.props.triggerClassName),\n bodyClassName: N(c, h.props.bodyClassName)\n }\n );\n }\n return null;\n })\n ] });\n}\nconst lt = {\n decorative: { \"aria-hidden\": !0 },\n status: { role: \"status\" },\n alert: { role: \"alert\" }\n}, ct = {\n base: \"\",\n primary: \"bg-primary text-primary-foreground\",\n secondary: \"bg-secondary text-secondary-foreground\",\n accent: \"bg-accent text-accent-foreground\",\n destructive: \"bg-destructive text-destructive-foreground\",\n success: \"bg-success text-success-foreground\",\n muted: \"bg-muted text-muted-foreground\"\n}, dt = {\n base: \"\",\n primary: \"border border-primary bg-transparent text-primary\",\n secondary: \"border border-secondary bg-transparent text-secondary\",\n accent: \"border border-accent bg-transparent text-accent\",\n destructive: \"border border-destructive bg-transparent text-destructive\",\n success: \"border border-success bg-transparent text-success\",\n muted: \"border border-muted-foreground bg-transparent text-muted-foreground\"\n}, be = {\n xs: {\n text: \"text-xs\",\n aspectSquare: \"p-1\",\n aspectVideo: \"px-2 py-0.5\"\n },\n sm: {\n text: \"text-sm\",\n aspectSquare: \"p-1.5\",\n aspectVideo: \"px-2.5 py-1\"\n },\n md: {\n text: \"text-base\",\n aspectSquare: \"p-2\",\n aspectVideo: \"px-3 py-1.5\"\n }\n};\nfunction Yr({\n id: n,\n ref: a,\n variant: t = \"muted\",\n outline: r = !1,\n children: e,\n className: o,\n aspect: s = \"video\",\n use: l = \"decorative\",\n size: c = \"xs\",\n ...f\n}) {\n return /* @__PURE__ */ i(\n \"span\",\n {\n id: n,\n ref: a,\n className: N(\n \"font-medium rounded-full inline-flex select-none\",\n be[c].text,\n s === \"square\" && be[c].aspectSquare,\n s === \"video\" && be[c].aspectVideo,\n r ? dt[t] : ct[t],\n o\n ),\n \"data-variant\": t,\n \"data-outline\": r,\n \"data-aspect\": s,\n \"data-use\": l,\n \"data-size\": c,\n ...lt[l],\n ...f,\n children: e\n }\n );\n}\nfunction ut() {\n const [n, a] = z(0);\n return I(() => {\n const t = setInterval(() => {\n a((r) => (r + 1) % 3);\n }, 500);\n return () => clearInterval(t);\n }, []), /* @__PURE__ */ i(\"div\", { className: \"absolute inset-0 inline-flex items-center justify-center gap-x-2 align-middle\", children: [0, 1, 2].map((t) => /* @__PURE__ */ i(\n \"div\",\n {\n className: N(\n \"rounded-full transition-all duration-500 ease-in-out size-[0.35em] bg-current\",\n n === t && \"transform -translate-y-1\"\n )\n },\n t\n )) });\n}\nconst ft = {\n base: \"\",\n primary: \"bg-primary text-primary-foreground hover:bg-primary/85 disabled:bg-muted disabled:text-muted-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/85 disabled:bg-muted/80 disabled:text-muted-foreground/80\",\n tertiary: \"text-primary hover:text-primary-foreground disabled:text-muted\",\n outline: \"border border-primary text-primary hover:border-primary-foreground hover:text-primary-foreground disabled:border-muted disabled:text-muted\",\n link: \"underline-offset-4 hover:underline disabled:underline disabled:text-muted\",\n destructive: \"bg-destructive text-destructive-foreground hover:bg-destructive/85 disabled:bg-muted disabled:text-muted-foreground\"\n}, mt = {\n stripped: \"\",\n fitted: \"size-fit\",\n sm: \"px-2 py-1 text-sm\",\n md: \"px-4 py-2 text-base\",\n lg: \"px-6 py-3 text-lg\",\n icon: \"p-1 w-fit aspect-square\",\n full: \"p-2 w-full\"\n}, pt = {\n none: \"rounded-none\",\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n full: \"rounded-full\"\n}, ve = {\n variant: \"primary\",\n size: \"md\",\n rounded: \"md\"\n};\nfunction ht({\n variant: n = ve.variant,\n size: a,\n rounded: t = ve.rounded,\n loading: r,\n className: e,\n ...o\n}) {\n let s;\n n === \"link\" && !a ? s = \"fitted\" : s = a || ve.size;\n const c = N(\n \"appearance-none focus:outline-none focus:ring not-disabled:hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed transition-all\",\n ft[n],\n mt[s],\n pt[t],\n r && \"relative pointer-events-none\",\n e\n );\n if (o.href && !o.disabled)\n return /* @__PURE__ */ i(\n \"a\",\n {\n ...o,\n rel: o.rel ? o.rel : o.target === \"_blank\" ? \"noopener noreferrer\" : void 0,\n \"aria-label\": o[\"aria-label\"],\n \"aria-description\": o[\"aria-description\"],\n href: o.href,\n className: c,\n children: o.children\n }\n );\n const f = o;\n return /* @__PURE__ */ k(\n \"button\",\n {\n ...f,\n \"aria-label\": f[\"aria-label\"],\n \"aria-description\": f[\"aria-description\"],\n \"aria-disabled\": f.disabled || r,\n \"aria-busy\": r,\n type: f.type ?? \"button\",\n className: c,\n children: [\n r && /* @__PURE__ */ i(ut, {}),\n /* @__PURE__ */ i(\"span\", { className: N(r && \"invisible\"), children: f.children })\n ]\n }\n );\n}\nconst bt = {\n info: {\n border: \"border-blue-600\",\n interior: \"bg-blue-800/20\",\n core: \"text-blue-400\",\n description: \"text-blue-200\"\n },\n destructive: {\n border: \"border-destructive\",\n interior: \"bg-destructive/10\",\n core: \"text-destructive\",\n description: \"text-destructive\"\n },\n success: {\n border: \"border-success\",\n interior: \"bg-success/10\",\n core: \"text-success\",\n description: \"text-success\"\n },\n warning: {\n border: \"border-yellow-700\",\n interior: \"bg-yellow-800/20\",\n core: \"text-yellow-400\",\n description: \"text-yellow-200\"\n },\n base: {\n border: \"\",\n interior: \"\",\n core: \"\",\n description: \"opacity-90\"\n }\n}, vt = {\n info: /* @__PURE__ */ i(Me, { size: 22 }),\n destructive: /* @__PURE__ */ i(at, { size: 22 }),\n success: /* @__PURE__ */ i(Re, { size: 22 }),\n warning: /* @__PURE__ */ i(de, { size: 20 }),\n base: /* @__PURE__ */ i(qe, { size: 22 })\n};\nfunction Xr({\n id: n,\n ref: a,\n variant: t = \"base\",\n icon: r,\n title: e,\n description: o,\n className: s,\n dismissible: l = !1,\n onDismiss: c\n}) {\n const f = P(), u = n || `callout-${f}`, [d, p] = z(!1), m = bt[t], v = vt[t], b = () => {\n p(!0), c && c();\n };\n return d ? null : /* @__PURE__ */ k(\n \"div\",\n {\n id: u,\n ref: a,\n className: N(\"relative rounded-lg p-2 sm:p-4 border\", m.border, m.interior, s),\n \"data-variant\": t,\n role: \"note\",\n \"aria-describedby\": o ? `${u}-description` : void 0,\n \"aria-labelledby\": e ? `${u}-title` : void 0,\n children: [\n /* @__PURE__ */ k(\"div\", { className: \"flex items-start gap-x-2\", children: [\n r && /* @__PURE__ */ i(\"span\", { className: m.core, children: r === \"default\" ? v : r }),\n (e || o) && /* @__PURE__ */ k(\"div\", { className: \"flex-1\", children: [\n e && /* @__PURE__ */ i(\"div\", { id: `${u}-title`, className: N(\"font-medium\", m.core), children: e }),\n o && /* @__PURE__ */ i(\"div\", { id: `${u}-description`, className: N(\"mt-0.5 font-light\", m.description), children: o })\n ] })\n ] }),\n l && /* @__PURE__ */ i(\n \"button\",\n {\n type: \"button\",\n onClick: b,\n \"data-callout-close-button\": \"true\",\n className: N(\n m.core,\n \"rounded-md p-0.5 top-2.5 right-2.5 absolute focus:outline-none hover:ring focus:ring-2 focus:ring-current leading-0\"\n ),\n \"aria-label\": \"Close callout\",\n children: /* @__PURE__ */ i(oe, { size: 18 })\n }\n )\n ]\n }\n );\n}\nconst gt = {\n sm: {\n container: \"text-sm\",\n header: \"text-base font-medium\",\n content: \"text-sm leading-relaxed\",\n footer: \"text-xs\",\n paddingMulti: 1 / 3\n },\n md: {\n container: \"text-base\",\n header: \"text-lg font-semibold\",\n content: \"text-base leading-relaxed\",\n footer: \"text-sm\",\n paddingMulti: 1 / 2\n },\n lg: {\n container: \"text-lg\",\n header: \"text-xl font-bold\",\n content: \"text-lg leading-relaxed\",\n footer: \"text-base\",\n paddingMulti: 1\n }\n};\nfunction Jr({\n id: n,\n className: a,\n ref: t,\n size: r = \"md\",\n padding: e = 16,\n header: o,\n footer: s,\n children: l,\n imageSrc: c,\n imageAlt: f,\n imageComponent: u,\n imageToEdge: d = !0,\n ...p\n}) {\n const m = gt[r], v = c || u;\n return /* @__PURE__ */ k(\n \"div\",\n {\n id: n,\n ref: t,\n \"data-testid\": \"card\",\n \"data-size\": r,\n \"data-padding\": e,\n className: N(\n // Base styles\n \"border border-border rounded-lg shadow-sm overflow-hidden\",\n // Responsive design\n \"w-full max-w-full\",\n // Size-specific styles\n m.container,\n a\n ),\n ...p,\n children: [\n v && /* @__PURE__ */ i(\n \"div\",\n {\n style: d ? void 0 : { padding: e, paddingBottom: 0 },\n className: \"w-full overflow-hidden\",\n children: u || /* @__PURE__ */ i(\"img\", { src: c, alt: f || \"\", className: \"w-full h-auto object-cover rounded-xs\", loading: \"lazy\" })\n }\n ),\n /* @__PURE__ */ k(\"div\", { style: { padding: e, rowGap: e * m.paddingMulti }, className: \"flex flex-col\", children: [\n o && /* @__PURE__ */ i(\"div\", { className: m.header, children: o }),\n l && /* @__PURE__ */ i(\"div\", { className: m.content, children: l }),\n s && /* @__PURE__ */ i(\"div\", { className: m.footer, children: s })\n ] })\n ]\n }\n );\n}\nfunction xt({\n totalItems: n,\n itemsToShow: a,\n infinite: t,\n autoScroll: r,\n scrollInterval: e,\n pauseScrollOnHover: o,\n currentIndex: s,\n onIndexChange: l\n}) {\n const [c, f] = z(s || 0), [u, d] = z(!1), p = M(null), m = Math.ceil(n / a), v = t || c > 0, b = t || c < m - 1, h = $(\n (w) => {\n const x = Math.max(0, Math.min(w, m - 1));\n f(x), l == null || l(x);\n },\n [m, l]\n ), y = $(() => {\n if (v) {\n const w = c === 0 && t ? m - 1 : c - 1;\n h(w);\n }\n }, [c, v, t, m, h]), g = $(() => {\n if (b) {\n const w = c === m - 1 && t ? 0 : c + 1;\n h(w);\n }\n }, [c, b, t, m, h]);\n return I(() => {\n s !== void 0 && s !== c && f(s);\n }, [s, c]), I(() => {\n if (!r) return;\n const w = () => {\n p.current = setInterval(() => {\n o && u || g();\n }, e);\n }, x = () => {\n p.current && (clearInterval(p.current), p.current = null);\n };\n return !u || !o ? w() : x(), x;\n }, [r, e, o, u, g]), I(() => {\n f(0);\n }, [a]), {\n currentSlide: c,\n canGoPrev: v,\n canGoNext: b,\n goToPrev: y,\n goToNext: g,\n goToSlide: h,\n isHovered: u,\n setIsHovered: d\n };\n}\nconst te = {\n xs: 0,\n // Smaller than `sm`\n sm: 640,\n // Tailwind's `sm` breakpoint: `@media (min-width: 640px)`\n md: 768,\n // Tailwind's `md` breakpoint: `@media (min-width: 768px)`\n lg: 1024,\n // Tailwind's `lg` breakpoint: `@media (min-width: 1024px)`\n xl: 1280,\n // Tailwind's `xl` breakpoint: `@media (min-width: 1280px)`\n \"2xl\": 1536\n // Tailwind's `2xl` breakpoint: `@media (min-width: 1536px)`\n};\nfunction yt() {\n const [n, a] = z(), [t, r] = z(0), e = (o) => te[o];\n return I(() => {\n const o = (l) => l >= te[\"2xl\"] ? \"2xl\" : l >= te.xl ? \"xl\" : l >= te.lg ? \"lg\" : l >= te.md ? \"md\" : l >= te.sm ? \"sm\" : \"xs\";\n a(o(window.innerWidth)), r(window.innerWidth);\n const s = () => {\n a(o(window.innerWidth)), r(window.innerWidth);\n };\n return window.addEventListener(\"resize\", s), () => {\n window.removeEventListener(\"resize\", s);\n };\n }, []), { screenSize: n, screenWidth: t, getBreakpoint: e };\n}\nconst se = {\n sm: {\n button: \"h-6 w-6 text-xs\",\n icon: \"size-3\"\n },\n md: {\n button: \"h-8 w-8 text-sm\",\n icon: \"size-4\"\n },\n lg: {\n button: \"h-10 w-10 text-lg\",\n icon: \"size-5\"\n }\n}, ke = {\n default: \"bg-accent text-accent-foreground hover:bg-accent-foreground hover:text-accent\",\n outline: \"border border-border bg-background hover:bg-accent hover:text-accent-foreground hover:border-accent\",\n ghost: \"hover:text-accent\"\n}, ie = {\n aligned: {\n prev: \"absolute top-1/2 -translate-x-1/2 -translate-y-1/2 z-10\",\n next: \"absolute right-0 top-1/2 translate-x-1/2 -translate-y-1/2 z-10\"\n },\n exterior: {\n prev: \"absolute -left-10 top-1/2 -translate-y-1/2 z-10\",\n next: \"absolute -right-10 top-1/2 -translate-y-1/2 z-10\"\n },\n interior: {\n prev: \"absolute left-2 top-1/2 -translate-y-1/2 z-10\",\n next: \"absolute right-2 top-1/2 -translate-y-1/2 z-10\"\n }\n};\nfunction Qr({\n children: n,\n id: a,\n ref: t,\n className: r,\n autoScroll: e = !1,\n scrollInterval: o = 3e3,\n pauseScrollOnHover: s = !0,\n currentIndex: l,\n onIndexChange: c,\n hidePrevNext: f = !1,\n hideDots: u = !1,\n itemsToShow: d = 1,\n buttonSize: p = \"md\",\n buttonVariant: m = \"default\",\n buttonPosition: v = \"exterior\",\n infinite: b = !0,\n prevButton: h,\n nextButton: y,\n itemsClassName: g,\n containerClassName: w,\n dotsClassName: x,\n gap: E = 8\n}) {\n var K, re;\n const D = M(null), C = F.Children.toArray(n).filter(F.isValidElement), S = C.length, { screenSize: L } = yt(), B = _(() => {\n if (typeof d == \"number\")\n return d;\n if (typeof d == \"object\" && d && L) {\n const J = [\"2xl\", \"xl\", \"lg\", \"md\", \"sm\", \"xs\"], H = J.indexOf(L);\n for (let ee = H; ee < J.length; ee++) {\n const ne = J[ee];\n if (d[ne] !== void 0)\n return d[ne];\n }\n }\n return 1;\n }, [d, L]), { currentSlide: q, canGoPrev: W, canGoNext: R, goToPrev: A, goToNext: j, goToSlide: Z, setIsHovered: U } = xt({\n totalItems: S,\n itemsToShow: B,\n infinite: b,\n autoScroll: e,\n scrollInterval: o,\n pauseScrollOnHover: s,\n currentIndex: l,\n onIndexChange: c\n }), X = $(\n (J) => {\n if (B === 1)\n return { leftWidth: 0, rightWidth: 0, widthReduction: 0 };\n const H = E * (B - 1) / B;\n return J % B === 0 ? { leftWidth: 0, rightWidth: E / 2, widthReduction: H } : J % B === B - 1 ? { leftWidth: E / 2, rightWidth: 0, widthReduction: H } : { leftWidth: E / 2, rightWidth: E / 2, widthReduction: H };\n },\n [B, E]\n ), G = () => {\n A();\n }, O = () => {\n j();\n }, fe = () => {\n s && U(!0);\n }, me = () => {\n s && U(!1);\n }, pe = -(q * (100 / S) * B), T = N(\n \"inline-flex items-center justify-center rounded-md font-medium transition-all focus-visible:outline-none focus-visible:ring focus-visible:ring-ring disabled:pointer-events-none\",\n v === \"aligned\" ? \"disabled:opacity-90\" : \"disabled:opacity-50\"\n );\n return /* @__PURE__ */ k(\"div\", { className: N(\"relative\", r), \"data-carousel-wrapper\": \"true\", children: [\n !f && /* @__PURE__ */ i(Q, { children: h ? F.cloneElement(\n h,\n {\n onClick: G,\n disabled: !W,\n className: N(\n ((K = h.props) == null ? void 0 : K.className) || \"\",\n ie[v].prev\n ),\n role: \"button\",\n \"aria-disabled\": !W,\n \"aria-label\": \"Previous slide\",\n \"data-carousel-prev\": \"true\"\n }\n ) : /* @__PURE__ */ i(\n \"button\",\n {\n type: \"button\",\n onClick: G,\n disabled: !W,\n className: N(\n T,\n se[p].button,\n ke[m],\n ie[v].prev\n ),\n \"aria-disabled\": !W,\n \"aria-label\": \"Previous slide\",\n \"data-carousel-prev\": \"true\",\n children: /* @__PURE__ */ i(Le, { className: se[p].icon })\n }\n ) }),\n /* @__PURE__ */ k(\n \"div\",\n {\n id: a,\n ref: t,\n className: N(\"relative overflow-hidden\", w),\n onMouseEnter: fe,\n onMouseLeave: me,\n \"data-carousel\": \"true\",\n \"data-current-index\": q,\n \"data-items-to-show\": B,\n \"data-auto-scroll\": e,\n \"data-button-position\": v,\n children: [\n /* @__PURE__ */ i(\n \"div\",\n {\n ref: D,\n className: \"flex transition-transform duration-300 ease-in-out\",\n style: {\n transform: `translateX(${pe}%)`,\n width: `${S / B * 100}%`\n },\n children: C.map((J, H) => {\n const { leftWidth: ee, rightWidth: ne, widthReduction: Pe } = X(H);\n return /* @__PURE__ */ i(\n \"div\",\n {\n className: N(\"flex-shrink-0\", g),\n style: {\n width: `calc(${100 / S}% - ${Pe}px)`,\n marginRight: ne > 0 ? `${ne}px` : void 0,\n marginLeft: ee > 0 ? `${ee}px` : void 0\n },\n \"data-slide-index\": H,\n children: J\n },\n H\n );\n })\n }\n ),\n !u && /* @__PURE__ */ i(\"div\", { className: \"absolute bottom-4 left-1/2 -translate-x-1/2 flex space-x-2\", children: Array.from({ length: Math.ceil(S / B) }).map((J, H) => /* @__PURE__ */ i(\n \"button\",\n {\n type: \"button\",\n onClick: () => Z(H),\n className: N(\n \"w-2 h-2 rounded-full transition-colors duration-200\",\n H === q ? \"bg-accent\" : \"bg-muted hover:bg-muted-foreground/50\",\n x\n ),\n \"aria-label\": `Go to slide ${H + 1}`,\n \"data-carousel-dot\": H\n },\n H\n )) })\n ]\n }\n ),\n !f && /* @__PURE__ */ i(Q, { children: y ? F.cloneElement(\n y,\n {\n onClick: O,\n disabled: !R,\n className: N(\n ((re = y.props) == null ? void 0 : re.className) || \"\",\n ie[v].next\n ),\n role: \"button\",\n \"aria-disabled\": !R,\n \"aria-label\": \"Next slide\",\n \"data-carousel-next\": \"true\"\n }\n ) : /* @__PURE__ */ i(\n \"button\",\n {\n type: \"button\",\n onClick: O,\n disabled: !R,\n className: N(\n T,\n se[p].button,\n ke[m],\n ie[v].next\n ),\n \"aria-disabled\": !R,\n \"aria-label\": \"Next slide\",\n \"data-carousel-next\": \"true\",\n children: /* @__PURE__ */ i(xe, { className: se[p].icon })\n }\n ) })\n ] });\n}\nfunction wt(n) {\n const [a, t] = z(\"\"), r = $((e) => {\n let o = e, s = \"\";\n for (; o && !s; ) {\n const l = window.getComputedStyle(o).backgroundColor;\n l && l !== \"transparent\" && l !== \"rgba(0, 0, 0, 0)\" && (s = l), o = o.parentElement;\n }\n return s || \"transparent\";\n }, []);\n return I(() => {\n const e = document.getElementById(n);\n if (e) {\n const o = r(e.parentElement);\n t(o);\n }\n }, [n, r]), a;\n}\nfunction Or({\n ref: n,\n id: a,\n size: t = 20,\n color: r,\n filled: e = !1,\n rounded: o = !0,\n checked: s = !1,\n onCheckedChange: l,\n disabled: c,\n className: f = \"\",\n ...u\n}) {\n const d = P(), p = _(() => a || `checkbox-${d}`, [a, d]), m = wt(p), [v, b] = z(s);\n I(() => {\n b(s);\n }, [s]);\n const h = () => {\n c || (b(!v), l == null || l(!v));\n }, y = (w) => {\n w.key === \" \" && (w.preventDefault(), h());\n }, g = N(\n \"flex items-center justify-center border outline outline-transparent focus:outline-current focus:outline-offset-2\",\n o && \"rounded\",\n c && \"opacity-40 cursor-not-allowed\",\n !c && \"cursor-pointer\",\n f\n );\n return /* @__PURE__ */ i(\n \"button\",\n {\n id: p,\n type: \"button\",\n ref: n,\n tabIndex: 0,\n role: \"checkbox\",\n onClick: h,\n \"aria-checked\": v,\n \"aria-disabled\": c,\n onKeyDownCapture: y,\n style: {\n width: t,\n height: t,\n color: r,\n backgroundColor: v && e ? \"currentcolor\" : \"transparent\"\n },\n className: g,\n ...u,\n children: v && /* @__PURE__ */ i(ye, { size: t, color: e ? m : void 0 })\n }\n );\n}\nfunction en({\n children: n,\n className: a,\n linkTo: t,\n linkProps: r,\n onButtonClick: e,\n buttonProps: o,\n ...s\n}) {\n return t && e && console.warn('Clickable: Both \"linkTo\" and \"onButtonClick\" props are provided. Only \"linkTo\" will be used.'), /* @__PURE__ */ k(\"div\", { className: N(\"relative w-fit\", a), ...s, children: [\n n,\n t && /* @__PURE__ */ i(\n \"a\",\n {\n ...r,\n rel: (r == null ? void 0 : r.rel) || \"noreferrer\",\n href: t,\n className: N(\"absolute inset-0\", r == null ? void 0 : r.className)\n }\n ),\n !t && e && /* @__PURE__ */ i(\n \"button\",\n {\n ...o,\n type: \"button\",\n onClick: e,\n className: N(\"absolute inset-0 cursor-pointer\", o == null ? void 0 : o.className)\n }\n )\n ] });\n}\nfunction Nt(n) {\n const [a, t] = z(null);\n return I(() => {\n var l;\n const r = (l = document.getElementById(n)) == null ? void 0 : l.parentElement;\n if (!r) return;\n const e = () => {\n const c = window.getComputedStyle(r), f = parseFloat(c.fontSize), u = c.lineHeight === \"normal\" ? f * 1.2 : parseFloat(c.lineHeight), d = f - 2, p = d / f, m = u * p;\n t({\n fontSize: f,\n lineHeight: u,\n smallerFontSize: d,\n smallerLineHeight: m\n });\n };\n e();\n const o = new ResizeObserver(e);\n o.observe(r);\n const s = new MutationObserver(e);\n return s.observe(r, {\n attributes: !0,\n attributeFilter: [\"style\", \"class\"],\n subtree: !1\n }), () => {\n o.disconnect(), s.disconnect();\n };\n }, [n]), a;\n}\nconst Et = {\n base: \"\",\n modest: \"opacity-90 bg-muted/10\",\n accent: \"text-accent bg-muted/10\",\n current: \"text-current bg-current/10\"\n};\nfunction tn({ id: n, ref: a, content: t, variant: r = \"accent\", className: e, style: o, ...s }) {\n const l = P(), c = n || `code-${l}`, f = Nt(c);\n return /* @__PURE__ */ i(\n \"code\",\n {\n id: c,\n ref: a,\n className: N(\"px-2 py-1 rounded\", Et[r], e),\n \"data-variant\": r,\n style: {\n fontSize: f ? `${f.smallerFontSize}px` : void 0,\n lineHeight: f ? `${f.smallerLineHeight}px` : void 0,\n ...o\n },\n ...s,\n children: t\n }\n );\n}\nconst kt = {\n keyword: \"text-rose-400\",\n runner: \"text-amber-400\",\n comment: \"text-gray-500/80\",\n command: \"text-gray-100\",\n variable: \"text-blue-400\",\n string: \"text-white/70\",\n option: \"text-purple-400\",\n plain: \"text-gray-200\",\n operator: \"text-pink-500\",\n substitution: \"text-green-300\"\n}, Ct = {\n selector: \"text-blue-400 font-medium\",\n property: \"text-purple-400\",\n value: \"text-green-400\",\n punctuation: \"text-gray-400\",\n atRule: \"text-pink-400 font-semibold\",\n comment: \"text-gray-500 italic\",\n string: \"text-green-400\",\n number: \"text-green-400\",\n plain: \"text-gray-100\",\n function: \"text-cyan-400\"\n}, St = {\n key: \"text-purple-400 font-semibold\",\n string: \"text-green-400\",\n number: \"text-orange-400 font-medium\",\n boolean: \"text-cyan-400 font-medium\",\n punctuation: \"text-gray-400\",\n plain: \"text-gray-100\"\n}, zt = {\n keyword: \"text-purple-400 font-semibold\",\n type: \"text-cyan-400 font-medium\",\n string: \"text-green-400\",\n \"jsx-bracket\": \"text-gray-400\",\n \"jsx-tag\": \"text-blue-400 font-medium\",\n \"jsx-attribute\": \"text-amber-400\",\n \"jsx-brace\": \"text-yellow-400\",\n jsx: \"text-blue-400 font-medium\",\n // fallback for old jsx type\n property: \"text-amber-400\",\n number: \"text-orange-400 font-medium\",\n comment: \"text-gray-500 italic\",\n function: \"text-rose-400 font-semibold\",\n hook: \"text-rose-400 font-semibold\",\n operator: \"text-gray-300\",\n plain: \"text-gray-100\"\n}, $t = /* @__PURE__ */ new Set([\n \"for\",\n \"in\",\n \"do\",\n \"done\",\n \"else\",\n \"if\",\n \"fi\",\n \"then\",\n \"while\",\n \"until\",\n \"case\",\n \"esac\"\n]), It = /* @__PURE__ */ new Set([\"npm\", \"npx\", \"pnpm\", \"yarn\", \"vite\"]);\nfunction Be(n) {\n const a = [];\n if (n.trim() === \"\")\n return a.push({ text: \" \", type: \"plain\" }), a;\n if (n.trim().startsWith(\"#\"))\n return a.push({ text: n, type: \"comment\" }), a;\n const t = /(\\$\\([^)]*\\)|\"[^\"]*\"|'[^']*'|\\$[\\w_]+|[a-zA-Z_]\\w*=|--?[a-zA-Z0-9][\\w-]*(?:=.*)?|>>|>|#.*|\\s+|[^\\s]+)/g, r = (o) => {\n if (/^\\$\\([^)]*\\)$/.test(o)) {\n const s = o.slice(2, -1);\n return [{ text: \"$(\", type: \"operator\" }, ...Be(s), { text: \")\", type: \"operator\" }];\n }\n if (/^\".*\"$/.test(o)) {\n const s = o.slice(1, -1), l = [];\n let c = 0;\n const f = /\\$[\\w_]+/g;\n let u;\n for (; (u = f.exec(s)) !== null; )\n u.index > c && l.push({\n text: s.slice(c, u.index),\n type: \"string\"\n }), l.push({ text: u[0], type: \"variable\" }), c = u.index + u[0].length;\n return c < s.length && l.push({ text: s.slice(c), type: \"string\" }), [{ text: '\"', type: \"string\" }, ...l, { text: '\"', type: \"string\" }];\n }\n return /^'.*'$/.test(o) ? [{ text: o, type: \"string\" }] : /^\\$[\\w_]+$/.test(o) ? [{ text: o, type: \"variable\" }] : /^[a-zA-Z_]\\w*=$/.test(o) ? [{ text: o, type: \"variable\" }] : /^--?[a-zA-Z0-9][\\w-]*(=.*)?$/.test(o) ? [{ text: o, type: \"option\" }] : /^>>|>$/.test(o) ? [{ text: o, type: \"operator\" }] : /^#.*$/.test(o) ? [{ text: o, type: \"comment\" }] : /^\\s+$/.test(o) ? [{ text: o, type: \"plain\" }] : $t.has(o) ? [{ text: o, type: \"keyword\" }] : It.has(o) ? [{ text: o, type: \"runner\" }] : [{ text: o, type: \"command\" }];\n };\n let e;\n for (; (e = t.exec(n)) !== null; )\n a.push(...r(e[0]));\n return a;\n}\nfunction Dt(n, a = !1) {\n const t = [];\n let r = a;\n if (n.trim() === \"\")\n return t.push({ text: \" \", type: \"plain\" }), { tokens: t, inComment: r };\n let e = \"selector\", o = 0;\n n.match(/^\\s+/) && n.includes(\":\") && !n.includes(\"{\") && (e = \"property\", o = 1);\n const s = /(\\/\\*[\\s\\S]*?\\*\\/|\\/\\*[\\s\\S]*$|\\*\\/)|(@[a-zA-Z-]+)|(\\{|\\}|:|;|,|\\(|\\))|(\"(?:[^\"]*)\"|'(?:[^']*)')|([a-zA-Z-]+)(?=\\()|([0-9.]+(?:px|rem|em|%|vh|vw|deg|s|ms|fr)?)|(#[a-fA-F0-9]{3,8})|([a-zA-Z0-9_-]+|[.#][a-zA-Z0-9_-]+)|(\\s+)|(\\S+)/g;\n let l;\n for (; l = s.exec(n); ) {\n const [, c, f, u, d, p, m, v, b, h, y] = l;\n if (c)\n c.includes(\"/*\") && !c.includes(\"*/\") ? r = !0 : c.includes(\"*/\") && (r = !1), t.push({ text: c, type: \"comment\" });\n else if (r)\n l[0].includes(\"*/\") && (r = !1), t.push({ text: l[0], type: \"comment\" });\n else if (f)\n t.push({ text: f, type: \"atRule\" });\n else if (p)\n t.push({ text: p, type: \"function\" });\n else if (u)\n u === \"{\" ? (o++, e = \"property\") : u === \"}\" ? (o--, e = o > 0 ? \"property\" : \"selector\") : u === \":\" ? e === \"property\" && (e = \"value\") : u === \";\" ? o > 0 && (e = \"property\") : u === \",\" && o === 0 && (e = \"selector\"), t.push({ text: u, type: \"punctuation\" });\n else if (d)\n t.push({ text: d, type: \"string\" });\n else if (m)\n t.push({ text: m, type: \"number\" });\n else if (v)\n t.push({ text: v, type: \"value\" });\n else if (b) {\n let g;\n b.startsWith(\".\") || b.startsWith(\"#\") || e === \"selector\" ? g = \"selector\" : e === \"property\" ? g = \"property\" : g = \"value\", t.push({ text: b, type: g });\n } else if (h)\n t.push({ text: h.replace(/ /g, \" \"), type: \"plain\" });\n else if (y) {\n const g = e === \"value\" ? \"value\" : \"plain\";\n t.push({ text: y, type: g });\n }\n }\n return { tokens: t, inComment: r };\n}\nfunction At(n) {\n const a = /(\"[^\"]*\")\\s*(:)|(\"[^\"]*\")|(\\d+)|(true|false|null)|(\\{|\\}|\\[|\\]|,)/g, t = [];\n let r = 0, e;\n for (; (e = a.exec(n)) !== null; )\n e.index > r && t.push({ text: n.slice(r, e.index), type: \"plain\" }), e[1] && e[2] ? (t.push({ text: e[1], type: \"key\" }), t.push({ text: e[2], type: \"punctuation\" })) : e[3] ? t.push({ text: e[3], type: \"string\" }) : e[4] ? t.push({ text: e[4], type: \"number\" }) : e[5] ? t.push({ text: e[5], type: \"boolean\" }) : e[6] && t.push({ text: e[6], type: \"punctuation\" }), r = a.lastIndex;\n return r < n.length && t.push({ text: n.slice(r), type: \"plain\" }), t;\n}\nfunction Tt(n, a = !1, t = 0) {\n const r = [];\n let e = n, o = a, s = t;\n for (; e.length > 0; ) {\n const l = e.match(/^\\/\\*[\\s\\S]*?\\*\\//);\n if (l) {\n r.push({ text: l[0], type: \"comment\" }), e = e.slice(l[0].length);\n continue;\n }\n const c = e.match(/^\\/\\/.*$/m);\n if (c) {\n r.push({ text: c[0], type: \"comment\" }), e = e.slice(c[0].length);\n continue;\n }\n const f = e.match(/^(`[^`]*`|\"[^\"]*\"|'[^']*')/);\n if (f) {\n r.push({ text: f[0], type: \"string\" }), e = e.slice(f[0].length);\n continue;\n }\n const u = e.match(/^<([a-zA-Z][a-zA-Z0-9]*)/);\n if (u) {\n r.push({ text: \"<\", type: \"jsx-bracket\" }), r.push({ text: u[1], type: \"jsx-tag\" }), e = e.slice(u[0].length), o = !0;\n continue;\n }\n const d = e.match(/^<\\/([a-zA-Z][a-zA-Z0-9]*)>/);\n if (d) {\n r.push({ text: \"</\", type: \"jsx-bracket\" }), r.push({ text: d[1], type: \"jsx-tag\" }), r.push({ text: \">\", type: \"jsx-bracket\" }), e = e.slice(d[0].length), o = !1;\n continue;\n }\n if (e.match(/^\\/?>/)) {\n const D = e.match(/^(\\/?>\\s*)/);\n if (D) {\n r.push({ text: D[1].trim(), type: \"jsx-bracket\" }), e = e.slice(D[1].length), D[1].includes(\">\") && (o = !1);\n continue;\n }\n }\n const p = e.match(/^([a-zA-Z][a-zA-Z0-9]*)(\\s*)(=)/);\n if (p && o && s === 0) {\n r.push({ text: p[1], type: \"jsx-attribute\" }), p[2] && r.push({ text: p[2], type: \"plain\" }), r.push({ text: \"=\", type: \"plain\" }), e = e.slice(p[0].length);\n continue;\n }\n const m = e.match(/^[{}]/);\n if (m) {\n r.push({ text: m[0], type: \"jsx-brace\" }), m[0] === \"{\" ? s++ : m[0] === \"}\" && s--, e = e.slice(1);\n continue;\n }\n const v = e.match(/^\\s+/);\n if (v) {\n r.push({ text: v[0], type: \"plain\" }), e = e.slice(v[0].length);\n continue;\n }\n const b = e.match(/^(=>|===|!==|==|!=|<=|>=|&&|\\|\\||[+\\-*/%=<>!&|^~?:;,()[\\]{}.])/);\n if (b) {\n r.push({ text: b[0], type: \"operator\" }), e = e.slice(b[0].length);\n continue;\n }\n const h = e.match(\n /^(const|let|var|function|if|else|for|while|return|import|export|class|extends|interface|type|enum|async|await|public|private|protected|static|from|as|default|new|this|super|try|catch|finally|throw|break|continue|switch|case|typeof|instanceof)\\b/\n );\n if (h) {\n r.push({ text: h[0], type: \"keyword\" }), e = e.slice(h[0].length);\n continue;\n }\n const y = e.match(/^(use[A-Z][a-zA-Z]*)\\b/);\n if (y) {\n r.push({ text: y[0], type: \"hook\" }), e = e.slice(y[0].length);\n continue;\n }\n const g = e.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)\\s*(?=(\\?\\.)?\\()/);\n if (g) {\n r.push({ text: g[1], type: \"function\" }), e = e.slice(g[1].length);\n continue;\n }\n const w = e.match(\n /^(string|number|boolean|object|any|void|never|unknown|null|undefined|Promise|Array|React\\.FC|FC|JSX\\.Element|HTMLElement|Event|MouseEvent|KeyboardEvent|ChangeEvent)\\b/\n );\n if (w) {\n r.push({ text: w[0], type: \"type\" }), e = e.slice(w[0].length);\n continue;\n }\n const x = e.match(/^(\\d+\\.?\\d*)/);\n if (x) {\n r.push({ text: x[0], type: \"number\" }), e = e.slice(x[0].length);\n continue;\n }\n const E = e.match(/^([a-zA-Z_$][a-zA-Z0-9_$]*)\\s*(?=:)/);\n if (E && !o) {\n r.push({ text: E[1], type: \"property\" }), e = e.slice(E[1].length);\n continue;\n }\n r.push({ text: e[0], type: \"plain\" }), e = e.slice(1);\n }\n return r;\n}\nfunction Rt(n, a) {\n const t = {\n ...kt,\n ...a\n };\n return n.map((r, e) => {\n const o = Be(r);\n return /* @__PURE__ */ i(\"div\", { className: \"leading-6\", children: o.map((s, l) => /* @__PURE__ */ i(\"span\", { className: t[s.type] || \"text-gray-100\", children: s.text }, l)) }, e);\n });\n}\nfunction Lt(n, a) {\n const t = { ...Ct, ...a };\n let r = !1;\n return n.map((e, o) => {\n const { tokens: s, inComment: l } = Dt(e, r);\n return r = l, /* @__PURE__ */ i(\"div\", { className: \"leading-6\", children: s.map((c, f) => /* @__PURE__ */ i(\"span\", { className: t[c.type] || \"text-gray-100\", children: c.text }, f)) }, o);\n });\n}\nfunction Mt(n, a) {\n const t = { ...St, ...a };\n return n.map((r, e) => /* @__PURE__ */ i(\"div\", { className: \"leading-6\", children: At(r).map((o, s) => /* @__PURE__ */ i(\"span\", { className: t[o.type] || \"text-gray-100\", children: o.text }, s)) }, e));\n}\nfunction Bt(n, a) {\n const t = { ...zt, ...a };\n let r = !1, e = 0;\n return n.map((o, s) => {\n if (o.trim() === \"\")\n return /* @__PURE__ */ i(\"div\", { className: \"leading-6\", children: \" \" }, s);\n const l = Tt(o, r, e);\n o.includes(\"<\") && o.match(/<[a-zA-Z]/) && (r = !0), o.includes(\">\") && !o.includes(\"<\") && (r = !1, e = 0);\n const c = (o.match(/\\{/g) || []).length, f = (o.match(/\\}/g) || []).length;\n return e += c - f, e < 0 && (e = 0), /* @__PURE__ */ i(\"div\", { className: \"leading-6\", children: l.map((u, d) => /* @__PURE__ */ i(\"span\", { className: t[u.type] || \"text-gray-100\", children: u.text }, d)) }, s);\n });\n}\nfunction Vt(n) {\n const [a, t] = z(!1), r = $(async () => {\n try {\n await navigator.clipboard.writeText(n), t(!0), setTimeout(() => t(!1), 3e3);\n } catch (e) {\n console.error(\"Failed to copy code:\", e);\n }\n }, [n]);\n return { copied: a, handleCopy: r };\n}\nfunction jt(n, a) {\n const t = M(null), r = M(null);\n return I(() => {\n if (n) {\n t.current = document.activeElement, document.body.style.overflow = \"hidden\", setTimeout(() => {\n var o;\n (o = r.current) == null || o.focus();\n }, 100);\n const e = (o) => {\n o.key === \"Escape\" && a(!1);\n };\n return document.addEventListener(\"keydown\", e), () => {\n document.removeEventListener(\"keydown\", e), document.body.style.overflow = \"\";\n };\n } else t.current && (t.current.focus(), t.current = null);\n }, [n, a]), { containerRef: r };\n}\nfunction Pt(n, a, t, r) {\n return { handleKeyDown: $(\n (o) => {\n o.key === \"c\" && (o.metaKey || o.ctrlKey) && n ? (o.preventDefault(), t()) : o.key === \"f\" && a && (o.preventDefault(), r());\n },\n [n, a, t, r]\n ) };\n}\nfunction Kt(n) {\n switch (n) {\n case \"typescript\":\n case \"ts\":\n return \"ts\";\n case \"tsx\":\n return \"tsx\";\n case \"json\":\n return \"json\";\n case \"bash\":\n case \"sh\":\n return \"sh\";\n default:\n return \"txt\";\n }\n}\nfunction rn({\n code: n,\n language: a = \"typescript\",\n allowCopy: t = !0,\n allowDownload: r = !1,\n allowFullscreen: e = !1,\n filename: o,\n showTrafficLights: s = !0,\n showLineNumbers: l = !1,\n hideHeader: c = !1,\n hideFiletype: f = !1,\n maxHeight: u,\n tokenClasses: d,\n className: p,\n id: m,\n ref: v,\n ...b\n}) {\n const [h, y] = z(!1), { containerRef: g } = jt(h, y), { copied: w, handleCopy: x } = Vt(n), E = $(() => {\n const A = o || `code.${Kt(a)}`;\n st(n, A);\n }, [n, o, a]), D = $(() => {\n y((A) => !A);\n }, []), { handleKeyDown: C } = Pt(t, e, x, D), S = _(() => n.split(`\n`), [n]), L = $(\n (A = !0) => /* @__PURE__ */ k(\"div\", { className: N(\"flex items-center space-x-2\", !A && \"absolute top-2 right-2 z-10\"), children: [\n !f && /* @__PURE__ */ i(\n \"span\",\n {\n className: \"text-xs text-gray-400 uppercase tracking-wide font-medium\",\n \"aria-label\": `Code language: ${a}`,\n children: a\n }\n ),\n e && /* @__PURE__ */ i(\n \"button\",\n {\n onClick: D,\n className: \"p-1.5 leading-0 text-gray-400 hover:text-white hover:bg-gray-700 rounded transition-colors motion-reduce:transition-none min-h-[44px] min-w-[44px] flex items-center justify-center md:min-h-auto md:min-w-auto md:p-1.5\",\n title: h ? \"Exit fullscreen\" : \"Fullscreen\",\n \"aria-label\": h ? \"Exit fullscreen mode\" : \"Enter fullscreen mode\",\n \"aria-pressed\": h,\n type: \"button\",\n children: h ? /* @__PURE__ */ i(Ze, { size: 14 }) : /* @__PURE__ */ i(Ge, { size: 14 })\n }\n ),\n r && /* @__PURE__ */ i(\n \"button\",\n {\n onClick: E,\n className: \"p-1.5 leading-0 text-gray-400 hover:text-white hover:bg-gray-700 rounded transition-colors motion-reduce:transition-none min-h-[44px] min-w-[44px] flex items-center justify-center md:min-h-auto md:min-w-auto md:p-1.5\",\n title: \"Download code\",\n \"aria-label\": \"Download code as file\",\n type: \"button\",\n children: /* @__PURE__ */ i(Ue, { size: 14 })\n }\n ),\n t && /* @__PURE__ */ i(\n \"button\",\n {\n onClick: x,\n className: \"p-1.5 leading-0 text-gray-400 hover:text-white hover:bg-gray-700 rounded transition-colors motion-reduce:transition-none min-h-[44px] min-w-[44px] flex items-center justify-center md:min-h-auto md:min-w-auto md:p-1.5\",\n title: w ? \"Code copied!\" : \"Copy code\",\n \"aria-label\": w ? \"Code copied to clipboard\" : \"Copy code to clipboard\",\n \"aria-live\": \"polite\",\n type: \"button\",\n children: w ? /* @__PURE__ */ i(ye, { size: 14, className: \"text-green-400\" }) : /* @__PURE__ */ i(Ye, { size: 14 })\n }\n )\n ] }),\n [\n f,\n a,\n e,\n h,\n r,\n E,\n t,\n x,\n w,\n D\n ]\n ), B = _(() => a === \"json\" ? Mt(S, d) : a === \"tsx\" || a === \"ts\" || a === \"typescript\" ? Bt(S, d) : a === \"bash\" || a === \"sh\" ? Rt(S, d) : a === \"css\" ? Lt(S, d) : [\n /* @__PURE__ */ i(\"span\", { className: \"text-gray-400\", children: \"Unsupported language\" }, 0)\n ], [S, d, a]), q = _(() => l ? S.map((A, j) => /* @__PURE__ */ i(\n \"div\",\n {\n className: \"text-gray-500 text-right pl-3 pr-1 select-none min-w-8 text-sm font-mono leading-6\",\n \"aria-hidden\": \"true\",\n role: \"presentation\",\n children: j + 1\n },\n j\n )) : null, [l, S]), W = _(\n () => ({\n maxHeight: u && !h ? `${u}px` : h ? c ? \"calc(100vh - 5px)\" : \"calc(100vh - 45px)\" : void 0,\n overflow: u || h ? \"auto\" : \"visible\"\n }),\n [u, h, c]\n ), R = /* @__PURE__ */ k(\n \"div\",\n {\n id: m,\n ref: (A) => {\n g.current = A, typeof v == \"function\" ? v(A) : v && (v.current = A);\n },\n className: N(\n \"bg-gray-900 rounded-lg border border-gray-700 overflow-hidden motion-reduce:transition-none\",\n h && \"fixed inset-0 z-[9999] max-h-fit\",\n p\n ),\n \"data-language\": a,\n \"data-filename\": o,\n \"data-fullscreen\": h,\n role: \"region\",\n \"aria-label\": `Code block${o ? ` for ${o}` : \"\"} in ${a}`,\n \"aria-describedby\": l ? `${m}-description` : void 0,\n tabIndex: 0,\n onKeyDown: C,\n ...b,\n children: [\n l && /* @__PURE__ */ k(\"div\", { id: `${m}-description`, className: \"sr-only\", children: [\n \"Code block with line numbers. Use Cmd+C or Ctrl+C to copy code.\",\n e && \" Press F to toggle fullscreen.\"\n ] }),\n /* @__PURE__ */ i(\"div\", { \"aria-live\": \"polite\", \"aria-atomic\": \"true\", className: \"sr-only\", children: w && \"Code copied to clipboard\" }),\n !c && /* @__PURE__ */ k(\"div\", { className: \"flex items-center justify-between px-4 py-2 bg-gray-800 border-b border-gray-700\", children: [\n /* @__PURE__ */ k(\"div\", { className: \"flex items-center space-x-3\", children: [\n s && /* @__PURE__ */ k(\"div\", { className: \"flex space-x-2\", children: [\n /* @__PURE__ */ i(\"div\", { className: \"w-3 h-3 bg-red-500 rounded-full\" }),\n /* @__PURE__ */ i(\"div\", { className: \"w-3 h-3 bg-yellow-500 rounded-full\" }),\n /* @__PURE__ */ i(\"div\", { className: \"w-3 h-3 bg-green-500 rounded-full\" })\n ] }),\n o && /* @__PURE__ */ i(\"span\", { className: \"text-sm text-gray-300 font-medium\", children: o })\n ] }),\n L(!0)\n ] }),\n /* @__PURE__ */ k(\"div\", { className: N(\"flex overflow-hidden\", c && \"relative\"), style: W, children: [\n c && L(!1),\n /* @__PURE__ */ i(\"div\", { className: \"flex-1 overflow-x-auto\", children: /* @__PURE__ */ k(\"div\", { className: \"flex\", children: [\n l && /* @__PURE__ */ i(\n \"div\",\n {\n className: \"bg-gray-800 py-4 border-r border-gray-700 flex flex-col flex-shrink-0\",\n \"aria-hidden\": \"true\",\n role: \"presentation\",\n children: q\n }\n ),\n /* @__PURE__ */ i(\"div\", { className: \"flex-1 p-4\", children: /* @__PURE__ */ i(\n \"pre\",\n {\n className: \"text-sm font-mono focus:outline-none\",\n role: \"code\",\n \"aria-label\": `${a} code content`,\n tabIndex: -1,\n children: /* @__PURE__ */ i(\"code\", { children: B })\n }\n ) })\n ] }) })\n ] })\n ]\n }\n );\n return /* @__PURE__ */ k(Q, { children: [\n !h && R,\n h && ae(\n /* @__PURE__ */ k(Q, { children: [\n /* @__PURE__ */ i(\n \"div\",\n {\n className: \"fixed inset-0 bg-black z-[9998]\",\n onClick: () => y(!1),\n \"aria-hidden\": \"true\"\n }\n ),\n R\n ] }),\n document.body\n )\n ] });\n}\nfunction nn({\n children: n,\n label: a,\n isOpen: t,\n onToggle: r,\n id: e,\n ref: o,\n disabled: s = !1,\n className: l,\n buttonClassName: c\n}) {\n const f = P(), u = e ?? f, [d, p] = z(!1), m = t !== void 0 ? t : d, v = () => {\n s || (t === void 0 && p((b) => !b), r == null || r(!m));\n };\n return I(() => {\n p(t ?? !1);\n }, [t]), /* @__PURE__ */ k(\"div\", { ref: o, id: u, \"data-open\": m, className: N(\"overflow-hidden\", l), children: [\n /* @__PURE__ */ i(\n \"button\",\n {\n id: `${u}-button`,\n type: \"button\",\n \"aria-expanded\": m,\n \"aria-controls\": `${u}-panel`,\n disabled: s,\n tabIndex: 0,\n className: N(\n \"w-full px-4 py-3 font-medium hover:bg-primary/10 disabled:opacity-50 disabled:cursor-not-allowed\",\n c\n ),\n onClick: v,\n onKeyDown: (b) => {\n (b.key === \"Enter\" || b.key === \" \") && (b.preventDefault(), v());\n },\n \"data-open\": m,\n \"data-label\": typeof a == \"string\" ? a : void 0,\n children: /* @__PURE__ */ k(\"div\", { className: \"flex items-center w-full gap-2\", children: [\n /* @__PURE__ */ i(\"span\", { className: \"flex-1 text-left\", children: a }),\n m ? /* @__PURE__ */ i(Xe, { className: \"size-5\", \"aria-hidden\": \"true\" }) : /* @__PURE__ */ i(Je, { className: \"size-5\", \"aria-hidden\": \"true\" })\n ] })\n }\n ),\n /* @__PURE__ */ i(\"div\", { id: `${u}-panel`, role: \"region\", \"aria-labelledby\": u, \"aria-live\": \"polite\", hidden: !m, children: n })\n ] });\n}\nfunction Wt(n) {\n const [a, t] = z(!1), [r, e] = z(!1);\n return I(() => {\n if (n) {\n e(!0);\n const o = setTimeout(() => t(!0), 10);\n return () => clearTimeout(o);\n } else {\n t(!1);\n const o = setTimeout(() => e(!1), 300);\n return () => clearTimeout(o);\n }\n }, [n]), { show: a, shouldRender: r };\n}\nfunction Ft({\n isOpen: n,\n onClose: a,\n enabled: t = !0\n}) {\n const [r, e] = z(!1), [o, s] = z(0), [l, c] = z(0), f = $((x) => {\n !t || !n || (e(!0), c(x), document.body.style.userSelect = \"none\");\n }, [t, n]), u = $((x) => {\n if (!r || !t) return;\n const E = x - l, D = Math.max(0, E);\n s(D);\n }, [r, t, l]), d = $(() => {\n if (!r || !t) return;\n e(!1), document.body.style.userSelect = \"\", o > 100 && a(), s(0);\n }, [r, t, o, a]), p = $((x) => {\n x.preventDefault(), f(x.clientY);\n }, [f]), m = $((x) => {\n u(x.clientY);\n }, [u]), v = $(() => {\n d();\n }, [d]), b = $((x) => {\n x.preventDefault(), f(x.touches[0].clientY);\n }, [f]), h = $((x) => {\n x.preventDefault(), u(x.touches[0].clientY);\n }, [u]), y = $(() => {\n d();\n }, [d]);\n I(() => {\n if (r)\n return document.addEventListener(\"mousemove\", m), document.addEventListener(\"mouseup\", v), document.addEventListener(\"touchmove\", h, { passive: !1 }), document.addEventListener(\"touchend\", y), () => {\n document.removeEventListener(\"mousemove\", m), document.removeEventListener(\"mouseup\", v), document.removeEventListener(\"touchmove\", h), document.removeEventListener(\"touchend\", y);\n };\n }, [r, m, v, h, y]);\n const g = $((x) => {\n t && (x.key === \"ArrowDown\" || x.key === \"Escape\") && (x.preventDefault(), a());\n }, [t, a]);\n return {\n dragHandlers: t ? {\n onMouseDown: p,\n onTouchStart: b,\n onKeyDown: g\n } : {},\n translateY: o,\n isDragging: r\n };\n}\nfunction Ht(n, a) {\n const t = M(null);\n I(() => {\n if (!a) return;\n t.current = document.activeElement;\n const r = document.getElementById(n);\n r && r.focus();\n const e = (o) => {\n if (o.key !== \"Tab\") return;\n const s = document.getElementById(n);\n if (!s) return;\n const l = s.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n ), c = l[0], f = l[l.length - 1];\n o.shiftKey && document.activeElement === c ? (o.preventDefault(), f == null || f.focus()) : !o.shiftKey && document.activeElement === f && (o.preventDefault(), c == null || c.focus());\n };\n return document.addEventListener(\"keydown\", e), () => {\n document.removeEventListener(\"keydown\", e), t.current && typeof t.current.focus == \"function\" && t.current.focus();\n };\n }, [n, a]);\n}\nfunction _t(n, a) {\n I(() => {\n if (!n) return;\n const t = window.getComputedStyle(document.body).overflow;\n document.body.style.overflow = \"hidden\";\n const r = (e) => {\n e.key === \"Escape\" && a();\n };\n return document.addEventListener(\"keydown\", r), () => {\n document.body.style.overflow = t, document.removeEventListener(\"keydown\", r);\n };\n }, [n, a]);\n}\nfunction on({\n ref: n,\n id: a,\n isOpen: t,\n onClose: r,\n title: e,\n children: o,\n footer: s,\n className: l,\n overlayClassName: c,\n showCloseButton: f = !1,\n disableCloseOnOverlayClick: u = !1,\n enableDragGestures: d = !0,\n ariaLabelledBy: p,\n ariaDescribedBy: m\n}) {\n const v = P(), b = a || `drawer-${v}`, h = `${v}-title`, { show: y, shouldRender: g } = Wt(t), { dragHandlers: w, translateY: x, isDragging: E } = Ft({\n isOpen: t,\n onClose: r,\n enabled: d\n });\n if (Ht(b, g), _t(g, r), !g) return null;\n const D = () => e ? F.isValidElement(e) ? /* @__PURE__ */ i(\"div\", { children: e }) : /* @__PURE__ */ i(\"h2\", { className: \"text-2xl font-semibold\", id: h, children: e }) : null, C = () => {\n if (!s) return null;\n if (F.isValidElement(s)) {\n const S = s, L = S.props.className || \"\";\n return F.cloneElement(S, { className: N(\"px-6 py-4\", L) });\n }\n return /* @__PURE__ */ i(\"div\", { className: \"px-6 py-4\", children: s });\n };\n return /* @__PURE__ */ i(Q, { children: ae(\n /* @__PURE__ */ k(\n \"div\",\n {\n \"aria-labelledby\": p ?? e ? h : void 0,\n \"aria-describedby\": m,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n className: \"fixed inset-0 z-[100] overflow-hidden\",\n \"data-drawer-open\": t,\n children: [\n /* @__PURE__ */ i(\n \"div\",\n {\n className: N(\n \"fixed inset-0 bg-black/40 transition-opacity duration-300\",\n y ? \"opacity-100\" : \"opacity-0\",\n c\n ),\n onClick: () => {\n u || r();\n }\n }\n ),\n /* @__PURE__ */ i(\"div\", { className: \"fixed inset-x-0 bottom-0 flex max-h-full\", children: /* @__PURE__ */ i(\n \"div\",\n {\n id: b,\n ref: n,\n tabIndex: -1,\n className: N(\n \"relative w-screen transform shadow-xl bg-popover text-popover-foreground transition-transform duration-300 ease-in-out border-t border-border rounded-t-lg\",\n y ? \"translate-y-0\" : \"translate-y-full\",\n l\n ),\n style: {\n transform: d && x !== 0 ? `translateY(${x}px)` : void 0,\n transition: x !== 0 ? \"none\" : void 0\n },\n children: /* @__PURE__ */ k(\"div\", { className: \"flex h-full flex-col\", children: [\n d && /* @__PURE__ */ i(\n \"div\",\n {\n className: N(\n \"flex justify-center pt-3 pb-2 cursor-grab active:cursor-grabbing\",\n d && \"select-none\"\n ),\n ...w,\n role: d ? \"button\" : void 0,\n tabIndex: d ? 0 : void 0,\n \"aria-label\": d ? \"Drag to resize drawer\" : void 0,\n children: /* @__PURE__ */ i(\n \"div\",\n {\n className: N(\n \"w-12 h-1.5 bg-popover-foreground/25 rounded-full transition-colors\",\n d && \"hover:bg-popover-foreground/50\",\n E && \"bg-popover-foreground/50\"\n )\n }\n )\n }\n ),\n e && /* @__PURE__ */ i(\"div\", { className: \"px-6 pt-4\", children: D() }),\n f && /* @__PURE__ */ i(\n \"button\",\n {\n type: \"button\",\n onClick: r,\n \"data-drawer-close-button\": \"true\",\n \"aria-label\": \"Close drawer\",\n className: \"rounded-md p-0.5 top-3 right-3 absolute opacity-80 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-gray-500 leading-0\",\n children: /* @__PURE__ */ i(oe, { size: 18 })\n }\n ),\n /* @__PURE__ */ i(\"div\", { className: N(\"flex-1 overflow-y-auto px-6 pb-6\", e ? \"pt-6\" : \"pt-4\"), children: o }),\n C()\n ] })\n }\n ) })\n ]\n }\n ),\n document.body\n ) });\n}\nfunction qt(n) {\n switch (n) {\n case \"top\":\n return \"bottom\";\n case \"bottom\":\n return \"top\";\n case \"left\":\n return \"right\";\n case \"right\":\n return \"left\";\n }\n}\nfunction Zt({\n internalIsOpen: n,\n autoSwitchPlacement: a,\n placement: t,\n offset: r,\n triggerRef: e,\n popoverRef: o\n}) {\n const [s, l] = z(t);\n return I(() => {\n if (!n || !a) return;\n const c = () => {\n if (!e.current || !o.current) return;\n const d = e.current.getBoundingClientRect(), p = o.current.getBoundingClientRect(), m = window.innerWidth, v = window.innerHeight;\n let b = t;\n const h = qt(t);\n if (t === \"top\" || t === \"bottom\") {\n const y = t === \"top\" ? d.top >= p.height + r : v - d.bottom >= p.height + r, g = h === \"top\" ? d.top >= p.height + r : v - d.bottom >= p.height + r;\n !y && g && (b = h);\n } else {\n const y = t === \"left\" ? d.left >= p.width + r : m - d.right >= p.width + r, g = h === \"left\" ? d.left >= p.width + r : m - d.right >= p.width + r;\n !y && g && (b = h);\n }\n l(b);\n };\n c();\n const f = () => c();\n window.addEventListener(\"scroll\", f, !0), window.addEventListener(\"resize\", f);\n const u = new ResizeObserver(c);\n return e.current && u.observe(e.current), o.current && u.observe(o.current), () => {\n window.removeEventListener(\"scroll\", f, !0), window.removeEventListener(\"resize\", f), u.disconnect();\n };\n }, [n, t, r, a, e, o]), s;\n}\nconst Gt = {\n bottom: {\n start: \"top-full left-0 origin-top-left\",\n center: \"top-full left-1/2 -translate-x-1/2 origin-top\",\n end: \"top-full right-0 origin-top-right\"\n },\n top: {\n start: \"bottom-full left-0 origin-bottom-left\",\n center: \"bottom-full left-1/2 -translate-x-1/2 origin-bottom\",\n end: \"bottom-full right-0 origin-bottom-right\"\n },\n left: {\n start: \"right-full top-0 origin-top-right\",\n center: \"right-full top-1/2 -translate-y-1/2 origin-right\",\n end: \"right-full bottom-0 origin-bottom-right\"\n },\n right: {\n start: \"left-full top-0 origin-top-left\",\n center: \"left-full top-1/2 -translate-y-1/2 origin-left\",\n end: \"left-full bottom-0 origin-bottom-left\"\n }\n};\nfunction Ut(n, a) {\n switch (n) {\n case \"top\":\n return { marginBottom: `${a}px` };\n case \"bottom\":\n return { marginTop: `${a}px` };\n case \"left\":\n return { marginRight: `${a}px` };\n case \"right\":\n return { marginLeft: `${a}px` };\n default:\n return {};\n }\n}\nfunction Yt({\n id: n,\n ref: a,\n isOpen: t,\n onOpenChange: r,\n children: e,\n className: o,\n closeOnOverlayClick: s = !0,\n trigger: l,\n placement: c = \"bottom\",\n alignment: f = \"center\",\n closeOnTriggerClick: u = !0,\n offset: d = 8,\n autoSwitchPlacement: p = !0\n}) {\n const [m, v] = z(t ?? !1), b = M(null), h = M(null), y = M(null), g = P(), w = Zt({\n internalIsOpen: m,\n autoSwitchPlacement: p,\n placement: c,\n offset: d,\n triggerRef: h,\n popoverRef: b\n }), x = $(\n (C) => {\n r && r(C), t === void 0 && v(C);\n },\n [t, r]\n );\n I(() => {\n t !== void 0 && v(t);\n }, [t]), I(() => {\n if (!m) return;\n const C = (S) => {\n S.key === \"Escape\" && x(!1);\n };\n return document.addEventListener(\"keydown\", C), () => document.removeEventListener(\"keydown\", C);\n }, [m, x]), I(() => {\n if (!m || !s) return;\n const C = (S) => {\n const L = S.target;\n b.current && !b.current.contains(L) && h.current && !h.current.contains(L) && x(!1);\n };\n return document.addEventListener(\"mousedown\", C), () => document.removeEventListener(\"mousedown\", C);\n }, [m, s, x]), I(() => {\n var C, S;\n m ? (y.current = document.activeElement, (C = b.current) == null || C.focus()) : ((S = y.current) == null || S.focus(), y.current = null);\n }, [m]);\n const E = l.props, D = F.cloneElement(l, {\n \"aria-expanded\": m,\n \"aria-haspopup\": \"dialog\",\n \"aria-controls\": g,\n ref: it(h, E.ref),\n onClick: (C) => {\n var S, L;\n if ((S = E.onClick) == null || S.call(E, C), !(!u && m) && t === void 0) {\n if (C.defaultPrevented || (L = b.current) != null && L.contains(C.target)) return;\n x(!m);\n }\n }\n });\n return /* @__PURE__ */ k(\"div\", { id: n, ref: a, className: \"relative inline-block\", children: [\n D,\n /* @__PURE__ */ i(\n \"div\",\n {\n id: g,\n ref: b,\n className: N(\n \"absolute z-[90] transform rounded-md shadow-lg bg-popover text-popover-foreground transition-all ease-out\",\n m ? \"opacity-100 scale-100\" : \"opacity-0 scale-75 pointer-events-none\",\n Gt[w][f],\n o\n ),\n style: Ut(w, d),\n role: \"dialog\",\n \"aria-modal\": \"true\",\n tabIndex: -1,\n inert: m ? void 0 : !0,\n \"aria-hidden\": m ? void 0 : !0,\n children: e\n }\n )\n ] });\n}\nfunction Ve({ option: n, ...a }) {\n const { onItemSelect: t } = we(), r = () => {\n n.onClick && n.onClick(), n.value && t(n.value);\n }, e = n.subItems && n.subItems.length > 0, o = n.href && !n.disabled;\n return /* @__PURE__ */ k(\n o ? \"a\" : \"div\",\n {\n href: o ? n.href : void 0,\n className: N(\n \"relative flex items-center gap-2 px-3 py-2 text-sm focus:outline-none focus:bg-popover-foreground/10\",\n n.disabled ? \"opacity-50 cursor-default\" : \"cursor-pointer\"\n ),\n onClick: n.disabled ? void 0 : r,\n ...a,\n children: [\n n.icon && /* @__PURE__ */ i(\"span\", { className: \"size-4\", children: n.icon }),\n /* @__PURE__ */ k(\"div\", { className: \"flex-1\", children: [\n /* @__PURE__ */ i(\"div\", { children: n.label }),\n n.description && /* @__PURE__ */ i(\"div\", { className: \"text-xs text-popover-foreground/60\", children: n.description })\n ] }),\n n.keyboardShortcut && /* @__PURE__ */ i(\"div\", { className: \"text-xs text-popover-foreground/60\", children: n.keyboardShortcut }),\n e && /* @__PURE__ */ i(xe, { className: \"size-4\" })\n ]\n }\n );\n}\nfunction Xt({ option: n, level: a, index: t }) {\n const { focus: r, setFocus: e } = we(), [o, s] = z(!1), [l, c] = z(!1), f = M(null), u = M(void 0), d = P(), p = () => {\n n.disabled || (e({ level: a, index: t }), v());\n }, m = () => {\n e(null), b();\n }, v = () => {\n s(!0);\n }, b = () => {\n s(!1);\n }, h = (w) => {\n if (w.key === \"ArrowRight\") {\n if (w.preventDefault(), n.disabled) return;\n c(!1);\n }\n };\n I(() => {\n const w = r == null ? void 0 : r.level, x = u.current, E = a + 1;\n w && x && x === E && w === x - 1 ? c(!0) : c(!1), u.current = w;\n }, [r, a]);\n const y = n.subItems !== void 0 && n.subItems.length > 0, g = o && !l && y;\n return /* @__PURE__ */ k(\n \"div\",\n {\n ref: f,\n className: \"relative focus:outline-none focus:bg-popover-foreground/10\",\n onMouseEnter: p,\n onMouseLeave: m,\n onFocus: v,\n onBlur: b,\n onKeyDown: h,\n tabIndex: 0,\n \"data-menu-item\": n.value,\n \"data-level\": a,\n \"data-index\": t,\n \"aria-haspopup\": y ? \"true\" : void 0,\n \"aria-expanded\": g ? \"true\" : \"false\",\n \"aria-disabled\": n.disabled ? \"true\" : void 0,\n \"aria-label\": n.label,\n \"aria-controls\": g ? d : void 0,\n children: [\n /* @__PURE__ */ i(Ve, { option: n }),\n g && /* @__PURE__ */ i(\"div\", { className: \"absolute left-full top-0 z-30\", children: /* @__PURE__ */ i(je, { items: n.subItems ?? [], level: a + 1, id: d }) })\n ]\n }\n );\n}\nfunction je({ items: n, level: a, id: t }) {\n const { setFocus: r, className: e = \"\" } = we();\n let o = 0;\n const s = (l, c) => {\n switch (l.__type) {\n case \"option\":\n return l.subItems && l.subItems.length > 0 ? /* @__PURE__ */ i(Xt, { option: l, level: a, index: o++ }, c) : /* @__PURE__ */ i(\n Ve,\n {\n option: l,\n \"data-menu-item\": l.value,\n \"data-level\": a,\n \"data-index\": o++,\n tabIndex: -1,\n \"aria-disabled\": l.disabled ? \"true\" : void 0,\n onMouseEnter: (f) => {\n if (f.preventDefault(), l.disabled) return;\n const u = Number(f.currentTarget.getAttribute(\"data-index\"));\n r({ level: a, index: u });\n },\n onMouseLeave: (f) => {\n f.preventDefault(), r(null);\n }\n },\n c\n );\n case \"group\":\n return /* @__PURE__ */ k(\"div\", { children: [\n l.title && /* @__PURE__ */ i(\"div\", { className: \"px-3 py-2 text-xs font-semibold text-popover-foreground/50 uppercase\", children: l.title }),\n l.items.map((f, u) => s(f, `${c}-${u}`))\n ] }, c);\n case \"separator\":\n return /* @__PURE__ */ i(\"div\", { \"aria-hidden\": !0, className: \"my-1 mx-2 border-t border-popover-foreground/20\" }, c);\n case \"custom\":\n return /* @__PURE__ */ i(\"div\", { children: l.render() }, c);\n default:\n return null;\n }\n };\n return /* @__PURE__ */ i(\n \"div\",\n {\n id: t,\n className: N(\n \"border py-1 border-popover-foreground/20 rounded-md min-w-52 shadow-lg bg-popover text-popover-foreground\",\n e\n ),\n tabIndex: 0,\n \"data-level\": a,\n \"data-menu\": !0,\n role: \"menu\",\n \"aria-label\": `Dropdown menu level ${a}`,\n children: n.map((l, c) => s(l, String(c)))\n }\n );\n}\nfunction Jt(n, a) {\n return Array.from(n.querySelectorAll(`[data-menu-item][data-level=\"${a}\"]`));\n}\nfunction Qt(n, a) {\n const t = a === null ? 0 : (a + 1) % n.length;\n for (let r = 0; r < n.length; r++) {\n const e = (t + r) % n.length;\n if (!n[e].hasAttribute(\"aria-disabled\"))\n return e;\n }\n return -1;\n}\nfunction Ot(n, a) {\n const t = a === null ? n.length - 1 : (a - 1 + n.length) % n.length;\n for (let r = 0; r < n.length; r++) {\n const e = (t - r + n.length) % n.length;\n if (!n[e].hasAttribute(\"aria-disabled\"))\n return e;\n }\n return -1;\n}\nfunction er({ dropdownId: n, focus: a, setFocus: t, isOpen: r, onClose: e }) {\n const o = $(\n (s) => {\n var d;\n if (!r) return;\n const { level: l, index: c } = a || { level: 1, index: null }, f = document.querySelector(`#${n} [data-menu][data-level=\"${l}\"]`);\n if (!f) return;\n const u = Jt(f, l);\n if (u.length !== 0)\n switch (s.key) {\n case \"ArrowDown\": {\n s.preventDefault();\n const p = Qt(u, c);\n if (p === -1) return;\n t({ level: l, index: p });\n break;\n }\n case \"ArrowUp\": {\n s.preventDefault();\n const p = Ot(u, c);\n if (p === -1) return;\n t({ level: l, index: p });\n break;\n }\n case \"ArrowRight\": {\n if (s.preventDefault(), c !== null) {\n const m = u[c].querySelector(\"[data-menu]\");\n m && m.querySelector(\"[data-menu-item]\") && t({ level: l + 1, index: 0 });\n }\n break;\n }\n case \"ArrowLeft\": {\n s.preventDefault();\n const p = (d = f.parentElement) == null ? void 0 : d.closest(\"[data-menu-item]\");\n if (!p) {\n console.error(`No parent menu found leaving menu level ${l}`);\n return;\n }\n const m = p.getAttribute(\"data-index\") ? Number(p.getAttribute(\"data-index\")) : -1;\n p && t({ level: l - 1, index: m === -1 ? 0 : m });\n break;\n }\n case \"Enter\": {\n if (s.preventDefault(), c !== null) {\n const p = u[c];\n p == null || p.click(), t(null);\n }\n break;\n }\n case \"Escape\": {\n s.preventDefault(), e == null || e(), t(null);\n break;\n }\n case \"Tab\": {\n e();\n break;\n }\n }\n },\n [r, a, t, e, n]\n );\n return I(() => {\n if (r)\n return document.addEventListener(\"keydown\", o), () => {\n document.removeEventListener(\"keydown\", o);\n };\n }, [o, r]), { handleKeyDown: o };\n}\nfunction tr(n, a, t) {\n return document.querySelector(\n `#${n} [data-menu-item][data-level=\"${a}\"][data-index=\"${t}\"]`\n );\n}\nfunction an({\n id: n,\n items: a,\n onItemSelect: t,\n trigger: r,\n isOpen: e,\n placement: o = \"bottom\",\n alignment: s = \"start\",\n onOpenChange: l,\n className: c = \"\",\n ...f\n}) {\n const u = P(), d = n || `dropdown-menu-${u}`, [p, m] = z(null), [v, b] = z(!1), h = e === void 0, y = h ? v : e, g = $(() => {\n m(null), b(!1);\n }, []), w = $(\n (C) => {\n t && t(C), g();\n },\n [t, g]\n ), x = $(\n (C) => {\n h && b(C), l && l(C);\n },\n [h, l]\n ), E = _(\n () => ({\n id: d,\n focus: p,\n setFocus: m,\n isOpen: y,\n onItemSelect: w,\n onClose: g,\n className: c\n }),\n [p, m, w, g, c, y, d]\n );\n er({\n dropdownId: d,\n focus: p,\n setFocus: m,\n isOpen: y,\n onClose: g\n });\n const D = _(() => F.cloneElement(r, {\n onClick: (C) => {\n h && b((L) => !L);\n const S = r.props;\n S.onClick && S.onClick(C);\n }\n }), [h, b, r]);\n return I(() => {\n if (p) {\n const C = tr(d, p.level, p.index);\n C == null || C.focus();\n }\n }, [p, d]), /* @__PURE__ */ i(\n Yt,\n {\n id: d,\n isOpen: h ? v : y,\n trigger: D,\n placement: o,\n alignment: s,\n onOpenChange: x,\n className: N(\"min-w-52\", c),\n ...f,\n children: /* @__PURE__ */ i(nt.Provider, { value: E, children: /* @__PURE__ */ i(je, { items: a, level: 1 }) })\n }\n );\n}\nconst rr = (n) => ({\n __type: \"option\",\n ...n\n}), nr = (n, a) => ({\n __type: \"group\",\n title: a,\n items: n\n}), or = () => ({\n __type: \"separator\"\n}), ar = (n) => ({\n __type: \"custom\",\n render: n\n}), sn = {\n option: rr,\n group: nr,\n separator: or,\n custom: ar\n}, sr = {\n danger: {\n container: \"border-destructive bg-destructive/10\",\n icon: \"text-destructive\",\n title: \"text-destructive\",\n description: \"text-destructive/80\",\n button: \"bg-destructive text-destructive-foreground hover:bg-destructive/90 focus:ring-destructive\",\n details: \"bg-destructive/5 border-destructive/20 text-destructive\"\n },\n warning: {\n container: \"border-yellow-600 bg-yellow-600/10\",\n icon: \"text-yellow-600\",\n title: \"text-yellow-600\",\n description: \"text-yellow-600/80\",\n button: \"bg-yellow-600 text-white hover:bg-yellow-600/90 focus:ring-yellow-600\",\n details: \"bg-yellow-600/5 border-yellow-600/20 text-yellow-600\"\n },\n info: {\n container: \"border-blue-600 bg-blue-600/10\",\n icon: \"text-blue-600\",\n title: \"text-blue-600\",\n description: \"text-blue-600/80\",\n button: \"bg-blue-600 text-white hover:bg-blue-600/90 focus:ring-blue-600\",\n details: \"bg-blue-600/5 border-blue-600/20 text-blue-600\"\n }\n}, ir = {\n danger: /* @__PURE__ */ i(de, { size: 24 }),\n warning: /* @__PURE__ */ i(de, { size: 24 }),\n info: /* @__PURE__ */ i(Me, { size: 24 })\n};\nfunction ln({\n id: n,\n variant: a = \"danger\",\n showRetry: t = !0,\n fallbackMessage: r,\n fallback: e,\n onRetry: o,\n onError: s,\n className: l,\n children: c,\n inDevEnv: f = !1\n}) {\n return /* @__PURE__ */ i(\n lr,\n {\n id: n,\n variant: a,\n showRetry: t,\n fallbackMessage: r,\n fallback: e,\n onRetry: o,\n onError: s,\n className: l,\n inDevEnv: f,\n children: c\n }\n );\n}\nclass lr extends Fe {\n constructor(t) {\n super(t);\n Ee(this, \"handleRetry\", () => {\n var t, r;\n this.setState({ hasError: !1, error: void 0, errorInfo: void 0 }), (r = (t = this.props).onRetry) == null || r.call(t);\n });\n this.state = { hasError: !1 };\n }\n static getDerivedStateFromError(t) {\n return { hasError: !0, error: t };\n }\n componentDidCatch(t, r) {\n var e, o;\n this.setState({ error: t, errorInfo: r }), (o = (e = this.props).onError) == null || o.call(e, t, r), this.props.inDevEnv && (console.error(\"ErrorBoundary caught an error:\", t), console.error(\"Error info:\", r));\n }\n render() {\n var f;\n const {\n id: t,\n variant: r = \"danger\",\n showRetry: e = !0,\n fallbackMessage: o = \"Something went wrong\",\n fallback: s,\n className: l,\n inDevEnv: c\n } = this.props;\n if (this.state.hasError) {\n if (s)\n return s;\n const u = sr[r], d = ir[r];\n return /* @__PURE__ */ k(\n \"div\",\n {\n id: t,\n \"data-variant\": r,\n \"data-has-error\": this.state.hasError,\n className: N(\n \"rounded-lg border p-6 text-center\",\n u.container,\n l\n ),\n role: \"alert\",\n \"aria-live\": \"assertive\",\n children: [\n /* @__PURE__ */ i(\"div\", { className: N(\"mb-4 flex justify-center\", u.icon), children: d }),\n /* @__PURE__ */ i(\"h3\", { className: N(\"text-lg font-semibold mb-2\", u.title), children: \"Oops! Something went wrong\" }),\n /* @__PURE__ */ i(\"p\", { className: N(\"text-sm mb-4\", u.description), children: o }),\n c && this.state.error && /* @__PURE__ */ k(\"details\", { className: \"mt-4 text-left\", children: [\n /* @__PURE__ */ i(\"summary\", { className: \"cursor-pointer text-sm font-medium mb-2\", children: \"Error Details (Development Only)\" }),\n /* @__PURE__ */ k(\"div\", { className: N(\n \"rounded border p-3 text-xs font-mono whitespace-pre-wrap overflow-auto max-h-40\",\n u.details\n ), children: [\n /* @__PURE__ */ i(\"div\", { className: \"font-bold mb-1\", children: \"Error:\" }),\n /* @__PURE__ */ i(\"div\", { className: \"mb-2\", children: this.state.error.toString() }),\n ((f = this.state.errorInfo) == null ? void 0 : f.componentStack) && /* @__PURE__ */ k(Q, { children: [\n /* @__PURE__ */ i(\"div\", { className: \"font-bold mb-1\", children: \"Component Stack:\" }),\n /* @__PURE__ */ i(\"div\", { children: this.state.errorInfo.componentStack })\n ] })\n ] })\n ] }),\n e && /* @__PURE__ */ i(\n \"button\",\n {\n type: \"button\",\n onClick: this.handleRetry,\n className: N(\n \"inline-flex items-center gap-2 px-4 py-2 rounded-md font-medium transition-colors\",\n \"focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-offset-transparent\",\n u.button\n ),\n \"aria-label\": \"Try again\",\n children: \"Try Again\"\n }\n )\n ]\n }\n );\n }\n return this.props.children;\n }\n}\nfunction ue({ elementId: n, type: a, message: t }) {\n return I(() => {\n const r = document.getElementById(n);\n if (r) {\n if (!t && a === \"error\") {\n r.removeAttribute(\"data-error\");\n return;\n }\n if (!t && a === \"success\") {\n r.removeAttribute(\"data-success\");\n return;\n }\n return r.setAttribute(\"aria-describedby\", `${n}-${a}-message`), r.setAttribute(\"aria-invalid\", a === \"error\" ? \"true\" : \"false\"), a === \"error\" && r.setAttribute(\"data-error\", \"true\"), a === \"success\" && r.setAttribute(\"data-success\", \"true\"), () => {\n r.removeAttribute(\"aria-describedby\"), r.removeAttribute(\"aria-invalid\"), r.removeAttribute(\"data-error\"), r.removeAttribute(\"data-success\");\n };\n }\n }, [n, a, t]), t ? /* @__PURE__ */ k(\n \"small\",\n {\n className: N(\n \"mt-0.5 text-sm inline-flex items-center gap-1 w-full justify-start\",\n a === \"error\" && \"text-destructive\",\n a === \"success\" && \"text-success\"\n ),\n role: \"status\",\n children: [\n a === \"error\" ? /* @__PURE__ */ i(de, {}) : /* @__PURE__ */ i(Re, {}),\n /* @__PURE__ */ i(\"span\", { id: `${n}-${a}-message`, children: t })\n ]\n }\n ) : null;\n}\nconst cr = {\n base: \"\",\n default: \"ring ring-transparent focus:ring-primary-foreground not-disabled:data-error:ring-destructive not-disabled:data-success:ring-success\",\n underline: \"border-b border-border focus:border-primary-foreground disabled:border-muted/30 not-disabled:data-error:border-destructive not-disabled:data-success:border-success\",\n outline: \"border border-border focus:border-primary-foreground disabled:border-muted/30 not-disabled:data-error:border-destructive not-disabled:data-success:border-success\"\n}, dr = {\n none: \"rounded-none\",\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n full: \"px-3 rounded-full\"\n}, Ce = {\n variant: \"default\",\n rounded: \"none\"\n};\nfunction cn({\n variant: n = Ce.variant,\n rounded: a,\n displayOnlyMode: t = !1,\n errorMessage: r,\n successMessage: e,\n type: o = \"text\",\n className: s,\n ...l\n}) {\n const c = P(), [f, u] = z(!1);\n let d = a;\n n === \"outline\" && !a && (d = \"md\"), d = d || Ce.rounded;\n const v = N(\n \"appearance-none w-full focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed placeholder:text-muted/70 hide-number-input-arrows transition-all\",\n \"file:mr-2 file:border-0 file:rounded-md file:px-1.5 file:py-1 file:bg-primary hover:file:bg-primary/85 file:text-sm file:font-medium file:text-foreground file:transition-colors\",\n !t && cr[n],\n !t && dr[d],\n o === \"password\" && \"pr-10\",\n !t && \"px-2 py-1\",\n t && \"pointer-events-none\",\n s\n );\n return /* @__PURE__ */ k(\"div\", { className: N(t && \"cursor-text\"), style: { height: l.height, width: l.width }, children: [\n /* @__PURE__ */ k(\"div\", { className: N(o === \"password\" && \"relative\"), children: [\n /* @__PURE__ */ i(\n \"input\",\n {\n ...l,\n id: c,\n type: o === \"password\" && f ? \"text\" : o,\n \"aria-disabled\": l.disabled,\n readOnly: t,\n \"aria-readonly\": t || l[\"aria-readonly\"],\n \"data-error\": r ? !0 : void 0,\n \"data-success\": e ? !0 : void 0,\n className: v\n }\n ),\n o === \"password\" && /* @__PURE__ */ i(\n \"button\",\n {\n onClick: () => u(!f),\n className: \"absolute inset-y-0 right-0 px-2 hover:cursor-pointer\",\n \"aria-label\": \"Toggle password visibility\",\n \"data-state\": f ? \"visible\" : \"hidden\",\n children: f ? /* @__PURE__ */ i(Qe, { size: 20 }) : /* @__PURE__ */ i(Oe, { size: 20 })\n }\n )\n ] }),\n !t && /* @__PURE__ */ i(ue, { elementId: c, type: \"error\", message: r }),\n !t && /* @__PURE__ */ i(ue, { elementId: c, type: \"success\", message: e })\n ] });\n}\nfunction dn({\n display: n = \"inline\",\n width: a = \"fit-content\",\n className: t = \"\",\n required: r,\n helpMessage: e,\n suffix: o,\n htmlFor: s,\n children: l,\n description: c,\n ...f\n}) {\n var b, h;\n const u = P(), d = (((b = e == null ? void 0 : e.trim()) == null ? void 0 : b.length) || 0) > 0, p = (((h = c == null ? void 0 : c.trim()) == null ? void 0 : h.length) || 0) > 0, m = d ? `${s ?? u}-help` : void 0, v = p ? `${s ?? u}-description` : void 0;\n return /* @__PURE__ */ k(\n \"div\",\n {\n style: { display: n === \"inline\" ? \"inline-block\" : \"block\", width: a },\n className: N(\"mb-0.5\", t),\n children: [\n /* @__PURE__ */ k(\"div\", { className: \"relative flex\", children: [\n /* @__PURE__ */ k(\"label\", { className: \"font-medium\", htmlFor: s, ...f, children: [\n l,\n r && /* @__PURE__ */ i(\"span\", { className: \"text-red-500 font-medium ml-1\", \"aria-label\": \"required\", children: \"*\" })\n ] }),\n d && /* @__PURE__ */ i(\n \"span\",\n {\n className: \"text-gray-500 ml-1 size-fit -translate-y-1/3\",\n \"aria-describedby\": m,\n \"aria-label\": \"Help information\",\n title: e,\n children: /* @__PURE__ */ i(et, {})\n }\n ),\n d && /* @__PURE__ */ i(\"div\", { id: m, className: \"sr-only\", children: e }),\n o && /* @__PURE__ */ i(\"span\", { className: \"ml-1\", children: o })\n ] }),\n p && /* @__PURE__ */ i(\"small\", { id: v, className: \"block opacity-80 mt-0.5\", role: \"note\", children: c })\n ]\n }\n );\n}\nfunction ur(n) {\n const [a, t] = z(!1), [r, e] = z(!1);\n return I(() => {\n n ? (e(!0), setTimeout(() => t(!0), 10)) : (t(!1), setTimeout(() => e(!1), 150));\n }, [n]), { show: a, shouldRender: r };\n}\nfunction fr(n, a) {\n I(() => {\n const t = (r) => {\n r.key === \"Escape\" && n && a();\n };\n return document.addEventListener(\"keydown\", t), n && (document.body.style.overflow = \"hidden\"), () => {\n document.removeEventListener(\"keydown\", t), document.body.style.overflow = \"auto\";\n };\n }, [n, a]);\n}\nfunction mr(n, a) {\n const t = M(null), r = $(() => {\n const e = document.getElementById(n);\n if (!e) return;\n const o = e.querySelectorAll('[data-modal-action=\"true\"]');\n if (o.length > 0) {\n o[0].focus();\n return;\n }\n const s = e.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (s.length > 0) {\n const l = Array.from(s).filter((c) => !(c instanceof HTMLButtonElement && c.getAttribute(\"data-modal-close-button\") === \"true\"));\n if (l.length > 0) {\n l[0].focus();\n return;\n }\n s[0].focus();\n return;\n }\n e.focus();\n }, [n]);\n I(() => (a && (t.current = document.activeElement, r()), () => {\n document.body.style.overflow = \"auto\", t.current instanceof HTMLElement && t.current.focus();\n }), [a, r]);\n}\nfunction un({\n id: n,\n isOpen: a,\n onClose: t,\n title: r,\n children: e,\n contentOnly: o = !1,\n className: s,\n overlayClassName: l,\n hideCloseButton: c = !1,\n actions: f = [],\n disableCloseOnOverlayClick: u = !1,\n ariaLabelledBy: d,\n ariaDescribedBy: p\n}) {\n const m = P(), v = n || `modal-${m}`, b = n ? `${n}-title` : `modal-title-${m}`, { show: h, shouldRender: y } = ur(a);\n if (mr(v, y), fr(y, t), !y) return null;\n const g = () => r ? F.isValidElement(r) ? /* @__PURE__ */ i(\"div\", { className: \"mb-4\", children: r }) : /* @__PURE__ */ i(\"h2\", { className: \"mb-4 text-xl font-semibold\", id: b, children: r }) : null, w = () => f.length === 0 ? null : /* @__PURE__ */ i(\"div\", { className: \"mt-6 not-sm:grid gap-y-2 sm:flex sm:justify-start sm:flex-row-reverse sm:gap-x-3\", children: f.map((x, E) => {\n const { label: D, ...C } = x;\n return /* @__PURE__ */ i(ht, { ...C, \"data-modal-action\": \"true\", children: D }, E);\n }) });\n return /* @__PURE__ */ i(Q, { children: ae(\n /* @__PURE__ */ i(\n \"div\",\n {\n \"aria-labelledby\": d ?? r ? b : void 0,\n \"aria-describedby\": p,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n className: \"fixed inset-0 z-[100] overflow-y-auto\",\n children: /* @__PURE__ */ k(\"div\", { className: \"flex min-h-screen items-center justify-center p-4\", children: [\n /* @__PURE__ */ i(\n \"div\",\n {\n className: V(\"fixed inset-0 bg-black/20 transition-all\", l),\n onClick: () => {\n u || t();\n }\n }\n ),\n o && /* @__PURE__ */ i(\"div\", { className: V(\"relative w-fit\", s), children: e }),\n !o && /* @__PURE__ */ k(\n \"div\",\n {\n id: v,\n tabIndex: -1,\n className: V(\n \"relative w-full max-w-xl transform rounded-lg shadow-xl bg-popover text-popover-foreground transition-all p-6 focus:ring ease-in duration-75\",\n h ? \"opacity-100 scale-100\" : \"opacity-0 scale-90\",\n s\n ),\n children: [\n !c && /* @__PURE__ */ i(\n \"button\",\n {\n type: \"button\",\n onClick: t,\n \"data-modal-close-button\": \"true\",\n className: \"rounded-md p-0.5 top-2.5 right-2.5 absolute opacity-80 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-gray-500 leading-0\",\n children: /* @__PURE__ */ i(oe, { size: 18 })\n }\n ),\n g(),\n e,\n w()\n ]\n }\n )\n ] })\n }\n ),\n document.body\n ) });\n}\nconst pr = {\n link: \"text-primary hover:text-primary-foreground hover:bg-primary/10 aria-current:text-primary-foreground aria-current:bg-primary\",\n outline: \"border border-primary text-primary hover:bg-primary hover:text-primary-foreground aria-current:bg-primary aria-current:text-primary-foreground aria-current:border-primary\",\n filled: \"bg-secondary text-secondary-foreground hover:bg-primary hover:text-primary-foreground aria-current:bg-primary aria-current:text-primary-foreground\"\n}, hr = {\n sm: \"px-2 py-1 text-sm min-w-[32px] min-h-8\",\n md: \"px-2 py-1 text-base min-w-[40px] min-h-10\"\n};\nfunction fn({\n page: n,\n pageCount: a = 5,\n maxVisiblePages: t = 5,\n showFirstLast: r = !0,\n onPageChange: e,\n size: o = \"md\",\n variant: s = \"link\",\n className: l,\n ref: c,\n buttonsClassName: f,\n ...u\n}) {\n const d = a === 1 / 0, m = $(() => {\n if (d) return [];\n const x = a, E = Math.min(t, x);\n if (x <= E)\n return Array.from({ length: x }, (L, B) => B + 1);\n const D = Math.floor(E / 2);\n let C = Math.max(1, n - D), S = Math.min(x, C + E - 1);\n return S - C + 1 < E && (C = Math.max(1, S - E + 1), S = Math.min(x, C + E - 1)), Array.from({ length: S - C + 1 }, (L, B) => C + B);\n }, [d, t, n, a])(), v = n > 1, b = d || n < a, h = r && !d, y = r && !d, g = (x) => {\n x >= 1 && (d || x <= a) && e(x);\n }, w = $(() => {\n const x = V(\n \"flex items-center justify-center min-w-fit\",\n \"disabled:opacity-50 disabled:cursor-not-allowed\",\n hr[o],\n \"rounded-md\"\n );\n return V(x, pr[s], f);\n }, [s, o, f]);\n return /* @__PURE__ */ k(\n \"nav\",\n {\n ref: c,\n className: V(\"flex items-center justify-center gap-1\", l),\n role: \"navigation\",\n \"aria-label\": \"Pagination\",\n \"data-page\": n,\n \"data-page-count\": d ? \"infinite\" : a,\n ...u,\n children: [\n h && /* @__PURE__ */ k(\n \"button\",\n {\n onClick: () => g(1),\n className: w(),\n disabled: n === 1,\n \"aria-label\": \"Go to first page\",\n children: [\n /* @__PURE__ */ i(tt, { size: o === \"sm\" ? 12 : 15 }),\n /* @__PURE__ */ i(\"span\", { className: \"ml-1\", children: \"First\" })\n ]\n }\n ),\n /* @__PURE__ */ k(\n \"button\",\n {\n onClick: () => g(n - 1),\n className: w(),\n disabled: !v,\n \"aria-label\": \"Go to previous page\",\n children: [\n /* @__PURE__ */ i(Le, { size: o === \"sm\" ? 12 : 15 }),\n /* @__PURE__ */ i(\"span\", { className: \"ml-1\", children: \"Previous\" })\n ]\n }\n ),\n !d && m.map((x) => /* @__PURE__ */ i(\n \"button\",\n {\n onClick: () => g(x),\n className: V(w(), \"aspect-square\"),\n \"aria-label\": `Go to page ${x}`,\n \"aria-current\": x === n ? !0 : void 0,\n children: x\n },\n x\n )),\n /* @__PURE__ */ k(\n \"button\",\n {\n onClick: () => g(n + 1),\n className: w(),\n disabled: !b,\n \"aria-label\": \"Go to next page\",\n children: [\n /* @__PURE__ */ i(\"span\", { className: \"mr-1\", children: \"Next\" }),\n /* @__PURE__ */ i(xe, { size: o === \"sm\" ? 12 : 15 })\n ]\n }\n ),\n y && /* @__PURE__ */ k(\n \"button\",\n {\n onClick: () => g(a),\n className: w(),\n disabled: n === a,\n \"aria-label\": \"Go to last page\",\n children: [\n /* @__PURE__ */ i(\"span\", { className: \"mr-1\", children: \"Last\" }),\n /* @__PURE__ */ i(rt, { size: o === \"sm\" ? 12 : 15 })\n ]\n }\n )\n ]\n }\n );\n}\nfunction br(n) {\n const [a, t] = z(!1), [r, e] = z(!1);\n return I(() => {\n n ? (e(!0), setTimeout(() => t(!0), 10)) : (t(!1), setTimeout(() => e(!1), 300));\n }, [n]), { show: a, shouldRender: r };\n}\nfunction vr(n, a) {\n I(() => {\n const t = (r) => {\n r.key === \"Escape\" && n && a();\n };\n return document.addEventListener(\"keydown\", t), n && (document.body.style.overflow = \"hidden\"), () => {\n document.removeEventListener(\"keydown\", t), document.body.style.overflow = \"auto\";\n };\n }, [n, a]);\n}\nfunction gr(n, a) {\n const t = M(null), r = $(() => {\n const e = document.getElementById(n);\n if (!e) return;\n const o = e.querySelectorAll('[data-panel-action=\"true\"]');\n if (o.length > 0) {\n o[0].focus();\n return;\n }\n const s = e.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (s.length > 0) {\n const l = Array.from(s).filter((c) => !(c instanceof HTMLButtonElement && c.getAttribute(\"data-panel-close-button\") === \"true\"));\n if (l.length > 0) {\n l[0].focus();\n return;\n }\n s[0].focus();\n return;\n }\n e.focus();\n }, [n]);\n I(() => (a && (t.current = document.activeElement, r()), () => {\n document.body.style.overflow = \"auto\", t.current instanceof HTMLElement && t.current.focus();\n }), [a, r]);\n}\nconst xr = {\n size: {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-xl\",\n \"2xl\": \"max-w-2xl\",\n full: \"w-full\",\n screen: \"w-screen\"\n }\n};\nfunction mn({\n ref: n,\n id: a,\n isOpen: t,\n onClose: r,\n title: e,\n children: o,\n footer: s,\n size: l = \"md\",\n className: c,\n overlayClassName: f,\n hideCloseButton: u = !1,\n disableCloseOnOverlayClick: d = !1,\n ariaLabelledBy: p,\n ariaDescribedBy: m\n}) {\n const v = P(), b = a || `panel-${v}`, h = a ? `${a}-title` : `panel-title-${v}`, { show: y, shouldRender: g } = br(t);\n if (gr(b, g), vr(g, r), !g) return null;\n const w = () => e ? F.isValidElement(e) ? /* @__PURE__ */ i(\"div\", { children: e }) : /* @__PURE__ */ i(\"h2\", { className: \"text-2xl font-semibold\", id: h, children: e }) : null, x = () => {\n if (!s) return null;\n if (F.isValidElement(s)) {\n const E = s, D = E.props.className || \"\";\n return F.cloneElement(E, { className: V(\"px-6 py-4\", D) });\n }\n return /* @__PURE__ */ i(\"div\", { className: \"px-6 py-4\", children: s });\n };\n return /* @__PURE__ */ i(Q, { children: ae(\n /* @__PURE__ */ k(\n \"div\",\n {\n \"aria-labelledby\": p ?? e ? h : void 0,\n \"aria-describedby\": m,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n className: \"fixed inset-0 z-[100] overflow-hidden\",\n \"data-panel-open\": t,\n children: [\n /* @__PURE__ */ i(\n \"div\",\n {\n className: V(\n \"fixed inset-0 bg-black/40 transition-opacity duration-300\",\n y ? \"opacity-100\" : \"opacity-0\",\n f\n ),\n onClick: () => {\n d || r();\n }\n }\n ),\n /* @__PURE__ */ i(\"div\", { className: \"fixed inset-y-0 right-0 flex max-w-full\", children: /* @__PURE__ */ i(\n \"div\",\n {\n id: b,\n ref: n,\n tabIndex: -1,\n className: V(\n \"relative h-full transform shadow-xl bg-popover text-popover-foreground transition-transform duration-300 ease-in-out\",\n l !== \"screen\" && \"border-l border-border\",\n xr.size[l],\n y ? \"translate-x-0\" : \"translate-x-full\",\n c\n ),\n \"data-panel-size\": l,\n children: /* @__PURE__ */ k(\"div\", { className: \"flex h-full flex-col\", children: [\n e && /* @__PURE__ */ i(\"div\", { className: \"px-6 pt-6\", children: w() }),\n !u && /* @__PURE__ */ i(\n \"button\",\n {\n type: \"button\",\n onClick: r,\n \"data-panel-close-button\": \"true\",\n \"aria-label\": \"Close panel\",\n className: \"rounded-md p-0.5 top-3 right-3 absolute opacity-80 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-gray-500 leading-0\",\n children: /* @__PURE__ */ i(oe, { size: 18 })\n }\n ),\n /* @__PURE__ */ i(\"div\", { className: V(\"flex-1 overflow-y-auto px-6 pb-6\", e ? \"pt-6\" : \"pt-10\"), children: o }),\n x()\n ] })\n }\n ) })\n ]\n }\n ),\n document.body\n ) });\n}\nfunction yr({ itemId: n, checked: a, onChange: t, name: r, disabled: e = !1, className: o = \"\" }) {\n const s = \"relative inline-flex items-center justify-center rounded-full\", l = () => {\n e || t();\n }, c = N(\n s,\n !a && \"hover:border-current/60\",\n !e && \"border-current cursor-pointer\",\n e && \"border-muted/60 cursor-not-allowed\",\n o\n );\n return /* @__PURE__ */ i(\n \"div\",\n {\n id: n,\n role: \"radio\",\n tabIndex: -1,\n \"aria-checked\": a,\n \"aria-disabled\": e,\n \"aria-description\": `Radio button for ${r}`,\n \"aria-labelledby\": `${n}-label`,\n onClick: l,\n className: c,\n style: {\n width: \"1em\",\n height: \"1em\",\n padding: \"0.1em\",\n borderWidth: \"0.06em\"\n },\n children: a && /* @__PURE__ */ i(\n \"div\",\n {\n className: N(\"size-full aspect-square rounded-full\", e && \"bg-muted/60\", !e && \"bg-current\")\n }\n )\n }\n );\n}\nfunction ge({\n value: n,\n children: a,\n className: t = \"\",\n isSelected: r = !1,\n onChange: e,\n disabled: o = !1,\n hideInput: s = !1,\n description: l,\n name: c\n}) {\n const u = `radio-${P()}-${n}`, d = () => {\n o || e == null || e(n);\n };\n return /* @__PURE__ */ k(\n \"div\",\n {\n title: l,\n className: N(\n \"relative flex items-center\",\n t,\n // Uses text color for borders\n s && `p-2 border-2 focus-within:border-dashed focus-within:${o ? \"border-current/50\" : \"border-current/80\"}`,\n s && !r && `border-transparent ${o ? \"\" : \"not-focus-within:hover:border-border/60\"}`,\n s && r && \"border-border\",\n o && \"opacity-60 cursor-not-allowed\"\n ),\n style: {\n gap: \"0.5em\"\n },\n children: [\n !s && /* @__PURE__ */ i(\n yr,\n {\n itemId: u,\n name: c || \"\",\n checked: r,\n onChange: d,\n disabled: o,\n className: N(s && \"\")\n }\n ),\n /* @__PURE__ */ i(\n \"div\",\n {\n id: s ? u : void 0,\n tabIndex: s ? -1 : void 0,\n role: s ? \"radio\" : void 0,\n onClick: s ? d : void 0,\n \"aria-checked\": s ? r ? \"true\" : \"false\" : void 0,\n \"aria-disabled\": s ? o : void 0,\n \"aria-description\": s ? l || `Radio button for ${c}` : void 0,\n \"aria-labelledby\": s ? `${u}-label` : void 0,\n className: N(s && \"size-full\", typeof a == \"object\" && \"grow focus:outline-none\"),\n children: /* @__PURE__ */ i(\n \"label\",\n {\n id: `${u}-label`,\n onClick: s ? void 0 : d,\n className: N(o && \"cursor-not-allowed\", !o && \"cursor-pointer\"),\n children: a\n }\n )\n }\n )\n ]\n }\n );\n}\nfunction wr(n, a) {\n const [t, r] = z(a), [e, o] = z(-1), [s, l] = z(!1), c = $((m, v) => {\n var y;\n const b = m[v];\n b.hasAttribute(\"disabled\") || b.getAttribute(\"aria-disabled\") === \"true\" || ((y = m[v]) == null || y.click(), o(v));\n }, []), f = $(\n (m, v) => {\n var h;\n if (m.preventDefault(), s || !v.length) return;\n const b = a !== -1 ? a : 0;\n (h = v[b]) == null || h.focus(), r(b), a !== -1 && c(v, b);\n },\n [a, s, c]\n ), u = $(\n (m) => {\n var y;\n if (!m.shiftKey)\n return;\n m.preventDefault();\n const v = Array.from(\n document.querySelectorAll(\n 'a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])'\n )\n ).filter((g) => !g.hasAttribute(\"disabled\") && g.tabIndex >= 0), b = v.findIndex((g) => g.id === n), h = b > 0 ? b - 1 : v.length - 1;\n (y = v[h]) == null || y.focus();\n },\n [n]\n ), d = $(\n (m, v) => {\n var w;\n if (!v.length) return;\n const b = m.target;\n if (!v.some((x) => x.id === b.id)) return;\n const y = t !== -1 ? t : 0;\n let g = y;\n switch (m.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n m.preventDefault(), g = y > 0 ? y - 1 : v.length - 1;\n break;\n case \"ArrowDown\":\n case \"ArrowRight\":\n m.preventDefault(), g = (y + 1) % v.length;\n break;\n // Select the option when the space key is pressed\n case \" \":\n m.preventDefault(), c(v, y);\n return;\n case \"Tab\":\n u(m);\n return;\n default:\n return;\n }\n (w = v[g]) == null || w.focus(), r(g), e !== -1 && c(v, g);\n },\n [t, e, u, c]\n ), p = $(() => {\n const m = document.querySelector(`[id=\"${n}\"][role=\"radiogroup\"]`);\n return m ? Array.from(m.querySelectorAll('[role=\"radio\"]')) : [];\n }, [n]);\n I(() => {\n const m = document.querySelector(`[id=\"${n}\"][role=\"radiogroup\"]`);\n if (!m) return;\n const v = p(), b = (w) => f(w, v), h = (w) => d(w, v), y = () => l(!0), g = () => l(!1);\n return document.addEventListener(\"keydown\", h), m.addEventListener(\"focus\", b), m.addEventListener(\"mousedown\", y), document.addEventListener(\"mouseup\", g), () => {\n document.removeEventListener(\"keydown\", h), m.removeEventListener(\"focus\", b), m.removeEventListener(\"mousedown\", y), document.removeEventListener(\"mouseup\", g);\n };\n }, [n, p, f, d]);\n}\nfunction pn({\n options: n = [],\n value: a,\n onChange: t,\n id: r,\n children: e,\n className: o = \"\",\n childrenClassName: s = \"\",\n hideInputs: l = !1\n}) {\n const c = P(), f = r || `radio-group-${c}`;\n wr(\n f,\n n.findIndex((d) => d === a)\n );\n const u = _(() => n.reduce((d, p) => (typeof p == \"string\" ? d.some((m) => m.value === p) || d.push({ label: p, value: p }) : d.push(p), d), []), [n]);\n return /* @__PURE__ */ k(\"div\", { id: f, role: \"radiogroup\", tabIndex: 0, className: N(o, \"focus:outline-none\"), children: [\n u.length > 0 && u.map((d, p) => /* @__PURE__ */ i(\n ge,\n {\n value: d.value,\n isSelected: a === d.value,\n onChange: t,\n name: f,\n disabled: d.disabled,\n description: d.description,\n hideInput: l,\n className: s,\n children: d.label\n },\n `${d.value}-${p}`\n )),\n u.length === 0 && e && F.Children.map(e, (d) => F.isValidElement(d) && d.type === ge ? /* @__PURE__ */ i(\n ge,\n {\n ...d.props,\n className: N(s, d.props.className),\n hideInput: d.props.hideInput || l,\n isSelected: a === d.props.value,\n onChange: t,\n name: f,\n children: d.props.children\n }\n ) : null)\n ] });\n}\nfunction Nr(n) {\n const a = M(null), t = M(null), r = M(null), [e, o] = z(!1), [s, l] = z(!1), [c, f] = z({\n vertical: !1,\n horizontal: !1\n }), u = M(null), d = M(null), p = $(() => {\n const b = a.current;\n if (!b) return;\n const h = b.scrollHeight > b.clientHeight, y = b.scrollWidth > b.clientWidth;\n f({\n vertical: h,\n horizontal: y\n });\n }, []), m = $(() => {\n const b = a.current, h = t.current, y = r.current;\n if (b) {\n if (h && c.vertical) {\n const w = (c.horizontal ? b.clientHeight - n : b.clientHeight) / b.scrollHeight, x = Math.max(w * 100, 10), E = b.scrollHeight - b.clientHeight, D = E > 0 ? b.scrollTop / E : 0, C = 100 - x, S = D * C;\n h.style.height = `${x}%`, h.style.top = `${S}%`, h.style.transform = \"none\";\n }\n if (y && c.horizontal) {\n const w = (c.vertical ? b.clientWidth - n : b.clientWidth) / b.scrollWidth, x = Math.max(w * 100, 10), E = b.scrollWidth - b.clientWidth, D = E > 0 ? b.scrollLeft / E : 0, C = 100 - x, S = D * C;\n y.style.width = `${x}%`, y.style.left = `${S}%`, y.style.transform = \"none\";\n }\n }\n }, [c, n]), v = $(() => {\n u.current && clearTimeout(u.current), d.current && clearTimeout(d.current), o(!0), l(!1), m(), u.current = setTimeout(() => {\n l(!0), d.current = setTimeout(() => {\n o(!1), l(!1);\n }, 300);\n }, 1e3);\n }, [m]);\n return I(() => {\n const b = a.current;\n if (!b) return;\n p();\n const h = new ResizeObserver(p);\n h.observe(b);\n const y = new MutationObserver(p);\n return y.observe(b, {\n childList: !0,\n subtree: !0,\n attributes: !0\n }), () => {\n h.disconnect(), y.disconnect();\n };\n }, [p]), I(() => {\n m();\n }, [c, m]), I(() => () => {\n u.current && clearTimeout(u.current), d.current && clearTimeout(d.current);\n }, []), {\n viewportRef: a,\n verticalThumbRef: t,\n horizontalThumbRef: r,\n isScrolling: e,\n isFadingOut: s,\n scrollbarVisible: c,\n handleScroll: v\n };\n}\nfunction hn({\n className: n,\n thumbClassName: a,\n viewportClassName: t,\n scrollbarClassName: r,\n scrollbarThickness: e = 10,\n children: o,\n id: s,\n ref: l,\n ...c\n}) {\n const { viewportRef: f, verticalThumbRef: u, horizontalThumbRef: d, isScrolling: p, isFadingOut: m, scrollbarVisible: v, handleScroll: b } = Nr(e), h = V(\n \"relative flex-1 rounded-full bg-slate-400/60 hover:bg-slate-400/80 active:bg-slate-400\",\n a\n );\n return /* @__PURE__ */ k(\"div\", { ref: l, id: s, className: V(\"relative overflow-hidden\", n), \"data-scroll-area-root\": \"\", ...c, children: [\n /* @__PURE__ */ i(\n \"div\",\n {\n ref: f,\n className: V(\n \"h-full w-full overflow-auto rounded-[inherit] [scrollbar-width:none] [-ms-overflow-style:none] [&::-webkit-scrollbar]:hidden\",\n t\n ),\n onScroll: b,\n \"data-scroll-area-viewport\": \"\",\n children: o\n }\n ),\n v.vertical && (p || m) && /* @__PURE__ */ i(\n \"div\",\n {\n className: V(\n \"touch-none select-none transition-all duration-300\",\n \"p-[1px]\",\n \"absolute right-0 top-0\",\n m ? \"opacity-0\" : \"opacity-100\",\n r\n ),\n \"data-scroll-area-scrollbar\": \"vertical\",\n \"data-state\": p ? \"visible\" : \"hidden\",\n style: {\n width: `${e}px`,\n height: v.horizontal ? `calc(100% - ${e}px)` : \"100%\"\n },\n children: /* @__PURE__ */ i(\n \"div\",\n {\n ref: u,\n className: V(\"absolute rounded-full\", h),\n \"data-scroll-area-thumb\": \"\",\n style: { height: \"20%\", top: \"0%\", width: \"100%\" }\n }\n )\n }\n ),\n v.horizontal && (p || m) && /* @__PURE__ */ i(\n \"div\",\n {\n className: V(\n \"touch-none select-none transition-all duration-300\",\n \"p-[1px]\",\n \"absolute bottom-0 left-0\",\n m ? \"opacity-0\" : \"opacity-100\",\n r\n ),\n \"data-scroll-area-scrollbar\": \"horizontal\",\n \"data-state\": p ? \"visible\" : \"hidden\",\n style: {\n height: `${e}px`,\n width: v.vertical ? `calc(100% - ${e}px)` : \"100%\"\n },\n children: /* @__PURE__ */ i(\n \"div\",\n {\n ref: d,\n className: V(\"absolute rounded-full\", h),\n \"data-scroll-area-thumb\": \"\",\n style: { width: \"20%\", left: \"0%\", height: \"100%\" }\n }\n )\n }\n ),\n v.vertical && v.horizontal && /* @__PURE__ */ i(\n \"div\",\n {\n className: V(\"bg-transparent\", \"absolute bottom-0 right-0\"),\n \"data-scroll-area-corner\": \"\",\n style: {\n height: `${e}px`,\n width: `${e}px`\n }\n }\n )\n ] });\n}\nfunction Er(n) {\n const [a, t] = z(!1), [r, e] = z(!1);\n return I(() => {\n n ? (e(!0), setTimeout(() => t(!0), 10)) : (t(!1), setTimeout(() => e(!1), 150));\n }, [n]), { show: a, shouldRender: r };\n}\nfunction kr({\n isOpen: n,\n setIsOpen: a,\n filteredOptions: t,\n highlightedIndex: r,\n setHighlightedIndex: e,\n onSelect: o,\n triggerRef: s\n}) {\n return { handleKeyDown: $(\n (c) => {\n var f;\n switch (c.key) {\n case \"ArrowDown\":\n if (c.preventDefault(), !n)\n a(!0);\n else {\n const u = r < t.length - 1 ? r + 1 : 0;\n let d = u;\n for (let p = 0; p < t.length; p++) {\n const m = (u + p) % t.length;\n if (!t[m].disabled) {\n d = m;\n break;\n }\n }\n e(d);\n }\n break;\n case \"ArrowUp\":\n if (c.preventDefault(), !n)\n a(!0);\n else {\n const u = r > 0 ? r - 1 : t.length - 1;\n let d = u;\n for (let p = 0; p < t.length; p++) {\n const m = (u - p + t.length) % t.length;\n if (!t[m].disabled) {\n d = m;\n break;\n }\n }\n e(d);\n }\n break;\n case \"Enter\":\n case \" \":\n if (c.preventDefault(), !n)\n a(!0);\n else if (r >= 0 && r < t.length) {\n const u = t[r];\n u.disabled || o(u);\n }\n break;\n case \"Escape\":\n c.preventDefault(), n && (a(!1), (f = s.current) == null || f.focus());\n break;\n case \"Tab\":\n n && a(!1);\n break;\n }\n },\n [n, a, t, r, e, o, s]\n ) };\n}\nfunction Cr({\n isOpen: n,\n filteredOptions: a,\n selectedOption: t,\n shouldRender: r,\n optionsContainerRef: e\n}) {\n const [o, s] = z(-1), l = _(() => t ? a.findIndex((c) => c.value === t.value) : -1, [a, t]);\n return I(() => {\n n && a.length > 0 ? s(t && l >= 0 ? l : 0) : s(-1);\n }, [a, n, t, l]), I(() => {\n if (o >= 0 && e.current && r) {\n const c = () => {\n const f = e.current, u = f == null ? void 0 : f.querySelector(`[data-option-index=\"${o}\"]`);\n if (u) {\n const d = n && t && o === l ? \"auto\" : \"smooth\";\n u.scrollIntoView({\n behavior: d,\n block: \"nearest\"\n });\n }\n };\n n && r && t ? setTimeout(c, 10) : c();\n }\n }, [o, r, n, t, a, e, l]), { highlightedIndex: o, setHighlightedIndex: s };\n}\nconst Se = {\n sm: {\n trigger: \"px-2 py-1 text-sm\",\n options: \"px-2 py-2 text-xs\"\n },\n md: {\n trigger: \"px-3 py-2 text-base\",\n options: \"px-3 py-2.5 text-sm\"\n },\n lg: {\n trigger: \"px-4 py-3 text-lg\",\n options: \"px-4 py-3 text-base\"\n }\n};\nfunction bn({\n options: n,\n value: a,\n placeholder: t = \"Select an option...\",\n searchable: r = !1,\n disabled: e = !1,\n clearable: o = !1,\n size: s = \"md\",\n className: l,\n triggerClassName: c,\n dropdownClassName: f,\n id: u,\n ref: d,\n onChange: p,\n onSearch: m,\n searchPlaceholder: v = \"Search options...\"\n}) {\n const b = P(), y = `${u ?? b}-listbox`, g = (T) => `${y}-option-${T}`, [w, x] = z(!1), [E, D] = z(\"\"), C = M(null), S = M(null), L = M(null), B = M(null), { show: q, shouldRender: W } = Er(w), R = _(() => !r || !E ? n : n.filter(\n (T) => {\n var K;\n return T.text.toLowerCase().includes(E.toLowerCase()) || ((K = T.description) == null ? void 0 : K.toLowerCase().includes(E.toLowerCase()));\n }\n ), [n, r, E]), A = _(() => n.find((T) => T.value === a), [n, a]), { highlightedIndex: j, setHighlightedIndex: Z } = Cr({\n isOpen: w,\n filteredOptions: R,\n selectedOption: A,\n shouldRender: W,\n optionsContainerRef: B\n }), U = j >= 0 ? g(j) : void 0;\n I(() => {\n w && W && r && S.current && S.current.focus();\n }, [w, r, W]);\n const X = $(\n (T) => {\n var K;\n T.disabled || (p == null || p(T.value), x(!1), D(\"\"), (K = C.current) == null || K.focus());\n },\n [p]\n ), { handleKeyDown: G } = kr({\n isOpen: w,\n setIsOpen: x,\n filteredOptions: R,\n highlightedIndex: j,\n setHighlightedIndex: Z,\n onSelect: X,\n triggerRef: C\n });\n I(() => {\n if (!w)\n return;\n const T = (K) => {\n var re;\n L.current && !L.current.contains(K.target) && !((re = C.current) != null && re.contains(K.target)) && (x(!1), D(\"\"));\n };\n return document.addEventListener(\"mousedown\", T), () => document.removeEventListener(\"mousedown\", T);\n }, [w]);\n const O = () => {\n e || (x(!w), w || (D(\"\"), Z(-1)));\n }, fe = (T) => {\n T.disabled || (p == null || p(T.value), x(!1), D(\"\"));\n }, me = (T) => {\n const K = T.target.value;\n D(K), m == null || m(K), Z(-1);\n }, pe = (T) => {\n T.preventDefault(), T.stopPropagation(), p == null || p(\"\");\n };\n return /* @__PURE__ */ k(\n \"div\",\n {\n className: N(\"relative\", l),\n id: u,\n ref: d,\n \"data-select\": \"true\",\n \"data-value\": a,\n \"data-searchable\": r,\n \"data-disabled\": e,\n \"data-clearable\": o,\n children: [\n /* @__PURE__ */ k(\"div\", { className: \"relative\", children: [\n /* @__PURE__ */ k(\n \"button\",\n {\n ref: C,\n type: \"button\",\n className: N(\n \"flex items-center justify-between w-full text-left bg-inherit border border-border rounded-md transition-colors\",\n \"hover:border-primary focus:outline-none focus:border-primary focus:ring-1 focus:ring-primary\",\n e && \"opacity-50 cursor-not-allowed hover:border-border\",\n w && \"border-primary ring-1 ring-primary\",\n Se[s].trigger,\n c\n ),\n onClick: O,\n onKeyDown: G,\n disabled: e,\n \"aria-disabled\": e,\n \"aria-haspopup\": \"listbox\",\n \"aria-expanded\": w,\n \"aria-controls\": w ? y : void 0,\n \"aria-activedescendant\": w && !r ? U : void 0,\n \"aria-label\": A ? A.text : t,\n \"data-select-trigger\": \"true\",\n children: [\n /* @__PURE__ */ i(\"span\", { className: N(\"block truncate\", !A && \"opacity-70\"), children: A ? A.text : t }),\n /* @__PURE__ */ i(\"div\", { className: \"flex items-center ml-2\", children: /* @__PURE__ */ i(Te, { size: 16, className: N(\"transition-transform duration-200\", w && \"rotate-180\") }) })\n ]\n }\n ),\n o && A && /* @__PURE__ */ i(\n \"button\",\n {\n type: \"button\",\n onClick: pe,\n className: \"absolute right-8 top-1/2 -translate-y-1/2 p-0.5 rounded hover:bg-accent/20 transition-colors group z-10\",\n \"aria-label\": \"Clear selection\",\n \"data-select-clear\": \"true\",\n children: /* @__PURE__ */ i(oe, { size: 14, className: \"opacity-70 group-hover:opacity-100 transition-opacity\" })\n }\n )\n ] }),\n W && /* @__PURE__ */ k(\n \"div\",\n {\n ref: L,\n className: N(\n \"absolute z-50 w-full mt-1 bg-popover text-popover-foreground border border-border rounded-md shadow-lg transition-all duration-150\",\n q ? \"opacity-100 translate-y-0\" : \"opacity-0 -translate-y-2\",\n f\n ),\n id: y,\n role: \"listbox\",\n \"data-select-content\": \"true\",\n children: [\n r && /* @__PURE__ */ i(\"div\", { className: \"border-b border-border\", children: /* @__PURE__ */ i(\n \"input\",\n {\n ref: S,\n type: \"text\",\n value: E,\n onChange: me,\n onKeyDown: G,\n placeholder: v,\n className: \"w-full px-2 py-2 text-inherit focus:outline-none\",\n \"aria-autocomplete\": \"list\",\n \"aria-controls\": y,\n \"aria-activedescendant\": U,\n \"data-select-search\": \"true\"\n }\n ) }),\n /* @__PURE__ */ i(\"div\", { ref: B, className: \"max-h-60 overflow-auto\", children: R.length > 0 ? R.map((T, K) => /* @__PURE__ */ k(\n \"div\",\n {\n id: g(K),\n className: N(\n \"flex items-center cursor-pointer transition-colors\",\n \"hover:bg-accent/10 focus:bg-accent/10\",\n Se[s].options,\n T.disabled && \"opacity-50 cursor-not-allowed\",\n K === j && \"bg-accent/20\",\n a === T.value && \"bg-accent/30\"\n ),\n onClick: () => fe(T),\n role: \"option\",\n \"aria-selected\": a === T.value,\n \"aria-disabled\": T.disabled,\n \"data-select-option\": \"true\",\n \"data-value\": T.value,\n \"data-highlighted\": K === j,\n \"data-option-index\": K,\n children: [\n /* @__PURE__ */ k(\"div\", { className: \"flex-1 min-w-0\", children: [\n /* @__PURE__ */ i(\"div\", { className: \"font-medium\", children: T.text }),\n T.description && /* @__PURE__ */ i(\"div\", { className: \"text-xs opacity-70 mt-0.5\", children: T.description })\n ] }),\n a === T.value && /* @__PURE__ */ i(ye, { size: 16, className: \"ml-2 text-primary flex-shrink-0\" })\n ]\n },\n T.value\n )) : /* @__PURE__ */ i(\"div\", { className: \"px-3 py-2 text-sm opacity-70 text-center\", children: r && E ? \"No results found\" : \"No options available\" }) })\n ]\n }\n )\n ]\n }\n );\n}\nconst Sr = {\n thin: {\n horizontal: \"h-px\",\n vertical: \"w-px\"\n },\n medium: {\n horizontal: \"h-0.5\",\n vertical: \"w-0.5\"\n },\n thick: {\n horizontal: \"h-1\",\n vertical: \"w-1\"\n },\n \"extra-thick\": {\n horizontal: \"h-2\",\n vertical: \"w-2\"\n }\n}, zr = {\n horizontal: \"w-full\",\n vertical: \"min-h-4 h-full\"\n};\nfunction vn({\n orientation: n = \"horizontal\",\n decorative: a = !1,\n thickness: t = \"thin\",\n className: r,\n ...e\n}) {\n const o = N(\n \"shrink-0 bg-border\",\n zr[n],\n Sr[t][n],\n r\n );\n return /* @__PURE__ */ i(\n \"div\",\n {\n ...e,\n className: o,\n role: a ? \"presentation\" : \"separator\",\n \"aria-orientation\": a ? void 0 : n,\n \"aria-hidden\": a,\n \"data-orientation\": n,\n \"data-thickness\": t\n }\n );\n}\nconst ze = {\n shape: {\n rectangle: \"rounded-md min-h-1\",\n circle: \"rounded-full aspect-square min-h-1\",\n text: \"rounded-sm min-h-1 h-4\"\n },\n lineSpacing: {\n xs: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-6\"\n }\n};\nfunction gn({\n shape: n = \"rectangle\",\n lineSpacing: a = \"sm\",\n className: t,\n lines: r = 1,\n animate: e = !0,\n ref: o,\n ...s\n}) {\n const l = N(\"bg-muted/70\", e && \"animate-pulse\", ze.shape[n], t);\n return r > 1 ? /* @__PURE__ */ i(\n \"div\",\n {\n ref: o,\n className: ze.lineSpacing[a],\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"data-testid\": \"skeleton-container\",\n \"data-lines\": r,\n \"data-shape\": n,\n \"data-animate\": e,\n ...s,\n children: Array.from({ length: r }, (c, f) => /* @__PURE__ */ i(\n \"div\",\n {\n className: N(\n l,\n // Make last line shorter for a more natural text appearance\n f === r - 1 && \"w-3/4\"\n ),\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"data-testid\": \"skeleton-line\",\n \"data-line-index\": f\n },\n f\n ))\n }\n ) : /* @__PURE__ */ i(\n \"div\",\n {\n ref: o,\n className: l,\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"data-testid\": \"skeleton\",\n \"data-shape\": n,\n \"data-animate\": e,\n ...s\n }\n );\n}\nfunction xn({\n id: n,\n value: a,\n defaultValue: t = 0,\n onValueChange: r,\n min: e = 0,\n max: o = 100,\n step: s = 1,\n disabled: l = !1,\n trackClassName: c,\n rangeClassName: f,\n thumbClassName: u,\n className: d,\n ref: p,\n ariaLabel: m,\n ariaLabelledBy: v,\n ...b\n}) {\n const [h, y] = z(t), g = a !== void 0, w = g ? a : h, x = M(null), E = M(!1), D = M(0), C = $(\n (R) => {\n const A = Math.max(e, Math.min(o, R)), j = Math.round(A / s) * s;\n g || y(j), r == null || r(j);\n },\n [e, o, s, g, r]\n ), S = $(\n (R, A = !1) => {\n var X;\n const j = (X = x.current) == null ? void 0 : X.getBoundingClientRect();\n if (!j) return w;\n let Z = R.clientX;\n A && (Z = Z - D.current);\n const U = Math.max(0, Math.min(1, (Z - j.left) / j.width));\n return e + (o - e) * U;\n },\n [e, o, w]\n ), L = $(\n (R) => {\n if (l || R.target !== R.currentTarget) return;\n const A = S(R);\n C(A);\n },\n [l, S, C]\n ), B = $(\n (R) => {\n var X;\n if (l) return;\n R.stopPropagation(), E.current = !0;\n const A = (X = x.current) == null ? void 0 : X.getBoundingClientRect(), j = R.currentTarget.getBoundingClientRect();\n if (A && j) {\n const G = j.left + j.width / 2;\n D.current = R.clientX - G;\n }\n R.currentTarget.setPointerCapture(R.pointerId);\n const Z = (G) => {\n if (!E.current) return;\n const O = S(G, !0);\n C(O);\n }, U = (G) => {\n if (G.pointerId === R.pointerId) {\n E.current = !1, D.current = 0;\n try {\n R.currentTarget.releasePointerCapture(G.pointerId);\n } catch {\n }\n document.removeEventListener(\"pointermove\", Z), document.removeEventListener(\"pointerup\", U);\n }\n };\n document.addEventListener(\"pointermove\", Z), document.addEventListener(\"pointerup\", U);\n },\n [l, S, C]\n ), q = $(\n (R) => {\n if (l) return;\n let A = w;\n switch (R.key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n A = w + s;\n break;\n case \"ArrowLeft\":\n case \"ArrowDown\":\n A = w - s;\n break;\n case \"Home\":\n A = e;\n break;\n case \"End\":\n A = o;\n break;\n case \"PageUp\":\n A = w + s * 10;\n break;\n case \"PageDown\":\n A = w - s * 10;\n break;\n default:\n return;\n }\n R.preventDefault(), C(A);\n },\n [l, w, s, e, o, C]\n ), W = o === e ? 0 : (w - e) / (o - e) * 100;\n return /* @__PURE__ */ i(\n \"div\",\n {\n id: n,\n ref: p,\n className: V(\n \"relative flex items-center w-full touch-none select-none\",\n l && \"opacity-50 cursor-not-allowed\",\n d\n ),\n \"data-disabled\": l,\n \"data-value\": w,\n \"data-min\": e,\n \"data-max\": o,\n \"data-step\": s,\n ...b,\n children: /* @__PURE__ */ k(\n \"div\",\n {\n ref: x,\n className: V(\n \"relative h-1.5 w-full rounded-full bg-muted cursor-pointer\",\n l && \"cursor-not-allowed\",\n c\n ),\n onPointerDown: L,\n children: [\n /* @__PURE__ */ i(\n \"div\",\n {\n className: V(\n \"absolute h-full rounded-full pointer-events-none\",\n // pointer-events are disabled so that user interactions are handled by the track element, enabling correct slider behavior\n !E.current && \"transition-all\",\n f\n ),\n style: { width: `${W}%` }\n }\n ),\n /* @__PURE__ */ i(\n \"div\",\n {\n className: V(\n \"absolute size-5 -top-2 rounded-full shadow-md cursor-grab\",\n l && \"cursor-not-allowed\",\n !l && \"cursor-grab focus:outline-none focus:ring-2\",\n E.current ? \"cursor-grabbing scale-110\" : \"transition-all\",\n u\n ),\n style: { left: `calc(${W}% - 10px)` },\n tabIndex: l ? -1 : 0,\n role: \"slider\",\n \"aria-valuemin\": e,\n \"aria-valuemax\": o,\n \"aria-valuenow\": w,\n \"aria-label\": m,\n \"aria-labelledby\": v,\n \"aria-disabled\": l,\n onKeyDown: q,\n onPointerDown: B\n }\n )\n ]\n }\n )\n }\n );\n}\nfunction yn({ children: n, ref: a, ...t }) {\n if (He(n)) {\n let r = { ...t };\n return n.props && (r = { ...r, ...n.props }), _e(n, {\n ...r,\n ref: (e) => {\n typeof a == \"function\" ? a(e) : a && (a.current = e);\n }\n });\n }\n return Ae(\"div\", { ...t, ref: a }, n);\n}\nconst $r = ({ defaultValue: n, value: a, onValueChange: t } = {}) => {\n const [r, e] = z(n || \"\"), o = a !== void 0, s = o ? a : r, l = $((c) => {\n o || e(c), t == null || t(c);\n }, [o, t]);\n return {\n value: s,\n onValueChange: l\n };\n};\nfunction wn({\n defaultValue: n,\n value: a,\n onValueChange: t,\n tabsWidth: r = \"fit\",\n variant: e = \"underline\",\n className: o,\n children: s,\n ref: l,\n id: c,\n triggersClassName: f,\n contentClassName: u\n}) {\n const { value: d, onValueChange: p } = $r({\n defaultValue: n,\n value: a,\n onValueChange: t\n }), m = {\n selectedValue: d,\n onValueChange: p,\n tabsWidth: r,\n variant: e,\n triggersClassName: f,\n contentClassName: u\n };\n return /* @__PURE__ */ i(ot.Provider, { value: m, children: /* @__PURE__ */ i(\"div\", { id: c, ref: l, className: o, \"data-tabs-width\": r, \"data-variant\": e, children: s }) });\n}\nfunction Nn({ value: n, className: a, children: t, ref: r }) {\n const { selectedValue: e, contentClassName: o } = Ne(), s = e === n;\n return s ? /* @__PURE__ */ i(\n \"div\",\n {\n ref: r,\n role: \"tabpanel\",\n id: `tabs-content-${n}`,\n \"aria-labelledby\": `tabs-trigger-${n}`,\n \"data-state\": s ? \"active\" : \"inactive\",\n \"data-value\": n,\n className: N(\"mt-4 ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2\", o, a),\n tabIndex: 0,\n children: t\n }\n ) : null;\n}\nconst $e = {\n width: {\n fit: \"w-fit\",\n full: \"w-full *:flex-1\"\n },\n variant: {\n underline: \"border-b border-border\",\n pills: \"\",\n bordered: \"border border-border rounded-lg p-1\"\n }\n}, Ir = {\n underline: \"border-b-2 border-transparent data-[state=active]:border-accent data-[state=active]:text-accent hover:text-accent-foreground\",\n pills: \"rounded-md data-[state=active]:bg-accent data-[state=active]:text-accent-foreground hover:bg-accent/30\",\n bordered: \"rounded data-[state=active]:bg-accent data-[state=active]:text-accent-foreground hover:bg-accent/30\"\n};\nfunction En({ children: n, className: a, id: t, ref: r }) {\n const { tabsWidth: e, variant: o } = Ne();\n return /* @__PURE__ */ i(\n \"div\",\n {\n id: t,\n ref: r,\n role: \"tablist\",\n className: N(\"flex\", $e.width[e], $e.variant[o], a),\n \"data-tabs-width\": e,\n \"data-variant\": o,\n children: n\n }\n );\n}\nfunction kn({ value: n, disabled: a = !1, className: t, children: r, onClick: e, id: o, ref: s }) {\n const { selectedValue: l, onValueChange: c, variant: f, triggersClassName: u } = Ne(), d = l === n, p = (v) => {\n a || c(n), e == null || e(v);\n };\n return /* @__PURE__ */ i(\n \"button\",\n {\n id: o,\n ref: s,\n role: \"tab\",\n type: \"button\",\n \"aria-selected\": d,\n \"aria-controls\": `tabs-content-${n}`,\n \"data-state\": d ? \"active\" : \"inactive\",\n \"data-value\": n,\n disabled: a,\n className: N(\n \"inline-flex items-center justify-center whitespace-nowrap px-3 py-2 text-sm ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n d ? \"font-medium\" : \"font-light\",\n Ir[f],\n u,\n t\n ),\n onClick: p,\n children: r\n }\n );\n}\nfunction Dr({ elementId: n, maxLength: a }) {\n const [t, r] = z(0);\n return I(() => {\n const e = document.getElementById(n);\n if (!e)\n return;\n const o = () => {\n const s = e.value.length;\n r(s);\n const l = s >= a;\n e.setAttribute(\"aria-describedby\", `${n}-character-count`), e.setAttribute(\"aria-invalid\", l ? \"true\" : \"false\"), l ? e.setAttribute(\"data-error\", \"true\") : e.removeAttribute(\"data-error\");\n };\n return o(), e.addEventListener(\"input\", o), e.setAttribute(\"maxlength\", String(a)), () => {\n e.removeEventListener(\"input\", o), e.removeAttribute(\"maxlength\"), e.removeAttribute(\"aria-describedby\"), e.removeAttribute(\"aria-invalid\"), e.removeAttribute(\"data-error\");\n };\n }, [n, a]), /* @__PURE__ */ i(\n \"small\",\n {\n className: N(\n \"mt-0.5 text-sm inline-flex items-center gap-1 w-full justify-end\",\n t >= a && \"text-destructive\",\n t < a && \"text-current\"\n ),\n role: \"status\",\n children: /* @__PURE__ */ k(\"span\", { id: `${n}-character-count`, children: [\n t,\n \" / \",\n a,\n \" characters\"\n ] })\n }\n );\n}\nfunction Ar(n, a) {\n I(() => {\n const t = document.getElementById(n);\n if (!t)\n return;\n if (!a) {\n t.style.height = \"auto\";\n return;\n }\n const r = () => {\n t.style.height = \"auto\", t.style.height = `${t.scrollHeight}px`;\n };\n return r(), t.addEventListener(\"input\", r), t.addEventListener(\"resize\", r), window.addEventListener(\"resize\", r), () => {\n t.removeEventListener(\"input\", r), t.removeEventListener(\"resize\", r), window.removeEventListener(\"resize\", r);\n };\n }, [n, a]);\n}\nconst Tr = {\n base: \"\",\n \"left-line\": \"border-l border-border focus:border-primary-foreground disabled:border-muted/30 not-disabled:data-error:border-destructive not-disabled:data-success:border-success\",\n outline: \"border border-border focus:border-primary-foreground disabled:border-muted/30 not-disabled:data-error:border-destructive not-disabled:data-success:border-success\"\n}, Rr = {\n none: \"rounded-none\",\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n full: \"px-3 rounded-full\"\n}, Ie = {\n variant: \"outline\",\n rounded: \"none\"\n};\nfunction Cn({\n variant: n = Ie.variant,\n rounded: a,\n displayOnlyMode: t = !1,\n errorMessage: r,\n successMessage: e,\n hideResizeHandle: o = !1,\n autoExpand: s = !1,\n characterLimit: l = 0,\n className: c,\n ...f\n}) {\n const u = P();\n Ar(u, s || t);\n let d = a;\n n === \"outline\" && !a && (d = \"md\"), d = d || Ie.rounded;\n let p = o;\n (t || n === \"left-line\" && !o) && (p = !0);\n const v = N(\n \"appearance-none w-full focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed placeholder:text-muted/70 hide-number-input-arrows transition-all\",\n !t && Tr[n],\n !t && Rr[d],\n !t && \"px-2 py-1\",\n t && \"pointer-events-none\",\n p && \"no-resize-handle\",\n c\n );\n return /* @__PURE__ */ k(\"div\", { className: N(\"-space-y-1.5\", t && \"cursor-text\"), children: [\n /* @__PURE__ */ i(\n \"textarea\",\n {\n ...f,\n id: u,\n \"aria-disabled\": f.disabled,\n readOnly: t,\n \"aria-readonly\": t || f[\"aria-readonly\"],\n style: {\n resize: s ? \"none\" : void 0\n },\n className: v\n }\n ),\n l > 0 && /* @__PURE__ */ i(Dr, { elementId: u, maxLength: l }),\n !t && /* @__PURE__ */ i(ue, { elementId: u, type: \"error\", message: r }),\n !t && /* @__PURE__ */ i(ue, { elementId: u, type: \"success\", message: e })\n ] });\n}\nconst Lr = {\n sm: {\n container: \"h-5 min-w-9 w-9\",\n thumb: \"h-4 w-4\",\n translate: \"translate-x-4\"\n },\n md: {\n container: \"h-6 min-w-11 w-11\",\n thumb: \"h-5 w-5\",\n translate: \"translate-x-5\"\n },\n lg: {\n container: \"h-7 min-w-13 w-13\",\n thumb: \"h-6 w-6\",\n translate: \"translate-x-6\"\n }\n}, Mr = {\n default: {\n unchecked: \"bg-muted\",\n checked: \"bg-primary\"\n },\n success: {\n unchecked: \"bg-muted\",\n checked: \"bg-success\"\n },\n destructive: {\n unchecked: \"bg-muted\",\n checked: \"bg-destructive\"\n }\n}, De = {\n variant: \"default\",\n size: \"md\"\n};\nfunction Sn({\n ref: n,\n id: a,\n size: t = De.size,\n variant: r = De.variant,\n checked: e,\n onCheckedChange: o,\n disabled: s = !1,\n className: l,\n thumbClassName: c,\n backgroundClassNames: f,\n ...u\n}) {\n const d = P(), p = _(() => a || `toggle-${d}`, [a, d]), [m, v] = z(e);\n I(() => {\n v(e);\n }, [e]);\n const b = () => {\n if (!s) {\n const E = !m;\n e === void 0 && v(E), o == null || o(E);\n }\n }, h = (E) => {\n (E.key === \" \" || E.key === \"Enter\") && (E.preventDefault(), b());\n }, y = Lr[t], g = Mr[r], w = N(\n // Base styles\n \"relative inline-flex items-center rounded-full transition-all duration-200 ease-in-out\",\n \"focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2\",\n // Size\n y.container,\n // Variant and state\n m ? (f == null ? void 0 : f.checked) || g.checked : (f == null ? void 0 : f.unchecked) || g.unchecked,\n // Disabled state\n s && \"opacity-50 cursor-not-allowed\",\n !s && \"cursor-pointer\",\n l\n ), x = N(\n // Base thumb styles\n \"absolute left-0.5 top-1/2 -translate-y-1/2 rounded-full bg-white shadow-sm transition-transform duration-200 ease-in-out\",\n // Size\n y.thumb,\n // Position based on state\n m && y.translate,\n c\n );\n return /* @__PURE__ */ k(\n \"button\",\n {\n ref: n,\n id: p,\n type: \"button\",\n role: \"switch\",\n tabIndex: 0,\n \"aria-checked\": m,\n \"aria-disabled\": s,\n disabled: s,\n onClick: b,\n onKeyDown: h,\n className: w,\n ...u,\n children: [\n /* @__PURE__ */ i(\"span\", { className: x }),\n /* @__PURE__ */ i(\"span\", { className: \"sr-only\", children: m ? \"Enabled\" : \"Disabled\" })\n ]\n }\n );\n}\nconst le = 8, ce = 4, Y = 6;\nfunction Br(n) {\n return { calculatePosition: $(\n (t, r) => {\n const e = t.getBoundingClientRect(), o = r.getBoundingClientRect(), s = {\n width: window.innerWidth,\n height: window.innerHeight\n }, l = (p, m, v, b) => p < 0 || m < 0 || p + v > s.width || m + b > s.height, c = {\n top: {\n x: e.left + e.width / 2 - o.width / 2,\n y: e.top - o.height - ce,\n arrow: {\n x: o.width / 2 - Y,\n y: o.height\n }\n },\n bottom: {\n x: e.left + e.width / 2 - o.width / 2,\n y: e.bottom + ce,\n arrow: {\n x: o.width / 2 - Y,\n y: -6\n }\n },\n left: {\n x: e.left - o.width - ce,\n y: e.top + e.height / 2 - o.height / 2,\n arrow: {\n x: o.width,\n y: o.height / 2 - Y\n }\n },\n right: {\n x: e.right + ce,\n y: e.top + e.height / 2 - o.height / 2,\n arrow: {\n x: -6,\n y: o.height / 2 - Y\n }\n }\n };\n let f = n, u = c[n];\n if (l(u.x, u.y, o.width, o.height)) {\n const p = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n }, m = c[p[n]];\n if (!l(m.x, m.y, o.width, o.height))\n f = p[n], u = m;\n else {\n const v = [\"top\", \"bottom\", \"left\", \"right\"].filter(\n (b) => b !== n && b !== p[n]\n );\n for (const b of v) {\n const h = c[b];\n if (!l(h.x, h.y, o.width, o.height)) {\n f = b, u = h;\n break;\n }\n }\n }\n }\n u.x = Math.max(\n le,\n Math.min(u.x, s.width - o.width - le)\n ), u.y = Math.max(\n le,\n Math.min(u.y, s.height - o.height - le)\n );\n const d = {\n x: e.left + e.width / 2,\n y: e.top + e.height / 2\n };\n return f === \"top\" || f === \"bottom\" ? u.arrow.x = Math.max(\n Y,\n Math.min(d.x - u.x - Y, o.width - Y * 2)\n ) : u.arrow.y = Math.max(\n Y,\n Math.min(d.y - u.y - Y, o.height - Y * 2)\n ), {\n ...u,\n placement: f\n };\n },\n [n]\n ) };\n}\nfunction Vr(n, a, t) {\n const r = M(null), e = M(null), o = $(() => {\n if (!r.current || !e.current) return;\n const s = n(r.current, e.current);\n t(s);\n }, [n, t]);\n return I(() => {\n if (!a) return;\n const s = () => o();\n return window.addEventListener(\"resize\", s), () => {\n window.removeEventListener(\"resize\", s);\n };\n }, [a, o]), {\n triggerRef: r,\n tooltipRef: e,\n updatePosition: o\n };\n}\nfunction jr(n, a, t, r, e, o, s, l, c) {\n const f = M(null), u = $(() => {\n n || (f.current && clearTimeout(f.current), f.current = window.setTimeout(() => {\n t(!0), requestAnimationFrame(() => {\n e(), r(!0);\n });\n }, a));\n }, [n, a, t, e, r]), d = $(\n (p = !1) => {\n if (f.current && clearTimeout(f.current), p) {\n r(!1), setTimeout(() => t(!1), 150);\n return;\n }\n f.current = window.setTimeout(() => {\n r(!1), setTimeout(() => t(!1), 150);\n }, 100);\n },\n [r, t]\n );\n return I(() => {\n !o && !s && !l && c && d();\n }, [o, s, l, c, d]), I(() => () => {\n f.current && clearTimeout(f.current);\n }, []), {\n showTooltip: u,\n hideTooltip: d,\n timeoutRef: f\n };\n}\nfunction zn({\n id: n,\n children: a,\n message: t,\n placement: r = \"top\",\n disabled: e = !1,\n delay: o = 200,\n className: s\n}) {\n const [l, c] = z(!1), [f, u] = z(!1), [d, p] = z(null), [m, v] = z(!1), [b, h] = z(!1), [y, g] = z(!1), { calculatePosition: w } = Br(r), { triggerRef: x, tooltipRef: E, updatePosition: D } = Vr(w, f, p), { showTooltip: C, hideTooltip: S, timeoutRef: L } = jr(\n e,\n o,\n u,\n c,\n D,\n m,\n b,\n y,\n l\n ), B = P(), q = n ?? B;\n return /* @__PURE__ */ k(Q, { children: [\n F.cloneElement(a, {\n ref: (W) => {\n x.current = W;\n },\n onMouseEnter: () => {\n v(!0), C();\n },\n onMouseLeave: () => {\n v(!1);\n },\n onFocus: () => {\n g(!0), C();\n },\n onBlur: () => {\n g(!1), S(!0);\n },\n onKeyDown: (W) => {\n W.key === \"Escape\" && S(!0);\n },\n \"aria-describedby\": e ? void 0 : q\n }),\n f && ae(\n /* @__PURE__ */ i(\n \"div\",\n {\n ref: E,\n id: q,\n role: \"tooltip\",\n className: N(\n \"fixed z-50 px-2 py-1 text-sm rounded shadow-lg bg-popover text-popover-foreground pointer-events-auto transition-all duration-150 ease-out\",\n l ? \"opacity-100\" : \"opacity-0\",\n s\n ),\n style: d ? { left: d.x, top: d.y } : { opacity: 0 },\n onMouseEnter: () => {\n h(!0), L.current && clearTimeout(L.current);\n },\n onMouseLeave: () => {\n h(!1);\n },\n children: t\n }\n ),\n document.body\n )\n ] });\n}\nexport {\n Ur as Accordion,\n he as AccordionItem,\n Dn as ActionModal,\n Yr as Badge,\n ht as Button,\n Xr as Callout,\n Jr as Card,\n Qr as Carousel,\n Or as Checkbox,\n en as Clickable,\n tn as Code,\n rn as CodeBlock,\n nn as Disclosure,\n on as Drawer,\n an as DropdownMenu,\n sn as DropdownMenuFactories,\n ln as ErrorBoundary,\n cn as Input,\n dn as Label,\n ut as LoadingDots,\n un as Modal,\n fn as Pagination,\n mn as Panel,\n Yt as Popover,\n pn as RadioGroup,\n ge as RadioGroupItem,\n yr as RadioInput,\n hn as ScrollArea,\n bn as Select,\n vn as Separator,\n gn as Skeleton,\n xn as Slider,\n yn as Slot,\n wn as Tabs,\n Nn as TabsContent,\n En as TabsList,\n kn as TabsTrigger,\n Cn as Textarea,\n An as Toast,\n Sn as Toggle,\n zn as Tooltip\n};\n//# sourceMappingURL=components.esm.js.map\n","import { Modal, ModalProps } from '@moondreamsdev/dreamer-ui/components';\nimport React, { useMemo } from 'react';\n\ninterface BaseActionModalProps extends Omit<ModalProps, 'children' | 'actions'> {\n message: React.ReactNode;\n destructive?: boolean;\n}\n\ninterface AlertModalProps extends BaseActionModalProps {\n type: 'alert';\n confirmText?: string;\n onConfirm?: () => void;\n // Cancel-related props are not allowed for alerts\n cancelText?: never;\n}\n\ninterface ConfirmModalProps extends BaseActionModalProps {\n type: 'confirm';\n confirmText?: string;\n cancelText?: string;\n onConfirm?: () => void;\n}\n\nexport type ActionModalProps = AlertModalProps | ConfirmModalProps;\n\nexport function ActionModal({\n type,\n message,\n cancelText,\n confirmText,\n onConfirm,\n onClose,\n destructive = false,\n title,\n ...modalProps\n}: ActionModalProps) {\n const defaultTexts = useMemo(() => {\n if (type === 'confirm') {\n return {\n confirm: confirmText || 'Confirm',\n cancel: cancelText || 'Cancel',\n defaultTitle: title || 'Confirm Action',\n };\n }\n return {\n confirm: confirmText || 'OK',\n cancel: null,\n defaultTitle: title || 'Alert',\n };\n }, [type, confirmText, title, cancelText]);\n\n const actions: ModalProps['actions'] = useMemo(\n () => [\n ...(defaultTexts.cancel\n ? [\n {\n label: defaultTexts.cancel,\n variant: 'secondary' as const,\n onClick: onClose,\n },\n ]\n : []),\n {\n label: defaultTexts.confirm,\n variant: destructive ? 'destructive' : 'primary',\n onClick: () => {\n onConfirm?.();\n onClose();\n },\n },\n ],\n [defaultTexts, destructive, onConfirm, onClose]\n );\n\n return (\n <Modal\n {...modalProps}\n title={title || defaultTexts.defaultTitle}\n onClose={onClose}\n actions={actions}\n disableCloseOnOverlayClick={type === 'confirm'}\n hideCloseButton={type === 'confirm'}\n >\n {typeof message === 'string' ? <p className='text-sm'>{message}</p> : message}\n </Modal>\n );\n}\n","import { createContext, useContext } from 'react';\n\nexport interface DropdownMenuContextFocus {\n level: number;\n index: number;\n}\n\nexport interface DropdownMenuContextValue {\n id: string;\n focus: DropdownMenuContextFocus | null;\n setFocus: (focus: DropdownMenuContextFocus | null) => void;\n isOpen: boolean;\n onItemSelect: (value: string) => void;\n onClose: () => void;\n className?: string;\n}\n\nexport const DropdownMenuContext = createContext<DropdownMenuContextValue | null>(null);\n\nexport const useDropdownMenuContext = () => {\n const context = useContext(DropdownMenuContext);\n if (!context) {\n throw new Error('DropdownMenu components must be used within a DropdownMenu component');\n }\n return context;\n};\n","import { createContext, useContext } from 'react';\nimport { TabsVariant, TabsWidth } from './variants';\n\nexport interface TabsContextValue {\n selectedValue: string;\n onValueChange: (value: string) => void;\n tabsWidth: TabsWidth;\n variant: TabsVariant;\n triggersClassName?: string;\n contentClassName?: string;\n}\n\nexport const TabsContext = createContext<TabsContextValue | null>(null);\n\nexport const useTabsContext = () => {\n const context = useContext(TabsContext);\n if (!context) {\n throw new Error('Tabs components must be used within a Tabs component');\n }\n return context;\n};\n","import { ReactNode, useCallback, useEffect, useState } from 'react';\nimport { CrossCircled, ExclamationTriangle, InfoCircled, X } from '../../symbols';\nimport { join } from '../../utils';\nexport type ToastType = 'info' | 'warning' | 'error';\n\nexport interface ToastAction {\n label: string;\n onClick: () => void;\n}\n\n/** Data for a toast notification */\nexport interface ToastData {\n id: string;\n title: string;\n description?: string;\n type?: ToastType;\n action?: ToastAction;\n duration?: number;\n onRemove?: (id: string) => void;\n}\n\ninterface ToastProps extends ToastData {\n customTypes?: Record<string, { className: string; icon?: ReactNode }>;\n customComponent?: React.ComponentType<ToastData>;\n}\n\nconst defaultTypeStyles: Record<ToastType, { className: string; icon: ReactNode }> = {\n info: {\n className: 'bg-blue-50 border-blue-200 text-blue-900 dark:bg-blue-800 dark:border-blue-950 dark:text-blue-100',\n icon: <InfoCircled size={20} />,\n },\n warning: {\n className:\n 'bg-yellow-50 border-yellow-200 text-yellow-900 dark:bg-yellow-800 dark:border-yellow-950 dark:text-yellow-100',\n icon: <ExclamationTriangle size={20} />,\n },\n error: {\n className: 'bg-red-50 border-red-200 text-red-900 dark:bg-red-800 dark:border-red-950 dark:text-red-100',\n icon: <CrossCircled size={20} />,\n },\n};\n\nexport function Toast({\n id,\n title,\n description,\n type = 'info',\n action,\n duration = 5000,\n onRemove,\n customTypes,\n customComponent: CustomComponent,\n}: ToastProps) {\n const [isExiting, setIsExiting] = useState(false);\n\n const handleRemove = useCallback(() => {\n setIsExiting(true);\n setTimeout(() => {\n onRemove?.(id);\n }, 150); // Match animation duration\n }, [id, onRemove]);\n\n useEffect(() => {\n if (duration > 0) {\n const timer = setTimeout(() => {\n handleRemove();\n }, duration);\n\n return () => clearTimeout(timer);\n }\n }, [duration, id, onRemove, handleRemove]);\n\n if (CustomComponent) {\n return (\n <CustomComponent\n id={id}\n title={title}\n description={description}\n type={type}\n action={action}\n duration={duration}\n onRemove={onRemove}\n />\n );\n }\n\n // Check custom types first, then fall back to default\n const typeStyle = customTypes?.[type] || defaultTypeStyles[type as ToastType] || defaultTypeStyles.info;\n\n return (\n <div\n role={type === 'error' ? 'alert' : 'status'}\n aria-live={type === 'error' ? undefined : 'polite'}\n className={join(\n 'relative flex items-start p-4 rounded-lg border shadow-lg transition-all duration-150 ease-in-out',\n action && 'pb-3',\n typeStyle.className,\n isExiting ? 'opacity-0 translate-x-full' : 'opacity-100 translate-x-0'\n )}\n >\n {/* Icon */}\n <div className='flex-shrink-0 mr-3'>{typeStyle.icon}</div>\n\n {/* Content */}\n <div className='flex-grow min-w-0'>\n <div className='font-medium text-sm leading-5'>{title}</div>\n {description && <div className='mt-1 text-sm opacity-90 leading-5'>{description}</div>}\n {action && (\n <div className='mt-1.5'>\n <button\n onClick={action.onClick}\n className='text-sm font-medium underline hover:no-underline focus:outline-none focus:ring-1 focus:ring-current rounded px-1 py-0.5 hover:cursor-pointer'\n >\n {action.label}\n </button>\n </div>\n )}\n </div>\n\n {/* Close button */}\n <button\n onClick={handleRemove}\n className='flex-shrink-0 ml-3 p-1 rounded-md hover:bg-black/10 dark:hover:bg-white/10 focus:outline-none focus:ring-1 focus:ring-current leading-0'\n >\n <X size={16} />\n </button>\n </div>\n );\n}\n"],"names":["n","t","s","h","C","l","i","e","N","ut","a","z","I","r","ft","mt","pt","ve","ht","o","c","f","k","ur","fr","mr","M","$","un","u","d","p","m","P","v","b","y","g","F","w","x","E","Q","ae","V","oe","ActionModal","type","message","cancelText","confirmText","onConfirm","onClose","destructive","title","modalProps","defaultTexts","useMemo","actions","jsx","Modal","DropdownMenuContext","createContext","useDropdownMenuContext","context","useContext","TabsContext","useTabsContext","defaultTypeStyles","InfoCircled","ExclamationTriangle","CrossCircled","Toast","id","description","action","duration","onRemove","customTypes","CustomComponent","isExiting","setIsExiting","useState","handleRemove","useCallback","useEffect","timer","typeStyle","jsxs","join","X"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- "use strict";const n=require("react/jsx-runtime"),e=require("react"),A=require("react-dom"),b=require("./X-CgjeP2OI.cjs"),S=require("./join-BVMUUvyP.cjs");function g(...t){return t.filter(r=>typeof r=="string"&&r).join(" ").trim()||void 0}function B({size:t=15,color:r="currentColor",className:o="inline",...l}){return n.jsx("svg",{...l,width:t,height:t,className:o,viewBox:"0 0 15 15",xmlns:"http://www.w3.org/2000/svg",children:n.jsx("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:r,fillRule:"evenodd",clipRule:"evenodd"})})}function p(...t){return t.filter(r=>typeof r=="string"&&r).join(" ").trim()||void 0}e.createContext(void 0);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(void 0);e.createContext(void 0);e.createContext(null);e.createContext(void 0);e.createContext(void 0);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);e.createContext(null);function I(){const[t,r]=e.useState(0);return e.useEffect(()=>{const o=setInterval(()=>{r(l=>(l+1)%3)},500);return()=>clearInterval(o)},[]),n.jsx("div",{className:"absolute inset-0 inline-flex items-center justify-center gap-x-2 align-middle",children:[0,1,2].map(o=>n.jsx("div",{className:g("rounded-full transition-all duration-500 ease-in-out size-[0.35em] bg-current",t===o&&"transform -translate-y-1")},o))})}const O={base:"",primary:"bg-primary text-primary-foreground hover:bg-primary/85 disabled:bg-muted disabled:text-muted-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/85 disabled:bg-muted/80 disabled:text-muted-foreground/80",tertiary:"text-primary hover:text-primary-foreground disabled:text-muted",outline:"border border-primary text-primary hover:border-primary-foreground hover:text-primary-foreground disabled:border-muted disabled:text-muted",link:"underline-offset-4 hover:underline disabled:underline disabled:text-muted",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/85 disabled:bg-muted disabled:text-muted-foreground"},$={stripped:"",fitted:"size-fit",sm:"px-2 py-1 text-sm",md:"px-4 py-2 text-base",lg:"px-6 py-3 text-lg",icon:"p-1 w-fit aspect-square",full:"p-2 w-full"},F={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",full:"rounded-full"},v={variant:"primary",size:"md",rounded:"md"};function H({variant:t=v.variant,size:r,rounded:o=v.rounded,loading:l,className:c,...a}){let s;t==="link"&&!r?s="fitted":s=r||v.size;const u=g("appearance-none focus:outline-none focus:ring not-disabled:hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed transition-all",O[t],$[s],F[o],l&&"relative pointer-events-none",c);if(a.href&&!a.disabled)return n.jsx("a",{...a,rel:a.rel?a.rel:a.target==="_blank"?"noopener noreferrer":void 0,"aria-label":a["aria-label"],"aria-description":a["aria-description"],href:a.href,className:u,children:a.children});const i=a;return n.jsxs("button",{...i,"aria-label":i["aria-label"],"aria-description":i["aria-description"],"aria-disabled":i.disabled||l,"aria-busy":l,type:i.type??"button",className:u,children:[l&&n.jsx(I,{}),n.jsx("span",{className:g(l&&"invisible"),children:i.children})]})}function X(t){const[r,o]=e.useState(!1),[l,c]=e.useState(!1);return e.useEffect(()=>{t?(c(!0),setTimeout(()=>o(!0),10)):(o(!1),setTimeout(()=>c(!1),150))},[t]),{show:r,shouldRender:l}}function K(t,r){e.useEffect(()=>{const o=l=>{l.key==="Escape"&&t&&r()};return document.addEventListener("keydown",o),t&&(document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",o),document.body.style.overflow="auto"}},[t,r])}function P(t,r){const o=e.useRef(null),l=e.useCallback(()=>{const c=document.getElementById(t);if(!c)return;const a=c.querySelectorAll('[data-modal-action="true"]');if(a.length>0){a[0].focus();return}const s=c.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(s.length>0){const u=Array.from(s).filter(i=>!(i instanceof HTMLButtonElement&&i.getAttribute("data-modal-close-button")==="true"));if(u.length>0){u[0].focus();return}s[0].focus();return}c.focus()},[t]);e.useEffect(()=>(r&&(o.current=document.activeElement,l()),()=>{document.body.style.overflow="auto",o.current instanceof HTMLElement&&o.current.focus()}),[r,l])}function V({id:t,isOpen:r,onClose:o,title:l,children:c,contentOnly:a=!1,className:s,overlayClassName:u,hideCloseButton:i=!1,actions:d=[],disableCloseOnOverlayClick:x=!1,ariaLabelledBy:C,ariaDescribedBy:f}){const m=e.useId(),y=t||`modal-${m}`,w=t?`${t}-title`:`modal-title-${m}`,{show:E,shouldRender:h}=X(r);if(P(y,h),K(h,o),!h)return null;const T=()=>l?e.isValidElement(l)?n.jsx("div",{className:"mb-4",children:l}):n.jsx("h2",{className:"mb-4 text-xl font-semibold",id:w,children:l}):null,L=()=>d.length===0?null:n.jsx("div",{className:"mt-6 not-sm:grid gap-y-2 sm:flex sm:justify-start sm:flex-row-reverse sm:gap-x-3",children:d.map((M,z)=>{const{label:D,...q}=M;return n.jsx(H,{...q,"data-modal-action":"true",children:D},z)})});return n.jsx(n.Fragment,{children:A.createPortal(n.jsx("div",{"aria-labelledby":C??l?w:void 0,"aria-describedby":f,role:"dialog","aria-modal":"true",className:"fixed inset-0 z-[100] overflow-y-auto",children:n.jsxs("div",{className:"flex min-h-screen items-center justify-center p-4",children:[n.jsx("div",{className:p("fixed inset-0 bg-black/20 transition-all",u),onClick:()=>{x||o()}}),a&&n.jsx("div",{className:p("relative w-fit",s),children:c}),!a&&n.jsxs("div",{id:y,tabIndex:-1,className:p("relative w-full max-w-xl transform rounded-lg shadow-xl bg-popover text-popover-foreground transition-all p-6 focus:ring ease-in duration-75",E?"opacity-100 scale-100":"opacity-0 scale-90",s),children:[!i&&n.jsx("button",{type:"button",onClick:o,"data-modal-close-button":"true",className:"rounded-md p-0.5 top-2.5 right-2.5 absolute opacity-80 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-gray-500 leading-0",children:n.jsx(B,{size:18})}),T(),c,L()]})]})}),document.body)})}function Z({type:t,message:r,cancelText:o,confirmText:l,onConfirm:c,onClose:a,destructive:s=!1,title:u,...i}){const d=e.useMemo(()=>t==="confirm"?{confirm:l||"Confirm",cancel:o||"Cancel",defaultTitle:u||"Confirm Action"}:{confirm:l||"OK",cancel:null,defaultTitle:u||"Alert"},[t,l,u,o]),x=e.useMemo(()=>[...d.cancel?[{label:d.cancel,variant:"secondary",onClick:a}]:[],{label:d.confirm,variant:s?"destructive":"primary",onClick:()=>{c==null||c(),a()}}],[d,s,c,a]);return n.jsx(V,{...i,title:u||d.defaultTitle,onClose:a,actions:x,disableCloseOnOverlayClick:t==="confirm",hideCloseButton:t==="confirm",children:typeof r=="string"?n.jsx("p",{className:"text-sm",children:r}):r})}const N=e.createContext(null),_=()=>{const t=e.useContext(N);if(!t)throw new Error("DropdownMenu components must be used within a DropdownMenu component");return t},k=e.createContext(null),G=()=>{const t=e.useContext(k);if(!t)throw new Error("Tabs components must be used within a Tabs component");return t},j={info:{className:"bg-blue-50 border-blue-200 text-blue-900 dark:bg-blue-800 dark:border-blue-950 dark:text-blue-100",icon:n.jsx(b.InfoCircled,{size:20})},warning:{className:"bg-yellow-50 border-yellow-200 text-yellow-900 dark:bg-yellow-800 dark:border-yellow-950 dark:text-yellow-100",icon:n.jsx(b.ExclamationTriangle,{size:20})},error:{className:"bg-red-50 border-red-200 text-red-900 dark:bg-red-800 dark:border-red-950 dark:text-red-100",icon:n.jsx(b.CrossCircled,{size:20})}};function J({id:t,title:r,description:o,type:l="info",action:c,duration:a=5e3,onRemove:s,customTypes:u,customComponent:i}){const[d,x]=e.useState(!1),C=e.useCallback(()=>{x(!0),setTimeout(()=>{s==null||s(t)},150)},[t,s]);if(e.useEffect(()=>{if(a>0){const m=setTimeout(()=>{C()},a);return()=>clearTimeout(m)}},[a,t,s,C]),i)return n.jsx(i,{id:t,title:r,description:o,type:l,action:c,duration:a,onRemove:s});const f=(u==null?void 0:u[l])||j[l]||j.info;return n.jsxs("div",{role:l==="error"?"alert":"status","aria-live":l==="error"?void 0:"polite",className:S.join("relative flex items-start p-4 rounded-lg border shadow-lg transition-all duration-150 ease-in-out",c&&"pb-3",f.className,d?"opacity-0 translate-x-full":"opacity-100 translate-x-0"),children:[n.jsx("div",{className:"flex-shrink-0 mr-3",children:f.icon}),n.jsxs("div",{className:"flex-grow min-w-0",children:[n.jsx("div",{className:"font-medium text-sm leading-5",children:r}),o&&n.jsx("div",{className:"mt-1 text-sm opacity-90 leading-5",children:o}),c&&n.jsx("div",{className:"mt-1.5",children:n.jsx("button",{onClick:c.onClick,className:"text-sm font-medium underline hover:no-underline focus:outline-none focus:ring-1 focus:ring-current rounded px-1 py-0.5 hover:cursor-pointer",children:c.label})})]}),n.jsx("button",{onClick:C,className:"flex-shrink-0 ml-3 p-1 rounded-md hover:bg-black/10 dark:hover:bg-white/10 focus:outline-none focus:ring-1 focus:ring-current leading-0",children:n.jsx(b.X,{size:16})})]})}exports.ActionModal=Z;exports.DropdownMenuContext=N;exports.TabsContext=k;exports.Toast=J;exports.n=g;exports.useDropdownMenuContext=_;exports.useTabsContext=G;
2
- //# sourceMappingURL=Toast-wRAL8PRi.cjs.map