@stlhorizon/vue-ui 1.2.0 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.esm.js CHANGED
@@ -1,86 +1,10 @@
1
- import { ref as O, markRaw as Be, computed as u, createElementBlock as r, openBlock as a, normalizeClass as c, createBlock as M, toDisplayString as p, unref as D, createCommentVNode as f, renderSlot as b, resolveDynamicComponent as X, createVNode as y, mergeProps as me, createElementVNode as o, useId as he, watch as oe, createTextVNode as N, withCtx as S, normalizeStyle as ce, nextTick as Ce, Transition as ae, Fragment as Q, renderList as K, onMounted as ve, onUnmounted as ye, Teleport as Ve, TransitionGroup as Ne, withDirectives as xe, vModelText as Re, provide as _e, inject as Oe, vShow as Te, createSlots as qe, withModifiers as $e, resolveComponent as G } from "vue";
1
+ import { computed as u, createElementBlock as r, openBlock as a, normalizeClass as c, ref as O, createBlock as M, toDisplayString as p, unref as D, createCommentVNode as f, renderSlot as b, resolveDynamicComponent as X, createVNode as y, mergeProps as me, createElementVNode as o, useId as he, watch as oe, createTextVNode as N, withCtx as S, normalizeStyle as ce, nextTick as Ce, Transition as ae, Fragment as Q, renderList as K, onMounted as ve, onUnmounted as ye, Teleport as Ve, markRaw as Te, TransitionGroup as Re, withDirectives as xe, vModelText as _e, provide as Oe, inject as qe, vShow as Me, createSlots as He, withModifiers as $e, resolveComponent as G } from "vue";
2
2
  import { cva as x } from "class-variance-authority";
3
- import { clsx as He } from "clsx";
4
- const fe = O([]);
5
- let Ee = 0;
6
- const Ue = {
7
- duration: 2e3,
8
- position: "top-center",
9
- dismissible: !0,
10
- closeButton: !1
11
- }, Ze = () => `toast-${++Ee}-${Date.now()}`, re = (e, s = {}) => {
12
- const t = Ze(), l = {
13
- id: t,
14
- message: e,
15
- ...Ue,
16
- ...s,
17
- createdAt: Date.now()
18
- };
19
- return fe.value.push(Be(l)), l.duration && l.duration > 0 && setTimeout(() => {
20
- ue(t);
21
- }, l.duration), t;
22
- }, ue = (e) => {
23
- const s = fe.value.findIndex((t) => t.id === e);
24
- s > -1 && fe.value.splice(s, 1);
25
- }, Me = () => {
26
- fe.value = [];
27
- }, Ge = Object.assign(
28
- // Default toast function
29
- (e, s) => re(e, { ...s }),
30
- // Toast type methods
31
- {
32
- success: (e, s) => re(e, { ...s, variant: "success" }),
33
- error: (e, s) => re(e, { ...s, variant: "destructive" }),
34
- warning: (e, s) => re(e, { ...s, variant: "warning" }),
35
- info: (e, s) => re(e, { ...s, variant: "default" }),
36
- // Promise toast for async operations
37
- promise: (e, s = {}) => {
38
- const {
39
- loading: t = "Loading...",
40
- success: l = "Success",
41
- error: n = "Error",
42
- ...i
43
- } = s, d = re(t, {
44
- ...i,
45
- variant: "default",
46
- duration: 0,
47
- // Don't auto dismiss
48
- dismissible: !1
49
- });
50
- return e.then((m) => {
51
- ue(d);
52
- const h = typeof l == "function" ? l(m) : l;
53
- return re(h, {
54
- ...i,
55
- variant: "success"
56
- }), m;
57
- }).catch((m) => {
58
- ue(d);
59
- const h = typeof n == "function" ? n(m) : n;
60
- throw re(h, {
61
- ...i,
62
- variant: "destructive"
63
- }), m;
64
- });
65
- },
66
- // Utility methods
67
- dismiss: ue,
68
- dismissAll: Me,
69
- // Custom toast with component
70
- custom: (e, s = {}) => re("", {
71
- ...s,
72
- component: Be(e)
73
- })
74
- }
75
- ), Ke = () => ({
76
- toasts: fe.value,
77
- dismiss: ue,
78
- dismissAll: Me
79
- });
3
+ import { clsx as Ee } from "clsx";
80
4
  function v(...e) {
81
- return He(e);
5
+ return Ee(e);
82
6
  }
83
- const Qe = {
7
+ const Ue = {
84
8
  // Navigation
85
9
  home: {
86
10
  template: '<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="m2.25 12 8.954-8.955c.44-.439 1.152-.439 1.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" /></svg>'
@@ -165,7 +89,7 @@ const Qe = {
165
89
  x: {
166
90
  template: '<svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M6 18L18 6M6 6l12 12" /></svg>'
167
91
  }
168
- }, Ye = ["innerHTML", "aria-hidden", "aria-label", "role"], Y = {
92
+ }, Ze = ["innerHTML", "aria-hidden", "aria-label", "role"], Y = {
169
93
  __name: "Icon",
170
94
  props: {
171
95
  name: {
@@ -181,7 +105,7 @@ const Qe = {
181
105
  },
182
106
  setup(e) {
183
107
  const s = e, t = u(() => {
184
- const d = Qe[s.name];
108
+ const d = Ue[s.name];
185
109
  return d ? d.template : (console.warn(`Icon "${s.name}" not found`), "");
186
110
  }), l = u(() => {
187
111
  const d = {
@@ -205,9 +129,9 @@ const Qe = {
205
129
  "aria-hidden": !e.ariaLabel,
206
130
  "aria-label": e.ariaLabel,
207
131
  role: e.ariaLabel ? "img" : void 0
208
- }, null, 10, Ye));
132
+ }, null, 10, Ze));
209
133
  }
210
- }, Xe = ["src", "alt"], We = {
134
+ }, Ge = ["src", "alt"], Ke = {
211
135
  __name: "Avatar",
212
136
  props: {
213
137
  src: String,
@@ -275,7 +199,7 @@ const Qe = {
275
199
  alt: e.alt,
276
200
  class: c(i.value),
277
201
  onError: h
278
- }, null, 42, Xe)) : e.initials ? (a(), r("span", {
202
+ }, null, 42, Ge)) : e.initials ? (a(), r("span", {
279
203
  key: 1,
280
204
  class: c(d.value)
281
205
  }, p(e.initials), 3)) : (a(), M(Y, {
@@ -285,7 +209,7 @@ const Qe = {
285
209
  }, null, 8, ["class"]))
286
210
  ], 2));
287
211
  }
288
- }, Je = ["aria-label"], et = /* @__PURE__ */ Object.assign({
212
+ }, Qe = ["aria-label"], Ye = /* @__PURE__ */ Object.assign({
289
213
  inheritAttrs: !1
290
214
  }, {
291
215
  __name: "Badge",
@@ -373,16 +297,16 @@ const Qe = {
373
297
  "aria-label": e.dismissLabel
374
298
  }, [
375
299
  y(t, { class: "w-3 h-3" })
376
- ], 8, Je)) : f("", !0)
300
+ ], 8, Qe)) : f("", !0)
377
301
  ], 2));
378
302
  }
