@moondreamsdev/dreamer-ui 1.7.7-test.4 → 1.7.7-test.6
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.
- package/dist/{Toast-CwaBr4ht.cjs → Toast-BZMBGn3W.cjs} +2 -2
- package/dist/Toast-BZMBGn3W.cjs.map +1 -0
- package/dist/{Toast-CKF3_Xwk.js → Toast-DfNdN3Lk.js} +31 -31
- package/dist/Toast-DfNdN3Lk.js.map +1 -0
- package/dist/components.cjs.js +1 -1
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.esm.js +706 -563
- package/dist/components.esm.js.map +1 -1
- package/dist/providers.cjs.js +1 -1
- package/dist/providers.esm.js +1 -1
- package/dist/src/components/accordion/AccordionItem.d.ts +0 -1
- package/dist/src/components/clickable/Clickable.d.ts +0 -1
- package/dist/src/components/index.d.ts +2 -0
- package/dist/src/components/panel/Panel.d.ts +36 -0
- package/dist/src/components/panel/hooks.d.ts +6 -0
- package/dist/src/components/panel/index.d.ts +3 -0
- package/dist/src/components/panel/variants.d.ts +12 -0
- package/dist/src/components/radiogroup/RadioGroupItem.d.ts +0 -1
- package/dist/src/components/skeleton/Skeleton.d.ts +13 -0
- package/dist/src/components/skeleton/index.d.ts +1 -0
- package/dist/src/components/skeleton/variants.d.ts +18 -0
- package/dist/src/components/tooltip/hooks.d.ts +0 -1
- package/dist/src/hooks/useActionModal.d.ts +0 -1
- package/dist/src/hooks/useToast.d.ts +0 -1
- package/dist/src/symbols/index.d.ts +0 -1
- package/dist/theme.css +1 -0
- package/package.json +1 -1
- package/dist/Toast-CKF3_Xwk.js.map +0 -1
- package/dist/Toast-CwaBr4ht.cjs.map +0 -1
package/dist/providers.esm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs as g, jsx as l } from "react/jsx-runtime";
|
|
2
2
|
import { useState as x, useCallback as s } from "react";
|
|
3
|
-
import { A as v, T as y } from "./Toast-
|
|
3
|
+
import { A as v, T as y } from "./Toast-DfNdN3Lk.js";
|
|
4
4
|
import "react-dom";
|
|
5
5
|
import { A as b, T as C } from "./useToast-CEKvEJVB.js";
|
|
6
6
|
import { join as w } from "./utils.esm.js";
|
|
@@ -6,8 +6,10 @@ export * from './clickable';
|
|
|
6
6
|
export * from './input';
|
|
7
7
|
export * from './label';
|
|
8
8
|
export * from './modal';
|
|
9
|
+
export * from './panel';
|
|
9
10
|
export * from './radiogroup';
|
|
10
11
|
export * from './separator';
|
|
12
|
+
export * from './skeleton';
|
|
11
13
|
export * from './slot';
|
|
12
14
|
export * from './textarea';
|
|
13
15
|
export * from './toast';
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { PanelSize } from './variants';
|
|
3
|
+
export interface PanelProps {
|
|
4
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
5
|
+
/** Unique identifier for the panel */
|
|
6
|
+
id?: string;
|
|
7
|
+
/** Whether the panel is open */
|
|
8
|
+
isOpen: boolean;
|
|
9
|
+
/** Callback when panel should close */
|
|
10
|
+
onClose: () => void;
|
|
11
|
+
/** Panel title - can be a string or React node */
|
|
12
|
+
title?: React.ReactNode;
|
|
13
|
+
/** Panel content */
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
/** Panel footer - can be a string or React node */
|
|
16
|
+
footer?: React.ReactNode;
|
|
17
|
+
/** Panel size variant */
|
|
18
|
+
size?: PanelSize;
|
|
19
|
+
/** Additional CSS classes for the panel */
|
|
20
|
+
className?: string;
|
|
21
|
+
/** Additional CSS classes for the overlay */
|
|
22
|
+
overlayClassName?: string;
|
|
23
|
+
/** Whether to hide the close button */
|
|
24
|
+
hideCloseButton?: boolean;
|
|
25
|
+
/** Whether to disable closing when clicking the overlay */
|
|
26
|
+
disableCloseOnOverlayClick?: boolean;
|
|
27
|
+
/** ARIA labelledby attribute */
|
|
28
|
+
ariaLabelledBy?: string;
|
|
29
|
+
/** ARIA describedby attribute */
|
|
30
|
+
ariaDescribedBy?: string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Panel component that slides in from the right side of the screen.
|
|
34
|
+
* Provides an overlay and slide-in animation for side content display.
|
|
35
|
+
*/
|
|
36
|
+
export default function Panel({ ref, id, isOpen, onClose, title, children, footer, size, className, overlayClassName, hideCloseButton, disableCloseOnOverlayClick, ariaLabelledBy, ariaDescribedBy, }: PanelProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function useAnimationSlideIn(isOpen: boolean): {
|
|
2
|
+
show: boolean;
|
|
3
|
+
shouldRender: boolean;
|
|
4
|
+
};
|
|
5
|
+
export declare function usePanelDocumentChanges(isOpen: boolean, onClose: () => void): void;
|
|
6
|
+
export declare function usePanelFocus(panelId: string, isOpen: boolean): void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const panelVariants: {
|
|
2
|
+
readonly size: {
|
|
3
|
+
readonly sm: "max-w-sm";
|
|
4
|
+
readonly md: "max-w-md";
|
|
5
|
+
readonly lg: "max-w-lg";
|
|
6
|
+
readonly xl: "max-w-xl";
|
|
7
|
+
readonly '2xl': "max-w-2xl";
|
|
8
|
+
readonly full: "w-full";
|
|
9
|
+
readonly screen: "w-screen";
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
export type PanelSize = keyof typeof panelVariants.size;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { type SkeletonVariants } from './variants';
|
|
3
|
+
export interface SkeletonProps extends React.HTMLAttributes<HTMLDivElement>, SkeletonVariants {
|
|
4
|
+
/** Custom class name for additional styling */
|
|
5
|
+
className?: string;
|
|
6
|
+
/** Number of skeleton lines to render (for text-like skeletons) */
|
|
7
|
+
lines?: number;
|
|
8
|
+
/** Whether the skeleton should animate */
|
|
9
|
+
animate?: boolean;
|
|
10
|
+
/** Ref to be passed to the skeleton element */
|
|
11
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
12
|
+
}
|
|
13
|
+
export default function Skeleton({ shape, lineSpacing, className, lines, animate, ref, ...props }: SkeletonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from './Skeleton';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const skeletonVariants: {
|
|
2
|
+
readonly shape: {
|
|
3
|
+
readonly rectangle: "rounded-md min-h-1";
|
|
4
|
+
readonly circle: "rounded-full aspect-square min-h-1";
|
|
5
|
+
readonly text: "rounded-sm min-h-1 h-4";
|
|
6
|
+
};
|
|
7
|
+
readonly lineSpacing: {
|
|
8
|
+
readonly xs: "space-y-1";
|
|
9
|
+
readonly sm: "space-y-2";
|
|
10
|
+
readonly md: "space-y-3";
|
|
11
|
+
readonly lg: "space-y-4";
|
|
12
|
+
readonly xl: "space-y-6";
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export interface SkeletonVariants {
|
|
16
|
+
shape?: keyof typeof skeletonVariants.shape;
|
|
17
|
+
lineSpacing?: keyof typeof skeletonVariants.lineSpacing;
|
|
18
|
+
}
|
package/dist/theme.css
CHANGED
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toast-CKF3_Xwk.js","sources":["utils.esm.js","X-CIoyLewf.js","Toast-vensJgtx.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 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 r, Fragment as S, jsxs as f } from \"react/jsx-runtime\";\nimport q, { createContext as F, useId as H, useState as p, useEffect as b, useRef as P, useCallback as z, useMemo as C } from \"react\";\nimport { createPortal as V } from \"react-dom\";\nimport { X as D, C as K, E as W, I as X } from \"./X-CIoyLewf.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\", className: n = \"inline\", ...t }) {\n return /* @__PURE__ */ r(\n \"svg\",\n {\n ...t,\n width: e,\n height: e,\n className: n,\n viewBox: \"0 0 15 15\",\n xmlns: \"http://www.w3.org/2000/svg\",\n 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 }\n );\n}\nfunction v(...e) {\n return e.filter((l) => typeof l == \"string\" && l).join(\" \").trim() || void 0;\n}\nF(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 Y({\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: s,\n ...d\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 s\n );\n return /* @__PURE__ */ f(\n \"button\",\n {\n ...d,\n role: i ? \"link\" : d.role,\n \"aria-label\": d[\"aria-label\"] || (a == null ? void 0 : a[\"aria-label\"]),\n \"aria-description\": d[\"aria-description\"] || (a == null ? void 0 : a[\"aria-description\"]),\n \"aria-disabled\": d.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: d.children }),\n i && !d.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 _(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 = P(null), t = z(() => {\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 s = Array.from(o).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 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: s,\n hideCloseButton: d = !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: E, shouldRender: y } = _(l);\n if (ee(N, y), $(y, n), !y) 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, ...M } = A;\n return /* @__PURE__ */ r(Y, { className: O, type: \"button\", ...M, \"data-modal-action\": \"true\", children: B }, I);\n }) });\n return /* @__PURE__ */ r(S, { children: V(\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: v(\"fixed inset-0 bg-black/20 transition-all\", s),\n onClick: () => {\n u || n();\n }\n }\n ),\n a && /* @__PURE__ */ r(\"div\", { className: v(\"relative w-fit\", o), children: i }),\n !a && /* @__PURE__ */ f(\n \"div\",\n {\n id: N,\n tabIndex: -1,\n className: v(\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 E ? \"opacity-100 scale-100\" : \"opacity-0 scale-90\",\n o\n ),\n children: [\n !d && /* @__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: s,\n ...d\n}) {\n const c = C(() => e === \"confirm\" ? {\n confirm: t || \"Confirm\",\n cancel: n || \"Cancel\",\n defaultTitle: s || \"Confirm Action\"\n } : {\n confirm: t || \"OK\",\n cancel: null,\n defaultTitle: s || \"Alert\"\n }, [e, t, s, 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 ...d,\n title: s || 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(W, { 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(K, { size: 20 })\n }\n};\nfunction de({\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: s,\n customComponent: d\n}) {\n const [c, u] = p(!1), m = z(() => {\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]), d)\n return /* @__PURE__ */ r(\n d,\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 = (s == null ? void 0 : s[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 de as T,\n w as n\n};\n//# sourceMappingURL=Toast-vensJgtx.js.map\n","import { jsxs as E, jsx as u, Fragment as J } from \"react/jsx-runtime\";\nimport z, { useId as I, useState as x, createElement as Y, useEffect as C, useCallback as A, useMemo as W, useRef as j, isValidElement as P, cloneElement as ee } from \"react\";\nimport { join as w } from \"./utils.esm.js\";\nimport { b as te, C as re, a as ne, c as oe, E as ae, Q as se } from \"./QuestionMarkCircled-BVBF3skB.js\";\nimport { n as H } from \"./Toast-vensJgtx.js\";\nimport { A as tt, T as rt } from \"./Toast-vensJgtx.js\";\nimport { E as ie, X as le } from \"./X-CIoyLewf.js\";\nimport { createPortal as M } from \"react-dom\";\nfunction q({\n id: o,\n title: a,\n content: e,\n children: n,\n className: t = \"\",\n disabled: r = !1,\n isOpen: s = !1,\n onToggle: d,\n triggerClassName: c = \"\",\n bodyClassName: l = \"\"\n}) {\n const b = I(), i = o || `accordion-item-${b}`, v = `${i}-header`, f = `${i}-panel`, m = () => {\n !r && d && d();\n }, g = (h) => {\n (h.key === \"Enter\" || h.key === \" \") && (h.preventDefault(), m());\n };\n return /* @__PURE__ */ E(\"div\", { className: w(\"border-b border-gray-200\", r && \"opacity-60 cursor-not-allowed\", t), children: [\n /* @__PURE__ */ E(\n \"button\",\n {\n id: v,\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 c\n ),\n \"aria-expanded\": s,\n \"aria-controls\": f,\n disabled: r,\n onClick: m,\n onKeyDown: g,\n children: [\n /* @__PURE__ */ u(\"span\", { children: a }),\n /* @__PURE__ */ u(\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__ */ u(te, { size: 18 })\n }\n )\n ]\n }\n ),\n /* @__PURE__ */ u(\n \"div\",\n {\n id: f,\n role: \"region\",\n \"aria-labelledby\": v,\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 l\n ),\n children: s && (n || e)\n }\n )\n ] });\n}\nfunction Ke({\n id: o,\n items: a = [],\n children: e,\n className: n = \"\",\n itemClassName: t = \"\",\n allowMultiple: r = !1,\n defaultOpenItems: s = [],\n triggersClassName: d = \"\",\n bodiesClassName: c = \"\"\n}) {\n const l = I(), b = o || `accordion-group-${l}`, [i, v] = x(new Set(s)), f = (h) => {\n v((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) => `${l}-item-${h}`, g = (h) => i.has(h);\n return /* @__PURE__ */ E(\"div\", { id: b, className: n, children: [\n a.length > 0 && a.map((h, y) => {\n const p = h.id || m(y);\n return /* @__PURE__ */ u(\n q,\n {\n id: p,\n title: h.title,\n content: h.content,\n disabled: h.disabled,\n isOpen: g(p),\n onToggle: () => f(p),\n className: t,\n triggerClassName: d,\n bodyClassName: c\n },\n p\n );\n }),\n a.length === 0 && e && z.Children.map(e, (h, y) => {\n if (z.isValidElement(h) && h.type === q) {\n const p = h.props.id || m(y);\n return /* @__PURE__ */ Y(\n q,\n {\n ...h.props,\n key: p,\n id: p,\n className: w(t, h.props.className),\n isOpen: g(p),\n onToggle: () => f(p),\n triggerClassName: w(d, h.props.triggerClassName),\n bodyClassName: w(c, h.props.bodyClassName)\n }\n );\n }\n return null;\n })\n ] });\n}\nfunction de() {\n const [o, a] = x(0);\n return C(() => {\n const e = setInterval(() => {\n a((n) => (n + 1) % 3);\n }, 500);\n return () => clearInterval(e);\n }, []), /* @__PURE__ */ u(\"div\", { className: \"absolute inset-0 inline-flex items-center justify-center gap-x-2 align-middle\", children: [0, 1, 2].map((e) => /* @__PURE__ */ u(\n \"div\",\n {\n className: w(\n \"rounded-full transition-all duration-500 ease-in-out size-[0.35em] bg-current\",\n o === e && \"transform -translate-y-1\"\n )\n },\n e\n )) });\n}\nconst ce = {\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}, fe = {\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 me({\n variant: o = K.variant,\n size: a,\n rounded: e = K.rounded,\n loading: n,\n linkTo: t,\n linkProps: r,\n type: s = \"button\",\n className: d,\n ...c\n}) {\n let l;\n o === \"link\" && !a ? l = \"fitted\" : l = 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 ce[o],\n ue[l],\n fe[e],\n n && \"relative pointer-events-none\",\n t && \"relative\",\n d\n );\n return /* @__PURE__ */ E(\n \"button\",\n {\n ...c,\n role: t ? \"link\" : c.role,\n \"aria-label\": c[\"aria-label\"] || (r == null ? void 0 : r[\"aria-label\"]),\n \"aria-description\": c[\"aria-description\"] || (r == null ? void 0 : r[\"aria-description\"]),\n \"aria-disabled\": c.disabled || n,\n \"aria-busy\": n,\n type: s,\n className: i,\n children: [\n n && /* @__PURE__ */ u(de, {}),\n /* @__PURE__ */ u(\"span\", { className: w(n && \"invisible\"), children: c.children }),\n t && !c.disabled && /* @__PURE__ */ u(\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 be(o) {\n const [a, e] = x(\"\"), n = A((t) => {\n let r = t, s = \"\";\n for (; r && !s; ) {\n const d = window.getComputedStyle(r).backgroundColor;\n d && d !== \"transparent\" && d !== \"rgba(0, 0, 0, 0)\" && (s = d), r = r.parentElement;\n }\n return s || \"transparent\";\n }, []);\n return C(() => {\n const t = document.getElementById(o);\n if (t) {\n const r = n(t.parentElement);\n e(r);\n }\n }, [o, n]), a;\n}\nfunction Ge({\n ref: o,\n id: a,\n size: e = 20,\n color: n,\n filled: t = !1,\n rounded: r = !0,\n checked: s = !1,\n onCheckedChange: d,\n disabled: c,\n className: l = \"\",\n ...b\n}) {\n const i = I(), v = W(() => a || `checkbox-${i}`, [a, i]), f = be(v), [m, g] = x(s);\n C(() => {\n g(s);\n }, [s]);\n const h = () => {\n c || (g(!m), d == null || d(!m));\n }, y = (N) => {\n N.key === \" \" && (N.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 c && \"opacity-40 cursor-not-allowed\",\n !c && \"cursor-pointer\",\n l\n );\n return /* @__PURE__ */ u(\n \"button\",\n {\n id: v,\n type: \"button\",\n ref: o,\n tabIndex: 0,\n role: \"checkbox\",\n onClick: h,\n \"aria-checked\": m,\n \"aria-disabled\": c,\n onKeyDownCapture: y,\n style: {\n width: e,\n height: e,\n color: n,\n backgroundColor: m && t ? \"currentcolor\" : \"transparent\"\n },\n className: p,\n ...b,\n children: m && /* @__PURE__ */ u(re, { size: e, color: t ? f : void 0 })\n }\n );\n}\nfunction We({\n children: o,\n className: a,\n linkTo: e,\n linkProps: n,\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__ */ E(\"div\", { className: w(\"relative w-fit\", a), ...s, children: [\n o,\n e && /* @__PURE__ */ u(\n \"a\",\n {\n ...n,\n rel: (n == null ? void 0 : n.rel) || \"noreferrer\",\n href: e,\n className: w(\"absolute inset-0\", n == null ? void 0 : n.className)\n }\n ),\n !e && t && /* @__PURE__ */ u(\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 S({ elementId: o, type: a, message: e }) {\n return C(() => {\n const n = document.getElementById(o);\n if (n) {\n if (!e && a === \"error\") {\n n.removeAttribute(\"data-error\");\n return;\n }\n if (!e && a === \"success\") {\n n.removeAttribute(\"data-success\");\n return;\n }\n return n.setAttribute(\"aria-describedby\", `${o}-${a}-message`), n.setAttribute(\"aria-invalid\", a === \"error\" ? \"true\" : \"false\"), a === \"error\" && n.setAttribute(\"data-error\", \"true\"), a === \"success\" && n.setAttribute(\"data-success\", \"true\"), () => {\n n.removeAttribute(\"aria-describedby\"), n.removeAttribute(\"aria-invalid\"), n.removeAttribute(\"data-error\"), n.removeAttribute(\"data-success\");\n };\n }\n }, [o, a, e]), e ? /* @__PURE__ */ E(\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__ */ u(ie, {}) : /* @__PURE__ */ u(ne, {}),\n /* @__PURE__ */ u(\"span\", { id: `${o}-${a}-message`, children: e })\n ]\n }\n ) : null;\n}\nconst he = {\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}, pe = {\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: \"default\",\n rounded: \"none\"\n};\nfunction Ue({\n variant: o = Q.variant,\n rounded: a,\n displayOnlyMode: e = !1,\n errorMessage: n,\n successMessage: t,\n type: r = \"text\",\n className: s,\n ...d\n}) {\n const c = I(), [l, b] = x(!1);\n let i = a;\n o === \"outline\" && !a && (i = \"md\"), i = i || Q.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 && he[o],\n !e && pe[i],\n r === \"password\" && \"pr-10\",\n !e && \"px-2 py-1\",\n e && \"pointer-events-none\",\n s\n );\n return /* @__PURE__ */ E(\"div\", { className: w(e && \"cursor-text\"), style: { height: d.height, width: d.width }, children: [\n /* @__PURE__ */ E(\"div\", { className: w(r === \"password\" && \"relative\"), children: [\n /* @__PURE__ */ u(\n \"input\",\n {\n ...d,\n id: c,\n type: r === \"password\" && l ? \"text\" : r,\n \"aria-disabled\": d.disabled,\n readOnly: e,\n \"aria-readonly\": e || d[\"aria-readonly\"],\n \"data-error\": n ? !0 : void 0,\n \"data-success\": t ? !0 : void 0,\n className: m\n }\n ),\n r === \"password\" && /* @__PURE__ */ u(\n \"button\",\n {\n onClick: () => b(!l),\n className: \"absolute inset-y-0 right-0 px-2 hover:cursor-pointer\",\n \"aria-label\": \"Toggle password visibility\",\n \"data-state\": l ? \"visible\" : \"hidden\",\n children: l ? /* @__PURE__ */ u(oe, { size: 20 }) : /* @__PURE__ */ u(ae, { size: 20 })\n }\n )\n ] }),\n !e && /* @__PURE__ */ u(S, { elementId: c, type: \"error\", message: n }),\n !e && /* @__PURE__ */ u(S, { elementId: c, type: \"success\", message: t })\n ] });\n}\nfunction _e({\n display: o = \"inline\",\n width: a = \"fit-content\",\n className: e = \"\",\n required: n,\n helpMessage: t,\n suffix: r,\n htmlFor: s,\n children: d,\n ...c\n}) {\n const l = I(), b = w(\"font-medium\", o, e), i = t ? `${s ?? l}-help` : void 0;\n return /* @__PURE__ */ E(\"div\", { style: { display: o === \"inline\" ? \"inline-flex\" : \"flex\", width: a }, className: \"relative\", children: [\n /* @__PURE__ */ E(\"label\", { className: b, htmlFor: s, ...c, children: [\n d,\n n && /* @__PURE__ */ u(\"span\", { className: \"text-red-500 font-medium ml-1\", \"aria-label\": \"required\", children: \"*\" })\n ] }),\n t && /* @__PURE__ */ u(\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__ */ u(se, {})\n }\n ),\n t && /* @__PURE__ */ u(\"div\", { id: i, className: \"sr-only\", children: t }),\n r && /* @__PURE__ */ u(\"span\", { className: \"ml-1\", children: r })\n ] });\n}\nfunction ge(o) {\n const [a, e] = x(!1), [n, t] = x(!1);\n return C(() => {\n o ? (t(!0), setTimeout(() => e(!0), 10)) : (e(!1), setTimeout(() => t(!1), 150));\n }, [o]), { show: a, shouldRender: n };\n}\nfunction ve(o, a) {\n C(() => {\n const e = (n) => {\n n.key === \"Escape\" && o && a();\n };\n return document.addEventListener(\"keydown\", e), o && (document.body.style.overflow = \"hidden\"), () => {\n document.removeEventListener(\"keydown\", e), document.body.style.overflow = \"auto\";\n };\n }, [o, a]);\n}\nfunction we(o, a) {\n const e = j(null), n = A(() => {\n const t = document.getElementById(o);\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 d = Array.from(s).filter((c) => !(c instanceof HTMLButtonElement && c.getAttribute(\"data-modal-close-button\") === \"true\"));\n if (d.length > 0) {\n d[0].focus();\n return;\n }\n s[0].focus();\n return;\n }\n t.focus();\n }, [o]);\n C(() => (a && (e.current = document.activeElement, n()), () => {\n document.body.style.overflow = \"auto\", e.current instanceof HTMLElement && e.current.focus();\n }), [a, n]);\n}\nfunction Qe({\n id: o,\n isOpen: a,\n onClose: e,\n title: n,\n children: t,\n contentOnly: r = !1,\n className: s,\n overlayClassName: d,\n hideCloseButton: c = !1,\n actions: l = [],\n disableCloseOnOverlayClick: b = !1,\n ariaLabelledBy: i,\n ariaDescribedBy: v\n}) {\n const f = I(), m = o || `modal-${f}`, g = o ? `${o}-title` : `modal-title-${f}`, { show: h, shouldRender: y } = ge(a);\n if (we(m, y), ve(y, e), !y) return null;\n const p = () => n ? z.isValidElement(n) ? /* @__PURE__ */ u(\"div\", { className: \"mb-4\", children: n }) : /* @__PURE__ */ u(\"h2\", { className: \"mb-4 text-xl font-semibold\", id: g, children: n }) : null, N = () => l.length === 0 ? null : /* @__PURE__ */ u(\"div\", { className: \"mt-6 not-sm:grid gap-y-2 sm:flex sm:justify-start sm:flex-row-reverse sm:gap-x-3\", children: l.map((D, $) => {\n const { label: F, className: k, ...L } = D;\n return /* @__PURE__ */ u(me, { className: k, type: \"button\", ...L, \"data-modal-action\": \"true\", children: F }, $);\n }) });\n return /* @__PURE__ */ u(J, { children: M(\n /* @__PURE__ */ u(\n \"div\",\n {\n \"aria-labelledby\": i ?? n ? g : void 0,\n \"aria-describedby\": v,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n className: \"fixed inset-0 z-[100] overflow-y-auto\",\n children: /* @__PURE__ */ E(\"div\", { className: \"flex min-h-screen items-center justify-center p-4\", children: [\n /* @__PURE__ */ u(\n \"div\",\n {\n className: H(\"fixed inset-0 bg-black/20 transition-all\", d),\n onClick: () => {\n b || e();\n }\n }\n ),\n r && /* @__PURE__ */ u(\"div\", { className: H(\"relative w-fit\", s), children: t }),\n !r && /* @__PURE__ */ E(\n \"div\",\n {\n id: m,\n tabIndex: -1,\n className: H(\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 !c && /* @__PURE__ */ u(\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__ */ u(le, { size: 18 })\n }\n ),\n p(),\n t,\n N()\n ]\n }\n )\n ] })\n }\n ),\n document.body\n ) });\n}\nfunction ye({ itemId: o, checked: a, onChange: e, name: n, disabled: t = !1, className: r = \"\" }) {\n const s = \"relative inline-flex items-center justify-center rounded-full\", d = () => {\n t || e();\n }, c = 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__ */ u(\n \"div\",\n {\n id: o,\n role: \"radio\",\n tabIndex: -1,\n \"aria-checked\": a,\n \"aria-disabled\": t,\n \"aria-description\": `Radio button for ${n}`,\n \"aria-labelledby\": `${o}-label`,\n onClick: d,\n className: c,\n style: {\n width: \"1em\",\n height: \"1em\",\n padding: \"0.1em\",\n borderWidth: \"0.06em\"\n },\n children: a && /* @__PURE__ */ u(\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: o,\n children: a,\n className: e = \"\",\n isSelected: n = !1,\n onChange: t,\n disabled: r = !1,\n hideInput: s = !1,\n description: d,\n name: c\n}) {\n const b = `radio-${I()}-${o}`, i = () => {\n r || t == null || t(o);\n };\n return /* @__PURE__ */ E(\n \"div\",\n {\n title: d,\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 && !n && `border-transparent ${r ? \"\" : \"not-focus-within:hover:border-border/60\"}`,\n s && n && \"border-border\",\n r && \"opacity-60 cursor-not-allowed\"\n ),\n style: {\n gap: \"0.5em\"\n },\n children: [\n !s && /* @__PURE__ */ u(\n ye,\n {\n itemId: b,\n name: c || \"\",\n checked: n,\n onChange: i,\n disabled: r,\n className: w(s && \"\")\n }\n ),\n /* @__PURE__ */ u(\n \"div\",\n {\n id: s ? b : void 0,\n tabIndex: s ? -1 : void 0,\n role: s ? \"radio\" : void 0,\n onClick: s ? i : void 0,\n \"aria-checked\": s ? n ? \"true\" : \"false\" : void 0,\n \"aria-disabled\": s ? r : void 0,\n \"aria-description\": s ? d || `Radio button for ${c}` : void 0,\n \"aria-labelledby\": s ? `${b}-label` : void 0,\n className: w(s && \"size-full\", typeof a == \"object\" && \"grow focus:outline-none\"),\n children: /* @__PURE__ */ u(\n \"label\",\n {\n id: `${b}-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 xe(o, a) {\n const [e, n] = x(a), [t, r] = x(-1), [s, d] = x(!1), c = A((f, m) => {\n var y;\n const g = f[m];\n g.hasAttribute(\"disabled\") || g.getAttribute(\"aria-disabled\") === \"true\" || ((y = f[m]) == null || y.click(), r(m));\n }, []), l = A(\n (f, m) => {\n var h;\n if (f.preventDefault(), s || !m.length) return;\n const g = a !== -1 ? a : 0;\n (h = m[g]) == null || h.focus(), n(g), a !== -1 && c(m, g);\n },\n [a, s, c]\n ), b = A(\n (f) => {\n var y;\n if (!f.shiftKey)\n return;\n f.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), g = m.findIndex((p) => p.id === o), h = g > 0 ? g - 1 : m.length - 1;\n (y = m[h]) == null || y.focus();\n },\n [o]\n ), i = A(\n (f, m) => {\n var N;\n if (!m.length) return;\n const g = f.target;\n if (!m.some((D) => D.id === g.id)) return;\n const y = e !== -1 ? e : 0;\n let p = y;\n switch (f.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n f.preventDefault(), p = y > 0 ? y - 1 : m.length - 1;\n break;\n case \"ArrowDown\":\n case \"ArrowRight\":\n f.preventDefault(), p = (y + 1) % m.length;\n break;\n // Select the option when the space key is pressed\n case \" \":\n f.preventDefault(), c(m, y);\n return;\n case \"Tab\":\n b(f);\n return;\n default:\n return;\n }\n (N = m[p]) == null || N.focus(), n(p), t !== -1 && c(m, p);\n },\n [e, t, b, c]\n ), v = A(() => {\n const f = document.querySelector(`[id=\"${o}\"][role=\"radiogroup\"]`);\n return f ? Array.from(f.querySelectorAll('[role=\"radio\"]')) : [];\n }, [o]);\n C(() => {\n const f = document.querySelector(`[id=\"${o}\"][role=\"radiogroup\"]`);\n if (!f) return;\n const m = v(), g = (N) => l(N, m), h = (N) => i(N, m), y = () => d(!0), p = () => d(!1);\n return document.addEventListener(\"keydown\", h), f.addEventListener(\"focus\", g), f.addEventListener(\"mousedown\", y), document.addEventListener(\"mouseup\", p), () => {\n document.removeEventListener(\"keydown\", h), f.removeEventListener(\"focus\", g), f.removeEventListener(\"mousedown\", y), document.removeEventListener(\"mouseup\", p);\n };\n }, [o, v, l, i]);\n}\nfunction Xe({\n options: o = [],\n value: a,\n onChange: e,\n id: n,\n children: t,\n className: r = \"\",\n childrenClassName: s = \"\",\n hideInputs: d = !1\n}) {\n const c = I(), l = n || `radio-group-${c}`;\n xe(\n l,\n o.findIndex((i) => i === a)\n );\n const b = W(() => o.reduce((i, v) => (typeof v == \"string\" ? i.some((f) => f.value === v) || i.push({ label: v, value: v }) : i.push(v), i), []), [o]);\n return /* @__PURE__ */ E(\"div\", { id: l, role: \"radiogroup\", tabIndex: 0, className: w(r, \"focus:outline-none\"), children: [\n b.length > 0 && b.map((i, v) => /* @__PURE__ */ u(\n G,\n {\n value: i.value,\n isSelected: a === i.value,\n onChange: e,\n name: l,\n disabled: i.disabled,\n description: i.description,\n hideInput: d,\n className: s,\n children: i.label\n },\n `${i.value}-${v}`\n )),\n b.length === 0 && t && z.Children.map(t, (i) => z.isValidElement(i) && i.type === G ? /* @__PURE__ */ u(\n G,\n {\n ...i.props,\n className: w(s, i.props.className),\n hideInput: i.props.hideInput || d,\n isSelected: a === i.props.value,\n onChange: e,\n name: l,\n children: i.props.children\n }\n ) : null)\n ] });\n}\nconst Ee = {\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}, Ne = {\n default: \"bg-border\",\n muted: \"bg-muted\",\n accent: \"bg-accent\"\n}, Ce = {\n horizontal: \"w-full\",\n vertical: \"min-h-4 h-full\"\n};\nfunction Ze({\n orientation: o = \"horizontal\",\n decorative: a = !1,\n thickness: e = \"thin\",\n variant: n = \"default\",\n className: t,\n ...r\n}) {\n const s = w(\n \"shrink-0\",\n Ce[o],\n Ee[e][o],\n Ne[n],\n t\n );\n return /* @__PURE__ */ u(\n \"div\",\n {\n ...r,\n className: s,\n role: a ? \"presentation\" : \"separator\",\n \"aria-orientation\": a ? void 0 : o,\n \"aria-hidden\": a,\n \"data-orientation\": o,\n \"data-thickness\": e,\n \"data-variant\": n\n }\n );\n}\nfunction Je({ children: o, ref: a, ...e }) {\n if (P(o)) {\n let n = { ...e };\n return o.props && (n = { ...n, ...o.props }), ee(o, {\n ...n,\n ref: (t) => {\n typeof a == \"function\" ? a(t) : a && (a.current = t);\n }\n });\n }\n return Y(\"div\", { ...e, ref: a }, o);\n}\nfunction Ae({ elementId: o, maxLength: a }) {\n const [e, n] = x(0);\n return C(() => {\n const t = document.getElementById(o);\n if (!t)\n return;\n const r = () => {\n const s = t.value.length;\n n(s);\n const d = s >= a;\n t.setAttribute(\"aria-describedby\", `${o}-character-count`), t.setAttribute(\"aria-invalid\", d ? \"true\" : \"false\"), d ? 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 }, [o, a]), /* @__PURE__ */ u(\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__ */ E(\"span\", { id: `${o}-character-count`, children: [\n e,\n \" / \",\n a,\n \" characters\"\n ] })\n }\n );\n}\nfunction Ie(o, a) {\n C(() => {\n const e = document.getElementById(o);\n if (!e)\n return;\n if (!a) {\n e.style.height = \"auto\";\n return;\n }\n const n = () => {\n e.style.height = \"auto\", e.style.height = `${e.scrollHeight}px`;\n };\n return n(), e.addEventListener(\"input\", n), e.addEventListener(\"resize\", n), window.addEventListener(\"resize\", n), () => {\n e.removeEventListener(\"input\", n), e.removeEventListener(\"resize\", n), window.removeEventListener(\"resize\", n);\n };\n }, [o, a]);\n}\nconst $e = {\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}, Te = {\n none: \"rounded-none\",\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n full: \"px-3 rounded-full\"\n}, X = {\n variant: \"outline\",\n rounded: \"none\"\n};\nfunction Ye({\n variant: o = X.variant,\n rounded: a,\n displayOnlyMode: e = !1,\n errorMessage: n,\n successMessage: t,\n hideResizeHandle: r = !1,\n autoExpand: s = !1,\n characterLimit: d = 0,\n className: c,\n ...l\n}) {\n const b = I();\n Ie(b, s || e);\n let i = a;\n o === \"outline\" && !a && (i = \"md\"), i = i || X.rounded;\n let v = r;\n (e || o === \"left-line\" && !r) && (v = !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 && $e[o],\n !e && Te[i],\n !e && \"px-2 py-1\",\n e && \"pointer-events-none\",\n v && \"no-resize-handle\",\n c\n );\n return /* @__PURE__ */ E(\"div\", { className: w(\"-space-y-1.5\", e && \"cursor-text\"), children: [\n /* @__PURE__ */ u(\n \"textarea\",\n {\n ...l,\n id: b,\n \"aria-disabled\": l.disabled,\n readOnly: e,\n \"aria-readonly\": e || l[\"aria-readonly\"],\n style: {\n resize: s ? \"none\" : void 0\n },\n className: m\n }\n ),\n d > 0 && /* @__PURE__ */ u(Ae, { elementId: b, maxLength: d }),\n !e && /* @__PURE__ */ u(S, { elementId: b, type: \"error\", message: n }),\n !e && /* @__PURE__ */ u(S, { elementId: b, type: \"success\", message: t })\n ] });\n}\nconst De = {\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}, ze = {\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}, Z = {\n variant: \"default\",\n size: \"md\"\n};\nfunction Me({\n ref: o,\n id: a,\n size: e = Z.size,\n variant: n = Z.variant,\n checked: t,\n onCheckedChange: r,\n disabled: s = !1,\n className: d,\n thumbClassName: c,\n backgroundClassNames: l,\n ...b\n}) {\n const i = I(), v = W(() => a || `toggle-${i}`, [a, i]), [f, m] = x(t);\n C(() => {\n m(t);\n }, [t]);\n const g = () => {\n if (!s) {\n const $ = !f;\n t === void 0 && m($), r == null || r($);\n }\n }, h = ($) => {\n ($.key === \" \" || $.key === \"Enter\") && ($.preventDefault(), g());\n }, y = De[e], p = ze[n], N = w(\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 f ? (l == null ? void 0 : l.checked) || p.checked : (l == null ? void 0 : l.unchecked) || p.unchecked,\n // Disabled state\n s && \"opacity-50 cursor-not-allowed\",\n !s && \"cursor-pointer\",\n d\n ), D = w(\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 f && y.translate,\n c\n );\n return /* @__PURE__ */ E(\n \"button\",\n {\n ref: o,\n id: v,\n type: \"button\",\n role: \"switch\",\n tabIndex: 0,\n \"aria-checked\": f,\n \"aria-disabled\": s,\n disabled: s,\n onClick: g,\n onKeyDown: h,\n className: N,\n ...b,\n children: [\n /* @__PURE__ */ u(\"span\", { className: D }),\n /* @__PURE__ */ u(\"span\", { className: \"sr-only\", children: f ? \"Enabled\" : \"Disabled\" })\n ]\n }\n );\n}\nconst R = 8, B = 4, T = 6;\nfunction ke(o) {\n return { calculatePosition: A(\n (e, n) => {\n const t = e.getBoundingClientRect(), r = n.getBoundingClientRect(), s = {\n width: window.innerWidth,\n height: window.innerHeight\n }, d = (v, f, m, g) => v < 0 || f < 0 || v + m > s.width || f + g > s.height, c = {\n top: {\n x: t.left + t.width / 2 - r.width / 2,\n y: t.top - r.height - B,\n arrow: {\n x: r.width / 2 - T,\n y: r.height\n }\n },\n bottom: {\n x: t.left + t.width / 2 - r.width / 2,\n y: t.bottom + B,\n arrow: {\n x: r.width / 2 - T,\n y: -6\n }\n },\n left: {\n x: t.left - r.width - B,\n y: t.top + t.height / 2 - r.height / 2,\n arrow: {\n x: r.width,\n y: r.height / 2 - T\n }\n },\n right: {\n x: t.right + B,\n y: t.top + t.height / 2 - r.height / 2,\n arrow: {\n x: -6,\n y: r.height / 2 - T\n }\n }\n };\n let l = o, b = c[o];\n if (d(b.x, b.y, r.width, r.height)) {\n const v = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n }, f = c[v[o]];\n if (!d(f.x, f.y, r.width, r.height))\n l = v[o], b = f;\n else {\n const m = [\"top\", \"bottom\", \"left\", \"right\"].filter(\n (g) => g !== o && g !== v[o]\n );\n for (const g of m) {\n const h = c[g];\n if (!d(h.x, h.y, r.width, r.height)) {\n l = g, b = h;\n break;\n }\n }\n }\n }\n b.x = Math.max(\n R,\n Math.min(b.x, s.width - r.width - R)\n ), b.y = Math.max(\n R,\n Math.min(b.y, s.height - r.height - R)\n );\n const i = {\n x: t.left + t.width / 2,\n y: t.top + t.height / 2\n };\n return l === \"top\" || l === \"bottom\" ? b.arrow.x = Math.max(\n T,\n Math.min(i.x - b.x - T, r.width - T * 2)\n ) : b.arrow.y = Math.max(\n T,\n Math.min(i.y - b.y - T, r.height - T * 2)\n ), {\n ...b,\n placement: l\n };\n },\n [o]\n ) };\n}\nfunction Le(o, a, e) {\n const n = j(null), t = j(null), r = A(() => {\n if (!n.current || !t.current) return;\n const s = o(n.current, t.current);\n e(s);\n }, [o, 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: n,\n tooltipRef: t,\n updatePosition: r\n };\n}\nfunction Re(o, a, e, n, t, r, s, d, c) {\n const l = j(null), b = A(() => {\n o || (l.current && clearTimeout(l.current), l.current = window.setTimeout(() => {\n e(!0), requestAnimationFrame(() => {\n t(), n(!0);\n });\n }, a));\n }, [o, a, e, t, n]), i = A(\n (v = !1) => {\n if (l.current && clearTimeout(l.current), v) {\n n(!1), setTimeout(() => e(!1), 150);\n return;\n }\n l.current = window.setTimeout(() => {\n n(!1), setTimeout(() => e(!1), 150);\n }, 100);\n },\n [n, e]\n );\n return C(() => {\n !r && !s && !d && c && i();\n }, [r, s, d, c, i]), C(() => () => {\n l.current && clearTimeout(l.current);\n }, []), {\n showTooltip: b,\n hideTooltip: i,\n timeoutRef: l\n };\n}\nfunction Oe({\n id: o,\n children: a,\n message: e,\n placement: n = \"top\",\n disabled: t = !1,\n delay: r = 200,\n className: s\n}) {\n const [d, c] = x(!1), [l, b] = x(!1), [i, v] = x(null), [f, m] = x(!1), [g, h] = x(!1), [y, p] = x(!1), { calculatePosition: N } = ke(n), { triggerRef: D, tooltipRef: $, updatePosition: F } = Le(N, l, v), { showTooltip: k, hideTooltip: L, timeoutRef: U } = Re(\n t,\n r,\n b,\n c,\n F,\n f,\n g,\n y,\n d\n ), O = I(), _ = o ?? O;\n return /* @__PURE__ */ E(J, { children: [\n z.cloneElement(a, {\n ref: (V) => {\n D.current = V;\n },\n onMouseEnter: () => {\n m(!0), k();\n },\n onMouseLeave: () => {\n m(!1);\n },\n onFocus: () => {\n p(!0), k();\n },\n onBlur: () => {\n p(!1), L(!0);\n },\n onKeyDown: (V) => {\n V.key === \"Escape\" && L(!0);\n },\n \"aria-describedby\": t ? void 0 : _\n }),\n l && M(\n /* @__PURE__ */ u(\n \"div\",\n {\n ref: $,\n id: _,\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 d ? \"opacity-100\" : \"opacity-0\",\n s\n ),\n style: i ? { left: i.x, top: i.y } : { opacity: 0 },\n onMouseEnter: () => {\n h(!0), U.current && clearTimeout(U.current);\n },\n onMouseLeave: () => {\n h(!1);\n },\n children: e\n }\n ),\n document.body\n )\n ] });\n}\nexport {\n Ke as Accordion,\n q as AccordionItem,\n tt as ActionModal,\n me as Button,\n de as ButtonLoadingDots,\n Ge as Checkbox,\n We as Clickable,\n Ue as Input,\n _e as Label,\n Qe as Modal,\n Xe as RadioGroup,\n G as RadioGroupItem,\n ye as RadioInput,\n Ze as Separator,\n Je as Slot,\n Ye as Textarea,\n rt as Toast,\n Me as Toggle,\n Oe 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","t","s","h","C","i","e","w","F","de","o","a","x","u","ce","ue","fe","K","me","r","d","c","l","E","ge","ve","we","j","A","Qe","b","v","f","I","m","g","y","p","z","N","D","$","k","L","J","M","H","le","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","X"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Toast-CwaBr4ht.cjs","sources":["utils.esm.js","X-CIoyLewf.js","Toast-vensJgtx.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 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 r, Fragment as S, jsxs as f } from \"react/jsx-runtime\";\nimport q, { createContext as F, useId as H, useState as p, useEffect as b, useRef as P, useCallback as z, useMemo as C } from \"react\";\nimport { createPortal as V } from \"react-dom\";\nimport { X as D, C as K, E as W, I as X } from \"./X-CIoyLewf.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\", className: n = \"inline\", ...t }) {\n return /* @__PURE__ */ r(\n \"svg\",\n {\n ...t,\n width: e,\n height: e,\n className: n,\n viewBox: \"0 0 15 15\",\n xmlns: \"http://www.w3.org/2000/svg\",\n 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 }\n );\n}\nfunction v(...e) {\n return e.filter((l) => typeof l == \"string\" && l).join(\" \").trim() || void 0;\n}\nF(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 Y({\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: s,\n ...d\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 s\n );\n return /* @__PURE__ */ f(\n \"button\",\n {\n ...d,\n role: i ? \"link\" : d.role,\n \"aria-label\": d[\"aria-label\"] || (a == null ? void 0 : a[\"aria-label\"]),\n \"aria-description\": d[\"aria-description\"] || (a == null ? void 0 : a[\"aria-description\"]),\n \"aria-disabled\": d.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: d.children }),\n i && !d.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 _(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 = P(null), t = z(() => {\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 s = Array.from(o).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 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: s,\n hideCloseButton: d = !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: E, shouldRender: y } = _(l);\n if (ee(N, y), $(y, n), !y) 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, ...M } = A;\n return /* @__PURE__ */ r(Y, { className: O, type: \"button\", ...M, \"data-modal-action\": \"true\", children: B }, I);\n }) });\n return /* @__PURE__ */ r(S, { children: V(\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: v(\"fixed inset-0 bg-black/20 transition-all\", s),\n onClick: () => {\n u || n();\n }\n }\n ),\n a && /* @__PURE__ */ r(\"div\", { className: v(\"relative w-fit\", o), children: i }),\n !a && /* @__PURE__ */ f(\n \"div\",\n {\n id: N,\n tabIndex: -1,\n className: v(\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 E ? \"opacity-100 scale-100\" : \"opacity-0 scale-90\",\n o\n ),\n children: [\n !d && /* @__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: s,\n ...d\n}) {\n const c = C(() => e === \"confirm\" ? {\n confirm: t || \"Confirm\",\n cancel: n || \"Cancel\",\n defaultTitle: s || \"Confirm Action\"\n } : {\n confirm: t || \"OK\",\n cancel: null,\n defaultTitle: s || \"Alert\"\n }, [e, t, s, 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 ...d,\n title: s || 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(W, { 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(K, { size: 20 })\n }\n};\nfunction de({\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: s,\n customComponent: d\n}) {\n const [c, u] = p(!1), m = z(() => {\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]), d)\n return /* @__PURE__ */ r(\n d,\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 = (s == null ? void 0 : s[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 de as T,\n w as n\n};\n//# sourceMappingURL=Toast-vensJgtx.js.map\n","import { jsxs as E, jsx as u, Fragment as J } from \"react/jsx-runtime\";\nimport z, { useId as I, useState as x, createElement as Y, useEffect as C, useCallback as A, useMemo as W, useRef as j, isValidElement as P, cloneElement as ee } from \"react\";\nimport { join as w } from \"./utils.esm.js\";\nimport { b as te, C as re, a as ne, c as oe, E as ae, Q as se } from \"./QuestionMarkCircled-BVBF3skB.js\";\nimport { n as H } from \"./Toast-vensJgtx.js\";\nimport { A as tt, T as rt } from \"./Toast-vensJgtx.js\";\nimport { E as ie, X as le } from \"./X-CIoyLewf.js\";\nimport { createPortal as M } from \"react-dom\";\nfunction q({\n id: o,\n title: a,\n content: e,\n children: n,\n className: t = \"\",\n disabled: r = !1,\n isOpen: s = !1,\n onToggle: d,\n triggerClassName: c = \"\",\n bodyClassName: l = \"\"\n}) {\n const b = I(), i = o || `accordion-item-${b}`, v = `${i}-header`, f = `${i}-panel`, m = () => {\n !r && d && d();\n }, g = (h) => {\n (h.key === \"Enter\" || h.key === \" \") && (h.preventDefault(), m());\n };\n return /* @__PURE__ */ E(\"div\", { className: w(\"border-b border-gray-200\", r && \"opacity-60 cursor-not-allowed\", t), children: [\n /* @__PURE__ */ E(\n \"button\",\n {\n id: v,\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 c\n ),\n \"aria-expanded\": s,\n \"aria-controls\": f,\n disabled: r,\n onClick: m,\n onKeyDown: g,\n children: [\n /* @__PURE__ */ u(\"span\", { children: a }),\n /* @__PURE__ */ u(\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__ */ u(te, { size: 18 })\n }\n )\n ]\n }\n ),\n /* @__PURE__ */ u(\n \"div\",\n {\n id: f,\n role: \"region\",\n \"aria-labelledby\": v,\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 l\n ),\n children: s && (n || e)\n }\n )\n ] });\n}\nfunction Ke({\n id: o,\n items: a = [],\n children: e,\n className: n = \"\",\n itemClassName: t = \"\",\n allowMultiple: r = !1,\n defaultOpenItems: s = [],\n triggersClassName: d = \"\",\n bodiesClassName: c = \"\"\n}) {\n const l = I(), b = o || `accordion-group-${l}`, [i, v] = x(new Set(s)), f = (h) => {\n v((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) => `${l}-item-${h}`, g = (h) => i.has(h);\n return /* @__PURE__ */ E(\"div\", { id: b, className: n, children: [\n a.length > 0 && a.map((h, y) => {\n const p = h.id || m(y);\n return /* @__PURE__ */ u(\n q,\n {\n id: p,\n title: h.title,\n content: h.content,\n disabled: h.disabled,\n isOpen: g(p),\n onToggle: () => f(p),\n className: t,\n triggerClassName: d,\n bodyClassName: c\n },\n p\n );\n }),\n a.length === 0 && e && z.Children.map(e, (h, y) => {\n if (z.isValidElement(h) && h.type === q) {\n const p = h.props.id || m(y);\n return /* @__PURE__ */ Y(\n q,\n {\n ...h.props,\n key: p,\n id: p,\n className: w(t, h.props.className),\n isOpen: g(p),\n onToggle: () => f(p),\n triggerClassName: w(d, h.props.triggerClassName),\n bodyClassName: w(c, h.props.bodyClassName)\n }\n );\n }\n return null;\n })\n ] });\n}\nfunction de() {\n const [o, a] = x(0);\n return C(() => {\n const e = setInterval(() => {\n a((n) => (n + 1) % 3);\n }, 500);\n return () => clearInterval(e);\n }, []), /* @__PURE__ */ u(\"div\", { className: \"absolute inset-0 inline-flex items-center justify-center gap-x-2 align-middle\", children: [0, 1, 2].map((e) => /* @__PURE__ */ u(\n \"div\",\n {\n className: w(\n \"rounded-full transition-all duration-500 ease-in-out size-[0.35em] bg-current\",\n o === e && \"transform -translate-y-1\"\n )\n },\n e\n )) });\n}\nconst ce = {\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}, fe = {\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 me({\n variant: o = K.variant,\n size: a,\n rounded: e = K.rounded,\n loading: n,\n linkTo: t,\n linkProps: r,\n type: s = \"button\",\n className: d,\n ...c\n}) {\n let l;\n o === \"link\" && !a ? l = \"fitted\" : l = 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 ce[o],\n ue[l],\n fe[e],\n n && \"relative pointer-events-none\",\n t && \"relative\",\n d\n );\n return /* @__PURE__ */ E(\n \"button\",\n {\n ...c,\n role: t ? \"link\" : c.role,\n \"aria-label\": c[\"aria-label\"] || (r == null ? void 0 : r[\"aria-label\"]),\n \"aria-description\": c[\"aria-description\"] || (r == null ? void 0 : r[\"aria-description\"]),\n \"aria-disabled\": c.disabled || n,\n \"aria-busy\": n,\n type: s,\n className: i,\n children: [\n n && /* @__PURE__ */ u(de, {}),\n /* @__PURE__ */ u(\"span\", { className: w(n && \"invisible\"), children: c.children }),\n t && !c.disabled && /* @__PURE__ */ u(\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 be(o) {\n const [a, e] = x(\"\"), n = A((t) => {\n let r = t, s = \"\";\n for (; r && !s; ) {\n const d = window.getComputedStyle(r).backgroundColor;\n d && d !== \"transparent\" && d !== \"rgba(0, 0, 0, 0)\" && (s = d), r = r.parentElement;\n }\n return s || \"transparent\";\n }, []);\n return C(() => {\n const t = document.getElementById(o);\n if (t) {\n const r = n(t.parentElement);\n e(r);\n }\n }, [o, n]), a;\n}\nfunction Ge({\n ref: o,\n id: a,\n size: e = 20,\n color: n,\n filled: t = !1,\n rounded: r = !0,\n checked: s = !1,\n onCheckedChange: d,\n disabled: c,\n className: l = \"\",\n ...b\n}) {\n const i = I(), v = W(() => a || `checkbox-${i}`, [a, i]), f = be(v), [m, g] = x(s);\n C(() => {\n g(s);\n }, [s]);\n const h = () => {\n c || (g(!m), d == null || d(!m));\n }, y = (N) => {\n N.key === \" \" && (N.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 c && \"opacity-40 cursor-not-allowed\",\n !c && \"cursor-pointer\",\n l\n );\n return /* @__PURE__ */ u(\n \"button\",\n {\n id: v,\n type: \"button\",\n ref: o,\n tabIndex: 0,\n role: \"checkbox\",\n onClick: h,\n \"aria-checked\": m,\n \"aria-disabled\": c,\n onKeyDownCapture: y,\n style: {\n width: e,\n height: e,\n color: n,\n backgroundColor: m && t ? \"currentcolor\" : \"transparent\"\n },\n className: p,\n ...b,\n children: m && /* @__PURE__ */ u(re, { size: e, color: t ? f : void 0 })\n }\n );\n}\nfunction We({\n children: o,\n className: a,\n linkTo: e,\n linkProps: n,\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__ */ E(\"div\", { className: w(\"relative w-fit\", a), ...s, children: [\n o,\n e && /* @__PURE__ */ u(\n \"a\",\n {\n ...n,\n rel: (n == null ? void 0 : n.rel) || \"noreferrer\",\n href: e,\n className: w(\"absolute inset-0\", n == null ? void 0 : n.className)\n }\n ),\n !e && t && /* @__PURE__ */ u(\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 S({ elementId: o, type: a, message: e }) {\n return C(() => {\n const n = document.getElementById(o);\n if (n) {\n if (!e && a === \"error\") {\n n.removeAttribute(\"data-error\");\n return;\n }\n if (!e && a === \"success\") {\n n.removeAttribute(\"data-success\");\n return;\n }\n return n.setAttribute(\"aria-describedby\", `${o}-${a}-message`), n.setAttribute(\"aria-invalid\", a === \"error\" ? \"true\" : \"false\"), a === \"error\" && n.setAttribute(\"data-error\", \"true\"), a === \"success\" && n.setAttribute(\"data-success\", \"true\"), () => {\n n.removeAttribute(\"aria-describedby\"), n.removeAttribute(\"aria-invalid\"), n.removeAttribute(\"data-error\"), n.removeAttribute(\"data-success\");\n };\n }\n }, [o, a, e]), e ? /* @__PURE__ */ E(\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__ */ u(ie, {}) : /* @__PURE__ */ u(ne, {}),\n /* @__PURE__ */ u(\"span\", { id: `${o}-${a}-message`, children: e })\n ]\n }\n ) : null;\n}\nconst he = {\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}, pe = {\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: \"default\",\n rounded: \"none\"\n};\nfunction Ue({\n variant: o = Q.variant,\n rounded: a,\n displayOnlyMode: e = !1,\n errorMessage: n,\n successMessage: t,\n type: r = \"text\",\n className: s,\n ...d\n}) {\n const c = I(), [l, b] = x(!1);\n let i = a;\n o === \"outline\" && !a && (i = \"md\"), i = i || Q.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 && he[o],\n !e && pe[i],\n r === \"password\" && \"pr-10\",\n !e && \"px-2 py-1\",\n e && \"pointer-events-none\",\n s\n );\n return /* @__PURE__ */ E(\"div\", { className: w(e && \"cursor-text\"), style: { height: d.height, width: d.width }, children: [\n /* @__PURE__ */ E(\"div\", { className: w(r === \"password\" && \"relative\"), children: [\n /* @__PURE__ */ u(\n \"input\",\n {\n ...d,\n id: c,\n type: r === \"password\" && l ? \"text\" : r,\n \"aria-disabled\": d.disabled,\n readOnly: e,\n \"aria-readonly\": e || d[\"aria-readonly\"],\n \"data-error\": n ? !0 : void 0,\n \"data-success\": t ? !0 : void 0,\n className: m\n }\n ),\n r === \"password\" && /* @__PURE__ */ u(\n \"button\",\n {\n onClick: () => b(!l),\n className: \"absolute inset-y-0 right-0 px-2 hover:cursor-pointer\",\n \"aria-label\": \"Toggle password visibility\",\n \"data-state\": l ? \"visible\" : \"hidden\",\n children: l ? /* @__PURE__ */ u(oe, { size: 20 }) : /* @__PURE__ */ u(ae, { size: 20 })\n }\n )\n ] }),\n !e && /* @__PURE__ */ u(S, { elementId: c, type: \"error\", message: n }),\n !e && /* @__PURE__ */ u(S, { elementId: c, type: \"success\", message: t })\n ] });\n}\nfunction _e({\n display: o = \"inline\",\n width: a = \"fit-content\",\n className: e = \"\",\n required: n,\n helpMessage: t,\n suffix: r,\n htmlFor: s,\n children: d,\n ...c\n}) {\n const l = I(), b = w(\"font-medium\", o, e), i = t ? `${s ?? l}-help` : void 0;\n return /* @__PURE__ */ E(\"div\", { style: { display: o === \"inline\" ? \"inline-flex\" : \"flex\", width: a }, className: \"relative\", children: [\n /* @__PURE__ */ E(\"label\", { className: b, htmlFor: s, ...c, children: [\n d,\n n && /* @__PURE__ */ u(\"span\", { className: \"text-red-500 font-medium ml-1\", \"aria-label\": \"required\", children: \"*\" })\n ] }),\n t && /* @__PURE__ */ u(\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__ */ u(se, {})\n }\n ),\n t && /* @__PURE__ */ u(\"div\", { id: i, className: \"sr-only\", children: t }),\n r && /* @__PURE__ */ u(\"span\", { className: \"ml-1\", children: r })\n ] });\n}\nfunction ge(o) {\n const [a, e] = x(!1), [n, t] = x(!1);\n return C(() => {\n o ? (t(!0), setTimeout(() => e(!0), 10)) : (e(!1), setTimeout(() => t(!1), 150));\n }, [o]), { show: a, shouldRender: n };\n}\nfunction ve(o, a) {\n C(() => {\n const e = (n) => {\n n.key === \"Escape\" && o && a();\n };\n return document.addEventListener(\"keydown\", e), o && (document.body.style.overflow = \"hidden\"), () => {\n document.removeEventListener(\"keydown\", e), document.body.style.overflow = \"auto\";\n };\n }, [o, a]);\n}\nfunction we(o, a) {\n const e = j(null), n = A(() => {\n const t = document.getElementById(o);\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 d = Array.from(s).filter((c) => !(c instanceof HTMLButtonElement && c.getAttribute(\"data-modal-close-button\") === \"true\"));\n if (d.length > 0) {\n d[0].focus();\n return;\n }\n s[0].focus();\n return;\n }\n t.focus();\n }, [o]);\n C(() => (a && (e.current = document.activeElement, n()), () => {\n document.body.style.overflow = \"auto\", e.current instanceof HTMLElement && e.current.focus();\n }), [a, n]);\n}\nfunction Qe({\n id: o,\n isOpen: a,\n onClose: e,\n title: n,\n children: t,\n contentOnly: r = !1,\n className: s,\n overlayClassName: d,\n hideCloseButton: c = !1,\n actions: l = [],\n disableCloseOnOverlayClick: b = !1,\n ariaLabelledBy: i,\n ariaDescribedBy: v\n}) {\n const f = I(), m = o || `modal-${f}`, g = o ? `${o}-title` : `modal-title-${f}`, { show: h, shouldRender: y } = ge(a);\n if (we(m, y), ve(y, e), !y) return null;\n const p = () => n ? z.isValidElement(n) ? /* @__PURE__ */ u(\"div\", { className: \"mb-4\", children: n }) : /* @__PURE__ */ u(\"h2\", { className: \"mb-4 text-xl font-semibold\", id: g, children: n }) : null, N = () => l.length === 0 ? null : /* @__PURE__ */ u(\"div\", { className: \"mt-6 not-sm:grid gap-y-2 sm:flex sm:justify-start sm:flex-row-reverse sm:gap-x-3\", children: l.map((D, $) => {\n const { label: F, className: k, ...L } = D;\n return /* @__PURE__ */ u(me, { className: k, type: \"button\", ...L, \"data-modal-action\": \"true\", children: F }, $);\n }) });\n return /* @__PURE__ */ u(J, { children: M(\n /* @__PURE__ */ u(\n \"div\",\n {\n \"aria-labelledby\": i ?? n ? g : void 0,\n \"aria-describedby\": v,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n className: \"fixed inset-0 z-[100] overflow-y-auto\",\n children: /* @__PURE__ */ E(\"div\", { className: \"flex min-h-screen items-center justify-center p-4\", children: [\n /* @__PURE__ */ u(\n \"div\",\n {\n className: H(\"fixed inset-0 bg-black/20 transition-all\", d),\n onClick: () => {\n b || e();\n }\n }\n ),\n r && /* @__PURE__ */ u(\"div\", { className: H(\"relative w-fit\", s), children: t }),\n !r && /* @__PURE__ */ E(\n \"div\",\n {\n id: m,\n tabIndex: -1,\n className: H(\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 !c && /* @__PURE__ */ u(\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__ */ u(le, { size: 18 })\n }\n ),\n p(),\n t,\n N()\n ]\n }\n )\n ] })\n }\n ),\n document.body\n ) });\n}\nfunction ye({ itemId: o, checked: a, onChange: e, name: n, disabled: t = !1, className: r = \"\" }) {\n const s = \"relative inline-flex items-center justify-center rounded-full\", d = () => {\n t || e();\n }, c = 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__ */ u(\n \"div\",\n {\n id: o,\n role: \"radio\",\n tabIndex: -1,\n \"aria-checked\": a,\n \"aria-disabled\": t,\n \"aria-description\": `Radio button for ${n}`,\n \"aria-labelledby\": `${o}-label`,\n onClick: d,\n className: c,\n style: {\n width: \"1em\",\n height: \"1em\",\n padding: \"0.1em\",\n borderWidth: \"0.06em\"\n },\n children: a && /* @__PURE__ */ u(\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: o,\n children: a,\n className: e = \"\",\n isSelected: n = !1,\n onChange: t,\n disabled: r = !1,\n hideInput: s = !1,\n description: d,\n name: c\n}) {\n const b = `radio-${I()}-${o}`, i = () => {\n r || t == null || t(o);\n };\n return /* @__PURE__ */ E(\n \"div\",\n {\n title: d,\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 && !n && `border-transparent ${r ? \"\" : \"not-focus-within:hover:border-border/60\"}`,\n s && n && \"border-border\",\n r && \"opacity-60 cursor-not-allowed\"\n ),\n style: {\n gap: \"0.5em\"\n },\n children: [\n !s && /* @__PURE__ */ u(\n ye,\n {\n itemId: b,\n name: c || \"\",\n checked: n,\n onChange: i,\n disabled: r,\n className: w(s && \"\")\n }\n ),\n /* @__PURE__ */ u(\n \"div\",\n {\n id: s ? b : void 0,\n tabIndex: s ? -1 : void 0,\n role: s ? \"radio\" : void 0,\n onClick: s ? i : void 0,\n \"aria-checked\": s ? n ? \"true\" : \"false\" : void 0,\n \"aria-disabled\": s ? r : void 0,\n \"aria-description\": s ? d || `Radio button for ${c}` : void 0,\n \"aria-labelledby\": s ? `${b}-label` : void 0,\n className: w(s && \"size-full\", typeof a == \"object\" && \"grow focus:outline-none\"),\n children: /* @__PURE__ */ u(\n \"label\",\n {\n id: `${b}-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 xe(o, a) {\n const [e, n] = x(a), [t, r] = x(-1), [s, d] = x(!1), c = A((f, m) => {\n var y;\n const g = f[m];\n g.hasAttribute(\"disabled\") || g.getAttribute(\"aria-disabled\") === \"true\" || ((y = f[m]) == null || y.click(), r(m));\n }, []), l = A(\n (f, m) => {\n var h;\n if (f.preventDefault(), s || !m.length) return;\n const g = a !== -1 ? a : 0;\n (h = m[g]) == null || h.focus(), n(g), a !== -1 && c(m, g);\n },\n [a, s, c]\n ), b = A(\n (f) => {\n var y;\n if (!f.shiftKey)\n return;\n f.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), g = m.findIndex((p) => p.id === o), h = g > 0 ? g - 1 : m.length - 1;\n (y = m[h]) == null || y.focus();\n },\n [o]\n ), i = A(\n (f, m) => {\n var N;\n if (!m.length) return;\n const g = f.target;\n if (!m.some((D) => D.id === g.id)) return;\n const y = e !== -1 ? e : 0;\n let p = y;\n switch (f.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n f.preventDefault(), p = y > 0 ? y - 1 : m.length - 1;\n break;\n case \"ArrowDown\":\n case \"ArrowRight\":\n f.preventDefault(), p = (y + 1) % m.length;\n break;\n // Select the option when the space key is pressed\n case \" \":\n f.preventDefault(), c(m, y);\n return;\n case \"Tab\":\n b(f);\n return;\n default:\n return;\n }\n (N = m[p]) == null || N.focus(), n(p), t !== -1 && c(m, p);\n },\n [e, t, b, c]\n ), v = A(() => {\n const f = document.querySelector(`[id=\"${o}\"][role=\"radiogroup\"]`);\n return f ? Array.from(f.querySelectorAll('[role=\"radio\"]')) : [];\n }, [o]);\n C(() => {\n const f = document.querySelector(`[id=\"${o}\"][role=\"radiogroup\"]`);\n if (!f) return;\n const m = v(), g = (N) => l(N, m), h = (N) => i(N, m), y = () => d(!0), p = () => d(!1);\n return document.addEventListener(\"keydown\", h), f.addEventListener(\"focus\", g), f.addEventListener(\"mousedown\", y), document.addEventListener(\"mouseup\", p), () => {\n document.removeEventListener(\"keydown\", h), f.removeEventListener(\"focus\", g), f.removeEventListener(\"mousedown\", y), document.removeEventListener(\"mouseup\", p);\n };\n }, [o, v, l, i]);\n}\nfunction Xe({\n options: o = [],\n value: a,\n onChange: e,\n id: n,\n children: t,\n className: r = \"\",\n childrenClassName: s = \"\",\n hideInputs: d = !1\n}) {\n const c = I(), l = n || `radio-group-${c}`;\n xe(\n l,\n o.findIndex((i) => i === a)\n );\n const b = W(() => o.reduce((i, v) => (typeof v == \"string\" ? i.some((f) => f.value === v) || i.push({ label: v, value: v }) : i.push(v), i), []), [o]);\n return /* @__PURE__ */ E(\"div\", { id: l, role: \"radiogroup\", tabIndex: 0, className: w(r, \"focus:outline-none\"), children: [\n b.length > 0 && b.map((i, v) => /* @__PURE__ */ u(\n G,\n {\n value: i.value,\n isSelected: a === i.value,\n onChange: e,\n name: l,\n disabled: i.disabled,\n description: i.description,\n hideInput: d,\n className: s,\n children: i.label\n },\n `${i.value}-${v}`\n )),\n b.length === 0 && t && z.Children.map(t, (i) => z.isValidElement(i) && i.type === G ? /* @__PURE__ */ u(\n G,\n {\n ...i.props,\n className: w(s, i.props.className),\n hideInput: i.props.hideInput || d,\n isSelected: a === i.props.value,\n onChange: e,\n name: l,\n children: i.props.children\n }\n ) : null)\n ] });\n}\nconst Ee = {\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}, Ne = {\n default: \"bg-border\",\n muted: \"bg-muted\",\n accent: \"bg-accent\"\n}, Ce = {\n horizontal: \"w-full\",\n vertical: \"min-h-4 h-full\"\n};\nfunction Ze({\n orientation: o = \"horizontal\",\n decorative: a = !1,\n thickness: e = \"thin\",\n variant: n = \"default\",\n className: t,\n ...r\n}) {\n const s = w(\n \"shrink-0\",\n Ce[o],\n Ee[e][o],\n Ne[n],\n t\n );\n return /* @__PURE__ */ u(\n \"div\",\n {\n ...r,\n className: s,\n role: a ? \"presentation\" : \"separator\",\n \"aria-orientation\": a ? void 0 : o,\n \"aria-hidden\": a,\n \"data-orientation\": o,\n \"data-thickness\": e,\n \"data-variant\": n\n }\n );\n}\nfunction Je({ children: o, ref: a, ...e }) {\n if (P(o)) {\n let n = { ...e };\n return o.props && (n = { ...n, ...o.props }), ee(o, {\n ...n,\n ref: (t) => {\n typeof a == \"function\" ? a(t) : a && (a.current = t);\n }\n });\n }\n return Y(\"div\", { ...e, ref: a }, o);\n}\nfunction Ae({ elementId: o, maxLength: a }) {\n const [e, n] = x(0);\n return C(() => {\n const t = document.getElementById(o);\n if (!t)\n return;\n const r = () => {\n const s = t.value.length;\n n(s);\n const d = s >= a;\n t.setAttribute(\"aria-describedby\", `${o}-character-count`), t.setAttribute(\"aria-invalid\", d ? \"true\" : \"false\"), d ? 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 }, [o, a]), /* @__PURE__ */ u(\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__ */ E(\"span\", { id: `${o}-character-count`, children: [\n e,\n \" / \",\n a,\n \" characters\"\n ] })\n }\n );\n}\nfunction Ie(o, a) {\n C(() => {\n const e = document.getElementById(o);\n if (!e)\n return;\n if (!a) {\n e.style.height = \"auto\";\n return;\n }\n const n = () => {\n e.style.height = \"auto\", e.style.height = `${e.scrollHeight}px`;\n };\n return n(), e.addEventListener(\"input\", n), e.addEventListener(\"resize\", n), window.addEventListener(\"resize\", n), () => {\n e.removeEventListener(\"input\", n), e.removeEventListener(\"resize\", n), window.removeEventListener(\"resize\", n);\n };\n }, [o, a]);\n}\nconst $e = {\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}, Te = {\n none: \"rounded-none\",\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n full: \"px-3 rounded-full\"\n}, X = {\n variant: \"outline\",\n rounded: \"none\"\n};\nfunction Ye({\n variant: o = X.variant,\n rounded: a,\n displayOnlyMode: e = !1,\n errorMessage: n,\n successMessage: t,\n hideResizeHandle: r = !1,\n autoExpand: s = !1,\n characterLimit: d = 0,\n className: c,\n ...l\n}) {\n const b = I();\n Ie(b, s || e);\n let i = a;\n o === \"outline\" && !a && (i = \"md\"), i = i || X.rounded;\n let v = r;\n (e || o === \"left-line\" && !r) && (v = !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 && $e[o],\n !e && Te[i],\n !e && \"px-2 py-1\",\n e && \"pointer-events-none\",\n v && \"no-resize-handle\",\n c\n );\n return /* @__PURE__ */ E(\"div\", { className: w(\"-space-y-1.5\", e && \"cursor-text\"), children: [\n /* @__PURE__ */ u(\n \"textarea\",\n {\n ...l,\n id: b,\n \"aria-disabled\": l.disabled,\n readOnly: e,\n \"aria-readonly\": e || l[\"aria-readonly\"],\n style: {\n resize: s ? \"none\" : void 0\n },\n className: m\n }\n ),\n d > 0 && /* @__PURE__ */ u(Ae, { elementId: b, maxLength: d }),\n !e && /* @__PURE__ */ u(S, { elementId: b, type: \"error\", message: n }),\n !e && /* @__PURE__ */ u(S, { elementId: b, type: \"success\", message: t })\n ] });\n}\nconst De = {\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}, ze = {\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}, Z = {\n variant: \"default\",\n size: \"md\"\n};\nfunction Me({\n ref: o,\n id: a,\n size: e = Z.size,\n variant: n = Z.variant,\n checked: t,\n onCheckedChange: r,\n disabled: s = !1,\n className: d,\n thumbClassName: c,\n backgroundClassNames: l,\n ...b\n}) {\n const i = I(), v = W(() => a || `toggle-${i}`, [a, i]), [f, m] = x(t);\n C(() => {\n m(t);\n }, [t]);\n const g = () => {\n if (!s) {\n const $ = !f;\n t === void 0 && m($), r == null || r($);\n }\n }, h = ($) => {\n ($.key === \" \" || $.key === \"Enter\") && ($.preventDefault(), g());\n }, y = De[e], p = ze[n], N = w(\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 f ? (l == null ? void 0 : l.checked) || p.checked : (l == null ? void 0 : l.unchecked) || p.unchecked,\n // Disabled state\n s && \"opacity-50 cursor-not-allowed\",\n !s && \"cursor-pointer\",\n d\n ), D = w(\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 f && y.translate,\n c\n );\n return /* @__PURE__ */ E(\n \"button\",\n {\n ref: o,\n id: v,\n type: \"button\",\n role: \"switch\",\n tabIndex: 0,\n \"aria-checked\": f,\n \"aria-disabled\": s,\n disabled: s,\n onClick: g,\n onKeyDown: h,\n className: N,\n ...b,\n children: [\n /* @__PURE__ */ u(\"span\", { className: D }),\n /* @__PURE__ */ u(\"span\", { className: \"sr-only\", children: f ? \"Enabled\" : \"Disabled\" })\n ]\n }\n );\n}\nconst R = 8, B = 4, T = 6;\nfunction ke(o) {\n return { calculatePosition: A(\n (e, n) => {\n const t = e.getBoundingClientRect(), r = n.getBoundingClientRect(), s = {\n width: window.innerWidth,\n height: window.innerHeight\n }, d = (v, f, m, g) => v < 0 || f < 0 || v + m > s.width || f + g > s.height, c = {\n top: {\n x: t.left + t.width / 2 - r.width / 2,\n y: t.top - r.height - B,\n arrow: {\n x: r.width / 2 - T,\n y: r.height\n }\n },\n bottom: {\n x: t.left + t.width / 2 - r.width / 2,\n y: t.bottom + B,\n arrow: {\n x: r.width / 2 - T,\n y: -6\n }\n },\n left: {\n x: t.left - r.width - B,\n y: t.top + t.height / 2 - r.height / 2,\n arrow: {\n x: r.width,\n y: r.height / 2 - T\n }\n },\n right: {\n x: t.right + B,\n y: t.top + t.height / 2 - r.height / 2,\n arrow: {\n x: -6,\n y: r.height / 2 - T\n }\n }\n };\n let l = o, b = c[o];\n if (d(b.x, b.y, r.width, r.height)) {\n const v = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n }, f = c[v[o]];\n if (!d(f.x, f.y, r.width, r.height))\n l = v[o], b = f;\n else {\n const m = [\"top\", \"bottom\", \"left\", \"right\"].filter(\n (g) => g !== o && g !== v[o]\n );\n for (const g of m) {\n const h = c[g];\n if (!d(h.x, h.y, r.width, r.height)) {\n l = g, b = h;\n break;\n }\n }\n }\n }\n b.x = Math.max(\n R,\n Math.min(b.x, s.width - r.width - R)\n ), b.y = Math.max(\n R,\n Math.min(b.y, s.height - r.height - R)\n );\n const i = {\n x: t.left + t.width / 2,\n y: t.top + t.height / 2\n };\n return l === \"top\" || l === \"bottom\" ? b.arrow.x = Math.max(\n T,\n Math.min(i.x - b.x - T, r.width - T * 2)\n ) : b.arrow.y = Math.max(\n T,\n Math.min(i.y - b.y - T, r.height - T * 2)\n ), {\n ...b,\n placement: l\n };\n },\n [o]\n ) };\n}\nfunction Le(o, a, e) {\n const n = j(null), t = j(null), r = A(() => {\n if (!n.current || !t.current) return;\n const s = o(n.current, t.current);\n e(s);\n }, [o, 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: n,\n tooltipRef: t,\n updatePosition: r\n };\n}\nfunction Re(o, a, e, n, t, r, s, d, c) {\n const l = j(null), b = A(() => {\n o || (l.current && clearTimeout(l.current), l.current = window.setTimeout(() => {\n e(!0), requestAnimationFrame(() => {\n t(), n(!0);\n });\n }, a));\n }, [o, a, e, t, n]), i = A(\n (v = !1) => {\n if (l.current && clearTimeout(l.current), v) {\n n(!1), setTimeout(() => e(!1), 150);\n return;\n }\n l.current = window.setTimeout(() => {\n n(!1), setTimeout(() => e(!1), 150);\n }, 100);\n },\n [n, e]\n );\n return C(() => {\n !r && !s && !d && c && i();\n }, [r, s, d, c, i]), C(() => () => {\n l.current && clearTimeout(l.current);\n }, []), {\n showTooltip: b,\n hideTooltip: i,\n timeoutRef: l\n };\n}\nfunction Oe({\n id: o,\n children: a,\n message: e,\n placement: n = \"top\",\n disabled: t = !1,\n delay: r = 200,\n className: s\n}) {\n const [d, c] = x(!1), [l, b] = x(!1), [i, v] = x(null), [f, m] = x(!1), [g, h] = x(!1), [y, p] = x(!1), { calculatePosition: N } = ke(n), { triggerRef: D, tooltipRef: $, updatePosition: F } = Le(N, l, v), { showTooltip: k, hideTooltip: L, timeoutRef: U } = Re(\n t,\n r,\n b,\n c,\n F,\n f,\n g,\n y,\n d\n ), O = I(), _ = o ?? O;\n return /* @__PURE__ */ E(J, { children: [\n z.cloneElement(a, {\n ref: (V) => {\n D.current = V;\n },\n onMouseEnter: () => {\n m(!0), k();\n },\n onMouseLeave: () => {\n m(!1);\n },\n onFocus: () => {\n p(!0), k();\n },\n onBlur: () => {\n p(!1), L(!0);\n },\n onKeyDown: (V) => {\n V.key === \"Escape\" && L(!0);\n },\n \"aria-describedby\": t ? void 0 : _\n }),\n l && M(\n /* @__PURE__ */ u(\n \"div\",\n {\n ref: $,\n id: _,\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 d ? \"opacity-100\" : \"opacity-0\",\n s\n ),\n style: i ? { left: i.x, top: i.y } : { opacity: 0 },\n onMouseEnter: () => {\n h(!0), U.current && clearTimeout(U.current);\n },\n onMouseLeave: () => {\n h(!1);\n },\n children: e\n }\n ),\n document.body\n )\n ] });\n}\nexport {\n Ke as Accordion,\n q as AccordionItem,\n tt as ActionModal,\n me as Button,\n de as ButtonLoadingDots,\n Ge as Checkbox,\n We as Clickable,\n Ue as Input,\n _e as Label,\n Qe as Modal,\n Xe as RadioGroup,\n G as RadioGroupItem,\n ye as RadioInput,\n Ze as Separator,\n Je as Slot,\n Ye as Textarea,\n rt as Toast,\n Me as Toggle,\n Oe 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","h","C","i","e","w","F","de","o","a","x","u","ce","ue","fe","K","me","t","r","d","c","l","E","ge","ve","we","j","A","Qe","b","v","f","I","m","g","p","z","N","D","$","k","L","J","M","H","le","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","X"],"mappings":"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"}
|