@moondreamsdev/dreamer-ui 1.7.7-test.7 → 1.7.7-test.9

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/README.md CHANGED
@@ -38,6 +38,19 @@ And, finally, install the stylesheets in main CSS file (recommended):
38
38
  @source "../node_modules/@moondreamsdev/dreamer-ui/dist/**/*.{js,jsx,ts,tsx}";
39
39
  ```
40
40
 
41
+ ### Tailwind Class Name Auto-Detection
42
+
43
+ To enable Tailwind CSS IntelliSense for component classnames like `targetClassName`, add the following to your VS Code settings.json:
44
+
45
+ ```json
46
+ {
47
+ "tailwindCSS.classAttributes": ["class", "className", ".*ClassName"]
48
+ }
49
+ ```
50
+
51
+ This configuration allows the Tailwind CSS extension to provide autocomplete and validation for any attribute that contains "className" in its name, including custom props like `targetClassName`, `containerClassName`, etc.
52
+
53
+
41
54
  ## Usage
42
55
 
43
56
  ```tsx
@@ -1,12 +1,12 @@
1
1
  import { jsx as r, Fragment as M, jsxs as f } from "react/jsx-runtime";
2
- import q, { createContext as D, useId as H, useState as p, useEffect as b, useRef as K, useCallback as E, useMemo as C } from "react";
2
+ import $, { createContext as q, useId as H, useState as p, useEffect as b, useRef as K, useCallback as z, useMemo as C } from "react";
3
3
  import { createPortal as P } from "react-dom";
4
- import { X as Z, C as F, E as V, I as X } from "./X-CIoyLewf.js";
5
- import { join as G } from "./utils.esm.js";
4
+ import { X as D, C as F, E as J, I as V } from "./X-CIoyLewf.js";
5
+ import { join as X } from "./utils.esm.js";
6
6
  function w(...e) {
7
7
  return e.filter((l) => typeof l == "string" && l).join(" ").trim() || void 0;
8
8
  }