379
- }), tt = ["disabled", "aria-disabled", "aria-busy"], at = {
303
+ }), Xe = ["disabled", "aria-disabled", "aria-busy"], We = {
380
304
  key: 0,
381
305
  class: "animate-spin mr-2 h-4 w-4 text-current",
382
306
  xmlns: "http://www.w3.org/2000/svg",
383
307
  fill: "none",
384
308
  viewBox: "0 0 24 24"
385
- }, st = { key: 2 }, ee = /* @__PURE__ */ Object.assign({
309
+ }, Je = { key: 2 }, ee = /* @__PURE__ */ Object.assign({
386
310
  inheritAttrs: !1
387
311
  }, {
388
312
  __name: "Button",
@@ -442,7 +366,7 @@ const Qe = {
442
366
  "aria-disabled": e.disabled || e.loading,
443
367
  "aria-busy": e.loading
444
368
  }, t.$attrs), [
445
- e.loading ? (a(), r("svg", at, [...l[0] || (l[0] = [
369
+ e.loading ? (a(), r("svg", We, [...l[0] || (l[0] = [
446
370
  o("circle", {
447
371
  class: "opacity-25",
448
372
  cx: "12",
@@ -458,10 +382,10 @@ const Qe = {
458
382
  }, null, -1)
459
383
  ])])) : f("", !0),
460
384
  e.loading ? f("", !0) : b(t.$slots, "icon", { key: 1 }),
461
- e.loading && e.loadingText ? (a(), r("span", st, p(e.loadingText), 1)) : b(t.$slots, "default", { key: 3 })
462
- ], 16, tt));
385
+ e.loading && e.loadingText ? (a(), r("span", Je, p(e.loadingText), 1)) : b(t.$slots, "default", { key: 3 })
386
+ ], 16, Xe));
463
387
  }
464
- }), lt = { class: "flex items-center gap-3" }, nt = { class: "relative" }, rt = ["id", "checked", "indeterminate", "disabled", "required", "aria-describedby"], ot = { class: "flex-1" }, it = ["for"], ke = {
388
+ }), et = { class: "flex items-center gap-3" }, tt = { class: "relative" }, at = ["id", "checked", "indeterminate", "disabled", "required", "aria-describedby"], st = { class: "flex-1" }, lt = ["for"], ke = {
465
389
  __name: "Checkbox",
466
390
  props: {
467
391
  modelValue: {
@@ -584,8 +508,8 @@ const Qe = {
584
508
  ]);
585
509
  return oe(() => n.indeterminate, (B) => {
586
510
  d.value && (d.value.indeterminate = B);
587
- }, { immediate: !0 }), (B, $) => (a(), r("div", lt, [
588
- o("div", nt, [
511
+ }, { immediate: !0 }), (B, $) => (a(), r("div", et, [
512
+ o("div", tt, [
589
513
  o("input", {
590
514
  id: m.value,
591
515
  ref_key: "checkboxRef",
@@ -598,7 +522,7 @@ const Qe = {
598
522
  class: c(R.value),
599
523
  "aria-describedby": I.value,
600
524
  onChange: k
601
- }, null, 42, rt),
525
+ }, null, 42, at),
602
526
  o("div", {
603
527
  class: c(z.value),
604
528
  onClick: w
@@ -612,7 +536,7 @@ const Qe = {
612
536
  })) : f("", !0)
613
537
  ], 2)
614
538
  ]),
615
- o("div", ot, [
539
+ o("div", st, [
616
540
  o("label", {
617
541
  for: m.value,
618
542
  class: c(C.value)
@@ -620,7 +544,7 @@ const Qe = {
620
544
  b(B.$slots, "default", {}, () => [
621
545
  N(p(e.label), 1)
622
546
  ])
623
- ], 10, it),
547
+ ], 10, lt),
624
548
  e.description ? (a(), r("p", {
625
549
  key: 0,
626
550
  class: c(g.value)
@@ -628,10 +552,10 @@ const Qe = {
628
552
  ])
629
553
  ]));
630
554
  }
631
- }, dt = {
555
+ }, nt = {
632
556
  key: 0,
633
557
  class: "px-3 text-sm text-gray-500 bg-white dark:bg-gray-900 dark:text-gray-400 relative z-10"
634
- }, ct = {
558
+ }, rt = {
635
559
  __name: "Divider",
636
560
  props: {
637
561
  orientation: {
@@ -721,10 +645,10 @@ const Qe = {
721
645
  return (n, i) => (a(), r("div", {
722
646
  class: c(D(v)(D(t)({ orientation: e.orientation, size: e.size, color: e.color }), { "opacity-50": e.faded }, l.value))
723
647
  }, [
724
- e.label && e.orientation === "horizontal" ? (a(), r("span", dt, p(e.label), 1)) : f("", !0)
648
+ e.label && e.orientation === "horizontal" ? (a(), r("span", nt, p(e.label), 1)) : f("", !0)
725
649
  ], 2));
726
650
  }
727
- }, ut = ["aria-label"], mt = {
651
+ }, ot = ["aria-label"], it = {
728
652
  key: 0,
729
653
  class: "sr-only"
730
654
  }, Ie = {
@@ -801,10 +725,10 @@ const Qe = {
801
725
  d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
802
726
  }, null, -1)
803
727
  ])], 2)),
804
- e.label ? (a(), r("span", mt, p(e.label), 1)) : f("", !0)
805
- ], 10, ut));
728
+ e.label ? (a(), r("span", it, p(e.label), 1)) : f("", !0)
729
+ ], 10, ot));
806
730
  }
807
- }, ft = ["src", "alt", "loading"], vt = {
731
+ }, dt = ["src", "alt", "loading"], ct = {
808
732
  __name: "Image",
809
733
  props: {
810
734
  src: {
@@ -885,7 +809,7 @@ const Qe = {
885
809
  loading: e.loading,
886
810
  onLoad: I,
887
811
  onError: T
888
- }, null, 42, ft),
812
+ }, null, 42, dt),
889
813
  n.value ? (a(), r("div", {
890
814
  key: 0,
891
815
  class: c(k.value)
@@ -907,13 +831,13 @@ const Qe = {
907
831
  ], 2)) : f("", !0)
908
832
  ], 2));
909
833
  }
910
- }, gt = { class: "relative" }, pt = {
834
+ }, ut = { class: "relative" }, mt = {
911
835
  key: 0,
912
836
  class: "absolute left-3 top-1/2 transform -translate-y-1/2 pointer-events-none"
913
- }, ht = ["id", "type", "value", "placeholder", "disabled", "readonly", "required", "autocomplete", "aria-describedby", "aria-invalid"], bt = {
837
+ }, ft = ["id", "type", "value", "placeholder", "disabled", "readonly", "required", "autocomplete", "aria-describedby", "aria-invalid"], vt = {
914
838
  key: 1,
915
839
  class: "absolute right-3 top-1/2 transform -translate-y-1/2"
916
- }, yt = ["aria-label"], pe = {
840
+ }, gt = ["aria-label"], pe = {
917
841
  __name: "Input",
918
842
  props: {
919
843
  modelValue: {
@@ -1022,8 +946,8 @@ const Qe = {
1022
946
  focus: () => i.value?.focus(),
1023
947
  blur: () => i.value?.blur(),
1024
948
  select: () => i.value?.select()
1025
- }), ($, j) => (a(), r("div", gt, [
1026
- e.iconLeft ? (a(), r("div", pt, [
949
+ }), ($, j) => (a(), r("div", ut, [
950
+ e.iconLeft ? (a(), r("div", mt, [
1027
951
  (a(), M(X(e.iconLeft), {
1028
952
  class: c(g.value)
1029
953
  }, null, 8, ["class"]))
@@ -1046,8 +970,8 @@ const Qe = {
1046
970
  onBlur: h,
1047
971
  onFocus: k,
1048
972
  onKeydown: w
1049
- }, null, 42, ht),
1050
- e.iconRight || e.clearable ? (a(), r("div", bt, [
973
+ }, null, 42, ft),
974
+ e.iconRight || e.clearable ? (a(), r("div", vt, [
1051
975
  e.clearable && e.modelValue && !e.disabled ? (a(), r("button", {
1052
976
  key: 0,
1053
977
  onClick: I,
@@ -1059,14 +983,14 @@ const Qe = {
1059
983
  name: "x-mark",
1060
984
  class: "w-5 h-5"
1061
985
  })
1062
- ], 8, yt)) : e.iconRight ? (a(), M(X(e.iconRight), {
986
+ ], 8, gt)) : e.iconRight ? (a(), M(X(e.iconRight), {
1063
987
  key: 1,
1064
988
  class: c(g.value)
1065
989
  }, null, 8, ["class"])) : f("", !0)
1066
990
  ])) : f("", !0)
1067
991
  ]));
1068
992
  }
1069
- }, xt = ["for"], je = {
993
+ }, pt = ["for"], je = {
1070
994
  __name: "Label",
1071
995
  props: {
1072
996
  htmlFor: String,
@@ -1103,9 +1027,9 @@ const Qe = {
1103
1027
  for: e.htmlFor
1104
1028
  }, [
1105
1029
  b(n.$slots, "default")
1106
- ], 10, xt));
1030
+ ], 10, pt));
1107
1031
  }
1108
- }, kt = {
1032
+ }, ht = {
1109
1033
  __name: "Link",
1110
1034
  props: {
1111
1035
  href: { type: String, default: null },
@@ -1216,7 +1140,7 @@ const Qe = {
1216
1140
  _: 3
1217
1141
  }, 8, ["href", "to", "target", "rel", "class"]));
1218
1142
  }
1219
- }, wt = ["src", "alt"], Ct = {
1143
+ }, bt = ["src", "alt"], yt = {
1220
1144
  __name: "Logo",
1221
1145
  props: {
1222
1146
  src: String,
@@ -1270,13 +1194,13 @@ const Qe = {
1270
1194
  src: e.src,
1271
1195
  alt: e.alt || "Logo",
1272
1196
  class: c(n.value)
1273
- }, null, 10, wt)) : (a(), r("div", {
1197
+ }, null, 10, bt)) : (a(), r("div", {
1274
1198
  key: 1,
1275
1199
  class: c(i.value)
1276
1200
  }, p(e.text || "Logo"), 3))
1277
1201
  ], 2));
1278
1202
  }
1279
- }, $t = ["value", "disabled", "selected"], Le = {
1203
+ }, xt = ["value", "disabled", "selected"], Le = {
1280
1204
  __name: "Option",
1281
1205
  props: {
1282
1206
  value: {
@@ -1305,9 +1229,9 @@ const Qe = {
1305
1229
  b(s.$slots, "default", {}, () => [
1306
1230
  N(p(e.label), 1)
1307
1231
  ])
1308
- ], 8, $t));
1232
+ ], 8, xt));
1309
1233
  }
