@moondreamsdev/dreamer-ui 1.7.7-test.2 → 1.7.7-test.21

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 (75) hide show
  1. package/README.md +13 -0
  2. package/dist/QuestionMarkCircled-BaSE7iv0.cjs +2 -0
  3. package/dist/QuestionMarkCircled-BaSE7iv0.cjs.map +1 -0
  4. package/dist/{QuestionMarkCircled-BVBF3skB.js → QuestionMarkCircled-CY81euqP.js} +119 -7
  5. package/dist/QuestionMarkCircled-CY81euqP.js.map +1 -0
  6. package/dist/Toast-B-Zu6Kp_.cjs +2 -0
  7. package/dist/Toast-B-Zu6Kp_.cjs.map +1 -0
  8. package/dist/{Toast-C5BwqBkw.js → Toast-BFQrI1bB.js} +129 -100
  9. package/dist/Toast-BFQrI1bB.js.map +1 -0
  10. package/dist/components.cjs.js +1 -1
  11. package/dist/components.cjs.js.map +1 -1
  12. package/dist/components.esm.js +2117 -684
  13. package/dist/components.esm.js.map +1 -1
  14. package/dist/providers.cjs.js +1 -1
  15. package/dist/providers.esm.js +1 -1
  16. package/dist/src/components/accordion/AccordionItem.d.ts +0 -1
  17. package/dist/src/components/carousel/Carousel.d.ts +46 -0
  18. package/dist/src/components/carousel/hooks.d.ts +20 -0
  19. package/dist/src/components/carousel/index.d.ts +2 -0
  20. package/dist/src/components/carousel/useScreenSize.d.ts +15 -0
  21. package/dist/src/components/carousel/variants.d.ts +36 -0
  22. package/dist/src/components/clickable/Clickable.d.ts +0 -1
  23. package/dist/src/components/index.d.ts +9 -0
  24. package/dist/src/components/label/Label.d.ts +2 -1
  25. package/dist/src/components/pagination/Pagination.d.ts +24 -0
  26. package/dist/src/components/pagination/index.d.ts +1 -0
  27. package/dist/src/components/pagination/variants.d.ts +15 -0
  28. package/dist/src/components/panel/Panel.d.ts +36 -0
  29. package/dist/src/components/panel/hooks.d.ts +6 -0
  30. package/dist/src/components/panel/index.d.ts +3 -0
  31. package/dist/src/components/panel/variants.d.ts +12 -0
  32. package/dist/src/components/radiogroup/RadioGroupItem.d.ts +0 -1
  33. package/dist/src/components/scroll-area/ScrollArea.d.ts +20 -0
  34. package/dist/src/components/scroll-area/hooks.d.ts +12 -0
  35. package/dist/src/components/scroll-area/index.d.ts +2 -0
  36. package/dist/src/components/select/Select.d.ts +22 -0
  37. package/dist/src/components/select/hooks.d.ts +35 -0
  38. package/dist/src/components/select/index.d.ts +2 -0
  39. package/dist/src/components/select/variants.d.ts +15 -0
  40. package/dist/src/components/separator/Separator.d.ts +15 -0
  41. package/dist/src/components/separator/index.d.ts +2 -0
  42. package/dist/src/components/separator/variants.d.ts +7 -0
  43. package/dist/src/components/skeleton/Skeleton.d.ts +13 -0
  44. package/dist/src/components/skeleton/index.d.ts +1 -0
  45. package/dist/src/components/skeleton/variants.d.ts +18 -0
  46. package/dist/src/components/slider/Slider.d.ts +33 -0
  47. package/dist/src/components/slider/hooks.d.ts +30 -0
  48. package/dist/src/components/slider/index.d.ts +2 -0
  49. package/dist/src/components/slider/variants.d.ts +49 -0
  50. package/dist/src/components/tabs/Tabs.d.ts +26 -0
  51. package/dist/src/components/tabs/TabsContent.d.ts +10 -0
  52. package/dist/src/components/tabs/TabsContext.d.ts +11 -0
  53. package/dist/src/components/tabs/TabsList.d.ts +7 -0
  54. package/dist/src/components/tabs/TabsTrigger.d.ts +15 -0
  55. package/dist/src/components/tabs/hooks.d.ts +9 -0
  56. package/dist/src/components/tabs/index.d.ts +4 -0
  57. package/dist/src/components/tabs/variants.d.ts +18 -0
  58. package/dist/src/components/tooltip/hooks.d.ts +0 -1
  59. package/dist/src/hooks/useActionModal.d.ts +0 -1
  60. package/dist/src/hooks/useToast.d.ts +0 -1
  61. package/dist/src/symbols/ChevronDoubleLeft.d.ts +2 -0
  62. package/dist/src/symbols/ChevronDoubleRight.d.ts +2 -0
  63. package/dist/src/symbols/ChevronLeft.d.ts +2 -0
  64. package/dist/src/symbols/ChevronRight.d.ts +2 -0
  65. package/dist/src/symbols/index.d.ts +4 -1
  66. package/dist/symbols.cjs.js +1 -1
  67. package/dist/symbols.esm.js +14 -10
  68. package/dist/theme.css +4 -0
  69. package/package.json +3 -3
  70. package/dist/QuestionMarkCircled-BVBF3skB.js.map +0 -1
  71. package/dist/QuestionMarkCircled-D5cHmQp1.cjs +0 -2
  72. package/dist/QuestionMarkCircled-D5cHmQp1.cjs.map +0 -1
  73. package/dist/Toast-C5BwqBkw.js.map +0 -1
  74. package/dist/Toast-FzI16Fnl.cjs +0 -2
  75. package/dist/Toast-FzI16Fnl.cjs.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"Toast-FzI16Fnl.cjs","sources":["utils.esm.js","X-aXWqJhiz.js","Toast-Bn0CCsLY.js","components.esm.js","../src/components/actionmodal/ActionModal.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 join\n};\n//# sourceMappingURL=utils.esm.js.map\n","import { jsx as e } from \"react/jsx-runtime\";\nfunction i({ size: C = 15, color: l = \"currentColor\" }) {\n return /* @__PURE__ */ e(\"svg\", { width: C, height: C, className: \"inline\", viewBox: \"0 0 15 15\", xmlns: \"http://www.w3.org/2000/svg\", 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}\nfunction r({ size: C = 15 }) {\n return /* @__PURE__ */ e(\"svg\", { width: C, height: C, className: \"inline\", viewBox: \"0 0 15 15\", xmlns: \"http://www.w3.org/2000/svg\", 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: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }\n ) });\n}\nfunction t({ size: C = 15, color: l = \"currentColor\" }) {\n return /* @__PURE__ */ e(\"svg\", { width: C, height: C, className: \"inline\", viewBox: \"0 0 15 15\", xmlns: \"http://www.w3.org/2000/svg\", 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}\nfunction o({ size: C = 15, color: l = \"currentColor\" }) {\n return /* @__PURE__ */ e(\"svg\", { width: C, height: C, className: \"inline\", viewBox: \"0 0 15 15\", xmlns: \"http://www.w3.org/2000/svg\", 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}\nexport {\n i as C,\n r as E,\n t as I,\n o as X\n};\n//# sourceMappingURL=X-aXWqJhiz.js.map\n","import { jsx as r, Fragment as M, jsxs as f } from \"react/jsx-runtime\";\nimport q, { createContext as $, useId as H, useState as p, useEffect as b, useRef as K, useCallback as E, useMemo as C } from \"react\";\nimport { createPortal as P } from \"react-dom\";\nimport { X as D, C as F, E as V, I as X } from \"./X-aXWqJhiz.js\";\nimport { join as Z } from \"./utils.esm.js\";\nfunction w(...e) {\n return e.filter((l) => typeof l == \"string\" && l).join(\" \").trim() || void 0;\n}\nfunction G({ size: e = 15, color: l = \"currentColor\" }) {\n return /* @__PURE__ */ r(\"svg\", { width: e, height: e, className: \"inline\", viewBox: \"0 0 15 15\", xmlns: \"http://www.w3.org/2000/svg\", children: /* @__PURE__ */ r(\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}\nfunction y(...e) {\n return e.filter((l) => typeof l == \"string\" && l).join(\" \").trim() || void 0;\n}\n$(void 0);\nfunction J() {\n const [e, l] = p(0);\n return b(() => {\n const n = setInterval(() => {\n l((t) => (t + 1) % 3);\n }, 500);\n return () => clearInterval(n);\n }, []), /* @__PURE__ */ r(\"div\", { className: \"absolute inset-0 inline-flex items-center justify-center gap-x-2 align-middle\", children: [0, 1, 2].map((n) => /* @__PURE__ */ r(\n \"div\",\n {\n className: w(\n \"rounded-full transition-all duration-500 ease-in-out size-[0.35em] bg-current\",\n e === n && \"transform -translate-y-1\"\n )\n },\n n\n )) });\n}\nconst Q = {\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}, R = {\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}, x = {\n variant: \"primary\",\n size: \"md\",\n rounded: \"md\"\n};\nfunction W({\n variant: e = x.variant,\n size: l,\n rounded: n = x.rounded,\n loading: t,\n linkTo: i,\n linkProps: a,\n type: o = \"button\",\n className: d,\n ...s\n}) {\n let c;\n e === \"link\" && !l ? c = \"fitted\" : c = l || x.size;\n const u = w(\n \"appearance-none focus:outline-none focus:ring not-disabled:hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed transition-all\",\n Q[e],\n R[c],\n U[n],\n t && \"relative pointer-events-none\",\n i && \"relative\",\n d\n );\n return /* @__PURE__ */ f(\n \"button\",\n {\n ...s,\n role: i ? \"link\" : s.role,\n \"aria-label\": s[\"aria-label\"] || (a == null ? void 0 : a[\"aria-label\"]),\n \"aria-description\": s[\"aria-description\"] || (a == null ? void 0 : a[\"aria-description\"]),\n \"aria-disabled\": s.disabled || t,\n \"aria-busy\": t,\n type: o,\n className: u,\n children: [\n t && /* @__PURE__ */ r(J, {}),\n /* @__PURE__ */ r(\"span\", { className: w(t && \"invisible\"), children: s.children }),\n i && !s.disabled && /* @__PURE__ */ r(\n \"a\",\n {\n ...a,\n \"aria-hidden\": !0,\n href: i,\n rel: (a == null ? void 0 : a.rel) || \"noreferrer\",\n className: \"absolute inset-0\"\n }\n )\n ]\n }\n );\n}\nfunction Y(e) {\n const [l, n] = p(!1), [t, i] = p(!1);\n return b(() => {\n e ? (i(!0), setTimeout(() => n(!0), 10)) : (n(!1), setTimeout(() => i(!1), 150));\n }, [e]), { show: l, shouldRender: t };\n}\nfunction _(e, l) {\n b(() => {\n const n = (t) => {\n t.key === \"Escape\" && e && l();\n };\n return document.addEventListener(\"keydown\", n), e && (document.body.style.overflow = \"hidden\"), () => {\n document.removeEventListener(\"keydown\", n), document.body.style.overflow = \"auto\";\n };\n }, [e, l]);\n}\nfunction ee(e, l) {\n const n = K(null), t = E(() => {\n const i = document.getElementById(e);\n if (!i) return;\n const a = i.querySelectorAll('[data-modal-action=\"true\"]');\n if (a.length > 0) {\n a[0].focus();\n return;\n }\n const o = i.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (o.length > 0) {\n const d = Array.from(o).filter((s) => !(s instanceof HTMLButtonElement && s.getAttribute(\"data-modal-close-button\") === \"true\"));\n if (d.length > 0) {\n d[0].focus();\n return;\n }\n o[0].focus();\n return;\n }\n i.focus();\n }, [e]);\n b(() => (l && (n.current = document.activeElement, t()), () => {\n document.body.style.overflow = \"auto\", n.current instanceof HTMLElement && n.current.focus();\n }), [l, t]);\n}\nfunction te({\n id: e,\n isOpen: l,\n onClose: n,\n title: t,\n children: i,\n contentOnly: a = !1,\n className: o,\n overlayClassName: d,\n hideCloseButton: s = !1,\n actions: c = [],\n disableCloseOnOverlayClick: u = !1,\n ariaLabelledBy: m,\n ariaDescribedBy: g\n}) {\n const h = H(), N = e || `modal-${h}`, k = e ? `${e}-title` : `modal-title-${h}`, { show: z, shouldRender: v } = Y(l);\n if (ee(N, v), _(v, n), !v) return null;\n const T = () => t ? q.isValidElement(t) ? /* @__PURE__ */ r(\"div\", { className: \"mb-4\", children: t }) : /* @__PURE__ */ r(\"h2\", { className: \"mb-4 text-xl font-semibold\", id: k, children: t }) : null, j = () => c.length === 0 ? null : /* @__PURE__ */ r(\"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((A, I) => {\n const { label: B, className: O, ...S } = A;\n return /* @__PURE__ */ r(W, { className: O, type: \"button\", ...S, \"data-modal-action\": \"true\", children: B }, I);\n }) });\n return /* @__PURE__ */ r(M, { children: P(\n /* @__PURE__ */ r(\n \"div\",\n {\n \"aria-labelledby\": m ?? t ? k : void 0,\n \"aria-describedby\": g,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n className: \"fixed inset-0 z-[100] overflow-y-auto\",\n children: /* @__PURE__ */ f(\"div\", { className: \"flex min-h-screen items-center justify-center p-4\", children: [\n /* @__PURE__ */ r(\n \"div\",\n {\n className: y(\"fixed inset-0 bg-black/20 transition-all\", d),\n onClick: () => {\n u || n();\n }\n }\n ),\n a && /* @__PURE__ */ r(\"div\", { className: y(\"relative w-fit\", o), children: i }),\n !a && /* @__PURE__ */ f(\n \"div\",\n {\n id: N,\n tabIndex: -1,\n className: y(\n \"relative w-full max-w-xl transform rounded-lg shadow-xl transition-all p-6 bg-inherit focus:ring ease-in duration-75\",\n z ? \"opacity-100 scale-100\" : \"opacity-0 scale-90\",\n o\n ),\n children: [\n !s && /* @__PURE__ */ r(\n \"button\",\n {\n type: \"button\",\n onClick: n,\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__ */ r(G, { size: 18 })\n }\n ),\n T(),\n i,\n j()\n ]\n }\n )\n ] })\n }\n ),\n document.body\n ) });\n}\nfunction oe({\n type: e,\n message: l,\n cancelText: n,\n confirmText: t,\n onConfirm: i,\n onClose: a,\n destructive: o = !1,\n title: d,\n ...s\n}) {\n const c = C(() => e === \"confirm\" ? {\n confirm: t || \"Confirm\",\n cancel: n || \"Cancel\",\n defaultTitle: d || \"Confirm Action\"\n } : {\n confirm: t || \"OK\",\n cancel: null,\n defaultTitle: d || \"Alert\"\n }, [e, t, d, n]), u = C(\n () => [\n ...c.cancel ? [\n {\n label: c.cancel,\n variant: \"secondary\",\n onClick: a\n }\n ] : [],\n {\n label: c.confirm,\n variant: o ? \"destructive\" : \"primary\",\n onClick: () => {\n i == null || i(), a();\n }\n }\n ],\n [c, o, i, a]\n );\n return /* @__PURE__ */ r(\n te,\n {\n ...s,\n title: d || c.defaultTitle,\n onClose: a,\n actions: u,\n disableCloseOnOverlayClick: e === \"confirm\",\n hideCloseButton: e === \"confirm\",\n children: typeof l == \"string\" ? /* @__PURE__ */ r(\"p\", { className: \"text-sm\", children: l }) : l\n }\n );\n}\nconst 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__ */ r(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__ */ r(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__ */ r(F, { size: 20 })\n }\n};\nfunction se({\n id: e,\n title: l,\n description: n,\n type: t = \"info\",\n action: i,\n duration: a = 5e3,\n onRemove: o,\n customTypes: d,\n customComponent: s\n}) {\n const [c, u] = p(!1), m = E(() => {\n u(!0), setTimeout(() => {\n o == null || o(e);\n }, 150);\n }, [e, o]);\n if (b(() => {\n if (a > 0) {\n const h = setTimeout(() => {\n m();\n }, a);\n return () => clearTimeout(h);\n }\n }, [a, e, o, m]), s)\n return /* @__PURE__ */ r(\n s,\n {\n id: e,\n title: l,\n description: n,\n type: t,\n action: i,\n duration: a,\n onRemove: o\n }\n );\n const g = (d == null ? void 0 : d[t]) || L[t] || L.info;\n return /* @__PURE__ */ f(\n \"div\",\n {\n role: t === \"error\" ? \"alert\" : \"status\",\n \"aria-live\": t === \"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 i && \"pb-3\",\n g.className,\n c ? \"opacity-0 translate-x-full\" : \"opacity-100 translate-x-0\"\n ),\n children: [\n /* @__PURE__ */ r(\"div\", { className: \"flex-shrink-0 mr-3\", children: g.icon }),\n /* @__PURE__ */ f(\"div\", { className: \"flex-grow min-w-0\", children: [\n /* @__PURE__ */ r(\"div\", { className: \"font-medium text-sm leading-5\", children: l }),\n n && /* @__PURE__ */ r(\"div\", { className: \"mt-1 text-sm opacity-90 leading-5\", children: n }),\n i && /* @__PURE__ */ r(\"div\", { className: \"mt-1.5\", children: /* @__PURE__ */ r(\n \"button\",\n {\n onClick: i.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: i.label\n }\n ) })\n ] }),\n /* @__PURE__ */ r(\n \"button\",\n {\n onClick: m,\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__ */ r(D, { size: 16 })\n }\n )\n ]\n }\n );\n}\nexport {\n oe as A,\n se as T,\n w as n\n};\n//# sourceMappingURL=Toast-Bn0CCsLY.js.map\n","import { jsxs as N, jsx as c, Fragment as X } from \"react/jsx-runtime\";\nimport T, { useId as $, useState as x, createElement as Z, useEffect as C, useCallback as A, useMemo as J, useRef as B, isValidElement as O, cloneElement as P } from \"react\";\nimport { join as w } from \"./utils.esm.js\";\nimport { b as ee, C as te, a as re, c as oe, E as ne, Q as ae } from \"./QuestionMarkCircled-B6xdNcJl.js\";\nimport { n as q } from \"./Toast-Bn0CCsLY.js\";\nimport { A as Xe, T as Ze } from \"./Toast-Bn0CCsLY.js\";\nimport { E as se, X as ie } from \"./X-aXWqJhiz.js\";\nimport { createPortal as Y } from \"react-dom\";\nfunction V({\n id: n,\n title: a,\n content: e,\n children: o,\n className: t = \"\",\n disabled: r = !1,\n isOpen: s = !1,\n onToggle: l,\n triggerClassName: d = \"\",\n bodyClassName: u = \"\"\n}) {\n const f = $(), i = n || `accordion-item-${f}`, g = `${i}-header`, b = `${i}-panel`, m = () => {\n !r && l && l();\n }, v = (h) => {\n (h.key === \"Enter\" || h.key === \" \") && (h.preventDefault(), m());\n };\n return /* @__PURE__ */ N(\"div\", { className: w(\"border-b border-gray-200\", r && \"opacity-60 cursor-not-allowed\", t), children: [\n /* @__PURE__ */ N(\n \"button\",\n {\n id: g,\n type: \"button\",\n className: w(\n \"w-full text-left py-3 px-4 flex justify-between items-center focus:outline focus:outline-secondary\",\n r ? \"cursor-not-allowed\" : \"hover:bg-gray-50/10 cursor-pointer\",\n d\n ),\n \"aria-expanded\": s,\n \"aria-controls\": b,\n disabled: r,\n onClick: m,\n onKeyDown: v,\n children: [\n /* @__PURE__ */ c(\"span\", { children: a }),\n /* @__PURE__ */ c(\n \"span\",\n {\n className: w(\n \"transform transition-transform duration-300 ease-linear\",\n s ? \"rotate-180\" : \"rotate-0\"\n ),\n \"aria-hidden\": \"true\",\n children: /* @__PURE__ */ c(ee, { size: 18 })\n }\n )\n ]\n }\n ),\n /* @__PURE__ */ c(\n \"div\",\n {\n id: b,\n role: \"region\",\n \"aria-labelledby\": g,\n className: w(\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 u\n ),\n children: s && (o || e)\n }\n )\n ] });\n}\nfunction je({\n id: n,\n items: a = [],\n children: e,\n className: o = \"\",\n itemClassName: t = \"\",\n allowMultiple: r = !1,\n defaultOpenItems: s = [],\n triggersClassName: l = \"\",\n bodiesClassName: d = \"\"\n}) {\n const u = $(), f = n || `accordion-group-${u}`, [i, g] = x(new Set(s)), b = (h) => {\n g((y) => {\n const p = new Set(y);\n return p.has(h) ? p.delete(h) : (r || p.clear(), p.add(h)), p;\n });\n }, m = (h) => `${u}-item-${h}`, v = (h) => i.has(h);\n return /* @__PURE__ */ N(\"div\", { id: f, className: o, children: [\n a.length > 0 && a.map((h, y) => {\n const p = h.id || m(y);\n return /* @__PURE__ */ c(\n V,\n {\n id: p,\n title: h.title,\n content: h.content,\n disabled: h.disabled,\n isOpen: v(p),\n onToggle: () => b(p),\n className: t,\n triggerClassName: l,\n bodyClassName: d\n },\n p\n );\n }),\n a.length === 0 && e && T.Children.map(e, (h, y) => {\n if (T.isValidElement(h) && h.type === V) {\n const p = h.props.id || m(y);\n return /* @__PURE__ */ Z(\n V,\n {\n ...h.props,\n key: p,\n id: p,\n className: w(t, h.props.className),\n isOpen: v(p),\n onToggle: () => b(p),\n triggerClassName: w(l, h.props.triggerClassName),\n bodyClassName: w(d, h.props.bodyClassName)\n }\n );\n }\n return null;\n })\n ] });\n}\nfunction le() {\n const [n, a] = x(0);\n return C(() => {\n const e = setInterval(() => {\n a((o) => (o + 1) % 3);\n }, 500);\n return () => clearInterval(e);\n }, []), /* @__PURE__ */ c(\"div\", { className: \"absolute inset-0 inline-flex items-center justify-center gap-x-2 align-middle\", children: [0, 1, 2].map((e) => /* @__PURE__ */ c(\n \"div\",\n {\n className: w(\n \"rounded-full transition-all duration-500 ease-in-out size-[0.35em] bg-current\",\n n === e && \"transform -translate-y-1\"\n )\n },\n e\n )) });\n}\nconst de = {\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}, ue = {\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}, ce = {\n none: \"rounded-none\",\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n full: \"rounded-full\"\n}, K = {\n variant: \"primary\",\n size: \"md\",\n rounded: \"md\"\n};\nfunction fe({\n variant: n = K.variant,\n size: a,\n rounded: e = K.rounded,\n loading: o,\n linkTo: t,\n linkProps: r,\n type: s = \"button\",\n className: l,\n ...d\n}) {\n let u;\n n === \"link\" && !a ? u = \"fitted\" : u = a || K.size;\n const i = w(\n \"appearance-none focus:outline-none focus:ring not-disabled:hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed transition-all\",\n de[n],\n ue[u],\n ce[e],\n o && \"relative pointer-events-none\",\n t && \"relative\",\n l\n );\n return /* @__PURE__ */ N(\n \"button\",\n {\n ...d,\n role: t ? \"link\" : d.role,\n \"aria-label\": d[\"aria-label\"] || (r == null ? void 0 : r[\"aria-label\"]),\n \"aria-description\": d[\"aria-description\"] || (r == null ? void 0 : r[\"aria-description\"]),\n \"aria-disabled\": d.disabled || o,\n \"aria-busy\": o,\n type: s,\n className: i,\n children: [\n o && /* @__PURE__ */ c(le, {}),\n /* @__PURE__ */ c(\"span\", { className: w(o && \"invisible\"), children: d.children }),\n t && !d.disabled && /* @__PURE__ */ c(\n \"a\",\n {\n ...r,\n \"aria-hidden\": !0,\n href: t,\n rel: (r == null ? void 0 : r.rel) || \"noreferrer\",\n className: \"absolute inset-0\"\n }\n )\n ]\n }\n );\n}\nfunction me(n) {\n const [a, e] = x(\"\"), o = A((t) => {\n let r = t, s = \"\";\n for (; r && !s; ) {\n const l = window.getComputedStyle(r).backgroundColor;\n l && l !== \"transparent\" && l !== \"rgba(0, 0, 0, 0)\" && (s = l), r = r.parentElement;\n }\n return s || \"transparent\";\n }, []);\n return C(() => {\n const t = document.getElementById(n);\n if (t) {\n const r = o(t.parentElement);\n e(r);\n }\n }, [n, o]), a;\n}\nfunction Fe({\n ref: n,\n id: a,\n size: e = 20,\n color: o,\n filled: t = !1,\n rounded: r = !0,\n checked: s = !1,\n onCheckedChange: l,\n disabled: d,\n className: u = \"\",\n ...f\n}) {\n const i = $(), g = J(() => a || `checkbox-${i}`, [a, i]), b = me(g), [m, v] = x(s);\n C(() => {\n v(s);\n }, [s]);\n const h = () => {\n d || (v(!m), l == null || l(!m));\n }, y = (E) => {\n E.key === \" \" && (E.preventDefault(), h());\n }, p = w(\n \"flex items-center justify-center border outline outline-transparent focus:outline-current focus:outline-offset-2\",\n r && \"rounded\",\n d && \"opacity-40 cursor-not-allowed\",\n !d && \"cursor-pointer\",\n u\n );\n return /* @__PURE__ */ c(\n \"button\",\n {\n id: g,\n type: \"button\",\n ref: n,\n tabIndex: 0,\n role: \"checkbox\",\n onClick: h,\n \"aria-checked\": m,\n \"aria-disabled\": d,\n onKeyDownCapture: y,\n style: {\n width: e,\n height: e,\n color: o,\n backgroundColor: m && t ? \"currentcolor\" : \"transparent\"\n },\n className: p,\n ...f,\n children: m && /* @__PURE__ */ c(te, { size: e, color: t ? b : void 0 })\n }\n );\n}\nfunction Se({\n children: n,\n className: a,\n linkTo: e,\n linkProps: o,\n onButtonClick: t,\n buttonProps: r,\n ...s\n}) {\n return e && t && console.warn('Clickable: Both \"linkTo\" and \"onButtonClick\" props are provided. Only \"linkTo\" will be used.'), /* @__PURE__ */ N(\"div\", { className: w(\"relative w-fit\", a), ...s, children: [\n n,\n e && /* @__PURE__ */ c(\n \"a\",\n {\n ...o,\n rel: (o == null ? void 0 : o.rel) || \"noreferrer\",\n href: e,\n className: w(\"absolute inset-0\", o == null ? void 0 : o.className)\n }\n ),\n !e && t && /* @__PURE__ */ c(\n \"button\",\n {\n ...r,\n type: \"button\",\n onClick: t,\n className: w(\"absolute inset-0 cursor-pointer\", r == null ? void 0 : r.className)\n }\n )\n ] });\n}\nfunction j({ elementId: n, type: a, message: e }) {\n return C(() => {\n const o = document.getElementById(n);\n if (o) {\n if (!e && a === \"error\") {\n o.removeAttribute(\"data-error\");\n return;\n }\n if (!e && a === \"success\") {\n o.removeAttribute(\"data-success\");\n return;\n }\n return o.setAttribute(\"aria-describedby\", `${n}-${a}-message`), o.setAttribute(\"aria-invalid\", a === \"error\" ? \"true\" : \"false\"), a === \"error\" && o.setAttribute(\"data-error\", \"true\"), a === \"success\" && o.setAttribute(\"data-success\", \"true\"), () => {\n o.removeAttribute(\"aria-describedby\"), o.removeAttribute(\"aria-invalid\"), o.removeAttribute(\"data-error\"), o.removeAttribute(\"data-success\");\n };\n }\n }, [n, a, e]), e ? /* @__PURE__ */ N(\n \"small\",\n {\n className: w(\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__ */ c(se, {}) : /* @__PURE__ */ c(re, {}),\n /* @__PURE__ */ c(\"span\", { id: `${n}-${a}-message`, children: e })\n ]\n }\n ) : null;\n}\nconst be = {\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}, he = {\n none: \"rounded-none\",\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n full: \"px-3 rounded-full\"\n}, _ = {\n variant: \"default\",\n rounded: \"none\"\n};\nfunction He({\n variant: n = _.variant,\n rounded: a,\n displayOnlyMode: e = !1,\n errorMessage: o,\n successMessage: t,\n type: r = \"text\",\n className: s,\n ...l\n}) {\n const d = $(), [u, f] = x(!1);\n let i = a;\n n === \"outline\" && !a && (i = \"md\"), i = i || _.rounded;\n const m = w(\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 !e && be[n],\n !e && he[i],\n r === \"password\" && \"pr-10\",\n !e && \"px-2 py-1\",\n e && \"pointer-events-none\",\n s\n );\n return /* @__PURE__ */ N(\"div\", { className: w(e && \"cursor-text\"), style: { height: l.height, width: l.width }, children: [\n /* @__PURE__ */ N(\"div\", { className: w(r === \"password\" && \"relative\"), children: [\n /* @__PURE__ */ c(\n \"input\",\n {\n ...l,\n id: d,\n type: r === \"password\" && u ? \"text\" : r,\n \"aria-disabled\": l.disabled,\n readOnly: e,\n \"aria-readonly\": e || l[\"aria-readonly\"],\n \"data-error\": o ? !0 : void 0,\n \"data-success\": t ? !0 : void 0,\n className: m\n }\n ),\n r === \"password\" && /* @__PURE__ */ c(\n \"button\",\n {\n onClick: () => f(!u),\n className: \"absolute inset-y-0 right-0 px-2 hover:cursor-pointer\",\n \"aria-label\": \"Toggle password visibility\",\n \"data-state\": u ? \"visible\" : \"hidden\",\n children: u ? /* @__PURE__ */ c(oe, { size: 20 }) : /* @__PURE__ */ c(ne, { size: 20 })\n }\n )\n ] }),\n !e && /* @__PURE__ */ c(j, { elementId: d, type: \"error\", message: o }),\n !e && /* @__PURE__ */ c(j, { elementId: d, type: \"success\", message: t })\n ] });\n}\nfunction qe({\n display: n = \"inline\",\n width: a = \"fit-content\",\n className: e = \"\",\n required: o,\n helpMessage: t,\n suffix: r,\n htmlFor: s,\n children: l,\n ...d\n}) {\n const u = $(), f = w(\"font-medium\", n, e), i = t ? `${s ?? u}-help` : void 0;\n return /* @__PURE__ */ N(\"div\", { style: { display: n === \"inline\" ? \"inline-flex\" : \"flex\", width: a }, className: \"relative\", children: [\n /* @__PURE__ */ N(\"label\", { className: f, htmlFor: s, ...d, children: [\n l,\n o && /* @__PURE__ */ c(\"span\", { className: \"text-red-500 font-medium ml-1\", \"aria-label\": \"required\", children: \"*\" })\n ] }),\n t && /* @__PURE__ */ c(\n \"span\",\n {\n className: \"text-gray-500 ml-1 size-fit -translate-y-1/3\",\n \"aria-describedby\": i,\n \"aria-label\": \"Help information\",\n title: t,\n children: /* @__PURE__ */ c(ae, {})\n }\n ),\n t && /* @__PURE__ */ c(\"div\", { id: i, className: \"sr-only\", children: t }),\n r && /* @__PURE__ */ c(\"span\", { className: \"ml-1\", children: r })\n ] });\n}\nfunction pe(n) {\n const [a, e] = x(!1), [o, t] = x(!1);\n return C(() => {\n n ? (t(!0), setTimeout(() => e(!0), 10)) : (e(!1), setTimeout(() => t(!1), 150));\n }, [n]), { show: a, shouldRender: o };\n}\nfunction ge(n, a) {\n C(() => {\n const e = (o) => {\n o.key === \"Escape\" && n && a();\n };\n return document.addEventListener(\"keydown\", e), n && (document.body.style.overflow = \"hidden\"), () => {\n document.removeEventListener(\"keydown\", e), document.body.style.overflow = \"auto\";\n };\n }, [n, a]);\n}\nfunction ve(n, a) {\n const e = B(null), o = A(() => {\n const t = document.getElementById(n);\n if (!t) return;\n const r = t.querySelectorAll('[data-modal-action=\"true\"]');\n if (r.length > 0) {\n r[0].focus();\n return;\n }\n const s = t.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (s.length > 0) {\n const l = Array.from(s).filter((d) => !(d instanceof HTMLButtonElement && d.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 t.focus();\n }, [n]);\n C(() => (a && (e.current = document.activeElement, o()), () => {\n document.body.style.overflow = \"auto\", e.current instanceof HTMLElement && e.current.focus();\n }), [a, o]);\n}\nfunction Ve({\n id: n,\n isOpen: a,\n onClose: e,\n title: o,\n children: t,\n contentOnly: r = !1,\n className: s,\n overlayClassName: l,\n hideCloseButton: d = !1,\n actions: u = [],\n disableCloseOnOverlayClick: f = !1,\n ariaLabelledBy: i,\n ariaDescribedBy: g\n}) {\n const b = $(), m = n || `modal-${b}`, v = n ? `${n}-title` : `modal-title-${b}`, { show: h, shouldRender: y } = pe(a);\n if (ve(m, y), ge(y, e), !y) return null;\n const p = () => o ? T.isValidElement(o) ? /* @__PURE__ */ c(\"div\", { className: \"mb-4\", children: o }) : /* @__PURE__ */ c(\"h2\", { className: \"mb-4 text-xl font-semibold\", id: v, children: o }) : null, E = () => u.length === 0 ? null : /* @__PURE__ */ c(\"div\", { className: \"mt-6 not-sm:grid gap-y-2 sm:flex sm:justify-start sm:flex-row-reverse sm:gap-x-3\", children: u.map((D, F) => {\n const { label: S, className: L, ...R } = D;\n return /* @__PURE__ */ c(fe, { className: L, type: \"button\", ...R, \"data-modal-action\": \"true\", children: S }, F);\n }) });\n return /* @__PURE__ */ c(X, { children: Y(\n /* @__PURE__ */ c(\n \"div\",\n {\n \"aria-labelledby\": i ?? o ? v : void 0,\n \"aria-describedby\": g,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n className: \"fixed inset-0 z-[100] overflow-y-auto\",\n children: /* @__PURE__ */ N(\"div\", { className: \"flex min-h-screen items-center justify-center p-4\", children: [\n /* @__PURE__ */ c(\n \"div\",\n {\n className: q(\"fixed inset-0 bg-black/20 transition-all\", l),\n onClick: () => {\n f || e();\n }\n }\n ),\n r && /* @__PURE__ */ c(\"div\", { className: q(\"relative w-fit\", s), children: t }),\n !r && /* @__PURE__ */ N(\n \"div\",\n {\n id: m,\n tabIndex: -1,\n className: q(\n \"relative w-full max-w-xl transform rounded-lg shadow-xl transition-all p-6 bg-inherit focus:ring ease-in duration-75\",\n h ? \"opacity-100 scale-100\" : \"opacity-0 scale-90\",\n s\n ),\n children: [\n !d && /* @__PURE__ */ c(\n \"button\",\n {\n type: \"button\",\n onClick: e,\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__ */ c(ie, { size: 18 })\n }\n ),\n p(),\n t,\n E()\n ]\n }\n )\n ] })\n }\n ),\n document.body\n ) });\n}\nfunction we({ itemId: n, checked: a, onChange: e, name: o, disabled: t = !1, className: r = \"\" }) {\n const s = \"relative inline-flex items-center justify-center rounded-full\", l = () => {\n t || e();\n }, d = w(\n s,\n !a && \"hover:border-current/60\",\n !t && \"border-current cursor-pointer\",\n t && \"border-muted/60 cursor-not-allowed\",\n r\n );\n return /* @__PURE__ */ c(\n \"div\",\n {\n id: n,\n role: \"radio\",\n tabIndex: -1,\n \"aria-checked\": a,\n \"aria-disabled\": t,\n \"aria-description\": `Radio button for ${o}`,\n \"aria-labelledby\": `${n}-label`,\n onClick: l,\n className: d,\n style: {\n width: \"1em\",\n height: \"1em\",\n padding: \"0.1em\",\n borderWidth: \"0.06em\"\n },\n children: a && /* @__PURE__ */ c(\n \"div\",\n {\n className: w(\"size-full aspect-square rounded-full\", t && \"bg-muted/60\", !t && \"bg-current\")\n }\n )\n }\n );\n}\nfunction G({\n value: n,\n children: a,\n className: e = \"\",\n isSelected: o = !1,\n onChange: t,\n disabled: r = !1,\n hideInput: s = !1,\n description: l,\n name: d\n}) {\n const f = `radio-${$()}-${n}`, i = () => {\n r || t == null || t(n);\n };\n return /* @__PURE__ */ N(\n \"div\",\n {\n title: l,\n className: w(\n \"relative flex items-center\",\n e,\n // Uses text color for borders\n s && `p-2 border-2 focus-within:border-dashed focus-within:${r ? \"border-current/50\" : \"border-current/80\"}`,\n s && !o && `border-transparent ${r ? \"\" : \"not-focus-within:hover:border-border/60\"}`,\n s && o && \"border-border\",\n r && \"opacity-60 cursor-not-allowed\"\n ),\n style: {\n gap: \"0.5em\"\n },\n children: [\n !s && /* @__PURE__ */ c(\n we,\n {\n itemId: f,\n name: d || \"\",\n checked: o,\n onChange: i,\n disabled: r,\n className: w(s && \"\")\n }\n ),\n /* @__PURE__ */ c(\n \"div\",\n {\n id: s ? f : void 0,\n tabIndex: s ? -1 : void 0,\n role: s ? \"radio\" : void 0,\n onClick: s ? i : void 0,\n \"aria-checked\": s ? o ? \"true\" : \"false\" : void 0,\n \"aria-disabled\": s ? r : void 0,\n \"aria-description\": s ? l || `Radio button for ${d}` : void 0,\n \"aria-labelledby\": s ? `${f}-label` : void 0,\n className: w(s && \"size-full\", typeof a == \"object\" && \"grow focus:outline-none\"),\n children: /* @__PURE__ */ c(\n \"label\",\n {\n id: `${f}-label`,\n onClick: s ? void 0 : i,\n className: w(r && \"cursor-not-allowed\", !r && \"cursor-pointer\"),\n children: a\n }\n )\n }\n )\n ]\n }\n );\n}\nfunction ye(n, a) {\n const [e, o] = x(a), [t, r] = x(-1), [s, l] = x(!1), d = A((b, m) => {\n var y;\n const v = b[m];\n v.hasAttribute(\"disabled\") || v.getAttribute(\"aria-disabled\") === \"true\" || ((y = b[m]) == null || y.click(), r(m));\n }, []), u = A(\n (b, m) => {\n var h;\n if (b.preventDefault(), s || !m.length) return;\n const v = a !== -1 ? a : 0;\n (h = m[v]) == null || h.focus(), o(v), a !== -1 && d(m, v);\n },\n [a, s, d]\n ), f = A(\n (b) => {\n var y;\n if (!b.shiftKey)\n return;\n b.preventDefault();\n const m = Array.from(\n document.querySelectorAll(\n 'a, button, input, textarea, select, details, [tabindex]:not([tabindex=\"-1\"])'\n )\n ).filter((p) => !p.hasAttribute(\"disabled\") && p.tabIndex >= 0), v = m.findIndex((p) => p.id === n), h = v > 0 ? v - 1 : m.length - 1;\n (y = m[h]) == null || y.focus();\n },\n [n]\n ), i = A(\n (b, m) => {\n var E;\n if (!m.length) return;\n const v = b.target;\n if (!m.some((D) => D.id === v.id)) return;\n const y = e !== -1 ? e : 0;\n let p = y;\n switch (b.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n b.preventDefault(), p = y > 0 ? y - 1 : m.length - 1;\n break;\n case \"ArrowDown\":\n case \"ArrowRight\":\n b.preventDefault(), p = (y + 1) % m.length;\n break;\n // Select the option when the space key is pressed\n case \" \":\n b.preventDefault(), d(m, y);\n return;\n case \"Tab\":\n f(b);\n return;\n default:\n return;\n }\n (E = m[p]) == null || E.focus(), o(p), t !== -1 && d(m, p);\n },\n [e, t, f, d]\n ), g = A(() => {\n const b = document.querySelector(`[id=\"${n}\"][role=\"radiogroup\"]`);\n return b ? Array.from(b.querySelectorAll('[role=\"radio\"]')) : [];\n }, [n]);\n C(() => {\n const b = document.querySelector(`[id=\"${n}\"][role=\"radiogroup\"]`);\n if (!b) return;\n const m = g(), v = (E) => u(E, m), h = (E) => i(E, m), y = () => l(!0), p = () => l(!1);\n return document.addEventListener(\"keydown\", h), b.addEventListener(\"focus\", v), b.addEventListener(\"mousedown\", y), document.addEventListener(\"mouseup\", p), () => {\n document.removeEventListener(\"keydown\", h), b.removeEventListener(\"focus\", v), b.removeEventListener(\"mousedown\", y), document.removeEventListener(\"mouseup\", p);\n };\n }, [n, g, u, i]);\n}\nfunction Ke({\n options: n = [],\n value: a,\n onChange: e,\n id: o,\n children: t,\n className: r = \"\",\n childrenClassName: s = \"\",\n hideInputs: l = !1\n}) {\n const d = $(), u = o || `radio-group-${d}`;\n ye(\n u,\n n.findIndex((i) => i === a)\n );\n const f = J(() => n.reduce((i, g) => (typeof g == \"string\" ? i.some((b) => b.value === g) || i.push({ label: g, value: g }) : i.push(g), i), []), [n]);\n return /* @__PURE__ */ N(\"div\", { id: u, role: \"radiogroup\", tabIndex: 0, className: w(r, \"focus:outline-none\"), children: [\n f.length > 0 && f.map((i, g) => /* @__PURE__ */ c(\n G,\n {\n value: i.value,\n isSelected: a === i.value,\n onChange: e,\n name: u,\n disabled: i.disabled,\n description: i.description,\n hideInput: l,\n className: s,\n children: i.label\n },\n `${i.value}-${g}`\n )),\n f.length === 0 && t && T.Children.map(t, (i) => T.isValidElement(i) && i.type === G ? /* @__PURE__ */ c(\n G,\n {\n ...i.props,\n className: w(s, i.props.className),\n hideInput: i.props.hideInput || l,\n isSelected: a === i.props.value,\n onChange: e,\n name: u,\n children: i.props.children\n }\n ) : null)\n ] });\n}\nfunction Ge({ children: n, ref: a, ...e }) {\n if (O(n)) {\n let o = { ...e };\n return n.props && (o = { ...o, ...n.props }), P(n, {\n ...o,\n ref: (t) => {\n typeof a == \"function\" ? a(t) : a && (a.current = t);\n }\n });\n }\n return Z(\"div\", { ...e, ref: a }, n);\n}\nfunction xe({ elementId: n, maxLength: a }) {\n const [e, o] = x(0);\n return C(() => {\n const t = document.getElementById(n);\n if (!t)\n return;\n const r = () => {\n const s = t.value.length;\n o(s);\n const l = s >= a;\n t.setAttribute(\"aria-describedby\", `${n}-character-count`), t.setAttribute(\"aria-invalid\", l ? \"true\" : \"false\"), l ? t.setAttribute(\"data-error\", \"true\") : t.removeAttribute(\"data-error\");\n };\n return r(), t.addEventListener(\"input\", r), t.setAttribute(\"maxlength\", String(a)), () => {\n t.removeEventListener(\"input\", r), t.removeAttribute(\"maxlength\"), t.removeAttribute(\"aria-describedby\"), t.removeAttribute(\"aria-invalid\"), t.removeAttribute(\"data-error\");\n };\n }, [n, a]), /* @__PURE__ */ c(\n \"small\",\n {\n className: w(\n \"mt-0.5 text-sm inline-flex items-center gap-1 w-full justify-end\",\n e >= a && \"text-destructive\",\n e < a && \"text-current\"\n ),\n role: \"status\",\n children: /* @__PURE__ */ N(\"span\", { id: `${n}-character-count`, children: [\n e,\n \" / \",\n a,\n \" characters\"\n ] })\n }\n );\n}\nfunction Ne(n, a) {\n C(() => {\n const e = document.getElementById(n);\n if (!e)\n return;\n if (!a) {\n e.style.height = \"auto\";\n return;\n }\n const o = () => {\n e.style.height = \"auto\", e.style.height = `${e.scrollHeight}px`;\n };\n return o(), e.addEventListener(\"input\", o), e.addEventListener(\"resize\", o), window.addEventListener(\"resize\", o), () => {\n e.removeEventListener(\"input\", o), e.removeEventListener(\"resize\", o), window.removeEventListener(\"resize\", o);\n };\n }, [n, a]);\n}\nconst Ee = {\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}, Ce = {\n none: \"rounded-none\",\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n full: \"px-3 rounded-full\"\n}, Q = {\n variant: \"outline\",\n rounded: \"none\"\n};\nfunction We({\n variant: n = Q.variant,\n rounded: a,\n displayOnlyMode: e = !1,\n errorMessage: o,\n successMessage: t,\n hideResizeHandle: r = !1,\n autoExpand: s = !1,\n characterLimit: l = 0,\n className: d,\n ...u\n}) {\n const f = $();\n Ne(f, s || e);\n let i = a;\n n === \"outline\" && !a && (i = \"md\"), i = i || Q.rounded;\n let g = r;\n (e || n === \"left-line\" && !r) && (g = !0);\n const m = w(\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 !e && Ee[n],\n !e && Ce[i],\n !e && \"px-2 py-1\",\n e && \"pointer-events-none\",\n g && \"no-resize-handle\",\n d\n );\n return /* @__PURE__ */ N(\"div\", { className: w(\"-space-y-1.5\", e && \"cursor-text\"), children: [\n /* @__PURE__ */ c(\n \"textarea\",\n {\n ...u,\n id: f,\n \"aria-disabled\": u.disabled,\n readOnly: e,\n \"aria-readonly\": e || u[\"aria-readonly\"],\n style: {\n resize: s ? \"none\" : void 0\n },\n className: m\n }\n ),\n l > 0 && /* @__PURE__ */ c(xe, { elementId: f, maxLength: l }),\n !e && /* @__PURE__ */ c(j, { elementId: f, type: \"error\", message: o }),\n !e && /* @__PURE__ */ c(j, { elementId: f, type: \"success\", message: t })\n ] });\n}\nconst k = 8, z = 4, I = 6;\nfunction Ae(n) {\n return { calculatePosition: A(\n (e, o) => {\n const t = e.getBoundingClientRect(), r = o.getBoundingClientRect(), s = {\n width: window.innerWidth,\n height: window.innerHeight\n }, l = (g, b, m, v) => g < 0 || b < 0 || g + m > s.width || b + v > s.height, d = {\n top: {\n x: t.left + t.width / 2 - r.width / 2,\n y: t.top - r.height - z,\n arrow: {\n x: r.width / 2 - I,\n y: r.height\n }\n },\n bottom: {\n x: t.left + t.width / 2 - r.width / 2,\n y: t.bottom + z,\n arrow: {\n x: r.width / 2 - I,\n y: -6\n }\n },\n left: {\n x: t.left - r.width - z,\n y: t.top + t.height / 2 - r.height / 2,\n arrow: {\n x: r.width,\n y: r.height / 2 - I\n }\n },\n right: {\n x: t.right + z,\n y: t.top + t.height / 2 - r.height / 2,\n arrow: {\n x: -6,\n y: r.height / 2 - I\n }\n }\n };\n let u = n, f = d[n];\n if (l(f.x, f.y, r.width, r.height)) {\n const g = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n }, b = d[g[n]];\n if (!l(b.x, b.y, r.width, r.height))\n u = g[n], f = b;\n else {\n const m = [\"top\", \"bottom\", \"left\", \"right\"].filter(\n (v) => v !== n && v !== g[n]\n );\n for (const v of m) {\n const h = d[v];\n if (!l(h.x, h.y, r.width, r.height)) {\n u = v, f = h;\n break;\n }\n }\n }\n }\n f.x = Math.max(\n k,\n Math.min(f.x, s.width - r.width - k)\n ), f.y = Math.max(\n k,\n Math.min(f.y, s.height - r.height - k)\n );\n const i = {\n x: t.left + t.width / 2,\n y: t.top + t.height / 2\n };\n return u === \"top\" || u === \"bottom\" ? f.arrow.x = Math.max(\n I,\n Math.min(i.x - f.x - I, r.width - I * 2)\n ) : f.arrow.y = Math.max(\n I,\n Math.min(i.y - f.y - I, r.height - I * 2)\n ), {\n ...f,\n placement: u\n };\n },\n [n]\n ) };\n}\nfunction Ie(n, a, e) {\n const o = B(null), t = B(null), r = A(() => {\n if (!o.current || !t.current) return;\n const s = n(o.current, t.current);\n e(s);\n }, [n, e]);\n return C(() => {\n if (!a) return;\n const s = () => r();\n return window.addEventListener(\"resize\", s), () => {\n window.removeEventListener(\"resize\", s);\n };\n }, [a, r]), {\n triggerRef: o,\n tooltipRef: t,\n updatePosition: r\n };\n}\nfunction $e(n, a, e, o, t, r, s, l, d) {\n const u = B(null), f = A(() => {\n n || (u.current && clearTimeout(u.current), u.current = window.setTimeout(() => {\n e(!0), requestAnimationFrame(() => {\n t(), o(!0);\n });\n }, a));\n }, [n, a, e, t, o]), i = A(\n (g = !1) => {\n if (u.current && clearTimeout(u.current), g) {\n o(!1), setTimeout(() => e(!1), 150);\n return;\n }\n u.current = window.setTimeout(() => {\n o(!1), setTimeout(() => e(!1), 150);\n }, 100);\n },\n [o, e]\n );\n return C(() => {\n !r && !s && !l && d && i();\n }, [r, s, l, d, i]), C(() => () => {\n u.current && clearTimeout(u.current);\n }, []), {\n showTooltip: f,\n hideTooltip: i,\n timeoutRef: u\n };\n}\nfunction Ue({\n id: n,\n children: a,\n message: e,\n placement: o = \"top\",\n disabled: t = !1,\n delay: r = 200,\n className: s\n}) {\n const [l, d] = x(!1), [u, f] = x(!1), [i, g] = x(null), [b, m] = x(!1), [v, h] = x(!1), [y, p] = x(!1), { calculatePosition: E } = Ae(o), { triggerRef: D, tooltipRef: F, updatePosition: S } = Ie(E, u, g), { showTooltip: L, hideTooltip: R, timeoutRef: W } = $e(\n t,\n r,\n f,\n d,\n S,\n b,\n v,\n y,\n l\n ), M = $(), U = n ?? M;\n return /* @__PURE__ */ N(X, { children: [\n T.cloneElement(a, {\n ref: (H) => {\n D.current = H;\n },\n onMouseEnter: () => {\n m(!0), L();\n },\n onMouseLeave: () => {\n m(!1);\n },\n onFocus: () => {\n p(!0), L();\n },\n onBlur: () => {\n p(!1), R(!0);\n },\n onKeyDown: (H) => {\n H.key === \"Escape\" && R(!0);\n },\n \"aria-describedby\": t ? void 0 : U\n }),\n u && Y(\n /* @__PURE__ */ c(\n \"div\",\n {\n ref: F,\n id: U,\n role: \"tooltip\",\n className: w(\n \"fixed z-50 px-2 py-1 text-sm rounded shadow-lg pointer-events-auto transition-all duration-150 ease-out\",\n l ? \"opacity-100\" : \"opacity-0\",\n s\n ),\n style: i ? { left: i.x, top: i.y } : { opacity: 0 },\n onMouseEnter: () => {\n h(!0), W.current && clearTimeout(W.current);\n },\n onMouseLeave: () => {\n h(!1);\n },\n children: e\n }\n ),\n document.body\n )\n ] });\n}\nexport {\n je as Accordion,\n V as AccordionItem,\n Xe as ActionModal,\n fe as Button,\n le as ButtonLoadingDots,\n Fe as Checkbox,\n Se as Clickable,\n He as Input,\n qe as Label,\n Ve as Modal,\n Ke as RadioGroup,\n G as RadioGroupItem,\n we as RadioInput,\n Ge as Slot,\n We as Textarea,\n Ze as Toast,\n Ue 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 { 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\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","s","o","C","e","w","$","le","a","x","c","de","ue","ce","K","fe","t","r","l","d","i","N","pe","ge","ve","B","A","Ve","g","b","m","v","h","y","p","T","D","F","S","L","R","X","Y","q","ie","ActionModal","type","message","cancelText","confirmText","onConfirm","onClose","destructive","title","modalProps","defaultTexts","useMemo","actions","jsx","Modal","defaultTypeStyles","InfoCircled","ExclamationTriangle","CrossCircled","Toast","id","description","action","duration","onRemove","customTypes","CustomComponent","isExiting","setIsExiting","useState","handleRemove","useCallback","useEffect","timer","typeStyle","jsxs","join"],"mappings":"sJAAA,SAASA,KAAK,EAAG,CACf,OAAO,EAAE,OAAQC,GAAM,OAAOA,GAAK,UAAYA,CAAC,EAAE,KAAK,GAAG,EAAE,KAAM,GAAI,MACxE,CCgCA,SAASC,EAAE,CAAE,KAAMC,EAAI,GAAI,MAAO,EAAI,gBAAkB,CACtD,OAAuBC,EAAAA,IAAE,MAAO,CAAE,MAAOD,EAAG,OAAQA,EAAG,UAAW,SAAU,QAAS,YAAa,MAAO,6BAA8B,SAA0BC,EAAC,IAChK,OACA,CACE,EAAG,0gBACH,KAAM,EACN,SAAU,UACV,SAAU,SAChB,CACA,EAAK,CACL,CCvCA,SAASC,KAAKD,EAAG,CACf,OAAOA,EAAE,OAAQ,GAAM,OAAO,GAAK,UAAY,CAAC,EAAE,KAAK,GAAG,EAAE,KAAM,GAAI,MACxE,CAeAE,EAAC,cAAC,MAAM,EC4GR,SAASC,GAAK,CACZ,KAAM,CAACP,EAAGQ,CAAC,EAAIC,EAAAA,SAAE,CAAC,EAClB,OAAON,EAAC,UAAC,IAAM,CACb,MAAMC,EAAI,YAAY,IAAM,CAC1BI,EAAGN,IAAOA,EAAI,GAAK,CAAC,CACrB,EAAE,GAAG,EACN,MAAO,IAAM,cAAcE,CAAC,CAChC,EAAK,CAAA,CAAE,EAAmBM,EAAC,IAAC,MAAO,CAAE,UAAW,gFAAiF,SAAU,CAAC,EAAG,EAAG,CAAC,EAAE,IAAKN,GAAsBM,EAAC,IAC7K,MACA,CACE,UAAWL,EACT,gFACAL,IAAMI,GAAK,0BACnB,CACK,EACDA,CACD,CAAA,EAAG,CACN,CACA,MAAMO,EAAK,CACT,KAAM,GACN,QAAS,0GACT,UAAW,sHACX,SAAU,iEACV,QAAS,6IACT,KAAM,4EACN,YAAa,qHACf,EAAGC,EAAK,CACN,SAAU,GACV,OAAQ,WACR,GAAI,oBACJ,GAAI,sBACJ,GAAI,oBACJ,KAAM,0BACN,KAAM,YACR,EAAGC,EAAK,CACN,KAAM,eACN,GAAI,aACJ,GAAI,aACJ,GAAI,aACJ,KAAM,cACR,EAAGC,EAAI,CACL,QAAS,UACT,KAAM,KACN,QAAS,IACX,EACA,SAASC,EAAG,CACV,QAASf,EAAIc,EAAE,QACf,KAAMN,EACN,QAASJ,EAAIU,EAAE,QACf,QAASZ,EACT,OAAQc,EACR,UAAWC,EACX,KAAMhB,EAAI,SACV,UAAWiB,EACX,GAAGC,CACL,EAAG,CACD,IAAI,EACJnB,IAAM,QAAU,CAACQ,EAAI,EAAI,SAAW,EAAIA,GAAKM,EAAE,KAC/C,MAAMM,EAAIf,EACR,iJACAM,EAAGX,CAAC,EACJY,EAAG,CAAC,EACJC,EAAGT,CAAC,EACJF,GAAK,+BACLc,GAAK,WACLE,CACD,EACD,OAAuBG,EAAC,KACtB,SACA,CACE,GAAGF,EACH,KAAMH,EAAI,OAASG,EAAE,KACrB,aAAcA,EAAE,YAAY,IAAMF,GAAK,KAAO,OAASA,EAAE,YAAY,GACrE,mBAAoBE,EAAE,kBAAkB,IAAMF,GAAK,KAAO,OAASA,EAAE,kBAAkB,GACvF,gBAAiBE,EAAE,UAAYjB,EAC/B,YAAaA,EACb,KAAMD,EACN,UAAWmB,EACX,SAAU,CACRlB,GAAqBQ,EAAAA,IAAEH,EAAI,EAAE,EACbG,EAAAA,IAAE,OAAQ,CAAE,UAAWL,EAAEH,GAAK,WAAW,EAAG,SAAUiB,EAAE,SAAU,EAClFH,GAAK,CAACG,EAAE,UAA4BT,EAAC,IACnC,IACA,CACE,GAAGO,EACH,cAAe,GACf,KAAMD,EACN,KAAMC,GAAK,KAAO,OAASA,EAAE,MAAQ,aACrC,UAAW,kBACvB,CACA,CACA,CACA,CACG,CACH,CAyOA,SAASK,EAAGtB,EAAG,CACb,KAAM,CAACQ,EAAGJ,CAAC,EAAIK,WAAE,EAAE,EAAG,CAACP,EAAGc,CAAC,EAAIP,EAAAA,SAAE,EAAE,EACnC,OAAON,EAAC,UAAC,IAAM,CACbH,GAAKgB,EAAE,EAAE,EAAG,WAAW,IAAMZ,EAAE,EAAE,EAAG,EAAE,IAAMA,EAAE,EAAE,EAAG,WAAW,IAAMY,EAAE,EAAE,EAAG,GAAG,EAClF,EAAK,CAAChB,CAAC,CAAC,EAAG,CAAE,KAAMQ,EAAG,aAAcN,CAAG,CACvC,CACA,SAASqB,EAAGvB,EAAGQ,EAAG,CAChBL,EAAAA,UAAE,IAAM,CACN,MAAMC,EAAKF,GAAM,CACfA,EAAE,MAAQ,UAAYF,GAAKQ,EAAG,CAC/B,EACD,OAAO,SAAS,iBAAiB,UAAWJ,CAAC,EAAGJ,IAAM,SAAS,KAAK,MAAM,SAAW,UAAW,IAAM,CACpG,SAAS,oBAAoB,UAAWI,CAAC,EAAG,SAAS,KAAK,MAAM,SAAW,MAC5E,CACL,EAAK,CAACJ,EAAGQ,CAAC,CAAC,CACX,CACA,SAASgB,EAAGxB,EAAGQ,EAAG,CAChB,MAAMJ,EAAIqB,EAAAA,OAAE,IAAI,EAAGvB,EAAIwB,EAAC,YAAC,IAAM,CAC7B,MAAMV,EAAI,SAAS,eAAehB,CAAC,EACnC,GAAI,CAACgB,EAAG,OACR,MAAMC,EAAID,EAAE,iBAAiB,4BAA4B,EACzD,GAAIC,EAAE,OAAS,EAAG,CAChBA,EAAE,CAAC,EAAE,MAAO,EACZ,MACN,CACI,MAAMhB,EAAIe,EAAE,iBACV,0EACD,EACD,GAAIf,EAAE,OAAS,EAAG,CAChB,MAAMiB,EAAI,MAAM,KAAKjB,CAAC,EAAE,OAAQkB,GAAM,EAAEA,aAAa,mBAAqBA,EAAE,aAAa,yBAAyB,IAAM,OAAO,EAC/H,GAAID,EAAE,OAAS,EAAG,CAChBA,EAAE,CAAC,EAAE,MAAO,EACZ,MACR,CACMjB,EAAE,CAAC,EAAE,MAAO,EACZ,MACN,CACIe,EAAE,MAAO,CACb,EAAK,CAAChB,CAAC,CAAC,EACNG,YAAE,KAAOK,IAAMJ,EAAE,QAAU,SAAS,cAAeF,EAAG,GAAG,IAAM,CAC7D,SAAS,KAAK,MAAM,SAAW,OAAQE,EAAE,mBAAmB,aAAeA,EAAE,QAAQ,MAAO,CAChG,GAAM,CAACI,EAAGN,CAAC,CAAC,CACZ,CACA,SAASyB,EAAG,CACV,GAAI3B,EACJ,OAAQQ,EACR,QAASJ,EACT,MAAOF,EACP,SAAUc,EACV,YAAaC,EAAI,GACjB,UAAWhB,EACX,iBAAkBiB,EAClB,gBAAiBC,EAAI,GACrB,QAAS,EAAI,CAAE,EACf,2BAA4B,EAAI,GAChC,eAAgBC,EAChB,gBAAiBQ,CACnB,EAAG,CACD,MAAMC,EAAIvB,EAAAA,QAAKwB,EAAI9B,GAAK,SAAS6B,CAAC,GAAIE,EAAI/B,EAAI,GAAGA,CAAC,SAAW,eAAe6B,CAAC,GAAI,CAAE,KAAMG,EAAG,aAAcC,GAAMX,EAAGd,CAAC,EACpH,GAAIgB,EAAGM,EAAGG,CAAC,EAAGV,EAAGU,EAAG7B,CAAC,EAAG,CAAC6B,EAAG,OAAO,KACnC,MAAMC,EAAI,IAAMhC,EAAIiC,EAAE,eAAejC,CAAC,EAAoBQ,EAAC,IAAC,MAAO,CAAE,UAAW,OAAQ,SAAUR,EAAG,EAAoBQ,EAAC,IAAC,KAAM,CAAE,UAAW,6BAA8B,GAAIqB,EAAG,SAAU7B,CAAG,CAAA,EAAI,KAAM,EAAI,IAAM,EAAE,SAAW,EAAI,KAAuBQ,EAAC,IAAC,MAAO,CAAE,UAAW,mFAAoF,SAAU,EAAE,IAAI,CAAC0B,EAAGC,IAAM,CAC9X,KAAM,CAAE,MAAOC,EAAG,UAAWC,EAAG,GAAGC,CAAC,EAAKJ,EACzC,OAAuB1B,EAAC,IAACK,EAAI,CAAE,UAAWwB,EAAG,KAAM,SAAU,GAAGC,EAAG,oBAAqB,OAAQ,SAAUF,CAAC,EAAID,CAAC,CACjH,CAAA,EAAG,EACJ,OAAuB3B,MAAE+B,EAAAA,SAAG,CAAE,SAAUC,EAAC,aACvBhC,EAAC,IACf,MACA,CACE,kBAAmBU,GAAKlB,EAAI6B,EAAI,OAChC,mBAAoBH,EACpB,KAAM,SACN,aAAc,OACd,UAAW,wCACX,SAA0BP,EAAC,KAAC,MAAO,CAAE,UAAW,oDAAqD,SAAU,CAC7FX,EAAC,IACf,MACA,CACE,UAAWiC,EAAE,2CAA4CzB,CAAC,EAC1D,QAAS,IAAM,CACb,GAAKd,EAAG,CACxB,CACA,CACW,EACDa,GAAqBP,EAAC,IAAC,MAAO,CAAE,UAAWiC,EAAE,iBAAkB1C,CAAC,EAAG,SAAUe,EAAG,EAChF,CAACC,GAAqBI,EAAC,KACrB,MACA,CACE,GAAIS,EACJ,SAAU,GACV,UAAWa,EACT,uHACAX,EAAI,wBAA0B,qBAC9B/B,CACD,EACD,SAAU,CACR,CAACkB,GAAqBT,EAAC,IACrB,SACA,CACE,KAAM,SACN,QAASN,EACT,0BAA2B,OAC3B,UAAW,4JACX,SAA0BM,EAAAA,IAAEkC,EAAI,CAAE,KAAM,EAAI,CAAA,CAChE,CACiB,EACDV,EAAG,EACHlB,EACA,EAAC,CACjB,CACA,CACA,CACA,CAAW,CAAA,CACX,CACK,EACD,SAAS,IACb,EAAK,CACL,CCpiBO,SAAS6B,EAAY,CAC1B,KAAAC,EACA,QAAAC,EACA,WAAAC,EACA,YAAAC,EACA,UAAAC,EACA,QAAAC,EACA,YAAAC,EAAc,GACd,MAAAC,EACA,GAAGC,CACL,EAAqB,CACb,MAAAC,EAAeC,EAAAA,QAAQ,IACvBV,IAAS,UACJ,CACL,QAASG,GAAe,UACxB,OAAQD,GAAc,SACtB,aAAcK,GAAS,gBACzB,EAEK,CACL,QAASJ,GAAe,KACxB,OAAQ,KACR,aAAcI,GAAS,OACzB,EACC,CAACP,EAAMG,EAAaI,EAAOL,CAAU,CAAC,EAEnCS,EAAiCD,EAAA,QACrC,IAAM,CACJ,GAAID,EAAa,OACb,CACE,CACE,MAAOA,EAAa,OACpB,QAAS,YACT,QAASJ,CAAA,CACX,EAEF,CAAC,EACL,CACE,MAAOI,EAAa,QACpB,QAASH,EAAc,cAAgB,UACvC,QAAS,IAAM,CACDF,GAAA,MAAAA,IACJC,EAAA,CAAA,CACV,CAEJ,EACA,CAACI,EAAcH,EAAaF,EAAWC,CAAO,CAChD,EAGE,OAAAO,EAAA,IAACC,EAAA,CACE,GAAGL,EACJ,MAAOD,GAASE,EAAa,aAC7B,QAAAJ,EACA,QAAAM,EACA,2BAA4BX,IAAS,UACrC,gBAAiBA,IAAS,UAEzB,SAAA,OAAOC,GAAY,SAAWW,MAAC,KAAE,UAAU,UAAW,UAAQ,CAAA,EAAOX,CAAA,CACxE,CAEJ,CC7DA,MAAMa,EAA+E,CACnF,KAAM,CACJ,UAAW,oGACX,KAAMF,EAAAA,IAACG,EAAAA,YAAY,CAAA,KAAM,EAAI,CAAA,CAC/B,EACA,QAAS,CACP,UACE,gHACF,KAAMH,EAAAA,IAACI,EAAAA,oBAAoB,CAAA,KAAM,EAAI,CAAA,CACvC,EACA,MAAO,CACL,UAAW,8FACX,KAAMJ,EAAAA,IAACK,EAAAA,aAAa,CAAA,KAAM,EAAI,CAAA,CAAA,CAElC,EAEO,SAASC,EAAM,CACpB,GAAAC,EACA,MAAAZ,EACA,YAAAa,EACA,KAAApB,EAAO,OACP,OAAAqB,EACA,SAAAC,EAAW,IACX,SAAAC,EACA,YAAAC,EACA,gBAAiBC,CACnB,EAAe,CACb,KAAM,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAAS,EAAK,EAE1CC,EAAeC,EAAAA,YAAY,IAAM,CACrCH,EAAa,EAAI,EACjB,WAAW,IAAM,CACfJ,GAAA,MAAAA,EAAWJ,IACV,GAAG,CAAA,EACL,CAACA,EAAII,CAAQ,CAAC,EAYjB,GAVAQ,EAAAA,UAAU,IAAM,CACd,GAAIT,EAAW,EAAG,CACV,MAAAU,EAAQ,WAAW,IAAM,CAChBH,EAAA,GACZP,CAAQ,EAEJ,MAAA,IAAM,aAAaU,CAAK,CAAA,GAEhC,CAACV,EAAUH,EAAII,EAAUM,CAAY,CAAC,EAErCJ,EAEA,OAAAb,EAAA,IAACa,EAAA,CACC,GAAAN,EACA,MAAAZ,EACA,YAAAa,EACA,KAAApB,EACA,OAAAqB,EACA,SAAAC,EACA,SAAAC,CAAA,CACF,EAKJ,MAAMU,GAAYT,GAAA,YAAAA,EAAcxB,KAASc,EAAkBd,CAAiB,GAAKc,EAAkB,KAGjG,OAAAoB,EAAA,KAAC,MAAA,CACC,KAAMlC,IAAS,QAAU,QAAU,SACnC,YAAWA,IAAS,QAAU,OAAY,SAC1C,UAAWmC,EAAA,KACT,oGACAd,GAAU,OACVY,EAAU,UACVP,EAAY,6BAA+B,2BAC7C,EAGA,SAAA,CAAAd,EAAA,IAAC,MAAI,CAAA,UAAU,qBAAsB,SAAAqB,EAAU,KAAK,EAGpDC,EAAAA,KAAC,MAAI,CAAA,UAAU,oBACb,SAAA,CAACtB,EAAA,IAAA,MAAA,CAAI,UAAU,gCAAiC,SAAML,EAAA,EACrDa,GAAeR,EAAA,IAAC,MAAI,CAAA,UAAU,oCAAqC,SAAYQ,EAAA,EAC/EC,GACCT,EAAA,IAAC,MAAI,CAAA,UAAU,SACb,SAAAA,EAAA,IAAC,SAAA,CACC,QAASS,EAAO,QAChB,UAAU,+IAET,SAAOA,EAAA,KAAA,CAAA,CAEZ,CAAA,CAAA,EAEJ,EAGAT,EAAA,IAAC,SAAA,CACC,QAASiB,EACT,UAAU,0IAEV,SAAAjB,EAAAA,IAACjB,EAAAA,EAAE,CAAA,KAAM,EAAI,CAAA,CAAA,CAAA,CACf,CAAA,CACF,CAEJ"}