9
- function J({ size: e = 15, color: l = "currentColor", className: n = "inline", ...t }) {
9
+ function Z({ size: e = 15, color: l = "currentColor", className: n = "inline", ...t }) {
10
10
  return /* @__PURE__ */ r(
11
11
  "svg",
12
12
  {
@@ -31,8 +31,8 @@ function J({ size: e = 15, color: l = "currentColor", className: n = "inline", .
31
31
  function y(...e) {
32
32
  return e.filter((l) => typeof l == "string" && l).join(" ").trim() || void 0;
33
33
  }
34
- D(void 0);
35
- function Q() {
34
+ q(void 0);
35
+ function G() {
36
36
  const [e, l] = p(0);
37
37
  return b(() => {
38
38
  const n = setInterval(() => {
@@ -50,7 +50,7 @@ function Q() {
50
50
  n
51
51
  )) });
52
52
  }
53
- const U = {
53
+ const Q = {
54
54
  base: "",
55
55
  primary: "bg-primary text-primary-foreground hover:bg-primary/85 disabled:bg-muted disabled:text-muted-foreground",
56
56
  secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/85 disabled:bg-muted/80 disabled:text-muted-foreground/80",
@@ -58,7 +58,7 @@ const U = {
58
58
  outline: "border border-primary text-primary hover:border-primary-foreground hover:text-primary-foreground disabled:border-muted disabled:text-muted",
59
59
  link: "underline-offset-4 hover:underline disabled:underline disabled:text-muted",
60
60
  destructive: "bg-destructive text-destructive-foreground hover:bg-destructive/85 disabled:bg-muted disabled:text-muted-foreground"
61
- }, W = {
61
+ }, U = {
62
62
  stripped: "",
63
63
  fitted: "size-fit",
64
64
  sm: "px-2 py-1 text-sm",
@@ -66,7 +66,7 @@ const U = {
66
66
  lg: "px-6 py-3 text-lg",
67
67
  icon: "p-1 w-fit aspect-square",
68
68
  full: "p-2 w-full"
69
- }, Y = {
69
+ }, W = {
70
70
  none: "rounded-none",
71
71
  sm: "rounded-sm",
72
72
  md: "rounded-md",
@@ -77,7 +77,7 @@ const U = {
77
77
  size: "md",
78
78
  rounded: "md"
79
79
  };
80
- function _({
80
+ function Y({
81
81
  variant: e = x.variant,
82
82
  size: l,
83
83
  rounded: n = x.rounded,
@@ -85,35 +85,35 @@ function _({
85
85
  linkTo: i,
86
86
  linkProps: a,
87
87
  type: o = "button",
88
- className: s,
89
- ...d
88
+ className: d,
89
+ ...s
90
90
  }) {
91
91
  let c;
92
92
  e === "link" && !l ? c = "fitted" : c = l || x.size;
93
93
  const u = w(
94
94
  "appearance-none focus:outline-none focus:ring not-disabled:hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed transition-all",
95
- U[e],
96
- W[c],
97
- Y[n],
95
+ Q[e],
96
+ U[c],
97
+ W[n],
98
98
  t && "relative pointer-events-none",
99
99
  i && "relative",
100
- s
100
+ d
101
101
  );
102
102
  return /* @__PURE__ */ f(
103
103
  "button",
104
104
  {
105
- ...d,
106
- role: i ? "link" : d.role,
107
- "aria-label": d["aria-label"] || (a == null ? void 0 : a["aria-label"]),
108
- "aria-description": d["aria-description"] || (a == null ? void 0 : a["aria-description"]),
109
- "aria-disabled": d.disabled || t,
105
+ ...s,
106
+ role: i ? "link" : s.role,
107
+ "aria-label": s["aria-label"] || (a == null ? void 0 : a["aria-label"]),
108
+ "aria-description": s["aria-description"] || (a == null ? void 0 : a["aria-description"]),
109
+ "aria-disabled": s.disabled || t,
110
110
  "aria-busy": t,
111
111
  type: o,
112
112
  className: u,
113
113
  children: [
114
- t && /* @__PURE__ */ r(Q, {}),
115
- /* @__PURE__ */ r("span", { className: w(t && "invisible"), children: d.children }),
116
- i && !d.disabled && /* @__PURE__ */ r(
114
+ t && /* @__PURE__ */ r(G, {}),
115
+ /* @__PURE__ */ r("span", { className: w(t && "invisible"), children: s.children }),
116
+ i && !s.disabled && /* @__PURE__ */ r(
117
117
  "a",
118
118
  {
119
119
  ...a,
@@ -127,13 +127,13 @@ function _({
127
127
  }
128
128
  );
129
129
  }
130
- function R(e) {
130
+ function _(e) {
131
131
  const [l, n] = p(!1), [t, i] = p(!1);
132
132
  return b(() => {
133
133
  e ? (i(!0), setTimeout(() => n(!0), 10)) : (n(!1), setTimeout(() => i(!1), 150));
134
134
  }, [e]), { show: l, shouldRender: t };
135
135
  }
136
- function $(e, l) {
136
+ function R(e, l) {
137
137
  b(() => {
138
138
  const n = (t) => {
139
139
  t.key === "Escape" && e && l();
@@ -144,7 +144,7 @@ function $(e, l) {
144
144
  }, [e, l]);
145
145
  }
146
146
  function ee(e, l) {
147
- const n = K(null), t = E(() => {
147
+ const n = K(null), t = z(() => {
148
148
  const i = document.getElementById(e);
149
149
  if (!i) return;
150
150
  const a = i.querySelectorAll('[data-modal-action="true"]');
@@ -156,9 +156,9 @@ function ee(e, l) {
156
156
  'button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])'
157
157
  );
158
158
  if (o.length > 0) {
159
- const s = Array.from(o).filter((d) => !(d instanceof HTMLButtonElement && d.getAttribute("data-modal-close-button") === "true"));
160
- if (s.length > 0) {
161
- s[0].focus();
159
+ const d = Array.from(o).filter((s) => !(s instanceof HTMLButtonElement && s.getAttribute("data-modal-close-button") === "true"));
160
+ if (d.length > 0) {
161
+ d[0].focus();
162
162
  return;
163
163
  }
164
164
  o[0].focus();
@@ -178,18 +178,18 @@ function te({
178
178
  children: i,
179
179
  contentOnly: a = !1,
180
180
  className: o,
181
- overlayClassName: s,
182
- hideCloseButton: d = !1,
181
+ overlayClassName: d,
182
+ hideCloseButton: s = !1,
183
183
  actions: c = [],
184
184
  disableCloseOnOverlayClick: u = !1,
185
185
  ariaLabelledBy: m,
186
186
  ariaDescribedBy: g
187
187
  }) {
188
- const h = H(), N = e || `modal-${h}`, k = e ? `${e}-title` : `modal-title-${h}`, { show: z, shouldRender: v } = R(l);
189
- if (ee(N, v), $(v, n), !v) return null;
190
- 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, B) => {
188
+ const h = H(), N = e || `modal-${h}`, k = e ? `${e}-title` : `modal-title-${h}`, { show: E, shouldRender: v } = _(l);
189
+ if (ee(N, v), R(v, n), !v) return null;
190
+ const T = () => t ? $.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, B) => {
191
191
  const { label: I, className: O, ...S } = A;
192
- return /* @__PURE__ */ r(_, { className: O, type: "button", ...S, "data-modal-action": "true", children: I }, B);
192
+ return /* @__PURE__ */ r(Y, { className: O, type: "button", ...S, "data-modal-action": "true", children: I }, B);
193
193
  }) });
194
194
  return /* @__PURE__ */ r(M, { children: P(
195
195
  /* @__PURE__ */ r(
@@ -204,7 +204,7 @@ function te({
204
204
  /* @__PURE__ */ r(
205
205
  "div",
206
206
  {
207
- className: y("fixed inset-0 bg-black/20 transition-all", s),
207
+ className: y("fixed inset-0 bg-black/20 transition-all", d),
208
208
  onClick: () => {
209
209
  u || n();
210
210
  }
@@ -218,18 +218,18 @@ function te({
218
218
  tabIndex: -1,
219
219
  className: y(
220
220
  "relative w-full max-w-xl transform rounded-lg shadow-xl bg-popover transition-all p-6 focus:ring ease-in duration-75",
221
- z ? "opacity-100 scale-100" : "opacity-0 scale-90",
221
+ E ? "opacity-100 scale-100" : "opacity-0 scale-90",
222
222
  o
223
223
  ),
224
224
  children: [
225
- !d && /* @__PURE__ */ r(
225
+ !s && /* @__PURE__ */ r(
226
226
  "button",
227
227
  {
228
228
  type: "button",
229
229
  onClick: n,
230
230
  "data-modal-close-button": "true",
231
231
  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",
232
- children: /* @__PURE__ */ r(J, { size: 18 })
232
+ children: /* @__PURE__ */ r(Z, { size: 18 })
233
233
  }
234
234
  ),
235
235
  T(),
@@ -252,18 +252,18 @@ function oe({
252
252
  onConfirm: i,
253
253
  onClose: a,
254
254
  destructive: o = !1,
255
- title: s,
256
- ...d
255
+ title: d,
256
+ ...s
257
257
  }) {
258
258
  const c = C(() => e === "confirm" ? {
259
259
  confirm: t || "Confirm",
260
260
  cancel: n || "Cancel",
261
- defaultTitle: s || "Confirm Action"
261
+ defaultTitle: d || "Confirm Action"
262
262
  } : {
263
263
  confirm: t || "OK",
264
264
  cancel: null,
265
- defaultTitle: s || "Alert"
266
- }, [e, t, s, n]), u = C(
265
+ defaultTitle: d || "Alert"
266
+ }, [e, t, d, n]), u = C(
267
267
  () => [
268
268
  ...c.cancel ? [
269
269
  {
@@ -285,8 +285,8 @@ function oe({
285
285
  return /* @__PURE__ */ r(
286
286
  te,
287
287
  {
288
- ...d,
289
- title: s || c.defaultTitle,
288
+ ...s,
289
+ title: d || c.defaultTitle,
290
290
  onClose: a,
291
291
  actions: u,
292
292
  disableCloseOnOverlayClick: e === "confirm",
@@ -298,18 +298,18 @@ function oe({
298
298
  const L = {
299
299
  info: {
300
300
  className: "bg-blue-50 border-blue-200 text-blue-900 dark:bg-blue-800 dark:border-blue-950 dark:text-blue-100",
301
- icon: /* @__PURE__ */ r(X, { size: 20 })
301
+ icon: /* @__PURE__ */ r(V, { size: 20 })
302
302
  },
303
303
  warning: {
304
304
  className: "bg-yellow-50 border-yellow-200 text-yellow-900 dark:bg-yellow-800 dark:border-yellow-950 dark:text-yellow-100",
305
- icon: /* @__PURE__ */ r(V, { size: 20 })
305
+ icon: /* @__PURE__ */ r(J, { size: 20 })
306
306
  },
307
307
  error: {
308
308
  className: "bg-red-50 border-red-200 text-red-900 dark:bg-red-800 dark:border-red-950 dark:text-red-100",
309
309
  icon: /* @__PURE__ */ r(F, { size: 20 })
310
310
  }
311
311
  };
312
- function de({
312
+ function se({
313
313
  id: e,
314
314
  title: l,
315
315
  description: n,
@@ -317,10 +317,10 @@ function de({
317
317
  action: i,
318
318
  duration: a = 5e3,
319
319
  onRemove: o,
320
- customTypes: s,
321
- customComponent: d
320
+ customTypes: d,
321
+ customComponent: s
322
322
  }) {
323
- const [c, u] = p(!1), m = E(() => {
323
+ const [c, u] = p(!1), m = z(() => {
324
324
  u(!0), setTimeout(() => {
325
325
  o == null || o(e);
326
326
  }, 150);
@@ -332,9 +332,9 @@ function de({
332
332
  }, a);
333
333
  return () => clearTimeout(h);
334
334
  }
335
- }, [a, e, o, m]), d)
335
+ }, [a, e, o, m]), s)
336
336
  return /* @__PURE__ */ r(
337
- d,
337
+ s,
338
338
  {
339
339
  id: e,
340
340
  title: l,
@@ -345,13 +345,13 @@ function de({
345
345
  onRemove: o
346
346
  }
347
347
  );
348
- const g = (s == null ? void 0 : s[t]) || L[t] || L.info;
348
+ const g = (d == null ? void 0 : d[t]) || L[t] || L.info;
349
349
  return /* @__PURE__ */ f(
350
350
  "div",
351
351
  {
352
352
  role: t === "error" ? "alert" : "status",
353
353
  "aria-live": t === "error" ? void 0 : "polite",
354
- className: G(
354
+ className: X(
355
355
  "relative flex items-start p-4 rounded-lg border shadow-lg transition-all duration-150 ease-in-out",
356
356
  i && "pb-3",
357
357
  g.className,
@@ -376,7 +376,7 @@ function de({
376
376
  {
377
377
  onClick: m,
378
378
  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",
379
- children: /* @__PURE__ */ r(Z, { size: 16 })
379
+ children: /* @__PURE__ */ r(D, { size: 16 })
380
380
  }
381
381
  )
382
382
  ]
@@ -385,7 +385,7 @@ function de({
385
385
  }
386
386
  export {
387
387
  oe as A,
388
- de as T,
388
+ se as T,
389
389
  w as n
390
390
  };
391
- //# sourceMappingURL=Toast-DfNdN3Lk.js.map
391
+ //# sourceMappingURL=Toast-CZ-yb83h.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Toast-CZ-yb83h.js","sources":["utils.esm.js","X-CIoyLewf.js","Toast-COzsZuCT.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 M, jsxs as f } from \"react/jsx-runtime\";\nimport q, { createContext as H, useId as K, useState as p, useEffect as b, useRef as P, useCallback as z, useMemo as C } from \"react\";\nimport { createPortal as Z } from \"react-dom\";\nimport { X as D, C as F, E as V, I as X } from \"./X-CIoyLewf.js\";\nimport { join as G } from \"./utils.esm.js\";\nfunction w(...e) {\n return e.filter((l) => typeof l == \"string\" && l).join(\" \").trim() || void 0;\n}\nfunction J({ 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 y(...e) {\n return e.filter((l) => typeof l == \"string\" && l).join(\" \").trim() || void 0;\n}\nH(void 0);\nfunction Q() {\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 U = {\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}, W = {\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}, Y = {\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 _({\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 U[e],\n W[c],\n Y[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(Q, {}),\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 R(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 = K(), N = e || `modal-${h}`, k = e ? `${e}-title` : `modal-title-${h}`, { show: E, shouldRender: v } = R(l);\n if (ee(N, v), $(v, n), !v) return null;\n const T = () => t ? q.isValidElement(t) ? /* @__PURE__ */ r(\"div\", { className: \"mb-4\", children: t }) : /* @__PURE__ */ r(\"h2\", { className: \"mb-4 text-xl font-semibold\", id: k, children: t }) : null, j = () => c.length === 0 ? null : /* @__PURE__ */ r(\"div\", { className: \"mt-6 not-sm:grid gap-y-2 sm:flex sm:justify-start sm:flex-row-reverse sm:gap-x-3\", children: c.map((A, B) => {\n const { label: I, className: O, ...S } = A;\n return /* @__PURE__ */ r(_, { className: O, type: \"button\", ...S, \"data-modal-action\": \"true\", children: I }, B);\n }) });\n return /* @__PURE__ */ r(M, { children: Z(\n /* @__PURE__ */ r(\n \"div\",\n {\n \"aria-labelledby\": m ?? t ? k : void 0,\n \"aria-describedby\": g,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n className: \"fixed inset-0 z-[100] overflow-y-auto\",\n children: /* @__PURE__ */ f(\"div\", { className: \"flex min-h-screen items-center justify-center p-4\", children: [\n /* @__PURE__ */ r(\n \"div\",\n {\n className: y(\"fixed inset-0 bg-black/20 transition-all\", s),\n onClick: () => {\n u || n();\n }\n }\n ),\n a && /* @__PURE__ */ r(\"div\", { className: y(\"relative w-fit\", o), children: i }),\n !a && /* @__PURE__ */ f(\n \"div\",\n {\n id: N,\n tabIndex: -1,\n className: y(\n \"relative w-full max-w-xl transform rounded-lg shadow-xl bg-popover transition-all p-6 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(J, { 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(V, { size: 20 })\n },\n error: {\n className: \"bg-red-50 border-red-200 text-red-900 dark:bg-red-800 dark:border-red-950 dark:text-red-100\",\n icon: /* @__PURE__ */ r(F, { size: 20 })\n }\n};\nfunction 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: G(\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-COzsZuCT.js.map\n","import { jsxs as E, jsx as d, Fragment as W } from \"react/jsx-runtime\";\nimport z, { useId as $, useState as x, createElement as P, useEffect as A, useCallback as I, useMemo as _, useRef as R, isValidElement as te, cloneElement as re } from \"react\";\nimport { join as y } from \"./utils.esm.js\";\nimport { b as ne, C as oe, a as ae, c as se, E as ie, Q as le } from \"./QuestionMarkCircled-BVBF3skB.js\";\nimport { n as D } from \"./Toast-COzsZuCT.js\";\nimport { A as it, T as lt } from \"./Toast-COzsZuCT.js\";\nimport { E as de, X as O } from \"./X-CIoyLewf.js\";\nimport { createPortal as U } from \"react-dom\";\nfunction H({\n id: n,\n title: a,\n content: t,\n children: r,\n className: e = \"\",\n disabled: o = !1,\n isOpen: s = !1,\n onToggle: l,\n triggerClassName: u = \"\",\n bodyClassName: c = \"\"\n}) {\n const b = $(), i = n || `accordion-item-${b}`, v = `${i}-header`, f = `${i}-panel`, m = () => {\n !o && l && l();\n }, g = (h) => {\n (h.key === \"Enter\" || h.key === \" \") && (h.preventDefault(), m());\n };\n return /* @__PURE__ */ E(\"div\", { className: y(\"border-b border-gray-200\", o && \"opacity-60 cursor-not-allowed\", e), children: [\n /* @__PURE__ */ E(\n \"button\",\n {\n id: v,\n type: \"button\",\n className: y(\n \"w-full text-left py-3 px-4 flex justify-between items-center focus:outline focus:outline-secondary\",\n o ? \"cursor-not-allowed\" : \"hover:bg-gray-50/10 cursor-pointer\",\n u\n ),\n \"aria-expanded\": s,\n \"aria-controls\": f,\n disabled: o,\n onClick: m,\n onKeyDown: g,\n children: [\n /* @__PURE__ */ d(\"span\", { children: a }),\n /* @__PURE__ */ d(\n \"span\",\n {\n className: y(\n \"transform transition-transform duration-300 ease-linear\",\n s ? \"rotate-180\" : \"rotate-0\"\n ),\n \"aria-hidden\": \"true\",\n children: /* @__PURE__ */ d(ne, { size: 18 })\n }\n )\n ]\n }\n ),\n /* @__PURE__ */ d(\n \"div\",\n {\n id: f,\n role: \"region\",\n \"aria-labelledby\": v,\n className: y(\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 c\n ),\n children: s && (r || t)\n }\n )\n ] });\n}\nfunction Ue({\n id: n,\n items: a = [],\n children: t,\n className: r = \"\",\n itemClassName: e = \"\",\n allowMultiple: o = !1,\n defaultOpenItems: s = [],\n triggersClassName: l = \"\",\n bodiesClassName: u = \"\"\n}) {\n const c = $(), b = n || `accordion-group-${c}`, [i, v] = x(new Set(s)), f = (h) => {\n v((w) => {\n const p = new Set(w);\n return p.has(h) ? p.delete(h) : (o || p.clear(), p.add(h)), p;\n });\n }, m = (h) => `${c}-item-${h}`, g = (h) => i.has(h);\n return /* @__PURE__ */ E(\"div\", { id: b, className: r, children: [\n a.length > 0 && a.map((h, w) => {\n const p = h.id || m(w);\n return /* @__PURE__ */ d(\n H,\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: e,\n triggerClassName: l,\n bodyClassName: u\n },\n p\n );\n }),\n a.length === 0 && t && z.Children.map(t, (h, w) => {\n if (z.isValidElement(h) && h.type === H) {\n const p = h.props.id || m(w);\n return /* @__PURE__ */ P(\n H,\n {\n ...h.props,\n key: p,\n id: p,\n className: y(e, h.props.className),\n isOpen: g(p),\n onToggle: () => f(p),\n triggerClassName: y(l, h.props.triggerClassName),\n bodyClassName: y(u, h.props.bodyClassName)\n }\n );\n }\n return null;\n })\n ] });\n}\nfunction ce() {\n const [n, a] = x(0);\n return A(() => {\n const t = setInterval(() => {\n a((r) => (r + 1) % 3);\n }, 500);\n return () => clearInterval(t);\n }, []), /* @__PURE__ */ d(\"div\", { className: \"absolute inset-0 inline-flex items-center justify-center gap-x-2 align-middle\", children: [0, 1, 2].map((t) => /* @__PURE__ */ d(\n \"div\",\n {\n className: y(\n \"rounded-full transition-all duration-500 ease-in-out size-[0.35em] bg-current\",\n n === t && \"transform -translate-y-1\"\n )\n },\n t\n )) });\n}\nconst ue = {\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}, fe = {\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}, me = {\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 be({\n variant: n = K.variant,\n size: a,\n rounded: t = K.rounded,\n loading: r,\n linkTo: e,\n linkProps: o,\n type: s = \"button\",\n className: l,\n ...u\n}) {\n let c;\n n === \"link\" && !a ? c = \"fitted\" : c = a || K.size;\n const i = y(\n \"appearance-none focus:outline-none focus:ring not-disabled:hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed transition-all\",\n ue[n],\n fe[c],\n me[t],\n r && \"relative pointer-events-none\",\n e && \"relative\",\n l\n );\n return /* @__PURE__ */ E(\n \"button\",\n {\n ...u,\n role: e ? \"link\" : u.role,\n \"aria-label\": u[\"aria-label\"] || (o == null ? void 0 : o[\"aria-label\"]),\n \"aria-description\": u[\"aria-description\"] || (o == null ? void 0 : o[\"aria-description\"]),\n \"aria-disabled\": u.disabled || r,\n \"aria-busy\": r,\n type: s,\n className: i,\n children: [\n r && /* @__PURE__ */ d(ce, {}),\n /* @__PURE__ */ d(\"span\", { className: y(r && \"invisible\"), children: u.children }),\n e && !u.disabled && /* @__PURE__ */ d(\n \"a\",\n {\n ...o,\n \"aria-hidden\": !0,\n href: e,\n rel: (o == null ? void 0 : o.rel) || \"noreferrer\",\n className: \"absolute inset-0\"\n }\n )\n ]\n }\n );\n}\nfunction he(n) {\n const [a, t] = x(\"\"), r = I((e) => {\n let o = e, s = \"\";\n for (; o && !s; ) {\n const l = window.getComputedStyle(o).backgroundColor;\n l && l !== \"transparent\" && l !== \"rgba(0, 0, 0, 0)\" && (s = l), o = o.parentElement;\n }\n return s || \"transparent\";\n }, []);\n return A(() => {\n const e = document.getElementById(n);\n if (e) {\n const o = r(e.parentElement);\n t(o);\n }\n }, [n, r]), a;\n}\nfunction Qe({\n ref: n,\n id: a,\n size: t = 20,\n color: r,\n filled: e = !1,\n rounded: o = !0,\n checked: s = !1,\n onCheckedChange: l,\n disabled: u,\n className: c = \"\",\n ...b\n}) {\n const i = $(), v = _(() => a || `checkbox-${i}`, [a, i]), f = he(v), [m, g] = x(s);\n A(() => {\n g(s);\n }, [s]);\n const h = () => {\n u || (g(!m), l == null || l(!m));\n }, w = (N) => {\n N.key === \" \" && (N.preventDefault(), h());\n }, p = y(\n \"flex items-center justify-center border outline outline-transparent focus:outline-current focus:outline-offset-2\",\n o && \"rounded\",\n u && \"opacity-40 cursor-not-allowed\",\n !u && \"cursor-pointer\",\n c\n );\n return /* @__PURE__ */ d(\n \"button\",\n {\n id: v,\n type: \"button\",\n ref: n,\n tabIndex: 0,\n role: \"checkbox\",\n onClick: h,\n \"aria-checked\": m,\n \"aria-disabled\": u,\n onKeyDownCapture: w,\n style: {\n width: t,\n height: t,\n color: r,\n backgroundColor: m && e ? \"currentcolor\" : \"transparent\"\n },\n className: p,\n ...b,\n children: m && /* @__PURE__ */ d(oe, { size: t, color: e ? f : void 0 })\n }\n );\n}\nfunction Me({\n children: n,\n className: a,\n linkTo: t,\n linkProps: r,\n onButtonClick: e,\n buttonProps: o,\n ...s\n}) {\n return t && e && console.warn('Clickable: Both \"linkTo\" and \"onButtonClick\" props are provided. Only \"linkTo\" will be used.'), /* @__PURE__ */ E(\"div\", { className: y(\"relative w-fit\", a), ...s, children: [\n n,\n t && /* @__PURE__ */ d(\n \"a\",\n {\n ...r,\n rel: (r == null ? void 0 : r.rel) || \"noreferrer\",\n href: t,\n className: y(\"absolute inset-0\", r == null ? void 0 : r.className)\n }\n ),\n !t && e && /* @__PURE__ */ d(\n \"button\",\n {\n ...o,\n type: \"button\",\n onClick: e,\n className: y(\"absolute inset-0 cursor-pointer\", o == null ? void 0 : o.className)\n }\n )\n ] });\n}\nfunction V({ elementId: n, type: a, message: t }) {\n return A(() => {\n const r = document.getElementById(n);\n if (r) {\n if (!t && a === \"error\") {\n r.removeAttribute(\"data-error\");\n return;\n }\n if (!t && a === \"success\") {\n r.removeAttribute(\"data-success\");\n return;\n }\n return r.setAttribute(\"aria-describedby\", `${n}-${a}-message`), r.setAttribute(\"aria-invalid\", a === \"error\" ? \"true\" : \"false\"), a === \"error\" && r.setAttribute(\"data-error\", \"true\"), a === \"success\" && r.setAttribute(\"data-success\", \"true\"), () => {\n r.removeAttribute(\"aria-describedby\"), r.removeAttribute(\"aria-invalid\"), r.removeAttribute(\"data-error\"), r.removeAttribute(\"data-success\");\n };\n }\n }, [n, a, t]), t ? /* @__PURE__ */ E(\n \"small\",\n {\n className: y(\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__ */ d(de, {}) : /* @__PURE__ */ d(ae, {}),\n /* @__PURE__ */ d(\"span\", { id: `${n}-${a}-message`, children: t })\n ]\n }\n ) : null;\n}\nconst pe = {\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}, ge = {\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: \"default\",\n rounded: \"none\"\n};\nfunction Xe({\n variant: n = X.variant,\n rounded: a,\n displayOnlyMode: t = !1,\n errorMessage: r,\n successMessage: e,\n type: o = \"text\",\n className: s,\n ...l\n}) {\n const u = $(), [c, b] = x(!1);\n let i = a;\n n === \"outline\" && !a && (i = \"md\"), i = i || X.rounded;\n const m = y(\n \"appearance-none w-full focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed placeholder:text-muted/70 hide-number-input-arrows transition-all\",\n \"file:mr-2 file:border-0 file:rounded-md file:px-1.5 file:py-1 file:bg-primary hover:file:bg-primary/85 file:text-sm file:font-medium file:text-foreground file:transition-colors\",\n !t && pe[n],\n !t && ge[i],\n o === \"password\" && \"pr-10\",\n !t && \"px-2 py-1\",\n t && \"pointer-events-none\",\n s\n );\n return /* @__PURE__ */ E(\"div\", { className: y(t && \"cursor-text\"), style: { height: l.height, width: l.width }, children: [\n /* @__PURE__ */ E(\"div\", { className: y(o === \"password\" && \"relative\"), children: [\n /* @__PURE__ */ d(\n \"input\",\n {\n ...l,\n id: u,\n type: o === \"password\" && c ? \"text\" : o,\n \"aria-disabled\": l.disabled,\n readOnly: t,\n \"aria-readonly\": t || l[\"aria-readonly\"],\n \"data-error\": r ? !0 : void 0,\n \"data-success\": e ? !0 : void 0,\n className: m\n }\n ),\n o === \"password\" && /* @__PURE__ */ d(\n \"button\",\n {\n onClick: () => b(!c),\n className: \"absolute inset-y-0 right-0 px-2 hover:cursor-pointer\",\n \"aria-label\": \"Toggle password visibility\",\n \"data-state\": c ? \"visible\" : \"hidden\",\n children: c ? /* @__PURE__ */ d(se, { size: 20 }) : /* @__PURE__ */ d(ie, { size: 20 })\n }\n )\n ] }),\n !t && /* @__PURE__ */ d(V, { elementId: u, type: \"error\", message: r }),\n !t && /* @__PURE__ */ d(V, { elementId: u, type: \"success\", message: e })\n ] });\n}\nfunction Ze({\n display: n = \"inline\",\n width: a = \"fit-content\",\n className: t = \"\",\n required: r,\n helpMessage: e,\n suffix: o,\n htmlFor: s,\n children: l,\n ...u\n}) {\n const c = $(), b = y(\"font-medium\", n, t), i = e ? `${s ?? c}-help` : void 0;\n return /* @__PURE__ */ E(\"div\", { style: { display: n === \"inline\" ? \"inline-flex\" : \"flex\", width: a }, className: \"relative\", children: [\n /* @__PURE__ */ E(\"label\", { className: b, htmlFor: s, ...u, children: [\n l,\n r && /* @__PURE__ */ d(\"span\", { className: \"text-red-500 font-medium ml-1\", \"aria-label\": \"required\", children: \"*\" })\n ] }),\n e && /* @__PURE__ */ d(\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: e,\n children: /* @__PURE__ */ d(le, {})\n }\n ),\n e && /* @__PURE__ */ d(\"div\", { id: i, className: \"sr-only\", children: e }),\n o && /* @__PURE__ */ d(\"span\", { className: \"ml-1\", children: o })\n ] });\n}\nfunction ve(n) {\n const [a, t] = x(!1), [r, e] = x(!1);\n return A(() => {\n n ? (e(!0), setTimeout(() => t(!0), 10)) : (t(!1), setTimeout(() => e(!1), 150));\n }, [n]), { show: a, shouldRender: r };\n}\nfunction ye(n, a) {\n A(() => {\n const t = (r) => {\n r.key === \"Escape\" && n && a();\n };\n return document.addEventListener(\"keydown\", t), n && (document.body.style.overflow = \"hidden\"), () => {\n document.removeEventListener(\"keydown\", t), document.body.style.overflow = \"auto\";\n };\n }, [n, a]);\n}\nfunction we(n, a) {\n const t = R(null), r = I(() => {\n const e = document.getElementById(n);\n if (!e) return;\n const o = e.querySelectorAll('[data-modal-action=\"true\"]');\n if (o.length > 0) {\n o[0].focus();\n return;\n }\n const s = e.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (s.length > 0) {\n const l = Array.from(s).filter((u) => !(u instanceof HTMLButtonElement && u.getAttribute(\"data-modal-close-button\") === \"true\"));\n if (l.length > 0) {\n l[0].focus();\n return;\n }\n s[0].focus();\n return;\n }\n e.focus();\n }, [n]);\n A(() => (a && (t.current = document.activeElement, r()), () => {\n document.body.style.overflow = \"auto\", t.current instanceof HTMLElement && t.current.focus();\n }), [a, r]);\n}\nfunction Je({\n id: n,\n isOpen: a,\n onClose: t,\n title: r,\n children: e,\n contentOnly: o = !1,\n className: s,\n overlayClassName: l,\n hideCloseButton: u = !1,\n actions: c = [],\n disableCloseOnOverlayClick: b = !1,\n ariaLabelledBy: i,\n ariaDescribedBy: v\n}) {\n const f = $(), m = n || `modal-${f}`, g = n ? `${n}-title` : `modal-title-${f}`, { show: h, shouldRender: w } = ve(a);\n if (we(m, w), ye(w, t), !w) return null;\n const p = () => r ? z.isValidElement(r) ? /* @__PURE__ */ d(\"div\", { className: \"mb-4\", children: r }) : /* @__PURE__ */ d(\"h2\", { className: \"mb-4 text-xl font-semibold\", id: g, children: r }) : null, N = () => c.length === 0 ? null : /* @__PURE__ */ d(\"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((k, C) => {\n const { label: L, className: S, ...B } = k;\n return /* @__PURE__ */ d(be, { className: S, type: \"button\", ...B, \"data-modal-action\": \"true\", children: L }, C);\n }) });\n return /* @__PURE__ */ d(W, { children: U(\n /* @__PURE__ */ d(\n \"div\",\n {\n \"aria-labelledby\": i ?? r ? 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__ */ d(\n \"div\",\n {\n className: D(\"fixed inset-0 bg-black/20 transition-all\", l),\n onClick: () => {\n b || t();\n }\n }\n ),\n o && /* @__PURE__ */ d(\"div\", { className: D(\"relative w-fit\", s), children: e }),\n !o && /* @__PURE__ */ E(\n \"div\",\n {\n id: m,\n tabIndex: -1,\n className: D(\n \"relative w-full max-w-xl transform rounded-lg shadow-xl bg-popover transition-all p-6 focus:ring ease-in duration-75\",\n h ? \"opacity-100 scale-100\" : \"opacity-0 scale-90\",\n s\n ),\n children: [\n !u && /* @__PURE__ */ d(\n \"button\",\n {\n type: \"button\",\n onClick: t,\n \"data-modal-close-button\": \"true\",\n className: \"rounded-md p-0.5 top-2.5 right-2.5 absolute opacity-80 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-gray-500 leading-0\",\n children: /* @__PURE__ */ d(O, { size: 18 })\n }\n ),\n p(),\n e,\n N()\n ]\n }\n )\n ] })\n }\n ),\n document.body\n ) });\n}\nfunction xe(n) {\n const [a, t] = x(!1), [r, e] = x(!1);\n return A(() => {\n n ? (e(!0), setTimeout(() => t(!0), 10)) : (t(!1), setTimeout(() => e(!1), 300));\n }, [n]), { show: a, shouldRender: r };\n}\nfunction Ee(n, a) {\n A(() => {\n const t = (r) => {\n r.key === \"Escape\" && n && a();\n };\n return document.addEventListener(\"keydown\", t), n && (document.body.style.overflow = \"hidden\"), () => {\n document.removeEventListener(\"keydown\", t), document.body.style.overflow = \"auto\";\n };\n }, [n, a]);\n}\nfunction Ne(n, a) {\n const t = R(null), r = I(() => {\n const e = document.getElementById(n);\n if (!e) return;\n const o = e.querySelectorAll('[data-panel-action=\"true\"]');\n if (o.length > 0) {\n o[0].focus();\n return;\n }\n const s = e.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n );\n if (s.length > 0) {\n const l = Array.from(s).filter((u) => !(u instanceof HTMLButtonElement && u.getAttribute(\"data-panel-close-button\") === \"true\"));\n if (l.length > 0) {\n l[0].focus();\n return;\n }\n s[0].focus();\n return;\n }\n e.focus();\n }, [n]);\n A(() => (a && (t.current = document.activeElement, r()), () => {\n document.body.style.overflow = \"auto\", t.current instanceof HTMLElement && t.current.focus();\n }), [a, r]);\n}\nconst Ae = {\n size: {\n sm: \"max-w-sm\",\n md: \"max-w-md\",\n lg: \"max-w-lg\",\n xl: \"max-w-xl\",\n \"2xl\": \"max-w-2xl\",\n full: \"w-full\",\n screen: \"w-screen\"\n }\n};\nfunction Ye({\n ref: n,\n id: a,\n isOpen: t,\n onClose: r,\n title: e,\n children: o,\n footer: s,\n size: l = \"md\",\n className: u,\n overlayClassName: c,\n hideCloseButton: b = !1,\n disableCloseOnOverlayClick: i = !1,\n ariaLabelledBy: v,\n ariaDescribedBy: f\n}) {\n const m = $(), g = a || `panel-${m}`, h = a ? `${a}-title` : `panel-title-${m}`, { show: w, shouldRender: p } = xe(t);\n if (Ne(g, p), Ee(p, r), !p) return null;\n const N = () => e ? z.isValidElement(e) ? /* @__PURE__ */ d(\"div\", { children: e }) : /* @__PURE__ */ d(\"h2\", { className: \"text-2xl font-semibold\", id: h, children: e }) : null, k = () => {\n if (!s) return null;\n if (z.isValidElement(s)) {\n const C = s, L = C.props.className || \"\";\n return z.cloneElement(C, { className: D(\"px-6 py-4\", L) });\n }\n return /* @__PURE__ */ d(\"div\", { className: \"px-6 py-4\", children: s });\n };\n return /* @__PURE__ */ d(W, { children: U(\n /* @__PURE__ */ E(\n \"div\",\n {\n \"aria-labelledby\": v ?? e ? h : void 0,\n \"aria-describedby\": f,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n className: \"fixed inset-0 z-[100] overflow-hidden\",\n \"data-panel-open\": t,\n children: [\n /* @__PURE__ */ d(\n \"div\",\n {\n className: D(\n \"fixed inset-0 bg-black/40 transition-opacity duration-300\",\n w ? \"opacity-100\" : \"opacity-0\",\n c\n ),\n onClick: () => {\n i || r();\n }\n }\n ),\n /* @__PURE__ */ d(\"div\", { className: \"fixed inset-y-0 right-0 flex max-w-full\", children: /* @__PURE__ */ d(\n \"div\",\n {\n id: g,\n ref: n,\n tabIndex: -1,\n className: D(\n \"relative h-full transform shadow-xl bg-popover transition-transform duration-300 ease-in-out\",\n l !== \"screen\" && \"border-l border-border\",\n Ae.size[l],\n w ? \"translate-x-0\" : \"translate-x-full\",\n u\n ),\n \"data-panel-size\": l,\n children: /* @__PURE__ */ E(\"div\", { className: \"flex h-full flex-col\", children: [\n e && /* @__PURE__ */ d(\"div\", { className: \"px-6 pt-6\", children: N() }),\n !b && /* @__PURE__ */ d(\n \"button\",\n {\n type: \"button\",\n onClick: r,\n \"data-panel-close-button\": \"true\",\n \"aria-label\": \"Close panel\",\n className: \"rounded-md p-0.5 top-3 right-3 absolute opacity-80 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-gray-500 leading-0\",\n children: /* @__PURE__ */ d(O, { size: 18 })\n }\n ),\n /* @__PURE__ */ d(\"div\", { className: D(\"flex-1 overflow-y-auto px-6 pb-6\", e ? \"pt-6\" : \"pt-10\"), children: o }),\n k()\n ] })\n }\n ) })\n ]\n }\n ),\n document.body\n ) });\n}\nfunction Ce({ itemId: n, checked: a, onChange: t, name: r, disabled: e = !1, className: o = \"\" }) {\n const s = \"relative inline-flex items-center justify-center rounded-full\", l = () => {\n e || t();\n }, u = y(\n s,\n !a && \"hover:border-current/60\",\n !e && \"border-current cursor-pointer\",\n e && \"border-muted/60 cursor-not-allowed\",\n o\n );\n return /* @__PURE__ */ d(\n \"div\",\n {\n id: n,\n role: \"radio\",\n tabIndex: -1,\n \"aria-checked\": a,\n \"aria-disabled\": e,\n \"aria-description\": `Radio button for ${r}`,\n \"aria-labelledby\": `${n}-label`,\n onClick: l,\n className: u,\n style: {\n width: \"1em\",\n height: \"1em\",\n padding: \"0.1em\",\n borderWidth: \"0.06em\"\n },\n children: a && /* @__PURE__ */ d(\n \"div\",\n {\n className: y(\"size-full aspect-square rounded-full\", e && \"bg-muted/60\", !e && \"bg-current\")\n }\n )\n }\n );\n}\nfunction G({\n value: n,\n children: a,\n className: t = \"\",\n isSelected: r = !1,\n onChange: e,\n disabled: o = !1,\n hideInput: s = !1,\n description: l,\n name: u\n}) {\n const b = `radio-${$()}-${n}`, i = () => {\n o || e == null || e(n);\n };\n return /* @__PURE__ */ E(\n \"div\",\n {\n title: l,\n className: y(\n \"relative flex items-center\",\n t,\n // Uses text color for borders\n s && `p-2 border-2 focus-within:border-dashed focus-within:${o ? \"border-current/50\" : \"border-current/80\"}`,\n s && !r && `border-transparent ${o ? \"\" : \"not-focus-within:hover:border-border/60\"}`,\n s && r && \"border-border\",\n o && \"opacity-60 cursor-not-allowed\"\n ),\n style: {\n gap: \"0.5em\"\n },\n children: [\n !s && /* @__PURE__ */ d(\n Ce,\n {\n itemId: b,\n name: u || \"\",\n checked: r,\n onChange: i,\n disabled: o,\n className: y(s && \"\")\n }\n ),\n /* @__PURE__ */ d(\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 ? r ? \"true\" : \"false\" : void 0,\n \"aria-disabled\": s ? o : void 0,\n \"aria-description\": s ? l || `Radio button for ${u}` : void 0,\n \"aria-labelledby\": s ? `${b}-label` : void 0,\n className: y(s && \"size-full\", typeof a == \"object\" && \"grow focus:outline-none\"),\n children: /* @__PURE__ */ d(\n \"label\",\n {\n id: `${b}-label`,\n onClick: s ? void 0 : i,\n className: y(o && \"cursor-not-allowed\", !o && \"cursor-pointer\"),\n children: a\n }\n )\n }\n )\n ]\n }\n );\n}\nfunction Ie(n, a) {\n const [t, r] = x(a), [e, o] = x(-1), [s, l] = x(!1), u = I((f, m) => {\n var w;\n const g = f[m];\n g.hasAttribute(\"disabled\") || g.getAttribute(\"aria-disabled\") === \"true\" || ((w = f[m]) == null || w.click(), o(m));\n }, []), c = I(\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(), r(g), a !== -1 && u(m, g);\n },\n [a, s, u]\n ), b = I(\n (f) => {\n var w;\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 === n), h = g > 0 ? g - 1 : m.length - 1;\n (w = m[h]) == null || w.focus();\n },\n [n]\n ), i = I(\n (f, m) => {\n var N;\n if (!m.length) return;\n const g = f.target;\n if (!m.some((k) => k.id === g.id)) return;\n const w = t !== -1 ? t : 0;\n let p = w;\n switch (f.key) {\n case \"ArrowUp\":\n case \"ArrowLeft\":\n f.preventDefault(), p = w > 0 ? w - 1 : m.length - 1;\n break;\n case \"ArrowDown\":\n case \"ArrowRight\":\n f.preventDefault(), p = (w + 1) % m.length;\n break;\n // Select the option when the space key is pressed\n case \" \":\n f.preventDefault(), u(m, w);\n return;\n case \"Tab\":\n b(f);\n return;\n default:\n return;\n }\n (N = m[p]) == null || N.focus(), r(p), e !== -1 && u(m, p);\n },\n [t, e, b, u]\n ), v = I(() => {\n const f = document.querySelector(`[id=\"${n}\"][role=\"radiogroup\"]`);\n return f ? Array.from(f.querySelectorAll('[role=\"radio\"]')) : [];\n }, [n]);\n A(() => {\n const f = document.querySelector(`[id=\"${n}\"][role=\"radiogroup\"]`);\n if (!f) return;\n const m = v(), g = (N) => c(N, m), h = (N) => i(N, m), w = () => l(!0), p = () => l(!1);\n return document.addEventListener(\"keydown\", h), f.addEventListener(\"focus\", g), f.addEventListener(\"mousedown\", w), document.addEventListener(\"mouseup\", p), () => {\n document.removeEventListener(\"keydown\", h), f.removeEventListener(\"focus\", g), f.removeEventListener(\"mousedown\", w), document.removeEventListener(\"mouseup\", p);\n };\n }, [n, v, c, i]);\n}\nfunction Pe({\n options: n = [],\n value: a,\n onChange: t,\n id: r,\n children: e,\n className: o = \"\",\n childrenClassName: s = \"\",\n hideInputs: l = !1\n}) {\n const u = $(), c = r || `radio-group-${u}`;\n Ie(\n c,\n n.findIndex((i) => i === a)\n );\n const b = _(() => n.reduce((i, v) => (typeof v == \"string\" ? i.some((f) => f.value === v) || i.push({ label: v, value: v }) : i.push(v), i), []), [n]);\n return /* @__PURE__ */ E(\"div\", { id: c, role: \"radiogroup\", tabIndex: 0, className: y(o, \"focus:outline-none\"), children: [\n b.length > 0 && b.map((i, v) => /* @__PURE__ */ d(\n G,\n {\n value: i.value,\n isSelected: a === i.value,\n onChange: t,\n name: c,\n disabled: i.disabled,\n description: i.description,\n hideInput: l,\n className: s,\n children: i.label\n },\n `${i.value}-${v}`\n )),\n b.length === 0 && e && z.Children.map(e, (i) => z.isValidElement(i) && i.type === G ? /* @__PURE__ */ d(\n G,\n {\n ...i.props,\n className: y(s, i.props.className),\n hideInput: i.props.hideInput || l,\n isSelected: a === i.props.value,\n onChange: t,\n name: c,\n children: i.props.children\n }\n ) : null)\n ] });\n}\nconst $e = {\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}, Te = {\n horizontal: \"w-full\",\n vertical: \"min-h-4 h-full\"\n};\nfunction Oe({\n orientation: n = \"horizontal\",\n decorative: a = !1,\n thickness: t = \"thin\",\n className: r,\n ...e\n}) {\n const o = y(\n \"shrink-0 bg-border\",\n Te[n],\n $e[t][n],\n r\n );\n return /* @__PURE__ */ d(\n \"div\",\n {\n ...e,\n className: o,\n role: a ? \"presentation\" : \"separator\",\n \"aria-orientation\": a ? void 0 : n,\n \"aria-hidden\": a,\n \"data-orientation\": n,\n \"data-thickness\": t\n }\n );\n}\nconst Z = {\n shape: {\n rectangle: \"rounded-md min-h-1\",\n circle: \"rounded-full aspect-square min-h-1\",\n text: \"rounded-sm min-h-1 h-4\"\n },\n lineSpacing: {\n xs: \"space-y-1\",\n sm: \"space-y-2\",\n md: \"space-y-3\",\n lg: \"space-y-4\",\n xl: \"space-y-6\"\n }\n};\nfunction et({\n shape: n = \"rectangle\",\n lineSpacing: a = \"sm\",\n className: t,\n lines: r = 1,\n animate: e = !0,\n ref: o,\n ...s\n}) {\n const l = y(\"bg-muted/70\", e && \"animate-pulse\", Z.shape[n], t);\n return r > 1 ? /* @__PURE__ */ d(\n \"div\",\n {\n ref: o,\n className: Z.lineSpacing[a],\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"data-testid\": \"skeleton-container\",\n \"data-lines\": r,\n \"data-shape\": n,\n \"data-animate\": e,\n ...s,\n children: Array.from({ length: r }, (u, c) => /* @__PURE__ */ d(\n \"div\",\n {\n className: y(\n l,\n // Make last line shorter for a more natural text appearance\n c === r - 1 && \"w-3/4\"\n ),\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"data-testid\": \"skeleton-line\",\n \"data-line-index\": c\n },\n c\n ))\n }\n ) : /* @__PURE__ */ d(\n \"div\",\n {\n ref: o,\n className: l,\n role: \"presentation\",\n \"aria-hidden\": \"true\",\n \"data-testid\": \"skeleton\",\n \"data-shape\": n,\n \"data-animate\": e,\n ...s\n }\n );\n}\nfunction tt({ children: n, ref: a, ...t }) {\n if (te(n)) {\n let r = { ...t };\n return n.props && (r = { ...r, ...n.props }), re(n, {\n ...r,\n ref: (e) => {\n typeof a == \"function\" ? a(e) : a && (a.current = e);\n }\n });\n }\n return P(\"div\", { ...t, ref: a }, n);\n}\nfunction ke({ elementId: n, maxLength: a }) {\n const [t, r] = x(0);\n return A(() => {\n const e = document.getElementById(n);\n if (!e)\n return;\n const o = () => {\n const s = e.value.length;\n r(s);\n const l = s >= a;\n e.setAttribute(\"aria-describedby\", `${n}-character-count`), e.setAttribute(\"aria-invalid\", l ? \"true\" : \"false\"), l ? e.setAttribute(\"data-error\", \"true\") : e.removeAttribute(\"data-error\");\n };\n return o(), e.addEventListener(\"input\", o), e.setAttribute(\"maxlength\", String(a)), () => {\n e.removeEventListener(\"input\", o), e.removeAttribute(\"maxlength\"), e.removeAttribute(\"aria-describedby\"), e.removeAttribute(\"aria-invalid\"), e.removeAttribute(\"data-error\");\n };\n }, [n, a]), /* @__PURE__ */ d(\n \"small\",\n {\n className: y(\n \"mt-0.5 text-sm inline-flex items-center gap-1 w-full justify-end\",\n t >= a && \"text-destructive\",\n t < a && \"text-current\"\n ),\n role: \"status\",\n children: /* @__PURE__ */ E(\"span\", { id: `${n}-character-count`, children: [\n t,\n \" / \",\n a,\n \" characters\"\n ] })\n }\n );\n}\nfunction ze(n, a) {\n A(() => {\n const t = document.getElementById(n);\n if (!t)\n return;\n if (!a) {\n t.style.height = \"auto\";\n return;\n }\n const r = () => {\n t.style.height = \"auto\", t.style.height = `${t.scrollHeight}px`;\n };\n return r(), t.addEventListener(\"input\", r), t.addEventListener(\"resize\", r), window.addEventListener(\"resize\", r), () => {\n t.removeEventListener(\"input\", r), t.removeEventListener(\"resize\", r), window.removeEventListener(\"resize\", r);\n };\n }, [n, a]);\n}\nconst De = {\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}, Le = {\n none: \"rounded-none\",\n sm: \"rounded-sm\",\n md: \"rounded-md\",\n lg: \"rounded-lg\",\n full: \"px-3 rounded-full\"\n}, J = {\n variant: \"outline\",\n rounded: \"none\"\n};\nfunction rt({\n variant: n = J.variant,\n rounded: a,\n displayOnlyMode: t = !1,\n errorMessage: r,\n successMessage: e,\n hideResizeHandle: o = !1,\n autoExpand: s = !1,\n characterLimit: l = 0,\n className: u,\n ...c\n}) {\n const b = $();\n ze(b, s || t);\n let i = a;\n n === \"outline\" && !a && (i = \"md\"), i = i || J.rounded;\n let v = o;\n (t || n === \"left-line\" && !o) && (v = !0);\n const m = y(\n \"appearance-none w-full focus:outline-none disabled:opacity-50 disabled:cursor-not-allowed placeholder:text-muted/70 hide-number-input-arrows transition-all\",\n !t && De[n],\n !t && Le[i],\n !t && \"px-2 py-1\",\n t && \"pointer-events-none\",\n v && \"no-resize-handle\",\n u\n );\n return /* @__PURE__ */ E(\"div\", { className: y(\"-space-y-1.5\", t && \"cursor-text\"), children: [\n /* @__PURE__ */ d(\n \"textarea\",\n {\n ...c,\n id: b,\n \"aria-disabled\": c.disabled,\n readOnly: t,\n \"aria-readonly\": t || c[\"aria-readonly\"],\n style: {\n resize: s ? \"none\" : void 0\n },\n className: m\n }\n ),\n l > 0 && /* @__PURE__ */ d(ke, { elementId: b, maxLength: l }),\n !t && /* @__PURE__ */ d(V, { elementId: b, type: \"error\", message: r }),\n !t && /* @__PURE__ */ d(V, { elementId: b, type: \"success\", message: e })\n ] });\n}\nconst Re = {\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}, Se = {\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}, Y = {\n variant: \"default\",\n size: \"md\"\n};\nfunction nt({\n ref: n,\n id: a,\n size: t = Y.size,\n variant: r = Y.variant,\n checked: e,\n onCheckedChange: o,\n disabled: s = !1,\n className: l,\n thumbClassName: u,\n backgroundClassNames: c,\n ...b\n}) {\n const i = $(), v = _(() => a || `toggle-${i}`, [a, i]), [f, m] = x(e);\n A(() => {\n m(e);\n }, [e]);\n const g = () => {\n if (!s) {\n const C = !f;\n e === void 0 && m(C), o == null || o(C);\n }\n }, h = (C) => {\n (C.key === \" \" || C.key === \"Enter\") && (C.preventDefault(), g());\n }, w = Re[t], p = Se[r], N = y(\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 w.container,\n // Variant and state\n f ? (c == null ? void 0 : c.checked) || p.checked : (c == null ? void 0 : c.unchecked) || p.unchecked,\n // Disabled state\n s && \"opacity-50 cursor-not-allowed\",\n !s && \"cursor-pointer\",\n l\n ), k = y(\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 w.thumb,\n // Position based on state\n f && w.translate,\n u\n );\n return /* @__PURE__ */ E(\n \"button\",\n {\n ref: n,\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__ */ d(\"span\", { className: k }),\n /* @__PURE__ */ d(\"span\", { className: \"sr-only\", children: f ? \"Enabled\" : \"Disabled\" })\n ]\n }\n );\n}\nconst j = 8, F = 4, T = 6;\nfunction Be(n) {\n return { calculatePosition: I(\n (t, r) => {\n const e = t.getBoundingClientRect(), o = r.getBoundingClientRect(), s = {\n width: window.innerWidth,\n height: window.innerHeight\n }, l = (v, f, m, g) => v < 0 || f < 0 || v + m > s.width || f + g > s.height, u = {\n top: {\n x: e.left + e.width / 2 - o.width / 2,\n y: e.top - o.height - F,\n arrow: {\n x: o.width / 2 - T,\n y: o.height\n }\n },\n bottom: {\n x: e.left + e.width / 2 - o.width / 2,\n y: e.bottom + F,\n arrow: {\n x: o.width / 2 - T,\n y: -6\n }\n },\n left: {\n x: e.left - o.width - F,\n y: e.top + e.height / 2 - o.height / 2,\n arrow: {\n x: o.width,\n y: o.height / 2 - T\n }\n },\n right: {\n x: e.right + F,\n y: e.top + e.height / 2 - o.height / 2,\n arrow: {\n x: -6,\n y: o.height / 2 - T\n }\n }\n };\n let c = n, b = u[n];\n if (l(b.x, b.y, o.width, o.height)) {\n const v = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n }, f = u[v[n]];\n if (!l(f.x, f.y, o.width, o.height))\n c = v[n], b = f;\n else {\n const m = [\"top\", \"bottom\", \"left\", \"right\"].filter(\n (g) => g !== n && g !== v[n]\n );\n for (const g of m) {\n const h = u[g];\n if (!l(h.x, h.y, o.width, o.height)) {\n c = g, b = h;\n break;\n }\n }\n }\n }\n b.x = Math.max(\n j,\n Math.min(b.x, s.width - o.width - j)\n ), b.y = Math.max(\n j,\n Math.min(b.y, s.height - o.height - j)\n );\n const i = {\n x: e.left + e.width / 2,\n y: e.top + e.height / 2\n };\n return c === \"top\" || c === \"bottom\" ? b.arrow.x = Math.max(\n T,\n Math.min(i.x - b.x - T, o.width - T * 2)\n ) : b.arrow.y = Math.max(\n T,\n Math.min(i.y - b.y - T, o.height - T * 2)\n ), {\n ...b,\n placement: c\n };\n },\n [n]\n ) };\n}\nfunction je(n, a, t) {\n const r = R(null), e = R(null), o = I(() => {\n if (!r.current || !e.current) return;\n const s = n(r.current, e.current);\n t(s);\n }, [n, t]);\n return A(() => {\n if (!a) return;\n const s = () => o();\n return window.addEventListener(\"resize\", s), () => {\n window.removeEventListener(\"resize\", s);\n };\n }, [a, o]), {\n triggerRef: r,\n tooltipRef: e,\n updatePosition: o\n };\n}\nfunction Fe(n, a, t, r, e, o, s, l, u) {\n const c = R(null), b = I(() => {\n n || (c.current && clearTimeout(c.current), c.current = window.setTimeout(() => {\n t(!0), requestAnimationFrame(() => {\n e(), r(!0);\n });\n }, a));\n }, [n, a, t, e, r]), i = I(\n (v = !1) => {\n if (c.current && clearTimeout(c.current), v) {\n r(!1), setTimeout(() => t(!1), 150);\n return;\n }\n c.current = window.setTimeout(() => {\n r(!1), setTimeout(() => t(!1), 150);\n }, 100);\n },\n [r, t]\n );\n return A(() => {\n !o && !s && !l && u && i();\n }, [o, s, l, u, i]), A(() => () => {\n c.current && clearTimeout(c.current);\n }, []), {\n showTooltip: b,\n hideTooltip: i,\n timeoutRef: c\n };\n}\nfunction ot({\n id: n,\n children: a,\n message: t,\n placement: r = \"top\",\n disabled: e = !1,\n delay: o = 200,\n className: s\n}) {\n const [l, u] = x(!1), [c, b] = x(!1), [i, v] = x(null), [f, m] = x(!1), [g, h] = x(!1), [w, p] = x(!1), { calculatePosition: N } = Be(r), { triggerRef: k, tooltipRef: C, updatePosition: L } = je(N, c, v), { showTooltip: S, hideTooltip: B, timeoutRef: Q } = Fe(\n e,\n o,\n b,\n u,\n L,\n f,\n g,\n w,\n l\n ), ee = $(), M = n ?? ee;\n return /* @__PURE__ */ E(W, { children: [\n z.cloneElement(a, {\n ref: (q) => {\n k.current = q;\n },\n onMouseEnter: () => {\n m(!0), S();\n },\n onMouseLeave: () => {\n m(!1);\n },\n onFocus: () => {\n p(!0), S();\n },\n onBlur: () => {\n p(!1), B(!0);\n },\n onKeyDown: (q) => {\n q.key === \"Escape\" && B(!0);\n },\n \"aria-describedby\": e ? void 0 : M\n }),\n c && U(\n /* @__PURE__ */ d(\n \"div\",\n {\n ref: C,\n id: M,\n role: \"tooltip\",\n className: y(\n \"fixed z-50 px-2 py-1 text-sm rounded shadow-lg bg-popover pointer-events-auto transition-all duration-150 ease-out\",\n l ? \"opacity-100\" : \"opacity-0\",\n s\n ),\n style: i ? { left: i.x, top: i.y } : { opacity: 0 },\n onMouseEnter: () => {\n h(!0), Q.current && clearTimeout(Q.current);\n },\n onMouseLeave: () => {\n h(!1);\n },\n children: t\n }\n ),\n document.body\n )\n ] });\n}\nexport {\n Ue as Accordion,\n H as AccordionItem,\n it as ActionModal,\n be as Button,\n ce as ButtonLoadingDots,\n Qe as Checkbox,\n Me as Clickable,\n Xe as Input,\n Ze as Label,\n Je as Modal,\n Ye as Panel,\n Pe as RadioGroup,\n G as RadioGroupItem,\n Ce as RadioInput,\n Oe as Separator,\n et as Skeleton,\n tt as Slot,\n rt as Textarea,\n lt as Toast,\n nt as Toggle,\n ot 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","H","ce","a","x","A","r","d","y","ue","fe","me","K","be","o","l","u","E","ve","ye","we","R","I","Je","b","v","f","$","m","g","p","z","N","k","L","S","B","W","U","D","O","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,2 +1,2 @@
1
- "use strict";const e=require("react/jsx-runtime"),d=require("react"),A=require("react-dom"),g=require("./X-CgjeP2OI.cjs"),B=require("./utils.cjs.js");function h(...t){return t.filter(l=>typeof l=="string"&&l).join(" ").trim()||void 0}function I({size:t=15,color:l="currentColor",className:n="inline",...r}){return e.jsx("svg",{...r,width:t,height:t,className:n,viewBox:"0 0 15 15",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:l,fillRule:"evenodd",clipRule:"evenodd"})})}function y(...t){return t.filter(l=>typeof l=="string"&&l).join(" ").trim()||void 0}d.createContext(void 0);function M(){const[t,l]=d.useState(0);return d.useEffect(()=>{const n=setInterval(()=>{l(r=>(r+1)%3)},500);return()=>clearInterval(n)},[]),e.jsx("div",{className:"absolute inset-0 inline-flex items-center justify-center gap-x-2 align-middle",children:[0,1,2].map(n=>e.jsx("div",{className:h("rounded-full transition-all duration-500 ease-in-out size-[0.35em] bg-current",t===n&&"transform -translate-y-1")},n))})}const O={base:"",primary:"bg-primary text-primary-foreground hover:bg-primary/85 disabled:bg-muted disabled:text-muted-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/85 disabled:bg-muted/80 disabled:text-muted-foreground/80",tertiary:"text-primary hover:text-primary-foreground disabled:text-muted",outline:"border border-primary text-primary hover:border-primary-foreground hover:text-primary-foreground disabled:border-muted disabled:text-muted",link:"underline-offset-4 hover:underline disabled:underline disabled:text-muted",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/85 disabled:bg-muted disabled:text-muted-foreground"},D={stripped:"",fitted:"size-fit",sm:"px-2 py-1 text-sm",md:"px-4 py-2 text-base",lg:"px-6 py-3 text-lg",icon:"p-1 w-fit aspect-square",full:"p-2 w-full"},H={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",full:"rounded-full"},p={variant:"primary",size:"md",rounded:"md"};function K({variant:t=p.variant,size:l,rounded:n=p.rounded,loading:r,linkTo:i,linkProps:s,type:a="button",className:c,...o}){let u;t==="link"&&!l?u="fitted":u=l||p.size;const m=h("appearance-none focus:outline-none focus:ring not-disabled:hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed transition-all",O[t],D[u],H[n],r&&"relative pointer-events-none",i&&"relative",c);return e.jsxs("button",{...o,role:i?"link":o.role,"aria-label":o["aria-label"]||(s==null?void 0:s["aria-label"]),"aria-description":o["aria-description"]||(s==null?void 0:s["aria-description"]),"aria-disabled":o.disabled||r,"aria-busy":r,type:a,className:m,children:[r&&e.jsx(M,{}),e.jsx("span",{className:h(r&&"invisible"),children:o.children}),i&&!o.disabled&&e.jsx("a",{...s,"aria-hidden":!0,href:i,rel:(s==null?void 0:s.rel)||"noreferrer",className:"absolute inset-0"})]})}function P(t){const[l,n]=d.useState(!1),[r,i]=d.useState(!1);return d.useEffect(()=>{t?(i(!0),setTimeout(()=>n(!0),10)):(n(!1),setTimeout(()=>i(!1),150))},[t]),{show:l,shouldRender:r}}function X(t,l){d.useEffect(()=>{const n=r=>{r.key==="Escape"&&t&&l()};return document.addEventListener("keydown",n),t&&(document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",n),document.body.style.overflow="auto"}},[t,l])}function Z(t,l){const n=d.useRef(null),r=d.useCallback(()=>{const i=document.getElementById(t);if(!i)return;const s=i.querySelectorAll('[data-modal-action="true"]');if(s.length>0){s[0].focus();return}const a=i.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(a.length>0){const c=Array.from(a).filter(o=>!(o instanceof HTMLButtonElement&&o.getAttribute("data-modal-close-button")==="true"));if(c.length>0){c[0].focus();return}a[0].focus();return}i.focus()},[t]);d.useEffect(()=>(l&&(n.current=document.activeElement,r()),()=>{document.body.style.overflow="auto",n.current instanceof HTMLElement&&n.current.focus()}),[l,r])}function F({id:t,isOpen:l,onClose:n,title:r,children:i,contentOnly:s=!1,className:a,overlayClassName:c,hideCloseButton:o=!1,actions:u=[],disableCloseOnOverlayClick:m=!1,ariaLabelledBy:f,ariaDescribedBy:b}){const x=d.useId(),j=t||`modal-${x}`,w=t?`${t}-title`:`modal-title-${x}`,{show:k,shouldRender:v}=P(l);if(Z(j,v),X(v,n),!v)return null;const C=()=>r?d.isValidElement(r)?e.jsx("div",{className:"mb-4",children:r}):e.jsx("h2",{className:"mb-4 text-xl font-semibold",id:w,children:r}):null,E=()=>u.length===0?null:e.jsx("div",{className:"mt-6 not-sm:grid gap-y-2 sm:flex sm:justify-start sm:flex-row-reverse sm:gap-x-3",children:u.map((L,z)=>{const{label:S,className:T,...q}=L;return e.jsx(K,{className:T,type:"button",...q,"data-modal-action":"true",children:S},z)})});return e.jsx(e.Fragment,{children:A.createPortal(e.jsx("div",{"aria-labelledby":f??r?w:void 0,"aria-describedby":b,role:"dialog","aria-modal":"true",className:"fixed inset-0 z-[100] overflow-y-auto",children:e.jsxs("div",{className:"flex min-h-screen items-center justify-center p-4",children:[e.jsx("div",{className:y("fixed inset-0 bg-black/20 transition-all",c),onClick:()=>{m||n()}}),s&&e.jsx("div",{className:y("relative w-fit",a),children:i}),!s&&e.jsxs("div",{id:j,tabIndex:-1,className:y("relative w-full max-w-xl transform rounded-lg shadow-xl bg-popover transition-all p-6 focus:ring ease-in duration-75",k?"opacity-100 scale-100":"opacity-0 scale-90",a),children:[!o&&e.jsx("button",{type:"button",onClick:n,"data-modal-close-button":"true",className:"rounded-md p-0.5 top-2.5 right-2.5 absolute opacity-80 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-gray-500 leading-0",children:e.jsx(I,{size:18})}),C(),i,E()]})]})}),document.body)})}function V({type:t,message:l,cancelText:n,confirmText:r,onConfirm:i,onClose:s,destructive:a=!1,title:c,...o}){const u=d.useMemo(()=>t==="confirm"?{confirm:r||"Confirm",cancel:n||"Cancel",defaultTitle:c||"Confirm Action"}:{confirm:r||"OK",cancel:null,defaultTitle:c||"Alert"},[t,r,c,n]),m=d.useMemo(()=>[...u.cancel?[{label:u.cancel,variant:"secondary",onClick:s}]:[],{label:u.confirm,variant:a?"destructive":"primary",onClick:()=>{i==null||i(),s()}}],[u,a,i,s]);return e.jsx(F,{...o,title:c||u.defaultTitle,onClose:s,actions:m,disableCloseOnOverlayClick:t==="confirm",hideCloseButton:t==="confirm",children:typeof l=="string"?e.jsx("p",{className:"text-sm",children:l}):l})}const N={info:{className:"bg-blue-50 border-blue-200 text-blue-900 dark:bg-blue-800 dark:border-blue-950 dark:text-blue-100",icon:e.jsx(g.InfoCircled,{size:20})},warning:{className:"bg-yellow-50 border-yellow-200 text-yellow-900 dark:bg-yellow-800 dark:border-yellow-950 dark:text-yellow-100",icon:e.jsx(g.ExclamationTriangle,{size:20})},error:{className:"bg-red-50 border-red-200 text-red-900 dark:bg-red-800 dark:border-red-950 dark:text-red-100",icon:e.jsx(g.CrossCircled,{size:20})}};function G({id:t,title:l,description:n,type:r="info",action:i,duration:s=5e3,onRemove:a,customTypes:c,customComponent:o}){const[u,m]=d.useState(!1),f=d.useCallback(()=>{m(!0),setTimeout(()=>{a==null||a(t)},150)},[t,a]);if(d.useEffect(()=>{if(s>0){const x=setTimeout(()=>{f()},s);return()=>clearTimeout(x)}},[s,t,a,f]),o)return e.jsx(o,{id:t,title:l,description:n,type:r,action:i,duration:s,onRemove:a});const b=(c==null?void 0:c[r])||N[r]||N.info;return e.jsxs("div",{role:r==="error"?"alert":"status","aria-live":r==="error"?void 0:"polite",className:B.join("relative flex items-start p-4 rounded-lg border shadow-lg transition-all duration-150 ease-in-out",i&&"pb-3",b.className,u?"opacity-0 translate-x-full":"opacity-100 translate-x-0"),children:[e.jsx("div",{className:"flex-shrink-0 mr-3",children:b.icon}),e.jsxs("div",{className:"flex-grow min-w-0",children:[e.jsx("div",{className:"font-medium text-sm leading-5",children:l}),n&&e.jsx("div",{className:"mt-1 text-sm opacity-90 leading-5",children:n}),i&&e.jsx("div",{className:"mt-1.5",children:e.jsx("button",{onClick:i.onClick,className:"text-sm font-medium underline hover:no-underline focus:outline-none focus:ring-1 focus:ring-current rounded px-1 py-0.5 hover:cursor-pointer",children:i.label})})]}),e.jsx("button",{onClick:f,className:"flex-shrink-0 ml-3 p-1 rounded-md hover:bg-black/10 dark:hover:bg-white/10 focus:outline-none focus:ring-1 focus:ring-current leading-0",children:e.jsx(g.X,{size:16})})]})}exports.ActionModal=V;exports.Toast=G;exports.n=h;
2
- //# sourceMappingURL=Toast-BZMBGn3W.cjs.map
1
+ "use strict";const e=require("react/jsx-runtime"),d=require("react"),A=require("react-dom"),g=require("./X-CgjeP2OI.cjs"),B=require("./utils.cjs.js");function h(...t){return t.filter(l=>typeof l=="string"&&l).join(" ").trim()||void 0}function I({size:t=15,color:l="currentColor",className:n="inline",...r}){return e.jsx("svg",{...r,width:t,height:t,className:n,viewBox:"0 0 15 15",xmlns:"http://www.w3.org/2000/svg",children:e.jsx("path",{d:"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z",fill:l,fillRule:"evenodd",clipRule:"evenodd"})})}function y(...t){return t.filter(l=>typeof l=="string"&&l).join(" ").trim()||void 0}d.createContext(void 0);function M(){const[t,l]=d.useState(0);return d.useEffect(()=>{const n=setInterval(()=>{l(r=>(r+1)%3)},500);return()=>clearInterval(n)},[]),e.jsx("div",{className:"absolute inset-0 inline-flex items-center justify-center gap-x-2 align-middle",children:[0,1,2].map(n=>e.jsx("div",{className:h("rounded-full transition-all duration-500 ease-in-out size-[0.35em] bg-current",t===n&&"transform -translate-y-1")},n))})}const O={base:"",primary:"bg-primary text-primary-foreground hover:bg-primary/85 disabled:bg-muted disabled:text-muted-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/85 disabled:bg-muted/80 disabled:text-muted-foreground/80",tertiary:"text-primary hover:text-primary-foreground disabled:text-muted",outline:"border border-primary text-primary hover:border-primary-foreground hover:text-primary-foreground disabled:border-muted disabled:text-muted",link:"underline-offset-4 hover:underline disabled:underline disabled:text-muted",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/85 disabled:bg-muted disabled:text-muted-foreground"},$={stripped:"",fitted:"size-fit",sm:"px-2 py-1 text-sm",md:"px-4 py-2 text-base",lg:"px-6 py-3 text-lg",icon:"p-1 w-fit aspect-square",full:"p-2 w-full"},D={none:"rounded-none",sm:"rounded-sm",md:"rounded-md",lg:"rounded-lg",full:"rounded-full"},p={variant:"primary",size:"md",rounded:"md"};function H({variant:t=p.variant,size:l,rounded:n=p.rounded,loading:r,linkTo:i,linkProps:s,type:a="button",className:c,...o}){let u;t==="link"&&!l?u="fitted":u=l||p.size;const m=h("appearance-none focus:outline-none focus:ring not-disabled:hover:cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed transition-all",O[t],$[u],D[n],r&&"relative pointer-events-none",i&&"relative",c);return e.jsxs("button",{...o,role:i?"link":o.role,"aria-label":o["aria-label"]||(s==null?void 0:s["aria-label"]),"aria-description":o["aria-description"]||(s==null?void 0:s["aria-description"]),"aria-disabled":o.disabled||r,"aria-busy":r,type:a,className:m,children:[r&&e.jsx(M,{}),e.jsx("span",{className:h(r&&"invisible"),children:o.children}),i&&!o.disabled&&e.jsx("a",{...s,"aria-hidden":!0,href:i,rel:(s==null?void 0:s.rel)||"noreferrer",className:"absolute inset-0"})]})}function K(t){const[l,n]=d.useState(!1),[r,i]=d.useState(!1);return d.useEffect(()=>{t?(i(!0),setTimeout(()=>n(!0),10)):(n(!1),setTimeout(()=>i(!1),150))},[t]),{show:l,shouldRender:r}}function P(t,l){d.useEffect(()=>{const n=r=>{r.key==="Escape"&&t&&l()};return document.addEventListener("keydown",n),t&&(document.body.style.overflow="hidden"),()=>{document.removeEventListener("keydown",n),document.body.style.overflow="auto"}},[t,l])}function X(t,l){const n=d.useRef(null),r=d.useCallback(()=>{const i=document.getElementById(t);if(!i)return;const s=i.querySelectorAll('[data-modal-action="true"]');if(s.length>0){s[0].focus();return}const a=i.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(a.length>0){const c=Array.from(a).filter(o=>!(o instanceof HTMLButtonElement&&o.getAttribute("data-modal-close-button")==="true"));if(c.length>0){c[0].focus();return}a[0].focus();return}i.focus()},[t]);d.useEffect(()=>(l&&(n.current=document.activeElement,r()),()=>{document.body.style.overflow="auto",n.current instanceof HTMLElement&&n.current.focus()}),[l,r])}function F({id:t,isOpen:l,onClose:n,title:r,children:i,contentOnly:s=!1,className:a,overlayClassName:c,hideCloseButton:o=!1,actions:u=[],disableCloseOnOverlayClick:m=!1,ariaLabelledBy:f,ariaDescribedBy:b}){const x=d.useId(),j=t||`modal-${x}`,w=t?`${t}-title`:`modal-title-${x}`,{show:k,shouldRender:v}=K(l);if(X(j,v),P(v,n),!v)return null;const C=()=>r?d.isValidElement(r)?e.jsx("div",{className:"mb-4",children:r}):e.jsx("h2",{className:"mb-4 text-xl font-semibold",id:w,children:r}):null,E=()=>u.length===0?null:e.jsx("div",{className:"mt-6 not-sm:grid gap-y-2 sm:flex sm:justify-start sm:flex-row-reverse sm:gap-x-3",children:u.map((L,z)=>{const{label:S,className:T,...q}=L;return e.jsx(H,{className:T,type:"button",...q,"data-modal-action":"true",children:S},z)})});return e.jsx(e.Fragment,{children:A.createPortal(e.jsx("div",{"aria-labelledby":f??r?w:void 0,"aria-describedby":b,role:"dialog","aria-modal":"true",className:"fixed inset-0 z-[100] overflow-y-auto",children:e.jsxs("div",{className:"flex min-h-screen items-center justify-center p-4",children:[e.jsx("div",{className:y("fixed inset-0 bg-black/20 transition-all",c),onClick:()=>{m||n()}}),s&&e.jsx("div",{className:y("relative w-fit",a),children:i}),!s&&e.jsxs("div",{id:j,tabIndex:-1,className:y("relative w-full max-w-xl transform rounded-lg shadow-xl bg-popover transition-all p-6 focus:ring ease-in duration-75",k?"opacity-100 scale-100":"opacity-0 scale-90",a),children:[!o&&e.jsx("button",{type:"button",onClick:n,"data-modal-close-button":"true",className:"rounded-md p-0.5 top-2.5 right-2.5 absolute opacity-80 hover:opacity-100 transition-opacity focus:outline-none focus:ring-2 focus:ring-gray-500 leading-0",children:e.jsx(I,{size:18})}),C(),i,E()]})]})}),document.body)})}function J({type:t,message:l,cancelText:n,confirmText:r,onConfirm:i,onClose:s,destructive:a=!1,title:c,...o}){const u=d.useMemo(()=>t==="confirm"?{confirm:r||"Confirm",cancel:n||"Cancel",defaultTitle:c||"Confirm Action"}:{confirm:r||"OK",cancel:null,defaultTitle:c||"Alert"},[t,r,c,n]),m=d.useMemo(()=>[...u.cancel?[{label:u.cancel,variant:"secondary",onClick:s}]:[],{label:u.confirm,variant:a?"destructive":"primary",onClick:()=>{i==null||i(),s()}}],[u,a,i,s]);return e.jsx(F,{...o,title:c||u.defaultTitle,onClose:s,actions:m,disableCloseOnOverlayClick:t==="confirm",hideCloseButton:t==="confirm",children:typeof l=="string"?e.jsx("p",{className:"text-sm",children:l}):l})}const N={info:{className:"bg-blue-50 border-blue-200 text-blue-900 dark:bg-blue-800 dark:border-blue-950 dark:text-blue-100",icon:e.jsx(g.InfoCircled,{size:20})},warning:{className:"bg-yellow-50 border-yellow-200 text-yellow-900 dark:bg-yellow-800 dark:border-yellow-950 dark:text-yellow-100",icon:e.jsx(g.ExclamationTriangle,{size:20})},error:{className:"bg-red-50 border-red-200 text-red-900 dark:bg-red-800 dark:border-red-950 dark:text-red-100",icon:e.jsx(g.CrossCircled,{size:20})}};function V({id:t,title:l,description:n,type:r="info",action:i,duration:s=5e3,onRemove:a,customTypes:c,customComponent:o}){const[u,m]=d.useState(!1),f=d.useCallback(()=>{m(!0),setTimeout(()=>{a==null||a(t)},150)},[t,a]);if(d.useEffect(()=>{if(s>0){const x=setTimeout(()=>{f()},s);return()=>clearTimeout(x)}},[s,t,a,f]),o)return e.jsx(o,{id:t,title:l,description:n,type:r,action:i,duration:s,onRemove:a});const b=(c==null?void 0:c[r])||N[r]||N.info;return e.jsxs("div",{role:r==="error"?"alert":"status","aria-live":r==="error"?void 0:"polite",className:B.join("relative flex items-start p-4 rounded-lg border shadow-lg transition-all duration-150 ease-in-out",i&&"pb-3",b.className,u?"opacity-0 translate-x-full":"opacity-100 translate-x-0"),children:[e.jsx("div",{className:"flex-shrink-0 mr-3",children:b.icon}),e.jsxs("div",{className:"flex-grow min-w-0",children:[e.jsx("div",{className:"font-medium text-sm leading-5",children:l}),n&&e.jsx("div",{className:"mt-1 text-sm opacity-90 leading-5",children:n}),i&&e.jsx("div",{className:"mt-1.5",children:e.jsx("button",{onClick:i.onClick,className:"text-sm font-medium underline hover:no-underline focus:outline-none focus:ring-1 focus:ring-current rounded px-1 py-0.5 hover:cursor-pointer",children:i.label})})]}),e.jsx("button",{onClick:f,className:"flex-shrink-0 ml-3 p-1 rounded-md hover:bg-black/10 dark:hover:bg-white/10 focus:outline-none focus:ring-1 focus:ring-current leading-0",children:e.jsx(g.X,{size:16})})]})}exports.ActionModal=J;exports.Toast=V;exports.n=h;
2
+ //# sourceMappingURL=Toast-DS9J8w1E.cjs.map