1310
- }, St = ["aria-valuenow"], zt = {
1234
+ }, kt = ["aria-valuenow"], wt = {
1311
1235
  __name: "ProgressBar",
1312
1236
  props: {
1313
1237
  value: {
@@ -1375,14 +1299,14 @@ const Qe = {
1375
1299
  "aria-valuenow": t.value,
1376
1300
  "aria-valuemin": 0,
1377
1301
  "aria-valuemax": 100
1378
- }, null, 14, St),
1302
+ }, null, 14, kt),
1379
1303
  e.showLabel ? (a(), r("span", {
1380
1304
  key: 0,
1381
1305
  class: c(m.value)
1382
1306
  }, p(t.value) + "% ", 3)) : f("", !0)
1383
1307
  ], 2));
1384
1308
  }
1385
- }, Bt = { class: "flex items-center space-x-2" }, Vt = ["aria-checked", "disabled"], Tt = {
1309
+ }, Ct = { class: "flex items-center space-x-2" }, $t = ["aria-checked", "disabled"], St = {
1386
1310
  __name: "Radio",
1387
1311
  props: {
1388
1312
  modelValue: null,
@@ -1434,7 +1358,7 @@ const Qe = {
1434
1358
  ), k = () => {
1435
1359
  t.disabled || l("update:modelValue", t.value);
1436
1360
  };
1437
- return (w, I) => (a(), r("div", Bt, [
1361
+ return (w, I) => (a(), r("div", Ct, [
1438
1362
  o("button", {
1439
1363
  type: "button",
1440
1364
  role: "radio",
@@ -1447,7 +1371,7 @@ const Qe = {
1447
1371
  key: 0,
1448
1372
  class: c(m.value)
1449
1373
  }, null, 2)) : f("", !0)
1450
- ], 10, Vt),
1374
+ ], 10, $t),
1451
1375
  e.label ? (a(), r("label", {
1452
1376
  key: 0,
1453
1377
  class: c(h.value),
@@ -1455,7 +1379,7 @@ const Qe = {
1455
1379
  }, p(e.label), 3)) : f("", !0)
1456
1380
  ]));
1457
1381
  }
1458
- }, Mt = ["value", "disabled"], we = {
1382
+ }, zt = ["value", "disabled"], we = {
1459
1383
  __name: "Select",
1460
1384
  props: {
1461
1385
  modelValue: {
@@ -1494,9 +1418,9 @@ const Qe = {
1494
1418
  class: l.value
1495
1419
  }, n.$attrs), [
1496
1420
  b(n.$slots, "default")
1497
- ], 16, Mt));
1421
+ ], 16, zt));
1498
1422
  }
1499
- }, It = ["aria-checked", "disabled"], jt = {
1423
+ }, Bt = ["aria-checked", "disabled"], Vt = {
1500
1424
  __name: "Switch",
1501
1425
  props: {
1502
1426
  modelValue: Boolean,
@@ -1599,9 +1523,9 @@ const Qe = {
1599
1523
  o("span", {
1600
1524
  class: c(m.value)
1601
1525
  }, null, 2)
1602
- ], 10, It));
1526
+ ], 10, Bt));
1603
1527
  }
1604
- }, Lt = {
1528
+ }, Tt = {
1605
1529
  __name: "Text",
1606
1530
  props: {
1607
1531
  as: {
@@ -1678,7 +1602,7 @@ const Qe = {
1678
1602
  _: 3
1679
1603
  }, 8, ["class"]));
1680
1604
  }
1681
- }, Dt = ["id", "value", "placeholder", "disabled", "readonly", "required", "rows", "maxlength", "aria-describedby", "aria-invalid"], At = {
1605
+ }, Mt = ["id", "value", "placeholder", "disabled", "readonly", "required", "rows", "maxlength", "aria-describedby", "aria-invalid"], It = {
1682
1606
  __name: "Textarea",
1683
1607
  props: {
1684
1608
  modelValue: { type: String, default: "" },
@@ -1771,9 +1695,9 @@ const Qe = {
1771
1695
  onBlur: h,
1772
1696
  onFocus: k,
1773
1697
  onKeydown: w
1774
- }, null, 42, Dt));
1698
+ }, null, 42, Mt));
1775
1699
  }
1776
- }, Pt = {
1700
+ }, jt = {
1777
1701
  __name: "Tooltip",
1778
1702
  props: {
1779
1703
  content: {
@@ -1973,16 +1897,16 @@ const Qe = {
1973
1897
  _: 3
1974
1898
  }, 8, ["class"]));
1975
1899
  }
1976
- }, Ft = { class: "flex items-start gap-3" }, Nt = {
1900
+ }, Lt = { class: "flex items-start gap-3" }, Dt = {
1977
1901
  key: 0,
1978
1902
  class: "flex-shrink-0 mt-0.5"
1979
- }, Rt = { class: "flex-1 min-w-0" }, _t = {
1903
+ }, At = { class: "flex-1 min-w-0" }, Pt = {
1980
1904
  key: 0,
1981
1905
  class: "font-medium text-sm mb-1"
1982
- }, Ot = {
1906
+ }, Ft = {
1983
1907
  key: 1,
1984
1908
  class: "mt-3 flex gap-2"
1985
- }, qt = ["aria-label"], Ht = /* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
1909
+ }, Nt = ["aria-label"], Rt = /* @__PURE__ */ Object.assign({ inheritAttrs: !1 }, {
1986
1910
  __name: "Alert",
1987
1911
  props: {
1988
1912
  variant: {
@@ -2097,14 +2021,14 @@ const Qe = {
2097
2021
  class: c(D(v)(D(R)({ variant: e.variant }), g.$attrs.class)),
2098
2022
  role: "alert"
2099
2023
  }, [
2100
- o("div", Ft, [
2101
- e.showIcon ? (a(), r("div", Nt, [
2024
+ o("div", Lt, [
2025
+ e.showIcon ? (a(), r("div", Dt, [
2102
2026
  (a(), M(X(T.value), {
2103
2027
  class: c(z.value)
2104
2028
  }, null, 8, ["class"]))
2105
2029
  ])) : f("", !0),
2106
- o("div", Rt, [
2107
- e.title ? (a(), r("h4", _t, p(e.title), 1)) : f("", !0),
2030
+ o("div", At, [
2031
+ e.title ? (a(), r("h4", Pt, p(e.title), 1)) : f("", !0),
2108
2032
  o("div", {
2109
2033
  class: c(["text-sm", { "mt-0": !e.title, "mt-1": e.title }])
2110
2034
  }, [
@@ -2112,7 +2036,7 @@ const Qe = {
2112
2036
  N(p(e.message), 1)
2113
2037
  ])
2114
2038
  ], 2),
2115
- g.$slots.actions || e.actions.length > 0 ? (a(), r("div", Ot, [
2039
+ g.$slots.actions || e.actions.length > 0 ? (a(), r("div", Ft, [
2116
2040
  b(g.$slots, "actions", {}, () => [
2117
2041
  (a(!0), r(Q, null, K(e.actions, ($) => (a(), M(ee, {
2118
2042
  key: $.label,
@@ -2135,14 +2059,14 @@ const Qe = {
2135
2059
  "aria-label": e.dismissLabel
2136
2060
  }, [
2137
2061
  y(I, { class: "w-4 h-4" })
2138
- ], 10, qt)) : f("", !0)
2062
+ ], 10, Nt)) : f("", !0)
2139
2063
  ])
2140
2064
  ], 2)) : f("", !0)
2141
2065
  ]),
2142
2066
  _: 3
2143
2067
  }));
2144
2068
  }
2145
- }), Et = ["aria-label"], Ut = { class: "flex items-center space-x-1" }, Zt = {
2069
+ }), _t = ["aria-label"], Ot = { class: "flex items-center space-x-1" }, qt = {
2146
2070
  __name: "Breadcrumb",
2147
2071
  props: {
2148
2072
  items: {
@@ -2179,7 +2103,7 @@ const Qe = {
2179
2103
  "aria-label": e.ariaLabel,
2180
2104
  class: c(["flex", l.value])
2181
2105
  }, [
2182
- o("ol", Ut, [
2106
+ o("ol", Ot, [
2183
2107
  (a(!0), r(Q, null, K(e.items, (d, m) => (a(), r("li", {
2184
2108
  key: m,
2185
2109
  class: "flex items-center"
@@ -2204,9 +2128,9 @@ const Qe = {
2204
2128
  }, null, 8, ["name"])) : f("", !0)
2205
2129
  ]))), 128))
2206
2130
  ])
2207
- ], 10, Et));
2131
+ ], 10, _t));
2208
2132
  }
2209
- }, Gt = ["aria-label"], Kt = {
2133
+ }, Ht = ["aria-label"], Et = {
2210
2134
  __name: "ButtonGroup",
2211
2135
  props: {
2212
2136
  orientation: {
@@ -2243,12 +2167,12 @@ const Qe = {
2243
2167
  "aria-label": e.ariaLabel
2244
2168
  }, [
2245
2169
  b(n.$slots, "default")
2246
- ], 10, Gt));
2170
+ ], 10, Ht));
2247
2171
  }
2248
- }, Qt = { class: "flex items-start justify-between" }, Yt = { class: "flex-1 min-w-0" }, Xt = {
2172
+ }, Ut = { class: "flex items-start justify-between" }, Zt = { class: "flex-1 min-w-0" }, Gt = {
2249
2173
  key: 0,
2250
2174
  class: "flex-shrink-0 ml-4"
2251
- }, Wt = ["src", "alt"], Jt = "w-full h-auto object-cover", ea = "text-lg font-semibold text-slate-900 truncate", ta = "text-sm text-slate-600 mt-1", aa = {
2175
+ }, Kt = ["src", "alt"], Qt = "w-full h-auto object-cover", Yt = "text-lg font-semibold text-slate-900 truncate", Xt = "text-sm text-slate-600 mt-1", Wt = {
2252
2176
  __name: "Card",
2253
2177
  props: {
2254
2178
  variant: {
@@ -2364,18 +2288,18 @@ const Qe = {
2364
2288
  class: c(D(v)(D(d)({ padding: e.padding })))
2365
2289
  }, [
2366
2290
  b(w.$slots, "header", {}, () => [
2367
- o("div", Qt, [
2368
- o("div", Yt, [
2291
+ o("div", Ut, [
2292
+ o("div", Zt, [
2369
2293
  e.title ? (a(), r("h3", {
2370
2294
  key: 0,
2371
- class: c(ea)
2295
+ class: c(Yt)
2372
2296
  }, p(e.title), 1)) : f("", !0),
2373
2297
  e.subtitle ? (a(), r("p", {
2374
2298
  key: 1,
2375
- class: c(ta)
2299
+ class: c(Xt)
2376
2300
  }, p(e.subtitle), 1)) : f("", !0)
2377
2301
  ]),
2378
- w.$slots.actions ? (a(), r("div", Xt, [
2302
+ w.$slots.actions ? (a(), r("div", Gt, [
2379
2303
  b(w.$slots, "actions")
2380
2304
  ])) : f("", !0)
2381
2305
  ])
@@ -2390,8 +2314,8 @@ const Qe = {
2390
2314
  key: 0,
2391
2315
  src: e.image,
2392
2316
  alt: e.imageAlt,
2393
- class: c(Jt)
2394
- }, null, 8, Wt)) : f("", !0)
2317
+ class: c(Qt)
2318
+ }, null, 8, Kt)) : f("", !0)
2395
2319
  ])
2396
2320
  ], 2)) : f("", !0),
2397
2321
  w.$slots.default ? (a(), r("div", {
@@ -2408,7 +2332,7 @@ const Qe = {
2408
2332
  ], 2)) : f("", !0)
2409
2333
  ], 2));
2410
2334
  }
2411
- }, sa = /* @__PURE__ */ Object.assign({
2335
+ }, Jt = /* @__PURE__ */ Object.assign({
2412
2336
  inheritAttrs: !1
2413
2337
  }, {
2414
2338
  __name: "CardHeader",
@@ -2419,7 +2343,7 @@ const Qe = {
2419
2343
  b(s.$slots, "default")
2420
2344
  ], 2));
2421
2345
  }
2422
- }), la = {
2346
+ }), ea = {
2423
2347
  __name: "CardBody",
2424
2348
  props: {
2425
2349
  variant: {
@@ -2446,7 +2370,7 @@ const Qe = {
2446
2370
  b(n.$slots, "default")
2447
2371
  ], 2));
2448
2372
  }
2449
- }, na = {
2373
+ }, ta = {
2450
2374
  __name: "CardFooter",
2451
2375
  props: {
2452
2376
  variant: {
@@ -2473,7 +2397,7 @@ const Qe = {
2473
2397
  b(n.$slots, "default")
2474
2398
  ], 2));
2475
2399
  }
2476
- }, ra = /* @__PURE__ */ Object.assign({
2400
+ }, aa = /* @__PURE__ */ Object.assign({
2477
2401
  inheritAttrs: !1
2478
2402
  }, {
2479
2403
  __name: "CardContent",
@@ -2484,7 +2408,7 @@ const Qe = {
2484
2408
  b(s.$slots, "default")
2485
2409
  ], 2));
2486
2410
  }
2487
- }), oa = /* @__PURE__ */ Object.assign({
2411
+ }), sa = /* @__PURE__ */ Object.assign({
2488
2412
  inheritAttrs: !1
2489
2413
  }, {
2490
2414
  __name: "CardTitle",
@@ -2495,7 +2419,7 @@ const Qe = {
2495
2419
  b(s.$slots, "default")
2496
2420
  ], 2));
2497
2421
  }
2498
- }), ia = { class: "relative" }, da = ["id", "value", "disabled", "required", "min", "max"], ca = {
2422
+ }), la = { class: "relative" }, na = ["id", "value", "disabled", "required", "min", "max"], ra = {
2499
2423
  __name: "DatePicker",
2500
2424
  props: {
2501
2425
  modelValue: String,
@@ -2536,7 +2460,7 @@ const Qe = {
2536
2460
  ), l = u(
2537
2461
  () => v(t({ variant: s.variant, size: s.size }))
2538
2462
  );
2539
- return (n, i) => (a(), r("div", ia, [
2463
+ return (n, i) => (a(), r("div", la, [
2540
2464
  o("input", {
2541
2465
  id: e.id,
2542
2466
  value: e.modelValue,
@@ -2547,14 +2471,14 @@ const Qe = {
2547
2471
  min: e.min,
2548
2472
  max: e.max,
2549
2473
  onInput: i[0] || (i[0] = (d) => n.$emit("update:modelValue", d.target.value))
2550
- }, null, 42, da),
2474
+ }, null, 42, na),
2551
2475
  y(Y, {
2552
2476
  name: "calendar",
2553
2477
  class: "absolute right-3 top-1/2 transform -translate-y-1/2 w-4 h-4 pointer-events-none text-gray-400"
2554
2478
  })
2555
2479
  ]));
2556
2480
  }
2557
- }, ua = ["aria-expanded"], ma = {
2481
+ }, oa = ["aria-expanded"], ia = {
2558
2482
  __name: "Dropdown",
2559
2483
  props: {
2560
2484
  triggerText: {
@@ -2627,7 +2551,7 @@ const Qe = {
2627
2551
  class: "ml-2 h-4 w-4"
2628
2552
  })
2629
2553
  ])
2630
- ], 10, ua),
2554
+ ], 10, oa),
2631
2555
  y(ae, {
2632
2556
  "enter-active-class": "transition ease-out duration-100",
2633
2557
  "enter-from-class": "transform opacity-0 scale-95",
@@ -2650,10 +2574,10 @@ const Qe = {
2650
2574
  })
2651
2575
  ], 512));
2652
2576
  }
2653
- }, fa = {
2577
+ }, da = {
2654
2578
  key: 1,
2655
2579
  class: "ml-auto text-xs tracking-widest opacity-60"
2656
- }, va = {
2580
+ }, ca = {
2657
2581
  __name: "DropdownItem",
2658
2582
  props: {
2659
2583
  href: String,
@@ -2697,18 +2621,18 @@ const Qe = {
2697
2621
  class: "mr-2 h-4 w-4"
2698
2622
  }, null, 8, ["name"])) : f("", !0),
2699
2623
  b(m.$slots, "default"),
2700
- e.shortcut ? (a(), r("span", fa, p(e.shortcut), 1)) : f("", !0)
2624
+ e.shortcut ? (a(), r("span", da, p(e.shortcut), 1)) : f("", !0)
2701
2625
  ]),
2702
2626
  _: 3
2703
2627
  }, 8, ["href", "class", "disabled"]));
2704
2628
  }
2705
- }, ga = { class: "w-full" }, pa = ["multiple", "accept"], ha = { class: "flex flex-col items-center justify-center py-6" }, ba = {
2629
+ }, ua = { class: "w-full" }, ma = ["multiple", "accept"], fa = { class: "flex flex-col items-center justify-center py-6" }, va = {
2706
2630
  key: 0,
2707
2631
  class: "text-xs text-muted-foreground mt-1"
2708
- }, ya = {
2632
+ }, ga = {
2709
2633
  key: 0,
2710
2634
  class: "mt-4 space-y-2"
2711
- }, xa = { class: "flex items-center space-x-2" }, ka = { class: "text-sm" }, wa = { class: "text-xs text-muted-foreground" }, Ca = ["onClick"], $a = {
2635
+ }, pa = { class: "flex items-center space-x-2" }, ha = { class: "text-sm" }, ba = { class: "text-xs text-muted-foreground" }, ya = ["onClick"], xa = {
2712
2636
  __name: "FileUpload",
2713
2637
  props: {
2714
2638
  multiple: Boolean,
@@ -2763,7 +2687,7 @@ const Qe = {
2763
2687
  const j = 1024, P = ["Bytes", "KB", "MB", "GB"], E = Math.floor(Math.log($) / Math.log(j));
2764
2688
  return parseFloat(($ / Math.pow(j, E)).toFixed(2)) + " " + P[E];
2765
2689
  };
2766
- return ($, j) => (a(), r("div", ga, [
2690
+ return ($, j) => (a(), r("div", ua, [
2767
2691
  o("div", {
2768
2692
  class: c(h.value),
2769
2693
  onDrop: k,
@@ -2780,8 +2704,8 @@ const Qe = {
2780
2704
  accept: e.accept,
2781
2705
  class: "hidden",
2782
2706
  onChange: z
2783
- }, null, 40, pa),
2784
- o("div", ha, [
2707
+ }, null, 40, ma),
2708
+ o("div", fa, [
2785
2709
  y(Y, {
2786
2710
  name: "upload",
2787
2711
  class: "h-8 w-8 text-muted-foreground mb-2"
@@ -2790,21 +2714,21 @@ const Qe = {
2790
2714
  o("span", { class: "font-semibold" }, "Click to upload"),
2791
2715
  N(" or drag and drop ")
2792
2716
  ], -1)),
2793
- e.accept ? (a(), r("p", ba, p(e.accept), 1)) : f("", !0)
2717
+ e.accept ? (a(), r("p", va, p(e.accept), 1)) : f("", !0)
2794
2718
  ])
2795
2719
  ], 34),
2796
- n.value.length > 0 ? (a(), r("div", ya, [
2720
+ n.value.length > 0 ? (a(), r("div", ga, [
2797
2721
  (a(!0), r(Q, null, K(n.value, (P, E) => (a(), r("div", {
2798
2722
  key: E,
2799
2723
  class: "flex items-center justify-between p-2 bg-muted rounded-md"
2800
2724
  }, [
2801
- o("div", xa, [
2725
+ o("div", pa, [
2802
2726
  y(Y, {
2803
2727
  name: "file",
2804
2728
  class: "h-4 w-4 text-muted-foreground"
2805
2729
  }),
2806
- o("span", ka, p(P.name), 1),
2807
- o("span", wa, "(" + p(B(P.size)) + ")", 1)
2730
+ o("span", ha, p(P.name), 1),
2731
+ o("span", ba, "(" + p(B(P.size)) + ")", 1)
2808
2732
  ]),
2809
2733
  o("button", {
2810
2734
  onClick: (te) => g(E),
@@ -2814,16 +2738,16 @@ const Qe = {
2814
2738
  name: "x",
2815
2739
  class: "h-4 w-4"
2816
2740
  })
2817
- ], 8, Ca)
2741
+ ], 8, ya)
2818
2742
  ]))), 128))
2819
2743
  ])) : f("", !0)
2820
2744
  ]));
2821
2745
  }
2822
- }, Sa = ["for"], za = {
2746
+ }, ka = ["for"], wa = {
2823
2747
  key: 0,
2824
2748
  class: "text-red-500 ml-1",
2825
2749
  "aria-label": "required"
2826
- }, Ba = { class: "relative" }, Va = ["id"], Ta = ["id"], Ma = {
2750
+ }, Ca = { class: "relative" }, $a = ["id"], Sa = ["id"], za = {
2827
2751
  __name: "FormField",
2828
2752
  props: {
2829
2753
  label: String,
@@ -2915,13 +2839,13 @@ const Qe = {
2915
2839
  class: c(D(v)(D(h)({ size: e.size })))
2916
2840
  }, [
2917
2841
  N(p(e.label) + " ", 1),
2918
- e.required ? (a(), r("span", za, "*")) : f("", !0)
2919
- ], 10, Sa)) : f("", !0),
2842
+ e.required ? (a(), r("span", wa, "*")) : f("", !0)
2843
+ ], 10, ka)) : f("", !0),
2920
2844
  e.description ? (a(), r("p", {
2921
2845
  key: 1,
2922
2846
  class: c(D(v)(D(k)({ size: e.size })))
2923
2847
  }, p(e.description), 3)) : f("", !0),
2924
- o("div", Ba, [
2848
+ o("div", Ca, [
2925
2849
  b(T.$slots, "default", {
2926
2850
  fieldId: D(n),
2927
2851
  hasError: i.value,
@@ -2946,7 +2870,7 @@ const Qe = {
2946
2870
  }, [
2947
2871
  y(s, { class: "w-4 h-4 flex-shrink-0 mt-0.5" }),
2948
2872
  o("span", null, p(e.error), 1)
2949
- ], 10, Va)) : f("", !0)
2873
+ ], 10, $a)) : f("", !0)
2950
2874
  ]),
2951
2875
  _: 1
2952
2876
  }),
@@ -2954,7 +2878,7 @@ const Qe = {
2954
2878
  key: 2,
2955
2879
  id: `${D(n)}-help`,
2956
2880
  class: c(D(v)(D(I)({ size: e.size })))
2957
- }, p(e.helpText), 11, Ta)) : f("", !0),
2881
+ }, p(e.helpText), 11, Sa)) : f("", !0),
2958
2882
  y(ae, {
2959
2883
  "enter-active-class": "transition-all duration-200",
2960
2884
  "enter-from-class": "opacity-0 -translate-y-1",
@@ -2976,13 +2900,13 @@ const Qe = {
2976
2900
  })
2977
2901
  ], 2));
2978
2902
  }
2979
- }, Ia = {
2903
+ }, Ba = {
2980
2904
  key: 0,
2981
2905
  class: "flex items-center px-3 bg-muted border border-r-0 rounded-l-md"
2982
- }, ja = {
2906
+ }, Va = {
2983
2907
  key: 1,
2984
2908
  class: "flex items-center px-3 bg-muted border border-l-0 rounded-r-md"
2985
- }, La = {
2909
+ }, Ta = {
2986
2910
  __name: "InputGroup",
2987
2911
  props: {
2988
2912
  variant: {
@@ -3005,28 +2929,28 @@ const Qe = {
3005
2929
  return (n, i) => (a(), r("div", {
3006
2930
  class: c(l.value)
3007
2931
  }, [
3008
- n.$slots.prefix ? (a(), r("div", Ia, [
2932
+ n.$slots.prefix ? (a(), r("div", Ba, [
3009
2933
  b(n.$slots, "prefix")
3010
2934
  ])) : f("", !0),
3011
2935
  b(n.$slots, "default"),
3012
- n.$slots.suffix ? (a(), r("div", ja, [
2936
+ n.$slots.suffix ? (a(), r("div", Va, [
3013
2937
  b(n.$slots, "suffix")
3014
2938
  ])) : f("", !0)
3015
2939
  ], 2));
3016
2940
  }
3017
- }, Da = ["role"], Aa = {
2941
+ }, Ma = ["role"], Ia = {
3018
2942
  key: 0,
3019
2943
  class: "flex-shrink-0"
3020
- }, Pa = { class: "flex-1 min-w-0" }, Fa = {
2944
+ }, ja = { class: "flex-1 min-w-0" }, La = {
3021
2945
  key: 0,
3022
2946
  class: "text-sm font-medium text-foreground"
3023
- }, Na = {
2947
+ }, Da = {
3024
2948
  key: 1,
3025
2949
  class: "text-sm text-muted-foreground"
3026
- }, Ra = {
2950
+ }, Aa = {
3027
2951
  key: 1,
3028
2952
  class: "flex-shrink-0"
3029
- }, _a = {
2953
+ }, Pa = {
3030
2954
  __name: "ListItem",
3031
2955
  props: {
3032
2956
  title: String,
@@ -3073,7 +2997,7 @@ const Qe = {
3073
2997
  onClick: h
3074
2998
  }, {
3075
2999
  default: S(() => [
3076
- k.$slots.icon || e.icon ? (a(), r("div", Aa, [
3000
+ k.$slots.icon || e.icon ? (a(), r("div", Ia, [
3077
3001
  b(k.$slots, "icon", {}, () => [
3078
3002
  e.icon ? (a(), M(Y, {
3079
3003
  key: 0,
@@ -3082,23 +3006,23 @@ const Qe = {
3082
3006
  }, null, 8, ["name"])) : f("", !0)
3083
3007
  ])
3084
3008
  ])) : f("", !0),
3085
- o("div", Pa, [
3086
- e.title ? (a(), r("div", Fa, p(e.title), 1)) : f("", !0),
3087
- e.description ? (a(), r("div", Na, p(e.description), 1)) : f("", !0),
3009
+ o("div", ja, [
3010
+ e.title ? (a(), r("div", La, p(e.title), 1)) : f("", !0),
3011
+ e.description ? (a(), r("div", Da, p(e.description), 1)) : f("", !0),
3088
3012
  b(k.$slots, "default")
3089
3013
  ]),
3090
- k.$slots.action ? (a(), r("div", Ra, [
3014
+ k.$slots.action ? (a(), r("div", Aa, [
3091
3015
  b(k.$slots, "action")
3092
3016
  ])) : f("", !0)
3093
3017
  ]),
3094
3018
  _: 3
3095
3019
  }, 8, ["href", "class"]))
3096
- ], 10, Da));
3020
+ ], 10, Ma));
3097
3021
  }
3098
- }, Oa = {
3022
+ }, Fa = {
3099
3023
  key: 1,
3100
3024
  class: "ml-auto text-xs tracking-widest opacity-60"
3101
- }, qa = {
3025
+ }, Na = {
3102
3026
  __name: "MenuItem",
3103
3027
  props: {
3104
3028
  href: String,
@@ -3143,7 +3067,7 @@ const Qe = {
3143
3067
  class: "mr-2 h-4 w-4"
3144
3068
  }, null, 8, ["name"])) : f("", !0),
3145
3069
  b(m.$slots, "default"),
3146
- e.shortcut ? (a(), r("span", Oa, p(e.shortcut), 1)) : f("", !0),
3070
+ e.shortcut ? (a(), r("span", Fa, p(e.shortcut), 1)) : f("", !0),
3147
3071
  e.hasSubmenu ? (a(), M(Y, {
3148
3072
  key: 2,
3149
3073
  name: "chevron-right",
@@ -3153,7 +3077,7 @@ const Qe = {
3153
3077
  _: 3
3154
3078
  }, 8, ["href", "class", "disabled"]));
3155
3079
  }
3156
- }, Ha = { class: "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 sm:rounded-lg" }, Ea = {
3080
+ }, Ra = { class: "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 sm:rounded-lg" }, _a = {
3157
3081
  __name: "Modal",
3158
3082
  props: {
3159
3083
  modelValue: Boolean,
@@ -3197,7 +3121,7 @@ const Qe = {
3197
3121
  class: "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",
3198
3122
  onClick: i
3199
3123
  }, [
3200
- o("div", Ha, [
3124
+ o("div", Ra, [
3201
3125
  e.showClose ? (a(), r("button", {
3202
3126
  key: 0,
3203
3127
  onClick: n,
@@ -3217,26 +3141,26 @@ const Qe = {
3217
3141
  })
3218
3142
  ]));
3219
3143
  }
3220
- }, Ua = { class: "flex flex-col space-y-1.5 text-center sm:text-left" }, Za = {
3144
+ }, Oa = { class: "flex flex-col space-y-1.5 text-center sm:text-left" }, qa = {
3221
3145
  key: 0,
3222
3146
  class: "text-lg font-semibold leading-none tracking-tight"
3223
- }, Ga = {
3147
+ }, Ha = {
3224
3148
  key: 1,
3225
3149
  class: "text-sm text-muted-foreground"
3226
- }, Ka = {
3150
+ }, Ea = {
3227
3151
  __name: "ModalHeader",
3228
3152
  props: {
3229
3153
  title: String,
3230
3154
  description: String
3231
3155
  },
3232
3156
  setup(e) {
3233
- return (s, t) => (a(), r("div", Ua, [
3234
- e.title ? (a(), r("h2", Za, p(e.title), 1)) : f("", !0),
3235
- e.description ? (a(), r("p", Ga, p(e.description), 1)) : f("", !0),
3157
+ return (s, t) => (a(), r("div", Oa, [
3158
+ e.title ? (a(), r("h2", qa, p(e.title), 1)) : f("", !0),
3159
+ e.description ? (a(), r("p", Ha, p(e.description), 1)) : f("", !0),
3236
3160
  b(s.$slots, "default")
3237
3161
  ]));
3238
3162
  }
3239
- }, Qa = {
3163
+ }, Ua = {
3240
3164
  __name: "ModalBody",
3241
3165
  props: {
3242
3166
  variant: {
@@ -3262,7 +3186,7 @@ const Qe = {
3262
3186
  b(n.$slots, "default")
3263
3187
  ], 2));
3264
3188
  }
3265
- }, Ya = {
3189
+ }, Za = {
3266
3190
  __name: "ModalFooter",
3267
3191
  props: {
3268
3192
  variant: {
@@ -3288,13 +3212,13 @@ const Qe = {
3288
3212
  b(n.$slots, "default")
3289
3213
  ], 2));
3290
3214
  }
3291
- }, Xa = ["aria-live"], Wa = { class: "flex items-start space-x-3" }, Ja = {
3215
+ }, Ga = ["aria-live"], Ka = { class: "flex items-start space-x-3" }, Qa = {
3292
3216
  key: 0,
3293
3217
  class: "flex-shrink-0"
3294
- }, es = { class: "flex-1 min-w-0" }, ts = {
3218
+ }, Ya = { class: "flex-1 min-w-0" }, Xa = {
3295
3219
  key: 0,
3296
3220
  class: "text-sm font-medium"
3297
- }, as = {
3221
+ }, Wa = {
3298
3222
  __name: "Notification",
3299
3223
  props: {
3300
3224
  title: String,
@@ -3370,15 +3294,15 @@ const Qe = {
3370
3294
  role: "alert",
3371
3295
  "aria-live": e.variant === "destructive" ? "assertive" : "polite"
3372
3296
  }, [
3373
- o("div", Wa, [
3374
- e.showIcon ? (a(), r("div", Ja, [
3297
+ o("div", Ka, [
3298
+ e.showIcon ? (a(), r("div", Qa, [
3375
3299
  y(Y, {
3376
3300
  name: k.value,
3377
3301
  class: c(w.value)
3378
3302
  }, null, 8, ["name", "class"])
3379
3303
  ])) : f("", !0),
3380
- o("div", es, [
3381
- e.title ? (a(), r("div", ts, p(e.title), 1)) : f("", !0),
3304
+ o("div", Ya, [
3305
+ e.title ? (a(), r("div", Xa, p(e.title), 1)) : f("", !0),
3382
3306
  e.message ? (a(), r("div", {
3383
3307
  key: 1,
3384
3308
  class: c(["text-sm", { "mt-1": e.title }])
@@ -3396,12 +3320,87 @@ const Qe = {
3396
3320
  })
3397
3321
  ])) : f("", !0)
3398
3322
  ])
3399
- ], 10, Xa)) : f("", !0)
3323
+ ], 10, Ga)) : f("", !0)
3400
3324
  ]),
3401
3325
  _: 3
3402
3326
  }));
3403
3327
  }
3404
- }, ss = ["aria-live"], ls = { class: "flex-1 grid gap-1" }, ns = {
3328
+ }, fe = O([]);
3329
+ let Ja = 0;
3330
+ const es = {
3331
+ duration: 2e3,
3332
+ position: "top-center",
3333
+ dismissible: !0,
3334
+ closeButton: !1
3335
+ }, ts = () => `toast-${++Ja}-${Date.now()}`, re = (e, s = {}) => {
3336
+ const t = ts(), l = {
3337
+ id: t,
3338
+ message: e,
3339
+ ...es,
3340
+ ...s,
3341
+ createdAt: Date.now()
3342
+ };
3343
+ return fe.value.push(Te(l)), l.duration && l.duration > 0 && setTimeout(() => {
3344
+ ue(t);
3345
+ }, l.duration), t;
3346
+ }, ue = (e) => {
3347
+ const s = fe.value.findIndex((t) => t.id === e);
3348
+ s > -1 && fe.value.splice(s, 1);
3349
+ }, De = () => {
3350
+ fe.value = [];
3351
+ }, Se = Object.assign(
3352
+ // Default toast function
3353
+ (e, s) => re(e, { ...s }),
3354
+ // Toast type methods
3355
+ {
3356
+ success: (e, s) => re(e, { ...s, variant: "success" }),
3357
+ error: (e, s) => re(e, { ...s, variant: "destructive" }),
3358
+ warning: (e, s) => re(e, { ...s, variant: "warning" }),
3359
+ info: (e, s) => re(e, { ...s, variant: "default" }),
3360
+ // Promise toast for async operations
3361
+ promise: (e, s = {}) => {
3362
+ const {
3363
+ loading: t = "Loading...",
3364
+ success: l = "Success",
3365
+ error: n = "Error",
3366
+ ...i
3367
+ } = s, d = re(t, {
3368
+ ...i,
3369
+ variant: "default",
3370
+ duration: 0,
3371
+ // Don't auto dismiss
3372
+ dismissible: !1
3373
+ });
3374
+ return e.then((m) => {
3375
+ ue(d);
3376
+ const h = typeof l == "function" ? l(m) : l;
3377
+ return re(h, {
3378
+ ...i,
3379
+ variant: "success"
3380
+ }), m;
3381
+ }).catch((m) => {
3382
+ ue(d);
3383
+ const h = typeof n == "function" ? n(m) : n;
3384
+ throw re(h, {
3385
+ ...i,
3386
+ variant: "destructive"
3387
+ }), m;
3388
+ });
3389
+ },
3390
+ // Utility methods
3391
+ dismiss: ue,
3392
+ dismissAll: De,
3393
+ // Custom toast with component
3394
+ custom: (e, s = {}) => re("", {
3395
+ ...s,
3396
+ component: Te(e)
3397
+ })
3398
+ }
3399
+ ), as = () => ({
3400
+ toasts: fe,
3401
+ dismiss: ue,
3402
+ dismissAll: De
3403
+ }), ss = ["aria-live"], ls = { class: "flex-1 grid gap-1" }, ns = {
3405
3404
  key: 0,
3406
3405
  class: "text-sm font-semibold"
3407
3406
  }, rs = {
@@ -3447,7 +3446,7 @@ const Qe = {
3447
3446
  }
3448
3447
  },
3449
3448
  setup(e) {
3450
- const s = e, { toasts: t, dismiss: l } = Ke(), n = {
3449
+ const s = e, { toasts: t, dismiss: l } = as(), n = {
3451
3450
  "top-left": "top-0 left-0 flex-col",
3452
3451
  "top-center": "top-0 left-1/2 -translate-x-1/2 flex-col",
3453
3452
  "top-right": "top-0 right-0 flex-col",
@@ -3489,7 +3488,7 @@ const Qe = {
3489
3488
  "fixed z-[100] flex max-h-screen w-full p-4 md:max-w-[420px]"
3490
3489
  ))
3491
3490
  }, [
3492
- y(Ne, {
3491
+ y(Re, {
3493
3492
  "enter-active-class": "transition-all duration-300 ease-out",
3494
3493
  "enter-from-class": "transform translate-x-full opacity-0 scale-95",
3495
3494
  "enter-to-class": "transform translate-x-0 opacity-100 scale-100",
@@ -3780,7 +3779,7 @@ const Qe = {
3780
3779
  onInput: i,
3781
3780
  class: "w-full accent-blue-500 cursor-pointer"
3782
3781
  }, null, 40, Bs), [
3783
- [Re, n.value]
3782
+ [_e, n.value]
3784
3783
  ]),
3785
3784
  o("div", Vs, [
3786
3785
  o("span", null, p(e.min), 1),
@@ -3833,7 +3832,7 @@ const Qe = {
3833
3832
  const t = O(e.defaultIndex), l = O([]), n = (i) => {
3834
3833
  t.value = i;
3835
3834
  };
3836
- return _e("tabsContext", {
3835
+ return Oe("tabsContext", {
3837
3836
  activeIndex: t,
3838
3837
  tabs: l,
3839
3838
  registerTab: (i) => (l.value.push({ label: i }), l.value.length - 1)
@@ -3859,7 +3858,7 @@ const Qe = {
3859
3858
  label: { type: String, required: !0 }
3860
3859
  },
3861
3860
  setup(e) {
3862
- const s = e, t = Oe("tabsContext"), l = O(null), n = O(!1);
3861
+ const s = e, t = qe("tabsContext"), l = O(null), n = O(!1);
3863
3862
  return ve(() => {
3864
3863
  l.value = t.registerTab(s.label), n.value = t.activeIndex.value === l.value, watch(t.activeIndex, (i) => {
3865
3864
  n.value = i === l.value;
@@ -3867,7 +3866,7 @@ const Qe = {
3867
3866
  }), (i, d) => xe((a(), r("div", null, [
3868
3867
  b(i.$slots, "default")
3869
3868
  ], 512)), [
3870
- [Te, n.value]
3869
+ [Me, n.value]
3871
3870
  ]);
3872
3871
  }
3873
3872
  }, qs = ["aria-expanded", "aria-controls", "id", "onClick"], Hs = { class: "flex items-center flex-1 min-w-0" }, Es = { class: "flex-1 text-left" }, Us = ["id", "aria-labelledby"], Zs = ["innerHTML"], Gs = {
@@ -4265,7 +4264,7 @@ const Qe = {
4265
4264
  }, tl = { class: "flex items-start justify-between" }, al = {
4266
4265
  key: 0,
4267
4266
  class: "flex items-center gap-2"
4268
- }, De = {
4267
+ }, Ae = {
4269
4268
  __name: "DataTableHeader",
4270
4269
  props: {
4271
4270
  title: {
@@ -4370,7 +4369,7 @@ const Qe = {
4370
4369
  ])
4371
4370
  ], 2)) : f("", !0);
4372
4371
  }
4373
- }, Ae = {
4372
+ }, Pe = {
4374
4373
  __name: "DataTableRow",
4375
4374
  props: {
4376
4375
  item: {
@@ -4561,7 +4560,7 @@ const Qe = {
4561
4560
  }, ol = {
4562
4561
  key: 3,
4563
4562
  class: "flex items-center gap-4"
4564
- }, il = { class: "flex items-center gap-2" }, dl = { class: "flex items-center gap-1" }, cl = ["disabled"], ul = ["disabled"], ml = { class: "flex items-center gap-1" }, fl = ["onClick"], vl = ["disabled"], gl = ["disabled"], pl = { class: "text-sm text-slate-600 ml-4" }, Pe = {
4563
+ }, il = { class: "flex items-center gap-2" }, dl = { class: "flex items-center gap-1" }, cl = ["disabled"], ul = ["disabled"], ml = { class: "flex items-center gap-1" }, fl = ["onClick"], vl = ["disabled"], gl = ["disabled"], pl = { class: "text-sm text-slate-600 ml-4" }, Fe = {
4565
4564
  __name: "DataTablePagination",
4566
4565
  props: {
4567
4566
  currentPage: {
@@ -5054,7 +5053,7 @@ const Qe = {
5054
5053
  }), (V, q) => (a(), r("div", {
5055
5054
  class: c(W.value)
5056
5055
  }, [
5057
- e.title || e.description || V.$slots.header ? (a(), M(De, {
5056
+ e.title || e.description || V.$slots.header ? (a(), M(Ae, {
5058
5057
  key: 0,
5059
5058
  title: e.title,
5060
5059
  description: e.description,
@@ -5133,7 +5132,7 @@ const Qe = {
5133
5132
  o("tbody", {
5134
5133
  class: c(J.value)
5135
5134
  }, [
5136
- (a(!0), r(Q, null, K(z.value, (Z, ne) => (a(), M(Ae, {
5135
+ (a(!0), r(Q, null, K(z.value, (Z, ne) => (a(), M(Pe, {
5137
5136
  key: j(Z, ne),
5138
5137
  item: Z,
5139
5138
  columns: e.columns,
@@ -5146,7 +5145,7 @@ const Qe = {
5146
5145
  density: e.density,
5147
5146
  onToggleSelection: E,
5148
5147
  onRowClick: H
5149
- }, qe({
5148
+ }, He({
5150
5149
  actions: S((de) => [
5151
5150
  b(V.$slots, "actions", me({ ref_for: !0 }, de))
5152
5151
  ]),
@@ -5189,7 +5188,7 @@ const Qe = {
5189
5188
  ], 2)
5190
5189
  ], 2)
5191
5190
  ]),
5192
- e.showPagination || V.$slots.footer ? (a(), M(Pe, {
5191
+ e.showPagination || V.$slots.footer ? (a(), M(Fe, {
5193
5192
  key: 1,
5194
5193
  "current-page": n.value,
5195
5194
  "total-pages": R.value,
@@ -5879,7 +5878,7 @@ const Qe = {
5879
5878
  ])
5880
5879
  ])
5881
5880
  ], 2), [
5882
- [Te, n.value]
5881
+ [Me, n.value]
5883
5882
  ])
5884
5883
  ])) : f("", !0),
5885
5884
  e.showRefresh ? (a(), r("button", {
@@ -6250,7 +6249,7 @@ const Qe = {
6250
6249
  ], 2)
6251
6250
  ], 2));
6252
6251
  }
6253
- }, Fe = (e, s) => {
6252
+ }, Ne = (e, s) => {
6254
6253
  const t = e.__vccOpts || e;
6255
6254
  for (const [l, n] of s)
6256
6255
  t[l] = n;
@@ -6448,7 +6447,7 @@ function rr(e, s, t, l, n, i) {
6448
6447
  ])
6449
6448
  ], 4);
6450
6449
  }
6451
- const or = /* @__PURE__ */ Fe(jn, [["render", rr]]), ir = { class: "min-h-screen bg-gray-50" }, dr = { class: "flex-1" }, cr = {
6450
+ const or = /* @__PURE__ */ Ne(jn, [["render", rr]]), ir = { class: "min-h-screen bg-gray-50" }, dr = { class: "flex-1" }, cr = {
6452
6451
  key: 0,
6453
6452
  class: "bg-white border-b border-gray-200"
6454
6453
  }, ur = { class: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-4" }, mr = { class: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8" }, fr = {
@@ -6551,7 +6550,7 @@ const or = /* @__PURE__ */ Fe(jn, [["render", rr]]), ir = { class: "min-h-screen
6551
6550
  <text x="100" y="110" text-anchor="middle" font-size="48" font-weight="bold" fill="#dc2626">500</text>
6552
6551
  </svg>
6553
6552
  `
6554
- }, Se = {
6553
+ }, ze = {
6555
6554
  template: `
6556
6555
  <svg fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor">
6557
6556
  <path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m9-.75a9 9 0 1 1-18 0 9 9 0 0 1 18 0Zm-9 3.75h.008v.008H12v-.008Z" />
@@ -6654,12 +6653,12 @@ const or = /* @__PURE__ */ Fe(jn, [["render", rr]]), ir = { class: "min-h-screen
6654
6653
  403: {
6655
6654
  title: "Access Denied",
6656
6655
  message: "You don't have permission to access this resource.",
6657
- icon: Se
6656
+ icon: ze
6658
6657
  },
6659
6658
  generic: {
6660
6659
  title: "Something went wrong",
6661
6660
  message: "An unexpected error occurred. Please try again.",
6662
- icon: Se
6661
+ icon: ze
6663
6662
  }
6664
6663
  };
6665
6664
  return E[e.errorType] || E.generic;
@@ -6846,50 +6845,50 @@ function Cr(e, s, t, l, n, i) {
6846
6845
  ], 2)
6847
6846
  ], 2);
6848
6847
  }
6849
- const $r = /* @__PURE__ */ Fe(pr, [["render", Cr]]), ze = {
6850
- Avatar: We,
6851
- Badge: et,
6848
+ const $r = /* @__PURE__ */ Ne(pr, [["render", Cr]]), Be = {
6849
+ Avatar: Ke,
6850
+ Badge: Ye,
6852
6851
  Button: ee,
6853
6852
  Checkbox: ke,
6854
- Divider: ct,
6853
+ Divider: rt,
6855
6854
  Icon: Y,
6856
- Image: vt,
6855
+ Image: ct,
6857
6856
  Input: pe,
6858
6857
  Label: je,
6859
- Link: kt,
6860
- Logo: Ct,
6858
+ Link: ht,
6859
+ Logo: yt,
6861
6860
  Option: Le,
6862
- ProgressBar: zt,
6863
- Radio: Tt,
6861
+ ProgressBar: wt,
6862
+ Radio: St,
6864
6863
  Select: we,
6865
6864
  Spinner: Ie,
6866
- Switch: jt,
6867
- Text: Lt,
6868
- Textarea: At,
6869
- Tooltip: Pt,
6865
+ Switch: Vt,
6866
+ Text: Tt,
6867
+ Textarea: It,
6868
+ Tooltip: jt,
6870
6869
  Typography: be,
6871
- Alert: Ht,
6872
- Breadcrumb: Zt,
6873
- ButtonGroup: Kt,
6874
- Card: aa,
6875
- CardHeader: sa,
6876
- CardBody: la,
6877
- CardFooter: na,
6878
- CardContent: ra,
6879
- CardTitle: oa,
6880
- DatePicker: ca,
6881
- Dropdown: ma,
6882
- DropdownItem: va,
6883
- FileUpload: $a,
6884
- FormField: Ma,
6885
- InputGroup: La,
6886
- ListItem: _a,
6887
- MenuItem: qa,
6888
- Modal: Ea,
6889
- ModalHeader: Ka,
6890
- ModalBody: Qa,
6891
- ModalFooter: Ya,
6892
- Notification: as,
6870
+ Alert: Rt,
6871
+ Breadcrumb: qt,
6872
+ ButtonGroup: Et,
6873
+ Card: Wt,
6874
+ CardHeader: Jt,
6875
+ CardBody: ea,
6876
+ CardFooter: ta,
6877
+ CardContent: aa,
6878
+ CardTitle: sa,
6879
+ DatePicker: ra,
6880
+ Dropdown: ia,
6881
+ DropdownItem: ca,
6882
+ FileUpload: xa,
6883
+ FormField: za,
6884
+ InputGroup: Ta,
6885
+ ListItem: Pa,
6886
+ MenuItem: Na,
6887
+ Modal: _a,
6888
+ ModalHeader: Ea,
6889
+ ModalBody: Ua,
6890
+ ModalFooter: Za,
6891
+ Notification: Wa,
6893
6892
  Toast: cs,
6894
6893
  Search: Ss,
6895
6894
  Slider: Ts,
@@ -6901,10 +6900,10 @@ const $r = /* @__PURE__ */ Fe(pr, [["render", Cr]]), ze = {
6901
6900
  AccordionItem: Ks,
6902
6901
  Calendar: el,
6903
6902
  DataTable: Sl,
6904
- DataTableHeader: De,
6905
- DataTableRow: Ae,
6903
+ DataTableHeader: Ae,
6904
+ DataTableRow: Pe,
6906
6905
  DataTableCell: zl,
6907
- DataTablePagination: Pe,
6906
+ DataTablePagination: Fe,
6908
6907
  DataTableFilters: Al,
6909
6908
  DataTableToolBar: an,
6910
6909
  Footer: un,
@@ -6914,69 +6913,68 @@ const $r = /* @__PURE__ */ Fe(pr, [["render", Cr]]), ze = {
6914
6913
  TimelineItem: In,
6915
6914
  AuthLayout: or,
6916
6915
  DefaultLayout: fr,
6917
- ErrorLayout: $r,
6918
- toast: Ge
6916
+ ErrorLayout: $r
6919
6917
  }, Vr = {
6920
6918
  install(e, s = {}) {
6921
6919
  const { prefix: t = "" } = s;
6922
- Object.keys(ze).forEach((l) => {
6920
+ Object.keys(Be).forEach((l) => {
6923
6921
  const n = t ? `${t}${l}` : l;
6924
- e.component(n, ze[l]);
6925
- });
6922
+ e.component(n, Be[l]);
6923
+ }), e.config.globalProperties.$toast = Se, e.provide("toast", Se);
6926
6924
  }
6927
6925
  };
6928
6926
  export {
6929
6927
  Gs as Accordion,
6930
6928
  Ks as AccordionItem,
6931
- Ht as Alert,
6929
+ Rt as Alert,
6932
6930
  or as AuthLayout,
6933
- We as Avatar,
6934
- et as Badge,
6935
- Zt as Breadcrumb,
6931
+ Ke as Avatar,
6932
+ Ye as Badge,
6933
+ qt as Breadcrumb,
6936
6934
  ee as Button,
6937
- Kt as ButtonGroup,
6935
+ Et as ButtonGroup,
6938
6936
  el as Calendar,
6939
- aa as Card,
6940
- la as CardBody,
6941
- ra as CardContent,
6942
- na as CardFooter,
6943
- sa as CardHeader,
6944
- oa as CardTitle,
6937
+ Wt as Card,
6938
+ ea as CardBody,
6939
+ aa as CardContent,
6940
+ ta as CardFooter,
6941
+ Jt as CardHeader,
6942
+ sa as CardTitle,
6945
6943
  ke as Checkbox,
6946
6944
  Sl as DataTable,
6947
6945
  zl as DataTableCell,
6948
6946
  Al as DataTableFilters,
6949
- De as DataTableHeader,
6950
- Pe as DataTablePagination,
6951
- Ae as DataTableRow,
6947
+ Ae as DataTableHeader,
6948
+ Fe as DataTablePagination,
6949
+ Pe as DataTableRow,
6952
6950
  an as DataTableToolBar,
6953
- ca as DatePicker,
6951
+ ra as DatePicker,
6954
6952
  fr as DefaultLayout,
6955
- ct as Divider,
6956
- ma as Dropdown,
6957
- va as DropdownItem,
6953
+ rt as Divider,
6954
+ ia as Dropdown,
6955
+ ca as DropdownItem,
6958
6956
  $r as ErrorLayout,
6959
- $a as FileUpload,
6957
+ xa as FileUpload,
6960
6958
  un as Footer,
6961
- Ma as FormField,
6959
+ za as FormField,
6962
6960
  bn as Header,
6963
6961
  Y as Icon,
6964
- vt as Image,
6962
+ ct as Image,
6965
6963
  pe as Input,
6966
- La as InputGroup,
6964
+ Ta as InputGroup,
6967
6965
  je as Label,
6968
- kt as Link,
6969
- _a as ListItem,
6970
- Ct as Logo,
6971
- qa as MenuItem,
6972
- Ea as Modal,
6973
- Qa as ModalBody,
6974
- Ya as ModalFooter,
6975
- Ka as ModalHeader,
6976
- as as Notification,
6966
+ ht as Link,
6967
+ Pa as ListItem,
6968
+ yt as Logo,
6969
+ Na as MenuItem,
6970
+ _a as Modal,
6971
+ Ua as ModalBody,
6972
+ Za as ModalFooter,
6973
+ Ea as ModalHeader,
6974
+ Wa as Notification,
6977
6975
  Le as Option,
6978
- zt as ProgressBar,
6979
- Tt as Radio,
6976
+ wt as ProgressBar,
6977
+ St as Radio,
6980
6978
  Ss as Search,
6981
6979
  we as Select,
6982
6980
  $n as Sidebar,
@@ -6984,17 +6982,18 @@ export {
6984
6982
  Ie as Spinner,
6985
6983
  Is as Stepper,
6986
6984
  Ps as StepperItem,
6987
- jt as Switch,
6985
+ Vt as Switch,
6988
6986
  _s as Tab,
6989
6987
  Os as TabPanel,
6990
- Lt as Text,
6991
- At as Textarea,
6988
+ Tt as Text,
6989
+ It as Textarea,
6992
6990
  Sn as Timeline,
6993
6991
  In as TimelineItem,
6994
6992
  cs as Toast,
6995
- Pt as Tooltip,
6993
+ jt as Tooltip,
6996
6994
  be as Typography,
6997
6995
  v as cn,
6998
6996
  Vr as default,
6999
- Ge as toast
6997
+ Se as toast,
6998
+ as as useToaster
7000
6999
  };