@myghf/ui 0.5.0 → 0.5.2

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.js CHANGED
@@ -1,25 +1,25 @@
1
1
  import { clsx as e } from "clsx";
2
2
  import { twMerge as t } from "tailwind-merge";
3
3
  import { CalendarDate as n, CalendarDateTime as r, getLocalTimeZone as i } from "@internationalized/date";
4
- import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, inject as m, mergeProps as h, normalizeClass as g, normalizeStyle as _, onBeforeUnmount as v, onBeforeUpdate as y, onMounted as b, openBlock as x, provide as S, ref as C, renderList as w, renderSlot as T, resolveDynamicComponent as E, toDisplayString as D, unref as O, useAttrs as k, useId as ee, useSlots as te, vModelSelect as A, vModelText as j, vShow as ne, watch as M, withCtx as N, withDirectives as P, withModifiers as F } from "vue";
4
+ import { Fragment as a, computed as o, createBlock as s, createCommentVNode as c, createElementBlock as l, createElementVNode as u, createTextVNode as d, createVNode as f, defineComponent as p, inject as m, mergeProps as h, normalizeClass as g, normalizeStyle as _, onBeforeUnmount as v, onBeforeUpdate as y, onMounted as b, openBlock as x, provide as S, ref as C, renderList as w, renderSlot as T, resolveDynamicComponent as E, toDisplayString as D, unref as O, useAttrs as k, useId as ee, useSlots as A, vModelSelect as te, vModelText as j, vShow as ne, watch as M, withCtx as N, withDirectives as P, withModifiers as F } from "vue";
5
5
  import * as I from "lucide-vue-next";
6
- import { Calendar as re, Check as L, ChevronDown as R, ChevronLeft as ie, ChevronRight as z, ChevronUp as ae, ChevronsLeft as oe, ChevronsRight as B, ChevronsUpDown as se, Clock as ce, Eye as le, EyeOff as ue, Moon as de, Search as fe, Sun as pe, X as V } from "lucide-vue-next";
7
- import { tv as me } from "tailwind-variants";
8
- import { CheckboxIndicator as he, CheckboxRoot as ge, DialogClose as _e, DialogContent as ve, DialogDescription as ye, DialogOverlay as be, DialogPortal as xe, DialogRoot as Se, DialogTitle as Ce, DialogTrigger as we, DropdownMenuContent as Te, DropdownMenuGroup as Ee, DropdownMenuItem as De, DropdownMenuLabel as Oe, DropdownMenuPortal as ke, DropdownMenuRoot as Ae, DropdownMenuSeparator as je, DropdownMenuTrigger as Me, NumberFieldDecrement as Ne, NumberFieldIncrement as Pe, NumberFieldInput as Fe, NumberFieldRoot as Ie, PopoverContent as Le, PopoverRoot as Re, PopoverTrigger as ze, RadioGroupIndicator as Be, RadioGroupItem as Ve, RadioGroupRoot as He, SelectContent as Ue, SelectItem as We, SelectItemIndicator as Ge, SelectItemText as Ke, SelectRoot as qe, SelectTrigger as Je, SelectValue as Ye, TabsContent as Xe, TabsList as Ze, TabsRoot as Qe, TabsTrigger as $e, ToastAction as et, ToastClose as tt, ToastDescription as nt, ToastProvider as rt, ToastRoot as it, ToastTitle as at, ToastViewport as ot, TreeItem as st, TreeRoot as ct, VisuallyHidden as lt } from "reka-ui";
9
- import { FlexRender as ut, createExpandedRowModel as dt, createPaginatedRowModel as ft, createSortedRowModel as pt, rowExpandingFeature as mt, rowPaginationFeature as ht, rowSortingFeature as gt, sortFns as _t, tableFeatures as vt, useTable as yt } from "@tanstack/vue-table";
6
+ import { Calendar as re, Check as L, ChevronDown as R, ChevronLeft as ie, ChevronRight as ae, ChevronUp as oe, ChevronsLeft as se, ChevronsRight as z, ChevronsUpDown as ce, Clock as le, Eye as ue, EyeOff as de, Moon as fe, Search as pe, Sun as me, X as B } from "lucide-vue-next";
7
+ import { tv as he } from "tailwind-variants";
8
+ import { CheckboxIndicator as ge, CheckboxRoot as _e, DialogClose as ve, DialogContent as ye, DialogDescription as be, DialogOverlay as xe, DialogPortal as Se, DialogRoot as Ce, DialogTitle as V, DialogTrigger as we, DropdownMenuContent as Te, DropdownMenuGroup as Ee, DropdownMenuItem as De, DropdownMenuLabel as Oe, DropdownMenuPortal as ke, DropdownMenuRoot as Ae, DropdownMenuSeparator as je, DropdownMenuTrigger as Me, NumberFieldDecrement as Ne, NumberFieldIncrement as Pe, NumberFieldInput as Fe, NumberFieldRoot as Ie, PopoverContent as Le, PopoverPortal as Re, PopoverRoot as ze, PopoverTrigger as Be, RadioGroupIndicator as Ve, RadioGroupItem as He, RadioGroupRoot as Ue, SelectContent as We, SelectItem as Ge, SelectItemIndicator as Ke, SelectItemText as qe, SelectPortal as Je, SelectRoot as Ye, SelectTrigger as Xe, SelectValue as Ze, TabsContent as Qe, TabsList as $e, TabsRoot as et, TabsTrigger as tt, ToastAction as nt, ToastClose as rt, ToastDescription as it, ToastProvider as at, ToastRoot as ot, ToastTitle as st, ToastViewport as ct, TreeItem as lt, TreeRoot as ut, VisuallyHidden as dt } from "reka-ui";
9
+ import { FlexRender as ft, createExpandedRowModel as pt, createPaginatedRowModel as mt, createSortedRowModel as ht, rowExpandingFeature as gt, rowPaginationFeature as _t, rowSortingFeature as vt, sortFns as yt, tableFeatures as bt, useTable as xt } from "@tanstack/vue-table";
10
10
  //#region src/lib/cn.ts
11
11
  function H(...n) {
12
12
  return t(e(n));
13
13
  }
14
14
  //#endregion
15
15
  //#region src/lib/date.ts
16
- function bt(e) {
16
+ function St(e) {
17
17
  return new n(e.getFullYear(), e.getMonth() + 1, e.getDate());
18
18
  }
19
- function xt(e) {
19
+ function Ct(e) {
20
20
  return e instanceof r ? e.toDate(i()) : new Date(e.year, e.month - 1, e.day);
21
21
  }
22
- function St(e) {
22
+ function wt(e) {
23
23
  let [t, n] = e.split(":").map(Number);
24
24
  return t * 60 + (n || 0);
25
25
  }
@@ -27,21 +27,21 @@ function U(e) {
27
27
  let t = Math.floor(e / 60), n = e % 60;
28
28
  return `${String(t).padStart(2, "0")}:${String(n).padStart(2, "0")}`;
29
29
  }
30
- function Ct(e, t) {
30
+ function Tt(e, t) {
31
31
  let n = new Date(e);
32
- return n.setHours(Math.floor(St(t) / 60), St(t) % 60, 0, 0), n;
32
+ return n.setHours(Math.floor(wt(t) / 60), wt(t) % 60, 0, 0), n;
33
33
  }
34
34
  function W(e, t) {
35
35
  return !e || !t || e.getTime() <= t.getTime() ? [e, t] : [t, e];
36
36
  }
37
- function wt(e) {
37
+ function Et(e) {
38
38
  let t = e.getMonth() + 1, n = e.getDate();
39
39
  return `${e.getFullYear()}-${String(t).padStart(2, "0")}-${String(n).padStart(2, "0")}`;
40
40
  }
41
- function Tt(e) {
41
+ function Dt(e) {
42
42
  return e === "12" ? Array.from({ length: 12 }, (e, t) => t + 1) : Array.from({ length: 24 }, (e, t) => t);
43
43
  }
44
- function Et(e) {
44
+ function Ot(e) {
45
45
  let t = Number.isFinite(e) && e > 0 ? e : 1, n = [];
46
46
  for (let e = 0; e < 60; e += t) n.push(e);
47
47
  return n;
@@ -53,24 +53,24 @@ function G(e) {
53
53
  meridiem: n
54
54
  };
55
55
  }
56
- function Dt(e, t) {
56
+ function kt(e, t) {
57
57
  let n = Math.trunc(e) % 12;
58
58
  return t === "pm" ? n + 12 : n;
59
59
  }
60
60
  //#endregion
61
61
  //#region src/lib/locale.ts
62
- function Ot(e) {
62
+ function At(e) {
63
63
  try {
64
64
  let t = new Intl.Locale(e), n = t.weekInfo ?? t.getWeekInfo?.();
65
65
  if (n && typeof n.firstDay == "number") return n.firstDay % 7;
66
66
  } catch {}
67
67
  return 1;
68
68
  }
69
- function kt(e, t) {
69
+ function jt(e, t) {
70
70
  let n = (Math.trunc(t) % 7 + 7) % 7, r = new Intl.DateTimeFormat(e, { weekday: "short" });
71
71
  return Array.from({ length: 7 }, (e, t) => r.format(new Date(2026, 0, 4 + (n + t) % 7)));
72
72
  }
73
- function At(e, t) {
73
+ function Mt(e, t) {
74
74
  return new Intl.DateTimeFormat(t, {
75
75
  month: "long",
76
76
  year: "numeric"
@@ -79,7 +79,7 @@ function At(e, t) {
79
79
  function K(e, t) {
80
80
  return new Intl.DateTimeFormat(t, { dateStyle: "medium" }).format(e);
81
81
  }
82
- function jt(e, t, n) {
82
+ function Nt(e, t, n) {
83
83
  let r = n === "24" ? {
84
84
  hour: "2-digit",
85
85
  minute: "2-digit",
@@ -93,10 +93,10 @@ function jt(e, t, n) {
93
93
  }
94
94
  //#endregion
95
95
  //#region src/lib/number.ts
96
- function Mt(e) {
96
+ function Pt(e) {
97
97
  return e == null || !Number.isFinite(e) ? null : e;
98
98
  }
99
- function Nt(e) {
99
+ function Ft(e) {
100
100
  return {
101
101
  ...e.currency ? {
102
102
  style: "currency",
@@ -108,13 +108,13 @@ function Nt(e) {
108
108
  }
109
109
  //#endregion
110
110
  //#region src/lib/icons.ts
111
- function Pt(e) {
111
+ function It(e) {
112
112
  return e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join("");
113
113
  }
114
- var Ft = "circle";
115
- function It(e) {
114
+ var Lt = "circle";
115
+ function Rt(e) {
116
116
  let t = e.trim();
117
- return t ? t.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase() : Ft;
117
+ return t ? t.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase() : Lt;
118
118
  }
119
119
  //#endregion
120
120
  //#region src/lib/tones.ts
@@ -149,14 +149,14 @@ var q = {
149
149
  icon: "text-muted",
150
150
  role: "status"
151
151
  }
152
- }, Lt = "myghf-theme", Rt = "both", zt = "system";
152
+ }, zt = "myghf-theme", Bt = "both", Vt = "system";
153
153
  function J() {
154
154
  return typeof window < "u" && typeof document < "u";
155
155
  }
156
- function Bt() {
156
+ function Ht() {
157
157
  return !J() || typeof window.matchMedia != "function" ? "light" : window.matchMedia("(prefers-color-scheme: dark)").matches ? "dark" : "light";
158
158
  }
159
- function Vt(e) {
159
+ function Ut(e) {
160
160
  try {
161
161
  let t = window.localStorage.getItem(e);
162
162
  return t === "light" || t === "dark" || t === "system" ? t : null;
@@ -164,15 +164,15 @@ function Vt(e) {
164
164
  return null;
165
165
  }
166
166
  }
167
- function Ht(e) {
167
+ function Wt(e) {
168
168
  return {
169
- storageKey: e.storageKey ?? Lt,
170
- attribute: e.attribute ?? Rt,
171
- defaultMode: e.defaultMode ?? zt
169
+ storageKey: e.storageKey ?? zt,
170
+ attribute: e.attribute ?? Bt,
171
+ defaultMode: e.defaultMode ?? Vt
172
172
  };
173
173
  }
174
- function Ut(e = {}) {
175
- let { storageKey: t, attribute: n, defaultMode: r } = Ht(e), i = J() ? Vt(t) ?? r : r, a = C(i), s = o(() => a.value === "system" ? Bt() : a.value), c = o(() => s.value === "dark");
174
+ function Gt(e = {}) {
175
+ let { storageKey: t, attribute: n, defaultMode: r } = Wt(e), i = J() ? Ut(t) ?? r : r, a = C(i), s = o(() => a.value === "system" ? Ht() : a.value), c = o(() => s.value === "dark");
176
176
  function l() {
177
177
  if (!J()) return;
178
178
  let e = c.value, t = document.documentElement;
@@ -212,20 +212,20 @@ function Ut(e = {}) {
212
212
  reset: h
213
213
  };
214
214
  }
215
- var Wt = null;
216
- function Gt(e) {
217
- return Wt || (Wt = Ut(e), Wt);
215
+ var Kt = null;
216
+ function qt(e) {
217
+ return Kt || (Kt = Gt(e), Kt);
218
218
  }
219
219
  //#endregion
220
220
  //#region src/components/theme-toggle/ThemeToggle.vue?vue&type=script&setup=true&lang.ts
221
- var Kt = ["aria-label", "aria-pressed"], qt = /* @__PURE__ */ p({
221
+ var Jt = ["aria-label", "aria-pressed"], Yt = /* @__PURE__ */ p({
222
222
  __name: "ThemeToggle",
223
223
  props: {
224
224
  size: { default: "default" },
225
225
  label: { default: "Toggle theme" }
226
226
  },
227
227
  setup(e) {
228
- let t = e, { isDark: n, toggle: r } = Gt(), i = {
228
+ let t = e, { isDark: n, toggle: r } = qt(), i = {
229
229
  sm: "h-8 px-3 text-xs",
230
230
  default: "h-9 px-4",
231
231
  lg: "h-10 px-6"
@@ -242,7 +242,7 @@ var Kt = ["aria-label", "aria-pressed"], qt = /* @__PURE__ */ p({
242
242
  "aria-label": e.label,
243
243
  "aria-pressed": O(n),
244
244
  onClick: i[0] ||= (e) => O(r)()
245
- }, [O(n) ? (x(), s(O(pe), { key: 0 })) : (x(), s(O(de), { key: 1 }))], 10, Kt));
245
+ }, [O(n) ? (x(), s(O(me), { key: 0 })) : (x(), s(O(fe), { key: 1 }))], 10, Jt));
246
246
  }
247
247
  }), Y = /* @__PURE__ */ p({
248
248
  __name: "Icon",
@@ -251,7 +251,7 @@ var Kt = ["aria-label", "aria-pressed"], qt = /* @__PURE__ */ p({
251
251
  size: { default: 16 }
252
252
  },
253
253
  setup(e) {
254
- let t = e, n = o(() => I[Pt(It(t.name))] ?? I.Circle);
254
+ let t = e, n = o(() => I[It(Rt(t.name))] ?? I.Circle);
255
255
  return (t, r) => (x(), s(E(n.value), {
256
256
  size: e.size,
257
257
  "aria-hidden": "true",
@@ -259,7 +259,7 @@ var Kt = ["aria-label", "aria-pressed"], qt = /* @__PURE__ */ p({
259
259
  name: e.name
260
260
  }, null, 8, ["size", "name"]));
261
261
  }
262
- }), Jt = [
262
+ }), Xt = [
263
263
  "type",
264
264
  "disabled",
265
265
  "data-loading",
@@ -284,7 +284,7 @@ var Kt = ["aria-label", "aria-pressed"], qt = /* @__PURE__ */ p({
284
284
  iconPos: { default: "start" }
285
285
  },
286
286
  setup(e) {
287
- let t = me({
287
+ let t = he({
288
288
  base: "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 dark:focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 [&_svg]:size-4 data-[loading=true]:cursor-not-allowed",
289
289
  variants: {
290
290
  variant: {
@@ -337,15 +337,15 @@ var Kt = ["aria-label", "aria-pressed"], qt = /* @__PURE__ */ p({
337
337
  name: e.icon,
338
338
  "aria-hidden": "true"
339
339
  }, null, 8, ["name"])) : c("", !0)
340
- ], 16, Jt));
340
+ ], 16, Xt));
341
341
  }
342
- }), Yt = Symbol("myghf-form-field");
342
+ }), Zt = Symbol("myghf-form-field");
343
343
  function Z() {
344
- return m(Yt, null);
344
+ return m(Zt, null);
345
345
  }
346
346
  //#endregion
347
347
  //#region src/components/input/Input.vue?vue&type=script&setup=true&lang.ts
348
- var Xt = { class: "relative w-full" }, Zt = [
348
+ var Qt = { class: "relative w-full" }, $t = [
349
349
  "id",
350
350
  "type",
351
351
  "name",
@@ -356,7 +356,7 @@ var Xt = { class: "relative w-full" }, Zt = [
356
356
  "required",
357
357
  "aria-invalid",
358
358
  "aria-describedby"
359
- ], Qt = /* @__PURE__ */ p({
359
+ ], en = /* @__PURE__ */ p({
360
360
  __name: "Input",
361
361
  props: {
362
362
  modelValue: {},
@@ -381,7 +381,7 @@ var Xt = { class: "relative w-full" }, Zt = [
381
381
  emits: ["update:modelValue"],
382
382
  setup(e, { expose: t, emit: n }) {
383
383
  let r = e, i = n, a = k(), d = C(), f = Z(), p = o(() => r.id ?? f?.id.value), m = o(() => r.invalid ?? f?.invalid.value ?? !1), g = o(() => r.required ?? f?.required.value ?? !1), _ = o(() => f?.describedBy.value);
384
- return t({ focus: () => d.value?.focus() }), (t, n) => (x(), l("div", Xt, [
384
+ return t({ focus: () => d.value?.focus() }), (t, n) => (x(), l("div", Qt, [
385
385
  e.leadingIcon ? (x(), s(Y, {
386
386
  key: 0,
387
387
  name: e.leadingIcon,
@@ -407,7 +407,7 @@ var Xt = { class: "relative w-full" }, Zt = [
407
407
  e.trailingIcon ? "pe-9" : "pe-3",
408
408
  m.value ? "border-error-500 focus-visible:ring-error-500" : ""
409
409
  ]
410
- }, O(a), { onInput: n[0] ||= (e) => i("update:modelValue", e.target.value) }), null, 16, Zt),
410
+ }, O(a), { onInput: n[0] ||= (e) => i("update:modelValue", e.target.value) }), null, 16, $t),
411
411
  e.trailingIcon ? (x(), s(Y, {
412
412
  key: 1,
413
413
  name: e.trailingIcon,
@@ -415,16 +415,16 @@ var Xt = { class: "relative w-full" }, Zt = [
415
415
  }, null, 8, ["name"])) : c("", !0)
416
416
  ]));
417
417
  }
418
- }), $t = {
418
+ }), tn = {
419
419
  key: 0,
420
420
  class: "shrink-0 select-none text-muted"
421
- }, en = {
421
+ }, nn = {
422
422
  key: 1,
423
423
  class: "shrink-0 select-none text-muted"
424
- }, tn = {
424
+ }, rn = {
425
425
  key: 2,
426
426
  class: "ms-1 flex shrink-0 flex-col"
427
- }, nn = /* @__PURE__ */ p({
427
+ }, an = /* @__PURE__ */ p({
428
428
  inheritAttrs: !1,
429
429
  __name: "InputNumber",
430
430
  props: {
@@ -450,7 +450,7 @@ var Xt = { class: "relative w-full" }, Zt = [
450
450
  },
451
451
  emits: ["update:modelValue"],
452
452
  setup(e, { emit: t }) {
453
- let n = e, r = t, i = k(), a = o(() => Number.isFinite(n.step) && n.step > 0 ? n.step : 1), s = o(() => Nt({
453
+ let n = e, r = t, i = k(), a = o(() => Number.isFinite(n.step) && n.step > 0 ? n.step : 1), s = o(() => Ft({
454
454
  currency: n.currency,
455
455
  formatOptions: n.formatOptions,
456
456
  integer: n.integer
@@ -478,10 +478,10 @@ var Xt = { class: "relative w-full" }, Zt = [
478
478
  id: e.id,
479
479
  name: e.name,
480
480
  class: "flex min-w-0 flex-1 items-center gap-1",
481
- "onUpdate:modelValue": n[0] ||= (e) => r("update:modelValue", O(Mt)(e))
481
+ "onUpdate:modelValue": n[0] ||= (e) => r("update:modelValue", O(Pt)(e))
482
482
  }, {
483
483
  default: N(() => [
484
- e.prefix ? (x(), l("span", $t, D(e.prefix), 1)) : c("", !0),
484
+ e.prefix ? (x(), l("span", tn, D(e.prefix), 1)) : c("", !0),
485
485
  f(O(Fe), h(O(i), {
486
486
  placeholder: e.placeholder,
487
487
  "aria-invalid": e.invalid || void 0,
@@ -492,8 +492,8 @@ var Xt = { class: "relative w-full" }, Zt = [
492
492
  "aria-invalid",
493
493
  "aria-valuetext"
494
494
  ]),
495
- e.suffix ? (x(), l("span", en, D(e.suffix), 1)) : c("", !0),
496
- e.showButtons ? (x(), l("div", tn, [f(O(Pe), { class: "flex size-4 items-center justify-center rounded text-muted transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary-500 disabled:cursor-not-allowed disabled:opacity-40" }, {
495
+ e.suffix ? (x(), l("span", nn, D(e.suffix), 1)) : c("", !0),
496
+ e.showButtons ? (x(), l("div", rn, [f(O(Pe), { class: "flex size-4 items-center justify-center rounded text-muted transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary-500 disabled:cursor-not-allowed disabled:opacity-40" }, {
497
497
  default: N(() => [f(Y, {
498
498
  name: "chevron-up",
499
499
  size: 12
@@ -522,7 +522,7 @@ var Xt = { class: "relative w-full" }, Zt = [
522
522
  "name"
523
523
  ])], 2));
524
524
  }
525
- }), rn = [
525
+ }), on = [
526
526
  "id",
527
527
  "value",
528
528
  "placeholder",
@@ -531,7 +531,7 @@ var Xt = { class: "relative w-full" }, Zt = [
531
531
  "required",
532
532
  "aria-invalid",
533
533
  "aria-describedby"
534
- ], an = /* @__PURE__ */ p({
534
+ ], sn = /* @__PURE__ */ p({
535
535
  __name: "Textarea",
536
536
  props: {
537
537
  modelValue: {},
@@ -584,19 +584,19 @@ var Xt = { class: "relative w-full" }, Zt = [
584
584
  e.autoResize ? "resize-none" : "",
585
585
  c.value ? "overflow-y-auto" : ""
586
586
  ]
587
- }, O(i), { onInput: g }), null, 16, rn));
587
+ }, O(i), { onInput: g }), null, 16, on));
588
588
  }
589
- }), on = { class: "w-full" }, sn = { class: "relative w-full" }, cn = [
589
+ }), cn = { class: "w-full" }, ln = { class: "relative w-full" }, un = [
590
590
  "id",
591
591
  "type",
592
592
  "value",
593
593
  "placeholder",
594
594
  "disabled"
595
- ], ln = ["disabled"], un = {
595
+ ], dn = ["disabled"], fn = {
596
596
  key: 0,
597
597
  class: "mt-1.5 flex items-center gap-1.5",
598
598
  "aria-hidden": "true"
599
- }, dn = /* @__PURE__ */ p({
599
+ }, pn = /* @__PURE__ */ p({
600
600
  __name: "Password",
601
601
  props: {
602
602
  modelValue: {},
@@ -617,7 +617,7 @@ var Xt = { class: "relative w-full" }, Zt = [
617
617
  let t = 0;
618
618
  return e.length >= 8 && t++, e.length >= 12 && t++, /[A-Z]/.test(e) && /[a-z]/.test(e) && t++, /\d/.test(e) && t++, /[^A-Za-z0-9]/.test(e) && t++, Math.max(1, Math.min(4, Math.ceil(t / 5 * 4)));
619
619
  });
620
- return (t, n) => (x(), l("div", on, [u("div", sn, [u("input", h({
620
+ return (t, n) => (x(), l("div", cn, [u("div", ln, [u("input", h({
621
621
  id: e.id,
622
622
  type: f.value,
623
623
  value: e.modelValue,
@@ -628,28 +628,28 @@ var Xt = { class: "relative w-full" }, Zt = [
628
628
  e.invalid ? "border-error-500 focus-visible:ring-error-500" : "",
629
629
  "pe-10"
630
630
  ]
631
- }, O(i), { onInput: n[0] ||= (e) => r("update:modelValue", e.target.value) }), null, 16, cn), u("button", {
631
+ }, O(i), { onInput: n[0] ||= (e) => r("update:modelValue", e.target.value) }), null, 16, un), u("button", {
632
632
  type: "button",
633
633
  disabled: e.disabled,
634
634
  "aria-label": "Toggle password visibility",
635
635
  class: "absolute end-2 top-1/2 -translate-y-1/2 rounded p-1 text-muted transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
636
636
  onClick: n[1] ||= (e) => d.value = !d.value
637
- }, [d.value ? (x(), s(O(ue), {
637
+ }, [d.value ? (x(), s(O(de), {
638
638
  key: 0,
639
639
  class: "size-4"
640
- })) : (x(), s(O(le), {
640
+ })) : (x(), s(O(ue), {
641
641
  key: 1,
642
642
  class: "size-4"
643
- }))], 8, ln)]), e.feedback && e.modelValue ? (x(), l("div", un, [(x(), l(a, null, w(4, (e) => u("span", {
643
+ }))], 8, dn)]), e.feedback && e.modelValue ? (x(), l("div", fn, [(x(), l(a, null, w(4, (e) => u("span", {
644
644
  key: e,
645
645
  class: g(["h-1 flex-1 rounded-full transition-colors", e <= p.value ? "bg-success-500" : "bg-surface-muted"])
646
646
  }, null, 2)), 64))])) : c("", !0)]));
647
647
  }
648
- }), fn = ["for"], pn = {
648
+ }), mn = ["for"], hn = {
649
649
  key: 0,
650
650
  class: "text-error-600",
651
651
  "aria-hidden": "true"
652
- }, mn = /* @__PURE__ */ p({
652
+ }, gn = /* @__PURE__ */ p({
653
653
  __name: "Label",
654
654
  props: {
655
655
  for: {},
@@ -660,9 +660,9 @@ var Xt = { class: "relative w-full" }, Zt = [
660
660
  return (t, n) => (x(), l("label", {
661
661
  for: r.value,
662
662
  class: "text-sm font-medium text-foreground text-start"
663
- }, [T(t.$slots, "default"), e.required ? (x(), l("span", pn, "*")) : c("", !0)], 8, fn));
663
+ }, [T(t.$slots, "default"), e.required ? (x(), l("span", hn, "*")) : c("", !0)], 8, mn));
664
664
  }
665
- }), hn = ["id"], gn = /* @__PURE__ */ p({
665
+ }), _n = ["id"], vn = /* @__PURE__ */ p({
666
666
  __name: "FormDescription",
667
667
  props: { id: {} },
668
668
  setup(e) {
@@ -670,9 +670,9 @@ var Xt = { class: "relative w-full" }, Zt = [
670
670
  key: 0,
671
671
  id: e.id,
672
672
  class: "text-sm text-muted"
673
- }, [T(t.$slots, "default")], 8, hn)) : c("", !0);
673
+ }, [T(t.$slots, "default")], 8, _n)) : c("", !0);
674
674
  }
675
- }), _n = ["id"], vn = /* @__PURE__ */ p({
675
+ }), yn = ["id"], bn = /* @__PURE__ */ p({
676
676
  __name: "FormMessage",
677
677
  props: { id: {} },
678
678
  setup(e) {
@@ -681,9 +681,9 @@ var Xt = { class: "relative w-full" }, Zt = [
681
681
  id: e.id,
682
682
  role: "alert",
683
683
  class: "text-sm text-error-600"
684
- }, [T(t.$slots, "default")], 8, _n)) : c("", !0);
684
+ }, [T(t.$slots, "default")], 8, yn)) : c("", !0);
685
685
  }
686
- }), yn = { class: "grid gap-2" }, bn = /* @__PURE__ */ p({
686
+ }), xn = { class: "grid gap-2" }, Sn = /* @__PURE__ */ p({
687
687
  __name: "FormField",
688
688
  props: {
689
689
  label: {},
@@ -697,7 +697,7 @@ var Xt = { class: "relative w-full" }, Zt = [
697
697
  id: {}
698
698
  },
699
699
  setup(e) {
700
- let t = e, n = te(), r = C(0);
700
+ let t = e, n = A(), r = C(0);
701
701
  y(() => {
702
702
  r.value++;
703
703
  });
@@ -706,13 +706,13 @@ var Xt = { class: "relative w-full" }, Zt = [
706
706
  let e = [];
707
707
  return (t.description || n.description) && e.push(`${a.value}-description`), (t.error || n.error) && e.push(`${a.value}-error`), e.length > 0 ? e.join(" ") : void 0;
708
708
  });
709
- return S(Yt, {
709
+ return S(Zt, {
710
710
  id: a,
711
711
  describedBy: p,
712
712
  invalid: u,
713
713
  required: f
714
- }), (t, n) => (x(), l("div", yn, [
715
- e.label || t.$slots.label ? (x(), s(mn, {
714
+ }), (t, n) => (x(), l("div", xn, [
715
+ e.label || t.$slots.label ? (x(), s(gn, {
716
716
  key: 0,
717
717
  for: a.value,
718
718
  required: f.value
@@ -721,14 +721,14 @@ var Xt = { class: "relative w-full" }, Zt = [
721
721
  _: 3
722
722
  }, 8, ["for", "required"])) : c("", !0),
723
723
  T(t.$slots, "default"),
724
- e.description || t.$slots.description ? (x(), s(gn, {
724
+ e.description || t.$slots.description ? (x(), s(vn, {
725
725
  key: 1,
726
726
  id: `${a.value}-description`
727
727
  }, {
728
728
  default: N(() => [T(t.$slots, "description", {}, () => [d(D(e.description), 1)])]),
729
729
  _: 3
730
730
  }, 8, ["id"])) : c("", !0),
731
- e.error || t.$slots.error ? (x(), s(vn, {
731
+ e.error || t.$slots.error ? (x(), s(bn, {
732
732
  key: 2,
733
733
  id: `${a.value}-error`
734
734
  }, {
@@ -737,7 +737,7 @@ var Xt = { class: "relative w-full" }, Zt = [
737
737
  }, 8, ["id"])) : c("", !0)
738
738
  ]));
739
739
  }
740
- }), xn = /* @__PURE__ */ p({
740
+ }), Cn = /* @__PURE__ */ p({
741
741
  __name: "Checkbox",
742
742
  props: {
743
743
  modelValue: {
@@ -750,14 +750,14 @@ var Xt = { class: "relative w-full" }, Zt = [
750
750
  emits: ["update:modelValue"],
751
751
  setup(e, { emit: t }) {
752
752
  let n = t;
753
- return (t, r) => (x(), s(O(ge), {
753
+ return (t, r) => (x(), s(O(_e), {
754
754
  id: e.id,
755
755
  "model-value": e.modelValue,
756
756
  disabled: e.disabled,
757
757
  class: "peer size-4 shrink-0 rounded border border-border bg-surface shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 focus-visible:ring-offset-2 dark:focus-visible:ring-offset-background data-[state=checked]:border-primary-500 data-[state=checked]:bg-primary-500 data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50",
758
758
  "onUpdate:modelValue": r[0] ||= (e) => n("update:modelValue", e)
759
759
  }, {
760
- default: N(() => [f(O(he), { class: "flex items-center justify-center text-white" }, {
760
+ default: N(() => [f(O(ge), { class: "flex items-center justify-center text-white" }, {
761
761
  default: N(() => [f(O(L), { class: "size-3.5" })]),
762
762
  _: 1
763
763
  })]),
@@ -768,7 +768,7 @@ var Xt = { class: "relative w-full" }, Zt = [
768
768
  "disabled"
769
769
  ]));
770
770
  }
771
- }), Sn = ["aria-label"], Cn = /* @__PURE__ */ p({
771
+ }), wn = ["aria-label"], Tn = /* @__PURE__ */ p({
772
772
  __name: "Tag",
773
773
  props: {
774
774
  tone: { default: "secondary" },
@@ -792,13 +792,13 @@ var Xt = { class: "relative w-full" }, Zt = [
792
792
  "aria-label": e.removeLabel,
793
793
  class: "-me-0.5 ms-0.5 rounded-full p-0.5 transition-colors hover:bg-black/10 dark:hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
794
794
  onClick: r[0] ||= F((e) => n("remove"), ["stop"])
795
- }, [f(O(V), { class: "size-3" })], 8, Sn)) : c("", !0)
795
+ }, [f(O(B), { class: "size-3" })], 8, wn)) : c("", !0)
796
796
  ], 2));
797
797
  }
798
- }), wn = ["role"], Tn = { class: "min-w-0 flex-1" }, En = {
798
+ }), En = ["role"], Dn = { class: "min-w-0 flex-1" }, On = {
799
799
  key: 0,
800
800
  class: "font-medium"
801
- }, Dn = ["aria-label"], On = /* @__PURE__ */ p({
801
+ }, kn = ["aria-label"], An = /* @__PURE__ */ p({
802
802
  __name: "Alert",
803
803
  props: {
804
804
  tone: { default: "info" },
@@ -850,10 +850,10 @@ var Xt = { class: "relative w-full" }, Zt = [
850
850
  function ee() {
851
851
  o.value = !1, E();
852
852
  }
853
- function te() {
853
+ function A() {
854
854
  p.value = !0, w();
855
855
  }
856
- function A() {
856
+ function te() {
857
857
  p.value = !1, E();
858
858
  }
859
859
  function j() {
@@ -867,16 +867,16 @@ var Xt = { class: "relative w-full" }, Zt = [
867
867
  class: g(["flex w-full items-start gap-3 rounded-lg p-4 text-sm", O(q)[e.tone][e.variant]]),
868
868
  onMouseenter: k,
869
869
  onMouseleave: ee,
870
- onFocusin: te,
871
- onFocusout: A
870
+ onFocusin: A,
871
+ onFocusout: te
872
872
  }, [
873
873
  T(t.$slots, "icon", {}, () => [e.showIcon ? (x(), s(Y, {
874
874
  key: 0,
875
875
  name: e.icon || i[e.tone],
876
876
  class: g(["mt-0.5 size-4 shrink-0", O(q)[e.tone].icon])
877
877
  }, null, 8, ["name", "class"])) : c("", !0)]),
878
- u("div", Tn, [
879
- e.title || t.$slots.title ? (x(), l("p", En, [T(t.$slots, "title", {}, () => [d(D(e.title), 1)])])) : c("", !0),
878
+ u("div", Dn, [
879
+ e.title || t.$slots.title ? (x(), l("p", On, [T(t.$slots, "title", {}, () => [d(D(e.title), 1)])])) : c("", !0),
880
880
  e.description || t.$slots.description ? (x(), l("div", {
881
881
  key: 1,
882
882
  class: g(["leading-relaxed", e.title || t.$slots.title ? "mt-1" : ""])
@@ -890,10 +890,10 @@ var Xt = { class: "relative w-full" }, Zt = [
890
890
  "aria-label": e.closeLabel,
891
891
  class: "-me-1 -mt-1 ms-auto shrink-0 rounded-md p-1 transition-colors hover:bg-black/10 dark:hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
892
892
  onClick: j
893
- }, [T(t.$slots, "close", {}, () => [f(O(V), { class: "size-4" })])], 8, Dn)) : c("", !0)
894
- ], 42, wn));
893
+ }, [T(t.$slots, "close", {}, () => [f(O(B), { class: "size-4" })])], 8, kn)) : c("", !0)
894
+ ], 42, En));
895
895
  }
896
- }), kn = { class: "sr-only" }, An = /* @__PURE__ */ p({
896
+ }), jn = { class: "sr-only" }, Mn = /* @__PURE__ */ p({
897
897
  __name: "Spinner",
898
898
  props: {
899
899
  size: { default: "default" },
@@ -914,9 +914,9 @@ var Xt = { class: "relative w-full" }, Zt = [
914
914
  name: "loader-circle",
915
915
  class: g(O(H)("animate-spin", n[e.size])),
916
916
  "aria-hidden": "true"
917
- }, null, 8, ["class"]), u("span", kn, D(e.label), 1)], 2));
917
+ }, null, 8, ["class"]), u("span", jn, D(e.label), 1)], 2));
918
918
  }
919
- }), jn = /* @__PURE__ */ p({
919
+ }), Nn = /* @__PURE__ */ p({
920
920
  inheritAttrs: !1,
921
921
  __name: "Skeleton",
922
922
  props: {
@@ -925,7 +925,7 @@ var Xt = { class: "relative w-full" }, Zt = [
925
925
  height: {}
926
926
  },
927
927
  setup(e) {
928
- let t = me({
928
+ let t = he({
929
929
  base: "animate-pulse bg-surface-muted",
930
930
  variants: { rounded: {
931
931
  none: "",
@@ -944,7 +944,7 @@ var Xt = { class: "relative w-full" }, Zt = [
944
944
  }
945
945
  }, n.$attrs), [T(n.$slots, "default")], 16));
946
946
  }
947
- }), Mn = ["src", "alt"], Nn = ["role", "aria-label"], Pn = /* @__PURE__ */ p({
947
+ }), Pn = ["src", "alt"], Fn = ["role", "aria-label"], In = /* @__PURE__ */ p({
948
948
  inheritAttrs: !1,
949
949
  __name: "Avatar",
950
950
  props: {
@@ -975,19 +975,19 @@ var Xt = { class: "relative w-full" }, Zt = [
975
975
  alt: e.alt ?? e.name ?? "",
976
976
  class: O(H)(a.value, "shrink-0 rounded-full object-cover"),
977
977
  onError: n[0] ||= (e) => c.value = !0
978
- }), null, 16, Mn)) : (x(), l("span", h({ key: 1 }, t.$attrs, {
978
+ }), null, 16, Pn)) : (x(), l("span", h({ key: 1 }, t.$attrs, {
979
979
  role: s.value ? "img" : void 0,
980
980
  "aria-label": s.value,
981
981
  class: O(H)(a.value, O(q).info.soft, "inline-flex shrink-0 items-center justify-center rounded-full font-medium")
982
- }), D(i.value), 17, Nn));
982
+ }), D(i.value), 17, Fn));
983
983
  }
984
- }), Fn = /* @__PURE__ */ p({
984
+ }), Ln = /* @__PURE__ */ p({
985
985
  __name: "Tabs",
986
986
  props: { modelValue: {} },
987
987
  emits: ["update:modelValue"],
988
988
  setup(e, { emit: t }) {
989
989
  let n = t;
990
- return (t, r) => (x(), s(O(Qe), {
990
+ return (t, r) => (x(), s(O(et), {
991
991
  "model-value": e.modelValue,
992
992
  "onUpdate:modelValue": r[0] ||= (e) => n("update:modelValue", e)
993
993
  }, {
@@ -995,22 +995,22 @@ var Xt = { class: "relative w-full" }, Zt = [
995
995
  _: 3
996
996
  }, 8, ["model-value"]));
997
997
  }
998
- }), In = /* @__PURE__ */ p({
998
+ }), Rn = /* @__PURE__ */ p({
999
999
  __name: "TabsList",
1000
1000
  setup(e) {
1001
- return (e, t) => (x(), s(O(Ze), { class: "inline-flex h-9 w-full items-center justify-start gap-1 rounded-lg bg-surface-muted p-1 text-muted" }, {
1001
+ return (e, t) => (x(), s(O($e), { class: "inline-flex h-9 w-full items-center justify-start gap-1 rounded-lg bg-surface-muted p-1 text-muted" }, {
1002
1002
  default: N(() => [T(e.$slots, "default")]),
1003
1003
  _: 3
1004
1004
  }));
1005
1005
  }
1006
- }), Ln = /* @__PURE__ */ p({
1006
+ }), zn = /* @__PURE__ */ p({
1007
1007
  __name: "TabsTrigger",
1008
1008
  props: {
1009
1009
  value: {},
1010
1010
  disabled: { type: Boolean }
1011
1011
  },
1012
1012
  setup(e) {
1013
- return (t, n) => (x(), s(O($e), {
1013
+ return (t, n) => (x(), s(O(tt), {
1014
1014
  value: e.value,
1015
1015
  disabled: e.disabled,
1016
1016
  class: "inline-flex items-center justify-center whitespace-nowrap rounded-md px-3 py-1 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 data-[state=active]:bg-surface data-[state=active]:text-foreground data-[state=active]:shadow-sm data-[disabled]:opacity-50"
@@ -1019,7 +1019,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1019
1019
  _: 3
1020
1020
  }, 8, ["value", "disabled"]));
1021
1021
  }
1022
- }), Rn = /* @__PURE__ */ p({
1022
+ }), Bn = /* @__PURE__ */ p({
1023
1023
  __name: "TabsContent",
1024
1024
  props: {
1025
1025
  value: {},
@@ -1029,7 +1029,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1029
1029
  }
1030
1030
  },
1031
1031
  setup(e) {
1032
- return (t, n) => (x(), s(O(Xe), {
1032
+ return (t, n) => (x(), s(O(Qe), {
1033
1033
  value: e.value,
1034
1034
  class: g(["focus-visible:outline-none", e.padding ? "pt-4" : ""])
1035
1035
  }, {
@@ -1037,7 +1037,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1037
1037
  _: 3
1038
1038
  }, 8, ["value", "class"]));
1039
1039
  }
1040
- }), zn = { class: "truncate" }, Bn = { class: "ms-auto flex shrink-0 items-center gap-1" }, Vn = /* @__PURE__ */ p({
1040
+ }), Vn = { class: "truncate" }, Hn = { class: "ms-auto flex shrink-0 items-center gap-1" }, Un = /* @__PURE__ */ p({
1041
1041
  __name: "Select",
1042
1042
  props: {
1043
1043
  modelValue: {},
@@ -1072,7 +1072,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1072
1072
  function E() {
1073
1073
  r("update:modelValue", n.multiple ? [] : null);
1074
1074
  }
1075
- return (t, n) => (x(), s(O(qe), {
1075
+ return (t, n) => (x(), s(O(Ye), {
1076
1076
  open: v.value,
1077
1077
  "onUpdate:open": n[0] ||= (e) => v.value = e,
1078
1078
  "model-value": e.modelValue,
@@ -1081,50 +1081,53 @@ var Xt = { class: "relative w-full" }, Zt = [
1081
1081
  required: g.value || void 0,
1082
1082
  "onUpdate:modelValue": n[1] ||= (e) => r("update:modelValue", e)
1083
1083
  }, {
1084
- default: N(() => [f(O(Je), h({
1084
+ default: N(() => [f(O(Xe), h({
1085
1085
  class: O(H)("flex w-full items-center justify-between gap-2 rounded-md border border-border bg-surface px-3 text-sm text-foreground shadow-sm transition-colors placeholder:text-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 disabled:cursor-not-allowed disabled:opacity-50", e.size === "sm" ? "h-8 text-xs" : "h-9", m.value ? "border-error-500 focus-visible:ring-error-500" : "", t.$attrs.class || ""),
1086
1086
  id: p.value,
1087
1087
  "aria-invalid": m.value || void 0,
1088
1088
  "aria-describedby": _.value
1089
1089
  }, t.$attrs), {
1090
- default: N(() => [f(O(Ye), { placeholder: e.placeholder }, {
1091
- default: N(() => [u("span", zn, D(S.value || e.placeholder), 1)]),
1090
+ default: N(() => [f(O(Ze), { placeholder: e.placeholder }, {
1091
+ default: N(() => [u("span", Vn, D(S.value || e.placeholder), 1)]),
1092
1092
  _: 1
1093
- }, 8, ["placeholder"]), u("span", Bn, [e.clearable && T.value ? (x(), l("button", {
1093
+ }, 8, ["placeholder"]), u("span", Hn, [e.clearable && T.value ? (x(), l("button", {
1094
1094
  key: 0,
1095
1095
  type: "button",
1096
1096
  "aria-label": "Clear selection",
1097
1097
  class: "rounded p-0.5 text-muted transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1098
1098
  onClick: F(E, ["stop"])
1099
- }, [f(O(V), { class: "size-3.5" })])) : c("", !0), f(O(R), { class: "size-4 opacity-50" })])]),
1099
+ }, [f(O(B), { class: "size-3.5" })])) : c("", !0), f(O(R), { class: "size-4 opacity-50" })])]),
1100
1100
  _: 1
1101
1101
  }, 16, [
1102
1102
  "class",
1103
1103
  "id",
1104
1104
  "aria-invalid",
1105
1105
  "aria-describedby"
1106
- ]), v.value ? (x(), s(O(Ue), {
1107
- key: 0,
1108
- position: "popper",
1109
- "side-offset": 4,
1110
- class: "z-50 min-w-[--reka-select-trigger-width] rounded-md border border-border bg-surface p-1 shadow-popover"
1111
- }, {
1112
- default: N(() => [(x(!0), l(a, null, w(e.options, (e) => (x(), s(O(We), {
1113
- key: String(y(e)),
1114
- value: y(e),
1115
- class: "relative flex cursor-pointer select-none items-center rounded px-2 py-1.5 pe-8 text-sm text-foreground outline-none transition-colors focus:bg-surface-muted data-[highlighted]:bg-surface-muted data-[disabled]:opacity-50"
1106
+ ]), f(O(Je), null, {
1107
+ default: N(() => [v.value ? (x(), s(O(We), {
1108
+ key: 0,
1109
+ position: "popper",
1110
+ "side-offset": 4,
1111
+ class: "z-50 min-w-[--reka-select-trigger-width] rounded-md border border-border bg-surface p-1 shadow-popover"
1116
1112
  }, {
1117
- default: N(() => [f(O(Ke), null, {
1118
- default: N(() => [d(D(b(e)), 1)]),
1113
+ default: N(() => [(x(!0), l(a, null, w(e.options, (e) => (x(), s(O(Ge), {
1114
+ key: String(y(e)),
1115
+ value: y(e),
1116
+ class: "relative flex cursor-pointer select-none items-center rounded px-2 py-1.5 pe-8 text-sm text-foreground outline-none transition-colors focus:bg-surface-muted data-[highlighted]:bg-surface-muted data-[disabled]:opacity-50"
1117
+ }, {
1118
+ default: N(() => [f(O(qe), null, {
1119
+ default: N(() => [d(D(b(e)), 1)]),
1120
+ _: 2
1121
+ }, 1024), f(O(Ke), { class: "absolute end-2 flex items-center justify-center text-primary-600" }, {
1122
+ default: N(() => [f(O(L), { class: "size-4" })]),
1123
+ _: 1
1124
+ })]),
1119
1125
  _: 2
1120
- }, 1024), f(O(Ge), { class: "absolute end-2 flex items-center justify-center text-primary-600" }, {
1121
- default: N(() => [f(O(L), { class: "size-4" })]),
1122
- _: 1
1123
- })]),
1124
- _: 2
1125
- }, 1032, ["value"]))), 128))]),
1126
+ }, 1032, ["value"]))), 128))]),
1127
+ _: 1
1128
+ })) : c("", !0)]),
1126
1129
  _: 1
1127
- })) : c("", !0)]),
1130
+ })]),
1128
1131
  _: 1
1129
1132
  }, 8, [
1130
1133
  "open",
@@ -1134,7 +1137,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1134
1137
  "required"
1135
1138
  ]));
1136
1139
  }
1137
- }), Hn = /* @__PURE__ */ p({
1140
+ }), Wn = /* @__PURE__ */ p({
1138
1141
  __name: "SelectButton",
1139
1142
  props: {
1140
1143
  modelValue: {},
@@ -1180,7 +1183,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1180
1183
  g(), typeof ResizeObserver < "u" && i.value?.$el && (y = new ResizeObserver(g), y.observe(i.value.$el)), window.addEventListener("resize", g);
1181
1184
  }), v(() => {
1182
1185
  cancelAnimationFrame(c), y?.disconnect(), window.removeEventListener("resize", g);
1183
- }), M(() => n.modelValue, g), M(() => n.options, g, { deep: !0 }), (t, n) => (x(), s(O(He), {
1186
+ }), M(() => n.modelValue, g), M(() => n.options, g, { deep: !0 }), (t, n) => (x(), s(O(Ue), {
1184
1187
  ref_key: "rootEl",
1185
1188
  ref: i,
1186
1189
  "model-value": e.modelValue,
@@ -1197,31 +1200,31 @@ var Xt = { class: "relative w-full" }, Zt = [
1197
1200
  width: `${o.value.width}px`,
1198
1201
  height: `${o.value.height}px`
1199
1202
  })
1200
- }, null, 4), [[ne, o.value.ready]]), (x(!0), l(a, null, w(e.options, (t) => (x(), s(O(Ve), {
1203
+ }, null, 4), [[ne, o.value.ready]]), (x(!0), l(a, null, w(e.options, (t) => (x(), s(O(He), {
1201
1204
  key: String(p(t)),
1202
1205
  value: p(t),
1203
1206
  disabled: e.disabled,
1204
1207
  class: "relative inline-flex items-center justify-center rounded px-3 py-1 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 data-[state=checked]:text-white data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50"
1205
1208
  }, {
1206
- default: N(() => [f(O(Be), { class: "hidden" }), d(" " + D(m(t)), 1)]),
1209
+ default: N(() => [f(O(Ve), { class: "hidden" }), d(" " + D(m(t)), 1)]),
1207
1210
  _: 2
1208
1211
  }, 1032, ["value", "disabled"]))), 128))]),
1209
1212
  _: 1
1210
1213
  }, 8, ["model-value", "disabled"]));
1211
1214
  }
1212
- }), Un = ["id", "disabled"], Wn = { class: "flex items-center justify-between" }, Gn = ["aria-label"], Kn = {
1215
+ }), Gn = ["id", "disabled"], Kn = { class: "flex items-center justify-between" }, qn = ["aria-label"], Jn = {
1213
1216
  "data-test": "month-label",
1214
1217
  class: "text-sm font-medium"
1215
- }, qn = ["aria-label"], Jn = {
1218
+ }, Yn = ["aria-label"], Xn = {
1216
1219
  "data-test": "weekdays",
1217
1220
  class: "mt-2 grid grid-cols-7 gap-0.5 text-center text-xs"
1218
- }, Yn = { key: 0 }, Xn = ["onClick"], Zn = {
1221
+ }, Zn = { key: 0 }, Qn = ["onClick"], $n = {
1219
1222
  key: 0,
1220
1223
  class: "mt-3 flex items-center justify-between gap-2 border-t border-border pt-3"
1221
- }, Qn = ["aria-label"], $n = ["aria-label"], er = ["value"], tr = ["aria-label"], nr = ["value"], rr = ["aria-label"], ir = { value: "am" }, ar = { value: "pm" }, or = { class: "flex items-center gap-2" }, sr = ["disabled"], cr = {
1224
+ }, er = ["aria-label"], tr = ["aria-label"], nr = ["value"], rr = ["aria-label"], ir = ["value"], ar = ["aria-label"], or = { value: "am" }, sr = { value: "pm" }, cr = { class: "flex items-center gap-2" }, lr = ["disabled"], ur = {
1222
1225
  key: 1,
1223
1226
  class: "mt-3 flex justify-end border-t border-border pt-3"
1224
- }, lr = /* @__PURE__ */ p({
1227
+ }, dr = /* @__PURE__ */ p({
1225
1228
  __name: "DatePicker",
1226
1229
  props: {
1227
1230
  mode: { default: "date" },
@@ -1320,7 +1323,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1320
1323
  let t = e.toLowerCase().split(/[-_]/)[0];
1321
1324
  return n[t] ?? n.en;
1322
1325
  }
1323
- let i = e, d = t, p = te(), m = C(i.defaultOpen ?? !1), h = C(/* @__PURE__ */ new Date()), _ = C(null), v = C(null), y = C("09:00"), b = o(() => i.locale || "en"), S = o(() => ({
1326
+ let i = e, d = t, p = A(), m = C(i.defaultOpen ?? !1), h = C(/* @__PURE__ */ new Date()), _ = C(null), v = C(null), y = C("09:00"), b = o(() => i.locale || "en"), S = o(() => ({
1324
1327
  ...r(b.value),
1325
1328
  ...i.placeholder === void 0 ? {} : { placeholder: i.placeholder },
1326
1329
  ...i.labels
@@ -1340,7 +1343,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1340
1343
  }
1341
1344
  return S.value[e];
1342
1345
  }
1343
- let k = o(() => i.weekStartsOn ?? Ot(b.value)), ee = o(() => kt(b.value, k.value)), j = o(() => At(h.value, b.value));
1346
+ let k = o(() => i.weekStartsOn ?? At(b.value)), ee = o(() => jt(b.value, k.value)), j = o(() => Mt(h.value, b.value));
1344
1347
  M(() => i.modelValue, (e) => {
1345
1348
  Array.isArray(e) ? (_.value = e[0] ?? null, v.value = e[1] ?? null) : e instanceof Date ? (_.value = e, v.value = null) : (_.value = null, v.value = null);
1346
1349
  }, { immediate: !0 });
@@ -1369,61 +1372,61 @@ var Xt = { class: "relative w-full" }, Zt = [
1369
1372
  }
1370
1373
  return;
1371
1374
  }
1372
- _.value = e, i.mode !== "datetime" && (ae(), m.value = !1);
1375
+ _.value = e, i.mode !== "datetime" && (oe(), m.value = !1);
1373
1376
  }
1374
- function ae() {
1377
+ function oe() {
1375
1378
  if (_.value) {
1376
1379
  if (i.mode === "range") {
1377
1380
  if (!v.value) return;
1378
1381
  d("update:modelValue", [_.value, v.value]);
1379
- } else i.mode === "datetime" ? d("update:modelValue", Ct(_.value, y.value)) : d("update:modelValue", _.value);
1382
+ } else i.mode === "datetime" ? d("update:modelValue", Tt(_.value, y.value)) : d("update:modelValue", _.value);
1380
1383
  }
1381
1384
  }
1382
- function oe() {
1385
+ function se() {
1383
1386
  _.value = null, v.value = null, d("update:modelValue", null), m.value = !1;
1384
1387
  }
1385
- let B = o(() => {
1388
+ let z = o(() => {
1386
1389
  let [e, t] = y.value.split(":").map(Number);
1387
1390
  return {
1388
1391
  hour24: Number.isFinite(e) ? (Math.trunc(e) % 24 + 24) % 24 : 0,
1389
1392
  minute: Number.isFinite(t) ? (Math.trunc(t) % 60 + 60) % 60 : 0
1390
1393
  };
1391
- }), se = o(() => Tt(i.hourFormat)), le = o(() => Et(Math.min(30, Math.max(1, i.minuteStep ?? 1)))), ue = o({
1392
- get: () => i.hourFormat === "12" ? G(B.value.hour24).hour : B.value.hour24,
1394
+ }), ce = o(() => Dt(i.hourFormat)), ue = o(() => Ot(Math.min(30, Math.max(1, i.minuteStep ?? 1)))), de = o({
1395
+ get: () => i.hourFormat === "12" ? G(z.value.hour24).hour : z.value.hour24,
1393
1396
  set: (e) => {
1394
- let { hour24: t, minute: n } = B.value, r = i.hourFormat === "12" ? Dt(e, G(t).meridiem) : e;
1397
+ let { hour24: t, minute: n } = z.value, r = i.hourFormat === "12" ? kt(e, G(t).meridiem) : e;
1395
1398
  y.value = U(r * 60 + n);
1396
1399
  }
1397
- }), de = o({
1398
- get: () => B.value.minute,
1400
+ }), fe = o({
1401
+ get: () => z.value.minute,
1399
1402
  set: (e) => {
1400
- y.value = U(B.value.hour24 * 60 + e);
1403
+ y.value = U(z.value.hour24 * 60 + e);
1401
1404
  }
1402
- }), fe = o({
1403
- get: () => G(B.value.hour24).meridiem,
1405
+ }), pe = o({
1406
+ get: () => G(z.value.hour24).meridiem,
1404
1407
  set: (e) => {
1405
- let { hour: t } = G(B.value.hour24);
1406
- y.value = U(Dt(t, e) * 60 + B.value.minute);
1408
+ let { hour: t } = G(z.value.hour24);
1409
+ y.value = U(kt(t, e) * 60 + z.value.minute);
1407
1410
  }
1408
1411
  });
1409
- function pe(e) {
1412
+ function me(e) {
1410
1413
  return String(e).padStart(2, "0");
1411
1414
  }
1412
- let V = o(() => {
1415
+ let B = o(() => {
1413
1416
  if (i.mode === "range") {
1414
1417
  if (!_.value || !v.value) return "";
1415
1418
  let [e, t] = W(_.value, v.value);
1416
1419
  return `${K(e, b.value)} – ${K(t, b.value)}`;
1417
1420
  }
1418
1421
  if (!_.value) return "";
1419
- let e = i.mode === "datetime" ? Ct(_.value, y.value) : _.value;
1420
- return i.mode === "datetime" ? `${K(e, b.value)} ${jt(e, b.value, i.hourFormat)}` : K(e, b.value);
1422
+ let e = i.mode === "datetime" ? Tt(_.value, y.value) : _.value;
1423
+ return i.mode === "datetime" ? `${K(e, b.value)} ${Nt(e, b.value, i.hourFormat)}` : K(e, b.value);
1421
1424
  });
1422
- return (t, n) => (x(), s(O(Re), {
1425
+ return (t, n) => (x(), s(O(ze), {
1423
1426
  open: m.value,
1424
1427
  "onUpdate:open": n[6] ||= (e) => m.value = e
1425
1428
  }, {
1426
- default: N(() => [f(O(ze), { "as-child": "" }, {
1429
+ default: N(() => [f(O(Be), { "as-child": "" }, {
1427
1430
  default: N(() => [u("button", {
1428
1431
  type: "button",
1429
1432
  id: e.inputId,
@@ -1433,110 +1436,113 @@ var Xt = { class: "relative w-full" }, Zt = [
1433
1436
  e.size === "sm" ? "h-8 text-xs" : "h-9",
1434
1437
  e.invalid ? "border-error-500" : ""
1435
1438
  ])
1436
- }, [u("span", { class: g(["truncate", V.value ? "text-foreground" : "text-muted"]) }, D(V.value || E("placeholder")), 3), f(O(re), { class: "size-4 shrink-0 text-muted" })], 10, Un)]),
1439
+ }, [u("span", { class: g(["truncate", B.value ? "text-foreground" : "text-muted"]) }, D(B.value || E("placeholder")), 3), f(O(re), { class: "size-4 shrink-0 text-muted" })], 10, Gn)]),
1437
1440
  _: 1
1438
- }), f(O(Le), {
1439
- "side-offset": 4,
1440
- class: "z-50 rounded-md border border-border bg-surface p-3 shadow-popover"
1441
- }, {
1442
- default: N(() => [
1443
- u("div", Wn, [
1444
- u("button", {
1445
- type: "button",
1446
- "aria-label": E("previousMonth"),
1447
- class: "rounded p-1 text-muted transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1448
- onClick: n[0] ||= (e) => I(-1)
1449
- }, [f(O(ie), { class: "size-4 rtl:rotate-180" })], 8, Gn),
1450
- u("span", Kn, D(j.value), 1),
1451
- u("button", {
1452
- type: "button",
1453
- "aria-label": E("nextMonth"),
1454
- class: "rounded p-1 text-muted transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1455
- onClick: n[1] ||= (e) => I(1)
1456
- }, [f(O(z), { class: "size-4 rtl:rotate-180" })], 8, qn)
1457
- ]),
1458
- u("div", Jn, [(x(!0), l(a, null, w(ee.value, (e, t) => (x(), l("span", {
1459
- key: t,
1460
- class: "py-1 font-medium text-muted"
1461
- }, D(e), 1))), 128)), (x(!0), l(a, null, w(ne.value, (e, t) => (x(), l(a, { key: t }, [e ? (x(), l("button", {
1462
- key: 1,
1463
- type: "button",
1464
- class: g([
1465
- "flex h-8 items-center justify-center rounded-md text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1466
- F(e) ? "bg-primary-100 text-primary-800 dark:bg-primary-900/40 dark:text-primary-200" : "hover:bg-surface-muted",
1467
- _.value && _.value.getTime() === e.getTime() ? "bg-primary-500 text-white hover:bg-primary-500" : "",
1468
- v.value && v.value.getTime() === e.getTime() ? "bg-primary-500 text-white hover:bg-primary-500" : ""
1441
+ }), f(O(Re), null, {
1442
+ default: N(() => [f(O(Le), {
1443
+ "side-offset": 4,
1444
+ class: "z-50 rounded-md border border-border bg-surface p-3 shadow-popover"
1445
+ }, {
1446
+ default: N(() => [
1447
+ u("div", Kn, [
1448
+ u("button", {
1449
+ type: "button",
1450
+ "aria-label": E("previousMonth"),
1451
+ class: "rounded p-1 text-muted transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1452
+ onClick: n[0] ||= (e) => I(-1)
1453
+ }, [f(O(ie), { class: "size-4 rtl:rotate-180" })], 8, qn),
1454
+ u("span", Jn, D(j.value), 1),
1455
+ u("button", {
1456
+ type: "button",
1457
+ "aria-label": E("nextMonth"),
1458
+ class: "rounded p-1 text-muted transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1459
+ onClick: n[1] ||= (e) => I(1)
1460
+ }, [f(O(ae), { class: "size-4 rtl:rotate-180" })], 8, Yn)
1469
1461
  ]),
1470
- onClick: (t) => R(e)
1471
- }, D(e.getDate()), 11, Xn)) : (x(), l("span", Yn))], 64))), 128))]),
1472
- e.mode === "datetime" ? (x(), l("div", Zn, [u("div", {
1473
- role: "group",
1474
- "aria-label": E("time"),
1475
- class: "flex items-center gap-1.5 text-xs text-muted"
1476
- }, [
1477
- f(O(ce), { class: "size-3.5" }),
1478
- P(u("select", {
1479
- "onUpdate:modelValue": n[2] ||= (e) => ue.value = e,
1480
- "data-test": "hours",
1481
- "aria-label": E("hour"),
1482
- class: "rounded border border-border bg-surface px-1.5 py-1 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"
1483
- }, [(x(!0), l(a, null, w(se.value, (t) => (x(), l("option", {
1462
+ u("div", Xn, [(x(!0), l(a, null, w(ee.value, (e, t) => (x(), l("span", {
1484
1463
  key: t,
1485
- value: t
1486
- }, D(e.hourFormat === "12" ? t : pe(t)), 9, er))), 128))], 8, $n), [[
1487
- A,
1488
- ue.value,
1489
- void 0,
1490
- { number: !0 }
1491
- ]]),
1492
- n[7] ||= u("span", { "aria-hidden": "true" }, ":", -1),
1493
- P(u("select", {
1494
- "onUpdate:modelValue": n[3] ||= (e) => de.value = e,
1495
- "data-test": "minutes",
1496
- "aria-label": E("minute"),
1497
- class: "rounded border border-border bg-surface px-1.5 py-1 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"
1498
- }, [(x(!0), l(a, null, w(le.value, (e) => (x(), l("option", {
1499
- key: e,
1500
- value: e
1501
- }, D(pe(e)), 9, nr))), 128))], 8, tr), [[
1502
- A,
1503
- de.value,
1504
- void 0,
1505
- { number: !0 }
1506
- ]]),
1507
- e.hourFormat === "12" ? P((x(), l("select", {
1508
- key: 0,
1509
- "onUpdate:modelValue": n[4] ||= (e) => fe.value = e,
1510
- "data-test": "meridiem",
1464
+ class: "py-1 font-medium text-muted"
1465
+ }, D(e), 1))), 128)), (x(!0), l(a, null, w(ne.value, (e, t) => (x(), l(a, { key: t }, [e ? (x(), l("button", {
1466
+ key: 1,
1467
+ type: "button",
1468
+ class: g([
1469
+ "flex h-8 items-center justify-center rounded-md text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1470
+ F(e) ? "bg-primary-100 text-primary-800 dark:bg-primary-900/40 dark:text-primary-200" : "hover:bg-surface-muted",
1471
+ _.value && _.value.getTime() === e.getTime() ? "bg-primary-500 text-white hover:bg-primary-500" : "",
1472
+ v.value && v.value.getTime() === e.getTime() ? "bg-primary-500 text-white hover:bg-primary-500" : ""
1473
+ ]),
1474
+ onClick: (t) => R(e)
1475
+ }, D(e.getDate()), 11, Qn)) : (x(), l("span", Zn))], 64))), 128))]),
1476
+ e.mode === "datetime" ? (x(), l("div", $n, [u("div", {
1477
+ role: "group",
1511
1478
  "aria-label": E("time"),
1512
- class: "rounded border border-border bg-surface px-1.5 py-1 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"
1513
- }, [u("option", ir, D(E("am")), 1), u("option", ar, D(E("pm")), 1)], 8, rr)), [[A, fe.value]]) : c("", !0)
1514
- ], 8, Qn), u("div", or, [u("button", {
1515
- type: "button",
1516
- class: "rounded px-3 py-1 text-sm text-muted transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1517
- onClick: oe
1518
- }, D(E("clear")), 1), u("button", {
1519
- type: "button",
1520
- disabled: !_.value,
1521
- class: "rounded bg-primary-500 px-3 py-1 text-sm text-white transition-colors hover:bg-primary-600 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1522
- onClick: n[5] ||= (e) => {
1523
- ae(), m.value = !1;
1524
- }
1525
- }, D(E("apply")), 9, sr)])])) : L() ? (x(), l("div", cr, [u("button", {
1526
- type: "button",
1527
- class: "rounded px-3 py-1 text-sm text-muted transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1528
- onClick: oe
1529
- }, D(E("clear")), 1)])) : c("", !0)
1530
- ]),
1479
+ class: "flex items-center gap-1.5 text-xs text-muted"
1480
+ }, [
1481
+ f(O(le), { class: "size-3.5" }),
1482
+ P(u("select", {
1483
+ "onUpdate:modelValue": n[2] ||= (e) => de.value = e,
1484
+ "data-test": "hours",
1485
+ "aria-label": E("hour"),
1486
+ class: "rounded border border-border bg-surface px-1.5 py-1 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"
1487
+ }, [(x(!0), l(a, null, w(ce.value, (t) => (x(), l("option", {
1488
+ key: t,
1489
+ value: t
1490
+ }, D(e.hourFormat === "12" ? t : me(t)), 9, nr))), 128))], 8, tr), [[
1491
+ te,
1492
+ de.value,
1493
+ void 0,
1494
+ { number: !0 }
1495
+ ]]),
1496
+ n[7] ||= u("span", { "aria-hidden": "true" }, ":", -1),
1497
+ P(u("select", {
1498
+ "onUpdate:modelValue": n[3] ||= (e) => fe.value = e,
1499
+ "data-test": "minutes",
1500
+ "aria-label": E("minute"),
1501
+ class: "rounded border border-border bg-surface px-1.5 py-1 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"
1502
+ }, [(x(!0), l(a, null, w(ue.value, (e) => (x(), l("option", {
1503
+ key: e,
1504
+ value: e
1505
+ }, D(me(e)), 9, ir))), 128))], 8, rr), [[
1506
+ te,
1507
+ fe.value,
1508
+ void 0,
1509
+ { number: !0 }
1510
+ ]]),
1511
+ e.hourFormat === "12" ? P((x(), l("select", {
1512
+ key: 0,
1513
+ "onUpdate:modelValue": n[4] ||= (e) => pe.value = e,
1514
+ "data-test": "meridiem",
1515
+ "aria-label": E("time"),
1516
+ class: "rounded border border-border bg-surface px-1.5 py-1 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"
1517
+ }, [u("option", or, D(E("am")), 1), u("option", sr, D(E("pm")), 1)], 8, ar)), [[te, pe.value]]) : c("", !0)
1518
+ ], 8, er), u("div", cr, [u("button", {
1519
+ type: "button",
1520
+ class: "rounded px-3 py-1 text-sm text-muted transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1521
+ onClick: se
1522
+ }, D(E("clear")), 1), u("button", {
1523
+ type: "button",
1524
+ disabled: !_.value,
1525
+ class: "rounded bg-primary-500 px-3 py-1 text-sm text-white transition-colors hover:bg-primary-600 disabled:cursor-not-allowed disabled:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1526
+ onClick: n[5] ||= (e) => {
1527
+ oe(), m.value = !1;
1528
+ }
1529
+ }, D(E("apply")), 9, lr)])])) : L() ? (x(), l("div", ur, [u("button", {
1530
+ type: "button",
1531
+ class: "rounded px-3 py-1 text-sm text-muted transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1532
+ onClick: se
1533
+ }, D(E("clear")), 1)])) : c("", !0)
1534
+ ]),
1535
+ _: 1
1536
+ })]),
1531
1537
  _: 1
1532
1538
  })]),
1533
1539
  _: 1
1534
1540
  }, 8, ["open"]));
1535
1541
  }
1536
- }), ur = { class: "flex items-start justify-between gap-4 border-b border-border p-5 pb-4" }, dr = { class: "min-w-0" }, fr = { class: "overflow-y-auto bg-surface p-5" }, pr = {
1537
- key: 0,
1538
- class: "flex justify-end gap-2 border-t border-border bg-surface-muted p-4"
1539
- }, mr = /* @__PURE__ */ p({
1542
+ }), fr = { class: "flex shrink-0 items-start justify-between gap-4 border-b border-border p-5 pb-4" }, pr = { class: "min-w-0" }, mr = { class: "flex-1 overflow-y-auto bg-surface p-5" }, hr = {
1543
+ key: 1,
1544
+ class: "flex shrink-0 justify-end gap-2 border-t border-border bg-surface-muted p-4"
1545
+ }, gr = /* @__PURE__ */ p({
1540
1546
  __name: "Dialog",
1541
1547
  props: {
1542
1548
  visible: { type: Boolean },
@@ -1546,21 +1552,21 @@ var Xt = { class: "relative w-full" }, Zt = [
1546
1552
  },
1547
1553
  emits: ["update:visible", "close"],
1548
1554
  setup(e, { emit: t }) {
1549
- let n = e, r = t, i = o({
1555
+ let n = e, r = t, i = A(), a = o(() => !!n.description || !!i.description), p = o({
1550
1556
  get: () => n.visible ?? !1,
1551
1557
  set: (e) => r("update:visible", e)
1552
- }), a = {
1558
+ }), m = {
1553
1559
  sm: "max-w-sm",
1554
1560
  md: "max-w-md",
1555
1561
  lg: "max-w-2xl",
1556
1562
  xl: "max-w-4xl"
1557
1563
  };
1558
- function p(e) {
1564
+ function g(e) {
1559
1565
  r("update:visible", e), e || r("close");
1560
1566
  }
1561
- return (t, n) => (x(), s(O(Se), {
1562
- open: i.value,
1563
- "onUpdate:open": p
1567
+ return (t, n) => (x(), s(O(Ce), {
1568
+ open: p.value,
1569
+ "onUpdate:open": g
1564
1570
  }, {
1565
1571
  default: N(() => [t.$slots.trigger ? (x(), s(O(we), {
1566
1572
  key: 0,
@@ -1568,45 +1574,52 @@ var Xt = { class: "relative w-full" }, Zt = [
1568
1574
  }, {
1569
1575
  default: N(() => [T(t.$slots, "trigger")]),
1570
1576
  _: 3
1571
- })) : c("", !0), f(O(xe), null, {
1572
- default: N(() => [f(O(be), { class: "fixed inset-0 z-50 bg-black/50 dark:bg-black/70" }), f(O(ve), { class: g(["fixed left-1/2 top-1/2 z-50 w-full max-h-[85vh] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-lg border border-border bg-surface shadow-dialog focus-visible:outline-none", a[e.size]]) }, {
1577
+ })) : c("", !0), f(O(Se), null, {
1578
+ default: N(() => [f(O(xe), { class: "fixed inset-0 z-50 bg-black/50 dark:bg-black/70" }), f(O(ye), h({ class: ["fixed left-1/2 top-1/2 z-50 flex flex-col w-full max-h-[85vh] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-lg border border-border bg-surface shadow-dialog focus-visible:outline-none", m[e.size]] }, a.value ? {} : { "aria-describedby": void 0 }), {
1573
1579
  default: N(() => [
1574
- u("div", ur, [u("div", dr, [e.title || t.$slots.header ? (x(), s(O(Ce), {
1580
+ !e.title && !t.$slots.header ? (x(), s(O(dt), { key: 0 }, {
1581
+ default: N(() => [f(O(V), null, {
1582
+ default: N(() => [...n[0] ||= [d("Dialog", -1)]]),
1583
+ _: 1
1584
+ })]),
1585
+ _: 1
1586
+ })) : c("", !0),
1587
+ u("div", fr, [u("div", pr, [e.title || t.$slots.header ? (x(), s(O(V), {
1575
1588
  key: 0,
1576
1589
  class: "text-lg font-semibold text-foreground"
1577
1590
  }, {
1578
1591
  default: N(() => [T(t.$slots, "header", {}, () => [d(D(e.title), 1)])]),
1579
1592
  _: 3
1580
- })) : c("", !0), e.description || t.$slots.description ? (x(), s(O(ye), {
1593
+ })) : c("", !0), e.description || t.$slots.description ? (x(), s(O(be), {
1581
1594
  key: 1,
1582
1595
  class: "mt-1 text-sm text-muted"
1583
1596
  }, {
1584
1597
  default: N(() => [T(t.$slots, "description", {}, () => [d(D(e.description), 1)])]),
1585
1598
  _: 3
1586
- })) : c("", !0)]), f(O(_e), {
1599
+ })) : c("", !0)]), f(O(ve), {
1587
1600
  class: "rounded-md p-1 text-muted transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1588
1601
  "aria-label": "Close"
1589
1602
  }, {
1590
- default: N(() => [f(O(V), { class: "size-4" })]),
1603
+ default: N(() => [f(O(B), { class: "size-4" })]),
1591
1604
  _: 1
1592
1605
  })]),
1593
- u("div", fr, [T(t.$slots, "default")]),
1594
- t.$slots.footer ? (x(), l("div", pr, [T(t.$slots, "footer")])) : c("", !0)
1606
+ u("div", mr, [T(t.$slots, "default")]),
1607
+ t.$slots.footer ? (x(), l("div", hr, [T(t.$slots, "footer")])) : c("", !0)
1595
1608
  ]),
1596
1609
  _: 3
1597
- }, 8, ["class"])]),
1610
+ }, 16, ["class"])]),
1598
1611
  _: 3
1599
1612
  })]),
1600
1613
  _: 3
1601
1614
  }, 8, ["open"]));
1602
1615
  }
1603
- }), hr = {
1616
+ }), _r = {
1604
1617
  key: 1,
1605
1618
  class: "flex shrink-0 items-start justify-between gap-4 border-b border-border p-5 pb-4"
1606
- }, gr = { class: "min-w-0" }, _r = { class: "flex-1 overflow-y-auto p-5" }, vr = {
1619
+ }, vr = { class: "min-w-0" }, yr = { class: "flex-1 overflow-y-auto p-5" }, br = {
1607
1620
  key: 2,
1608
1621
  class: "shrink-0 border-t border-border bg-surface-muted p-4"
1609
- }, yr = /* @__PURE__ */ p({
1622
+ }, xr = /* @__PURE__ */ p({
1610
1623
  __name: "Drawer",
1611
1624
  props: {
1612
1625
  open: {
@@ -1644,40 +1657,40 @@ var Xt = { class: "relative w-full" }, Zt = [
1644
1657
  "close"
1645
1658
  ],
1646
1659
  setup(e, { emit: t }) {
1647
- let n = e, r = t, i = o({
1660
+ let n = e, r = t, i = A(), a = o(() => !!n.description || !!i.description), p = o({
1648
1661
  get: () => n.open,
1649
1662
  set: (e) => r("update:open", e)
1650
1663
  });
1651
- function a(e) {
1664
+ function m(e) {
1652
1665
  r("update:open", e), r(e ? "open" : "close");
1653
1666
  }
1654
- function p(e) {
1667
+ function _(e) {
1655
1668
  n.closeOnEscape || e.preventDefault();
1656
1669
  }
1657
- function m(e) {
1670
+ function v(e) {
1658
1671
  n.closeOnOutside || e.preventDefault();
1659
1672
  }
1660
- let h = {
1673
+ let y = {
1661
1674
  right: "inset-y-0 right-0 h-full w-full data-[state=closed]:translate-x-full data-[state=open]:translate-x-0",
1662
1675
  left: "inset-y-0 left-0 h-full w-full data-[state=closed]:-translate-x-full data-[state=open]:translate-x-0",
1663
1676
  end: "inset-y-0 end-0 h-full w-full data-[state=closed]:translate-x-full rtl:data-[state=closed]:-translate-x-full data-[state=open]:translate-x-0",
1664
1677
  start: "inset-y-0 start-0 h-full w-full data-[state=closed]:-translate-x-full rtl:data-[state=closed]:translate-x-full data-[state=open]:translate-x-0",
1665
1678
  top: "inset-x-0 top-0 w-full h-full data-[state=closed]:-translate-y-full data-[state=open]:translate-y-0",
1666
1679
  bottom: "inset-x-0 bottom-0 w-full h-full data-[state=closed]:translate-y-full data-[state=open]:translate-y-0"
1667
- }, _ = {
1680
+ }, b = {
1668
1681
  sm: "max-w-sm",
1669
1682
  md: "max-w-md",
1670
1683
  lg: "max-w-lg",
1671
1684
  full: "max-w-full"
1672
- }, v = {
1685
+ }, S = {
1673
1686
  sm: "max-h-64",
1674
1687
  md: "max-h-96",
1675
1688
  lg: "max-h-[32rem]",
1676
1689
  full: "max-h-full"
1677
- }, y = o(() => n.position === "top" || n.position === "bottom"), b = o(() => y.value ? v[n.size] : _[n.size]);
1678
- return (t, n) => (x(), s(O(Se), {
1679
- open: i.value,
1680
- "onUpdate:open": a
1690
+ }, C = o(() => n.position === "top" || n.position === "bottom"), w = o(() => C.value ? S[n.size] : b[n.size]);
1691
+ return (t, n) => (x(), s(O(Ce), {
1692
+ open: p.value,
1693
+ "onUpdate:open": m
1681
1694
  }, {
1682
1695
  default: N(() => [t.$slots.trigger ? (x(), s(O(we), {
1683
1696
  key: 0,
@@ -1685,58 +1698,58 @@ var Xt = { class: "relative w-full" }, Zt = [
1685
1698
  }, {
1686
1699
  default: N(() => [T(t.$slots, "trigger")]),
1687
1700
  _: 3
1688
- })) : c("", !0), f(O(xe), { "force-mount": i.value }, {
1689
- default: N(() => [e.backdrop || e.preventScroll ? (x(), s(O(be), {
1701
+ })) : c("", !0), f(O(Se), { "force-mount": p.value }, {
1702
+ default: N(() => [e.backdrop || e.preventScroll ? (x(), s(O(xe), {
1690
1703
  key: 0,
1691
1704
  class: g(["fixed inset-0 z-50", e.backdrop ? "bg-black/50 dark:bg-black/70" : "bg-transparent"])
1692
- }, null, 8, ["class"])) : c("", !0), f(O(ve), {
1693
- class: g([
1705
+ }, null, 8, ["class"])) : c("", !0), f(O(ye), h({
1706
+ class: [
1694
1707
  "fixed z-50 flex flex-col overflow-hidden border-border bg-surface shadow-dialog transition-transform duration-200 focus-visible:outline-none",
1695
- h[e.position],
1696
- b.value
1697
- ]),
1698
- onEscapeKeyDown: p,
1699
- onPointerDownOutside: m
1700
- }, {
1708
+ y[e.position],
1709
+ w.value
1710
+ ],
1711
+ onEscapeKeyDown: _,
1712
+ onPointerDownOutside: v
1713
+ }, a.value ? {} : { "aria-describedby": void 0 }), {
1701
1714
  default: N(() => [
1702
- !e.title && !t.$slots.header ? (x(), s(O(lt), { key: 0 }, {
1703
- default: N(() => [f(O(Ce), null, {
1715
+ !e.title && !t.$slots.header ? (x(), s(O(dt), { key: 0 }, {
1716
+ default: N(() => [f(O(V), null, {
1704
1717
  default: N(() => [...n[0] ||= [d("Drawer", -1)]]),
1705
1718
  _: 1
1706
1719
  })]),
1707
1720
  _: 1
1708
1721
  })) : c("", !0),
1709
- e.title || t.$slots.header || e.description || t.$slots.description || e.showClose ? (x(), l("header", hr, [u("div", gr, [e.title || t.$slots.header ? (x(), s(O(Ce), {
1722
+ e.title || t.$slots.header || e.description || t.$slots.description || e.showClose ? (x(), l("header", _r, [u("div", vr, [e.title || t.$slots.header ? (x(), s(O(V), {
1710
1723
  key: 0,
1711
1724
  class: "text-lg font-semibold text-foreground"
1712
1725
  }, {
1713
1726
  default: N(() => [T(t.$slots, "header", {}, () => [d(D(e.title), 1)])]),
1714
1727
  _: 3
1715
- })) : c("", !0), e.description || t.$slots.description ? (x(), s(O(ye), {
1728
+ })) : c("", !0), e.description || t.$slots.description ? (x(), s(O(be), {
1716
1729
  key: 1,
1717
1730
  class: "mt-1 text-sm text-muted"
1718
1731
  }, {
1719
1732
  default: N(() => [T(t.$slots, "description", {}, () => [d(D(e.description), 1)])]),
1720
1733
  _: 3
1721
- })) : c("", !0)]), e.showClose ? (x(), s(O(_e), {
1734
+ })) : c("", !0)]), e.showClose ? (x(), s(O(ve), {
1722
1735
  key: 0,
1723
1736
  class: "ms-auto shrink-0 rounded-md p-1 text-muted transition-colors hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
1724
1737
  "aria-label": "Close"
1725
1738
  }, {
1726
- default: N(() => [T(t.$slots, "close", {}, () => [f(O(V), { class: "size-4" })])]),
1739
+ default: N(() => [T(t.$slots, "close", {}, () => [f(O(B), { class: "size-4" })])]),
1727
1740
  _: 3
1728
1741
  })) : c("", !0)])) : c("", !0),
1729
- u("div", _r, [T(t.$slots, "default")]),
1730
- t.$slots.footer ? (x(), l("footer", vr, [T(t.$slots, "footer")])) : c("", !0)
1742
+ u("div", yr, [T(t.$slots, "default")]),
1743
+ t.$slots.footer ? (x(), l("footer", br, [T(t.$slots, "footer")])) : c("", !0)
1731
1744
  ]),
1732
1745
  _: 3
1733
- }, 8, ["class"])]),
1746
+ }, 16, ["class"])]),
1734
1747
  _: 3
1735
1748
  }, 8, ["force-mount"])]),
1736
1749
  _: 3
1737
1750
  }, 8, ["open"]));
1738
1751
  }
1739
- }), br = /* @__PURE__ */ p({
1752
+ }), Sr = /* @__PURE__ */ p({
1740
1753
  __name: "DropdownMenu",
1741
1754
  emits: ["update:open"],
1742
1755
  setup(e, { emit: t }) {
@@ -1746,7 +1759,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1746
1759
  _: 3
1747
1760
  }, 16));
1748
1761
  }
1749
- }), xr = /* @__PURE__ */ p({
1762
+ }), Cr = /* @__PURE__ */ p({
1750
1763
  __name: "DropdownMenuTrigger",
1751
1764
  setup(e) {
1752
1765
  return (e, t) => (x(), s(O(Me), {
@@ -1757,7 +1770,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1757
1770
  _: 3
1758
1771
  }));
1759
1772
  }
1760
- }), Sr = /* @__PURE__ */ p({
1773
+ }), wr = /* @__PURE__ */ p({
1761
1774
  __name: "DropdownMenuContent",
1762
1775
  props: {
1763
1776
  align: { default: "start" },
@@ -1782,7 +1795,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1782
1795
  _: 3
1783
1796
  }));
1784
1797
  }
1785
- }), Cr = /* @__PURE__ */ p({
1798
+ }), Tr = /* @__PURE__ */ p({
1786
1799
  __name: "DropdownMenuItem",
1787
1800
  props: {
1788
1801
  variant: {},
@@ -1794,7 +1807,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1794
1807
  },
1795
1808
  emits: ["select"],
1796
1809
  setup(e, { emit: t }) {
1797
- let n = me({
1810
+ let n = he({
1798
1811
  base: "relative flex w-full cursor-pointer select-none items-center gap-2 rounded px-2 py-1.5 text-sm outline-none transition-colors focus:bg-surface-muted data-[highlighted]:bg-surface-muted data-[highlighted]:text-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
1799
1812
  variants: { variant: {
1800
1813
  default: "text-foreground",
@@ -1818,12 +1831,12 @@ var Xt = { class: "relative w-full" }, Zt = [
1818
1831
  _: 3
1819
1832
  }, 8, ["disabled", "class"]));
1820
1833
  }
1821
- }), wr = /* @__PURE__ */ p({
1834
+ }), Er = /* @__PURE__ */ p({
1822
1835
  __name: "DropdownMenuSeparator",
1823
1836
  setup(e) {
1824
1837
  return (e, t) => (x(), s(O(je), { class: "my-1 h-px bg-border" }));
1825
1838
  }
1826
- }), Tr = /* @__PURE__ */ p({
1839
+ }), Dr = /* @__PURE__ */ p({
1827
1840
  __name: "DropdownMenuLabel",
1828
1841
  setup(e) {
1829
1842
  return (e, t) => (x(), s(O(Oe), { class: "px-2 py-1.5 text-xs font-medium text-muted" }, {
@@ -1831,7 +1844,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1831
1844
  _: 3
1832
1845
  }));
1833
1846
  }
1834
- }), Er = /* @__PURE__ */ p({
1847
+ }), Or = /* @__PURE__ */ p({
1835
1848
  __name: "DropdownMenuGroup",
1836
1849
  setup(e) {
1837
1850
  return (e, t) => (x(), s(O(Ee), null, {
@@ -1839,13 +1852,13 @@ var Xt = { class: "relative w-full" }, Zt = [
1839
1852
  _: 3
1840
1853
  }));
1841
1854
  }
1842
- }), Dr = { class: "flex flex-col gap-2 sm:flex-row sm:items-stretch" }, Or = { class: "border-b border-border px-3 py-2 text-xs font-medium text-muted" }, kr = { class: "max-h-64 flex-1 overflow-y-auto p-1" }, Ar = ["disabled", "onClick"], jr = { class: "truncate" }, Mr = {
1855
+ }), kr = { class: "flex flex-col gap-2 sm:flex-row sm:items-stretch" }, Ar = { class: "border-b border-border px-3 py-2 text-xs font-medium text-muted" }, jr = { class: "max-h-64 flex-1 overflow-y-auto p-1" }, Mr = ["disabled", "onClick"], Nr = { class: "truncate" }, Pr = {
1843
1856
  key: 0,
1844
1857
  class: "px-2 py-1.5 text-sm text-muted"
1845
- }, Nr = { class: "flex flex-row items-center justify-center gap-1 sm:flex-col" }, Pr = { class: "border-b border-border px-3 py-2 text-xs font-medium text-muted" }, Fr = { class: "max-h-64 flex-1 overflow-y-auto p-1" }, Ir = ["disabled", "onClick"], Lr = { class: "truncate" }, Rr = {
1858
+ }, Fr = { class: "flex flex-row items-center justify-center gap-1 sm:flex-col" }, Ir = { class: "border-b border-border px-3 py-2 text-xs font-medium text-muted" }, Lr = { class: "max-h-64 flex-1 overflow-y-auto p-1" }, Rr = ["disabled", "onClick"], zr = { class: "truncate" }, Br = {
1846
1859
  key: 0,
1847
1860
  class: "px-2 py-1.5 text-sm text-muted"
1848
- }, zr = /* @__PURE__ */ p({
1861
+ }, Vr = /* @__PURE__ */ p({
1849
1862
  __name: "TransferList",
1850
1863
  props: {
1851
1864
  options: {},
@@ -1883,13 +1896,13 @@ var Xt = { class: "relative w-full" }, Zt = [
1883
1896
  function E() {
1884
1897
  i.value.clear(), p.value.clear(), _();
1885
1898
  }
1886
- return (t, n) => (x(), l("div", Dr, [
1887
- u("div", { class: g(["flex min-h-40 flex-1 flex-col rounded-md border border-border bg-surface", e.disabled && "opacity-50"]) }, [u("div", Or, [T(t.$slots, "source-header", {}, () => [d(D(e.sourceLabel), 1)])]), u("ul", kr, [(x(!0), l(a, null, w(m.value, (r) => (x(), l("li", { key: r.value }, [u("button", {
1899
+ return (t, n) => (x(), l("div", kr, [
1900
+ u("div", { class: g(["flex min-h-40 flex-1 flex-col rounded-md border border-border bg-surface", e.disabled && "opacity-50"]) }, [u("div", Ar, [T(t.$slots, "source-header", {}, () => [d(D(e.sourceLabel), 1)])]), u("ul", jr, [(x(!0), l(a, null, w(m.value, (r) => (x(), l("li", { key: r.value }, [u("button", {
1888
1901
  type: "button",
1889
1902
  disabled: e.disabled,
1890
1903
  class: "flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-sm transition-colors hover:bg-surface-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 disabled:cursor-not-allowed",
1891
1904
  onClick: (e) => v(s.value, r.value)
1892
- }, [f(xn, {
1905
+ }, [f(Cn, {
1893
1906
  "model-value": s.value.has(r.value),
1894
1907
  disabled: e.disabled,
1895
1908
  onClick: n[0] ||= F(() => {}, ["stop"]),
@@ -1898,8 +1911,8 @@ var Xt = { class: "relative w-full" }, Zt = [
1898
1911
  "model-value",
1899
1912
  "disabled",
1900
1913
  "onUpdate:modelValue"
1901
- ]), T(t.$slots, "item", { option: r }, () => [u("span", jr, D(r.label), 1)])], 8, Ar)]))), 128)), m.value.length === 0 ? (x(), l("li", Mr, "Empty")) : c("", !0)])], 2),
1902
- u("div", Nr, [
1914
+ ]), T(t.$slots, "item", { option: r }, () => [u("span", Nr, D(r.label), 1)])], 8, Mr)]))), 128)), m.value.length === 0 ? (x(), l("li", Pr, "Empty")) : c("", !0)])], 2),
1915
+ u("div", Fr, [
1903
1916
  f(X, {
1904
1917
  variant: "outline",
1905
1918
  size: "icon-sm",
@@ -1907,7 +1920,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1907
1920
  "aria-label": "Move selected to target",
1908
1921
  onClick: y
1909
1922
  }, {
1910
- default: N(() => [f(O(z), { class: "size-4" })]),
1923
+ default: N(() => [f(O(ae), { class: "size-4" })]),
1911
1924
  _: 1
1912
1925
  }, 8, ["disabled"]),
1913
1926
  f(X, {
@@ -1927,7 +1940,7 @@ var Xt = { class: "relative w-full" }, Zt = [
1927
1940
  "aria-label": "Move all to target",
1928
1941
  onClick: S
1929
1942
  }, {
1930
- default: N(() => [f(O(B), { class: "size-4" })]),
1943
+ default: N(() => [f(O(z), { class: "size-4" })]),
1931
1944
  _: 1
1932
1945
  }, 8, ["disabled"]),
1933
1946
  f(X, {
@@ -1937,16 +1950,16 @@ var Xt = { class: "relative w-full" }, Zt = [
1937
1950
  "aria-label": "Move all to source",
1938
1951
  onClick: E
1939
1952
  }, {
1940
- default: N(() => [f(O(oe), { class: "size-4" })]),
1953
+ default: N(() => [f(O(se), { class: "size-4" })]),
1941
1954
  _: 1
1942
1955
  }, 8, ["disabled"])
1943
1956
  ]),
1944
- u("div", { class: g(["flex min-h-40 flex-1 flex-col rounded-md border border-border bg-surface", e.disabled && "opacity-50"]) }, [u("div", Pr, [T(t.$slots, "target-header", {}, () => [d(D(e.targetLabel), 1)])]), u("ul", Fr, [(x(!0), l(a, null, w(h.value, (r) => (x(), l("li", { key: r.value }, [u("button", {
1957
+ u("div", { class: g(["flex min-h-40 flex-1 flex-col rounded-md border border-border bg-surface", e.disabled && "opacity-50"]) }, [u("div", Ir, [T(t.$slots, "target-header", {}, () => [d(D(e.targetLabel), 1)])]), u("ul", Lr, [(x(!0), l(a, null, w(h.value, (r) => (x(), l("li", { key: r.value }, [u("button", {
1945
1958
  type: "button",
1946
1959
  disabled: e.disabled,
1947
1960
  class: "flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-sm transition-colors hover:bg-surface-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 disabled:cursor-not-allowed",
1948
1961
  onClick: (e) => v(p.value, r.value)
1949
- }, [f(xn, {
1962
+ }, [f(Cn, {
1950
1963
  "model-value": p.value.has(r.value),
1951
1964
  disabled: e.disabled,
1952
1965
  onClick: n[1] ||= F(() => {}, ["stop"]),
@@ -1955,10 +1968,10 @@ var Xt = { class: "relative w-full" }, Zt = [
1955
1968
  "model-value",
1956
1969
  "disabled",
1957
1970
  "onUpdate:modelValue"
1958
- ]), T(t.$slots, "item", { option: r }, () => [u("span", Lr, D(r.label), 1)])], 8, Ir)]))), 128)), h.value.length === 0 ? (x(), l("li", Rr, "Empty")) : c("", !0)])], 2)
1971
+ ]), T(t.$slots, "item", { option: r }, () => [u("span", zr, D(r.label), 1)])], 8, Rr)]))), 128)), h.value.length === 0 ? (x(), l("li", Br, "Empty")) : c("", !0)])], 2)
1959
1972
  ]));
1960
1973
  }
1961
- }), Br = /* @__PURE__ */ p({
1974
+ }), Hr = /* @__PURE__ */ p({
1962
1975
  __name: "Table",
1963
1976
  props: {
1964
1977
  striped: { type: Boolean },
@@ -1972,19 +1985,19 @@ var Xt = { class: "relative w-full" }, Zt = [
1972
1985
  let t = e, n = o(() => H("w-full border-collapse text-start text-sm text-foreground", t.size === "sm" ? "text-xs" : "text-sm", t.striped && "[&_tbody>tr:nth-child(even)]:bg-surface-muted/40", t.contained && "overflow-hidden rounded-md border border-border bg-surface"));
1973
1986
  return (e, t) => (x(), l("table", { class: g(n.value) }, [T(e.$slots, "default")], 2));
1974
1987
  }
1975
- }), Vr = (e, t) => {
1988
+ }), Ur = (e, t) => {
1976
1989
  let n = e.__vccOpts || e;
1977
1990
  for (let [e, r] of t) n[e] = r;
1978
1991
  return n;
1979
- }, Hr = {}, Ur = { class: "border-b border-border bg-surface-muted/60 text-xs font-medium text-muted" };
1980
- function Wr(e, t) {
1981
- return x(), l("thead", Ur, [T(e.$slots, "default")]);
1992
+ }, Wr = {}, Gr = { class: "border-b border-border bg-surface-muted/60 text-xs font-medium text-muted" };
1993
+ function Kr(e, t) {
1994
+ return x(), l("thead", Gr, [T(e.$slots, "default")]);
1982
1995
  }
1983
- var Gr = /*#__PURE__*/ Vr(Hr, [["render", Wr]]), Kr = {};
1984
- function qr(e, t) {
1996
+ var qr = /*#__PURE__*/ Ur(Wr, [["render", Kr]]), Jr = {};
1997
+ function Yr(e, t) {
1985
1998
  return x(), l("tbody", null, [T(e.$slots, "default")]);
1986
1999
  }
1987
- var Jr = /*#__PURE__*/ Vr(Kr, [["render", qr]]), Q = /* @__PURE__ */ p({
2000
+ var Xr = /*#__PURE__*/ Ur(Jr, [["render", Yr]]), Q = /* @__PURE__ */ p({
1988
2001
  __name: "TableRow",
1989
2002
  props: { clickable: {
1990
2003
  type: Boolean,
@@ -1993,7 +2006,7 @@ var Jr = /*#__PURE__*/ Vr(Kr, [["render", qr]]), Q = /* @__PURE__ */ p({
1993
2006
  setup(e) {
1994
2007
  return (t, n) => (x(), l("tr", { class: g(["border-b border-border/60 last:border-b-0", e.clickable && "cursor-pointer transition-colors hover:bg-surface-muted/50"]) }, [T(t.$slots, "default")], 2));
1995
2008
  }
1996
- }), Yr = ["aria-sort"], Xr = /* @__PURE__ */ p({
2009
+ }), Zr = ["aria-sort"], Qr = /* @__PURE__ */ p({
1997
2010
  __name: "TableHead",
1998
2011
  props: {
1999
2012
  sortDirection: {},
@@ -2007,7 +2020,7 @@ var Jr = /*#__PURE__*/ Vr(Kr, [["render", qr]]), Q = /* @__PURE__ */ p({
2007
2020
  "aria-sort": n.value,
2008
2021
  style: _(e.width ? { width: e.width } : void 0),
2009
2022
  class: g(O(H)("px-3 py-2 font-medium", e.align === "center" && "text-center", e.align === "end" && "text-end"))
2010
- }, [T(t.$slots, "default")], 14, Yr));
2023
+ }, [T(t.$slots, "default")], 14, Zr));
2011
2024
  }
2012
2025
  }), $ = /* @__PURE__ */ p({
2013
2026
  __name: "TableCell",
@@ -2019,7 +2032,7 @@ var Jr = /*#__PURE__*/ Vr(Kr, [["render", qr]]), Q = /* @__PURE__ */ p({
2019
2032
  let t = e, n = o(() => H("px-3 py-2 align-middle", t.align === "center" && "text-center", t.align === "end" && "text-end", t.truncate && "max-w-0 truncate"));
2020
2033
  return (e, t) => (x(), l("td", { class: g(n.value) }, [T(e.$slots, "default")], 2));
2021
2034
  }
2022
- }), Zr = ["colspan"], Qr = /* @__PURE__ */ p({
2035
+ }), $r = ["colspan"], ei = /* @__PURE__ */ p({
2023
2036
  __name: "TableEmpty",
2024
2037
  props: {
2025
2038
  columns: {},
@@ -2029,12 +2042,12 @@ var Jr = /*#__PURE__*/ Vr(Kr, [["render", qr]]), Q = /* @__PURE__ */ p({
2029
2042
  return (t, n) => (x(), l("tr", null, [u("td", {
2030
2043
  colspan: e.columns,
2031
2044
  class: "px-3 py-8 text-center text-sm text-muted"
2032
- }, [T(t.$slots, "default", {}, () => [d(D(e.label), 1)])], 8, Zr)]));
2045
+ }, [T(t.$slots, "default", {}, () => [d(D(e.label), 1)])], 8, $r)]));
2033
2046
  }
2034
2047
  });
2035
2048
  //#endregion
2036
2049
  //#region src/lib/pagination.ts
2037
- function $r(e, t, n) {
2050
+ function ti(e, t, n) {
2038
2051
  if (n <= 0 || t <= 0) return {
2039
2052
  from: 0,
2040
2053
  to: 0,
@@ -2051,17 +2064,17 @@ function $r(e, t, n) {
2051
2064
  total: n
2052
2065
  };
2053
2066
  }
2054
- function ei(e, t) {
2067
+ function ni(e, t) {
2055
2068
  return t <= 0 ? 1 : Math.max(1, Math.ceil(e / t));
2056
2069
  }
2057
- function ti(e, t, n = 5) {
2070
+ function ri(e, t, n = 5) {
2058
2071
  if (t <= 0) return [];
2059
2072
  let r = Math.floor(n / 2), i = Math.max(0, Math.min(e - r, t - n)), a = Math.max(0, i);
2060
2073
  return Array.from({ length: Math.min(n, t - a) }, (e, t) => a + t + 1);
2061
2074
  }
2062
2075
  //#endregion
2063
2076
  //#region src/components/table/TablePagination.vue?vue&type=script&setup=true&lang.ts
2064
- var ni = { class: "flex flex-wrap items-center justify-between gap-3 px-3 py-2 text-sm text-muted" }, ri = { class: "flex items-center gap-2" }, ii = ["value"], ai = ["value"], oi = { class: "flex items-center gap-2" }, si = { class: "flex items-center gap-1" }, ci = /* @__PURE__ */ p({
2077
+ var ii = { class: "flex flex-wrap items-center justify-between gap-3 px-3 py-2 text-sm text-muted" }, ai = { class: "flex items-center gap-2" }, oi = ["value"], si = ["value"], ci = { class: "flex items-center gap-2" }, li = { class: "flex items-center gap-1" }, ui = /* @__PURE__ */ p({
2065
2078
  __name: "TablePagination",
2066
2079
  props: {
2067
2080
  pageIndex: {},
@@ -2079,18 +2092,18 @@ var ni = { class: "flex flex-wrap items-center justify-between gap-3 px-3 py-2 t
2079
2092
  },
2080
2093
  emits: ["update:pageIndex", "update:pageSize"],
2081
2094
  setup(e, { emit: t }) {
2082
- let n = e, r = t, i = o(() => ei(n.total, n.pageSize)), c = o(() => $r(n.pageIndex, n.pageSize, n.total)), p = o(() => ti(n.pageIndex, i.value));
2095
+ let n = e, r = t, i = o(() => ni(n.total, n.pageSize)), c = o(() => ti(n.pageIndex, n.pageSize, n.total)), p = o(() => ri(n.pageIndex, i.value));
2083
2096
  function m(e) {
2084
2097
  r("update:pageIndex", Math.max(0, Math.min(e, i.value - 1)));
2085
2098
  }
2086
- return (t, n) => (x(), l("div", ni, [u("div", ri, [u("span", null, D(e.rowsPerPageLabel), 1), u("select", {
2099
+ return (t, n) => (x(), l("div", ii, [u("div", ai, [u("span", null, D(e.rowsPerPageLabel), 1), u("select", {
2087
2100
  value: e.pageSize,
2088
2101
  class: "rounded-md border border-border bg-surface px-2 py-1 text-sm text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
2089
2102
  onChange: n[0] ||= (e) => r("update:pageSize", Number(e.target.value))
2090
2103
  }, [(x(!0), l(a, null, w(e.pageSizeOptions, (e) => (x(), l("option", {
2091
2104
  key: e,
2092
2105
  value: e
2093
- }, D(e), 9, ai))), 128))], 40, ii)]), u("div", oi, [u("span", null, D(c.value.from) + "–" + D(c.value.to) + " " + D(e.ofLabel) + " " + D(c.value.total), 1), u("div", si, [
2106
+ }, D(e), 9, si))), 128))], 40, oi)]), u("div", ci, [u("span", null, D(c.value.from) + "–" + D(c.value.to) + " " + D(e.ofLabel) + " " + D(c.value.total), 1), u("div", li, [
2094
2107
  f(X, {
2095
2108
  variant: "ghost",
2096
2109
  size: "icon-sm",
@@ -2122,20 +2135,20 @@ var ni = { class: "flex flex-wrap items-center justify-between gap-3 px-3 py-2 t
2122
2135
  "aria-label": e.nextLabel,
2123
2136
  onClick: n[2] ||= (t) => m(e.pageIndex + 1)
2124
2137
  }, {
2125
- default: N(() => [f(O(z), { class: "size-4 rtl:rotate-180" })]),
2138
+ default: N(() => [f(O(ae), { class: "size-4 rtl:rotate-180" })]),
2126
2139
  _: 1
2127
2140
  }, 8, ["disabled", "aria-label"])
2128
2141
  ])])]));
2129
2142
  }
2130
- }), li = vt({
2131
- rowSortingFeature: gt,
2132
- rowPaginationFeature: ht,
2133
- rowExpandingFeature: mt,
2134
- sortedRowModel: pt(),
2135
- paginatedRowModel: ft(),
2136
- expandedRowModel: dt(),
2137
- sortFns: _t
2138
- }), ui = [
2143
+ }), di = bt({
2144
+ rowSortingFeature: vt,
2145
+ rowPaginationFeature: _t,
2146
+ rowExpandingFeature: gt,
2147
+ sortedRowModel: ht(),
2148
+ paginatedRowModel: mt(),
2149
+ expandedRowModel: pt(),
2150
+ sortFns: yt
2151
+ }), fi = [
2139
2152
  "a[href]",
2140
2153
  "button",
2141
2154
  "input",
@@ -2148,21 +2161,21 @@ var ni = { class: "flex flex-wrap items-center justify-between gap-3 px-3 py-2 t
2148
2161
  "[role=\"menu\"]",
2149
2162
  "[data-row-toggle-ignore]"
2150
2163
  ].join(",");
2151
- function di(e) {
2164
+ function pi(e) {
2152
2165
  let t = e;
2153
- return !t || typeof t.closest != "function" ? !1 : t.closest(ui) !== null;
2166
+ return !t || typeof t.closest != "function" ? !1 : t.closest(fi) !== null;
2154
2167
  }
2155
- function fi(e, t) {
2168
+ function mi(e, t) {
2156
2169
  return e[t] ? {} : { [t]: !0 };
2157
2170
  }
2158
2171
  //#endregion
2159
2172
  //#region src/components/data-table/DataTable.vue?vue&type=script&setup=true&lang.ts
2160
- var pi = ["aria-busy"], mi = {
2173
+ var hi = ["aria-busy"], gi = {
2161
2174
  key: 0,
2162
2175
  class: "sr-only",
2163
2176
  role: "status",
2164
2177
  "aria-live": "polite"
2165
- }, hi = ["onClick"], gi = /* @__PURE__ */ p({
2178
+ }, _i = ["onClick"], vi = /* @__PURE__ */ p({
2166
2179
  __name: "DataTable",
2167
2180
  props: {
2168
2181
  data: {},
@@ -2201,8 +2214,8 @@ var pi = ["aria-busy"], mi = {
2201
2214
  "row-click"
2202
2215
  ],
2203
2216
  setup(e, { emit: t }) {
2204
- let n = e, r = t, i = te(), u = C([]), p = n.getRowId ? (e) => n.getRowId(e) : void 0, m = yt({
2205
- features: li,
2217
+ let n = e, r = t, i = A(), u = C([]), p = n.getRowId ? (e) => n.getRowId(e) : void 0, m = xt({
2218
+ features: di,
2206
2219
  get columns() {
2207
2220
  return n.columns;
2208
2221
  },
@@ -2239,19 +2252,19 @@ var pi = ["aria-busy"], mi = {
2239
2252
  return t ? `${t}px` : void 0;
2240
2253
  };
2241
2254
  function k(e, t) {
2242
- r("row-click", h.value.find((e) => e.id === t)?.original), n.expandable && (n.stopRowToggleOnInteractiveCells && di(e.target) || r("update:expanded", fi(n.expanded, t)));
2255
+ r("row-click", h.value.find((e) => e.id === t)?.original), n.expandable && (n.stopRowToggleOnInteractiveCells && pi(e.target) || r("update:expanded", mi(n.expanded, t)));
2243
2256
  }
2244
2257
  return (t, n) => (x(), l("div", {
2245
2258
  class: g(e.maxHeight ? "overflow-auto" : void 0),
2246
2259
  style: _(e.maxHeight ? { maxHeight: e.maxHeight } : void 0),
2247
2260
  "aria-busy": e.loading || void 0
2248
- }, [e.loading ? (x(), l("span", mi, D(e.loadingLabel), 1)) : c("", !0), f(Br, {
2261
+ }, [e.loading ? (x(), l("span", gi, D(e.loadingLabel), 1)) : c("", !0), f(Hr, {
2249
2262
  striped: e.striped,
2250
2263
  size: e.size
2251
2264
  }, {
2252
- default: N(() => [f(Gr, null, {
2265
+ default: N(() => [f(qr, null, {
2253
2266
  default: N(() => [f(Q, null, {
2254
- default: N(() => [(x(!0), l(a, null, w(O(m).getHeaderGroups()[0]?.headers ?? [], (t) => (x(), s(Xr, {
2267
+ default: N(() => [(x(!0), l(a, null, w(O(m).getHeaderGroups()[0]?.headers ?? [], (t) => (x(), s(Qr, {
2255
2268
  key: t.id,
2256
2269
  width: E(t.column.columnDef),
2257
2270
  "sort-direction": t.column.getCanSort() ? b(t.column.id) : void 0
@@ -2261,16 +2274,16 @@ var pi = ["aria-busy"], mi = {
2261
2274
  type: "button",
2262
2275
  class: "inline-flex items-center gap-1 rounded focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
2263
2276
  onClick: (e) => t.column.toggleSorting()
2264
- }, [f(O(ut), { header: t }, null, 8, ["header"]), b(t.column.id) === "descending" ? (x(), s(O(R), {
2277
+ }, [f(O(ft), { header: t }, null, 8, ["header"]), b(t.column.id) === "descending" ? (x(), s(O(R), {
2265
2278
  key: 0,
2266
2279
  class: "size-3.5"
2267
- })) : b(t.column.id) === "ascending" ? (x(), s(O(ae), {
2280
+ })) : b(t.column.id) === "ascending" ? (x(), s(O(oe), {
2268
2281
  key: 1,
2269
2282
  class: "size-3.5"
2270
- })) : (x(), s(O(se), {
2283
+ })) : (x(), s(O(ce), {
2271
2284
  key: 2,
2272
2285
  class: "size-3.5 opacity-40"
2273
- }))], 8, hi)) : (x(), s(O(ut), {
2286
+ }))], 8, _i)) : (x(), s(O(ft), {
2274
2287
  key: 1,
2275
2288
  header: t
2276
2289
  }, null, 8, ["header"]))]),
@@ -2279,8 +2292,8 @@ var pi = ["aria-busy"], mi = {
2279
2292
  _: 1
2280
2293
  })]),
2281
2294
  _: 1
2282
- }), f(Jr, null, {
2283
- default: N(() => [!e.loading && h.value.length === 0 ? (x(), s(Qr, {
2295
+ }), f(Xr, null, {
2296
+ default: N(() => [!e.loading && h.value.length === 0 ? (x(), s(ei, {
2284
2297
  key: 0,
2285
2298
  columns: v.value
2286
2299
  }, {
@@ -2288,7 +2301,7 @@ var pi = ["aria-busy"], mi = {
2288
2301
  _: 3
2289
2302
  }, 8, ["columns"])) : c("", !0), e.loading ? (x(!0), l(a, { key: 1 }, w(y.value, (e) => (x(), s(Q, { key: "loading-" + e }, {
2290
2303
  default: N(() => [(x(!0), l(a, null, w(v.value, (e) => (x(), s($, { key: e }, {
2291
- default: N(() => [f(jn, {
2304
+ default: N(() => [f(Nn, {
2292
2305
  height: "1rem",
2293
2306
  rounded: "sm"
2294
2307
  })]),
@@ -2306,7 +2319,7 @@ var pi = ["aria-busy"], mi = {
2306
2319
  row: n,
2307
2320
  cell: e,
2308
2321
  value: e.getValue()
2309
- }, void 0, void 0, 0) : (x(), s(O(ut), {
2322
+ }, void 0, void 0, 0) : (x(), s(O(ft), {
2310
2323
  key: 1,
2311
2324
  cell: e
2312
2325
  }, null, 8, ["cell"]))]),
@@ -2331,12 +2344,12 @@ var pi = ["aria-busy"], mi = {
2331
2344
  _: 3
2332
2345
  })]),
2333
2346
  _: 3
2334
- }, 8, ["striped", "size"])], 14, pi));
2347
+ }, 8, ["striped", "size"])], 14, hi));
2335
2348
  }
2336
2349
  });
2337
2350
  //#endregion
2338
2351
  //#region src/lib/tree.ts
2339
- function _i(e, t, n = 1, r = null) {
2352
+ function yi(e, t, n = 1, r = null) {
2340
2353
  return e.flatMap((e) => {
2341
2354
  let i = {
2342
2355
  node: e,
@@ -2345,27 +2358,27 @@ function _i(e, t, n = 1, r = null) {
2345
2358
  parentKey: r,
2346
2359
  hasChildren: !!e.children?.length
2347
2360
  };
2348
- return !i.hasChildren || !t.includes(e.value) ? [i] : [i, ..._i(e.children, t, n + 1, e.value)];
2361
+ return !i.hasChildren || !t.includes(e.value) ? [i] : [i, ...yi(e.children, t, n + 1, e.value)];
2349
2362
  });
2350
2363
  }
2351
- function vi(e, t) {
2364
+ function bi(e, t) {
2352
2365
  for (let n of e) {
2353
2366
  if (n.value === t) return n;
2354
- let e = n.children ? vi(n.children, t) : void 0;
2367
+ let e = n.children ? bi(n.children, t) : void 0;
2355
2368
  if (e) return e;
2356
2369
  }
2357
2370
  }
2358
- function yi(e) {
2359
- return e.flatMap((e) => e.children?.length ? yi(e.children) : [e.value]);
2371
+ function xi(e) {
2372
+ return e.flatMap((e) => e.children?.length ? xi(e.children) : [e.value]);
2360
2373
  }
2361
- function bi(e, t) {
2362
- let n = e.children?.length ? yi([e]) : [e.value], r = n.filter((e) => t.includes(e)).length;
2374
+ function Si(e, t) {
2375
+ let n = e.children?.length ? xi([e]) : [e.value], r = n.filter((e) => t.includes(e)).length;
2363
2376
  return r === 0 ? "unchecked" : r === n.length ? "checked" : "indeterminate";
2364
2377
  }
2365
- function xi(e, t, n = (e) => e.label ?? "") {
2378
+ function Ci(e, t, n = (e) => e.label ?? "") {
2366
2379
  let r = t.trim().toLowerCase();
2367
2380
  return r ? e.reduce((e, i) => {
2368
- let a = i.children ? xi(i.children, t, n) : void 0;
2381
+ let a = i.children ? Ci(i.children, t, n) : void 0;
2369
2382
  return !n(i).toLowerCase().includes(r) && (!a || a.length === 0) || e.push({
2370
2383
  ...i,
2371
2384
  children: a
@@ -2374,10 +2387,10 @@ function xi(e, t, n = (e) => e.label ?? "") {
2374
2387
  }
2375
2388
  //#endregion
2376
2389
  //#region src/components/tree-table/TreeTable.vue?vue&type=script&setup=true&lang.ts
2377
- var Si = { class: "overflow-hidden rounded-md border border-border bg-surface" }, Ci = { class: "px-3 py-2" }, wi = ["aria-label", "onClick"], Ti = {
2390
+ var wi = { class: "overflow-hidden rounded-md border border-border bg-surface" }, Ti = { class: "px-3 py-2" }, Ei = ["aria-label", "onClick"], Di = {
2378
2391
  key: 1,
2379
2392
  class: "inline-block size-4"
2380
- }, Ei = /* @__PURE__ */ p({
2393
+ }, Oi = /* @__PURE__ */ p({
2381
2394
  __name: "TreeTable",
2382
2395
  props: {
2383
2396
  nodes: {},
@@ -2391,21 +2404,21 @@ var Si = { class: "overflow-hidden rounded-md border border-border bg-surface" }
2391
2404
  },
2392
2405
  emits: ["update:expanded"],
2393
2406
  setup(e, { emit: t }) {
2394
- let n = e, r = t, i = o(() => `minmax(12rem, 1fr) ${n.columns.map((e) => e.width ?? "minmax(6rem, 1fr)").join(" ")}`), c = o(() => _i(n.nodes, n.expanded));
2395
- return (t, n) => (x(), l("div", Si, [u("div", {
2407
+ let n = e, r = t, i = o(() => `minmax(12rem, 1fr) ${n.columns.map((e) => e.width ?? "minmax(6rem, 1fr)").join(" ")}`), c = o(() => yi(n.nodes, n.expanded));
2408
+ return (t, n) => (x(), l("div", wi, [u("div", {
2396
2409
  class: "grid border-b border-border bg-surface-muted/60 text-xs font-medium text-muted",
2397
2410
  style: _({ gridTemplateColumns: i.value })
2398
- }, [u("div", Ci, [T(t.$slots, "header", {}, () => [d(D(e.rowColumnHeader), 1)])]), (x(!0), l(a, null, w(e.columns, (e) => (x(), l("div", {
2411
+ }, [u("div", Ti, [T(t.$slots, "header", {}, () => [d(D(e.rowColumnHeader), 1)])]), (x(!0), l(a, null, w(e.columns, (e) => (x(), l("div", {
2399
2412
  key: e.key,
2400
2413
  class: g(["px-3 py-2", [e.align === "center" && "text-center", e.align === "end" && "text-end"]])
2401
- }, D(e.header), 3))), 128))], 4), f(O(ct), {
2414
+ }, D(e.header), 3))), 128))], 4), f(O(ut), {
2402
2415
  items: e.nodes,
2403
2416
  "get-key": (e) => e.value,
2404
2417
  "get-children": (e) => e.children,
2405
2418
  expanded: e.expanded,
2406
2419
  "onUpdate:expanded": n[0] ||= (e) => r("update:expanded", e)
2407
2420
  }, {
2408
- default: N(() => [(x(!0), l(a, null, w(c.value, (n) => (x(), s(O(st), {
2421
+ default: N(() => [(x(!0), l(a, null, w(c.value, (n) => (x(), s(O(lt), {
2409
2422
  key: n.key,
2410
2423
  value: n.node,
2411
2424
  level: n.level,
@@ -2422,7 +2435,7 @@ var Si = { class: "overflow-hidden rounded-md border border-border bg-surface" }
2422
2435
  "aria-label": e.rowLabel(n.node),
2423
2436
  class: g(["rounded p-0.5 text-muted transition-transform hover:bg-surface-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500", r && "rotate-90"]),
2424
2437
  onClick: F(i, ["stop"])
2425
- }, [f(O(z), { class: "size-3.5 rtl:rotate-180" })], 10, wi)) : (x(), l("span", Ti)), T(t.$slots, "row-label", {
2438
+ }, [f(O(ae), { class: "size-3.5 rtl:rotate-180" })], 10, Ei)) : (x(), l("span", Di)), T(t.$slots, "row-label", {
2426
2439
  node: n.node,
2427
2440
  level: n.level
2428
2441
  }, () => [d(D(e.rowLabel(n.node)), 1)])], 4), (x(!0), l(a, null, w(e.columns, (e) => (x(), l("div", {
@@ -2449,22 +2462,22 @@ var Si = { class: "overflow-hidden rounded-md border border-border bg-surface" }
2449
2462
  "expanded"
2450
2463
  ])]));
2451
2464
  }
2452
- }), Di = ["disabled"], Oi = {
2465
+ }), ki = ["disabled"], Ai = {
2453
2466
  key: 0,
2454
2467
  class: "truncate text-muted"
2455
- }, ki = {
2468
+ }, ji = {
2456
2469
  key: 1,
2457
2470
  class: "flex flex-wrap items-center gap-1"
2458
- }, Ai = {
2471
+ }, Mi = {
2459
2472
  key: 0,
2460
2473
  class: "relative mb-2"
2461
- }, ji = ["placeholder"], Mi = {
2474
+ }, Ni = ["placeholder"], Pi = {
2462
2475
  key: 1,
2463
2476
  class: "block h-0.5 w-2 rounded bg-white"
2464
- }, Ni = { class: "truncate" }, Pi = {
2477
+ }, Fi = { class: "truncate" }, Ii = {
2465
2478
  key: 1,
2466
2479
  class: "mt-2 flex justify-end border-t border-border pt-2"
2467
- }, Fi = /* @__PURE__ */ p({
2480
+ }, Li = /* @__PURE__ */ p({
2468
2481
  __name: "TreeSelect",
2469
2482
  props: {
2470
2483
  modelValue: { default: () => [] },
@@ -2484,19 +2497,19 @@ var Si = { class: "overflow-hidden rounded-md border border-border bg-surface" }
2484
2497
  },
2485
2498
  emits: ["update:modelValue"],
2486
2499
  setup(e, { emit: t }) {
2487
- let n = e, r = t, i = C(!1), p = C(""), m = C([]), h = o(() => xi(n.nodes, p.value)), v = o(() => _i(h.value, m.value)), y = o(() => yi(n.nodes)), b = o(() => n.modelValue.map((e) => vi(n.nodes, e)).filter((e) => !!e));
2500
+ let n = e, r = t, i = C(!1), p = C(""), m = C([]), h = o(() => Ci(n.nodes, p.value)), v = o(() => yi(h.value, m.value)), y = o(() => xi(n.nodes)), b = o(() => n.modelValue.map((e) => bi(n.nodes, e)).filter((e) => !!e));
2488
2501
  function S(e) {
2489
- return bi(e, n.modelValue);
2502
+ return Si(e, n.modelValue);
2490
2503
  }
2491
2504
  function T(e) {
2492
2505
  let t = (Array.isArray(e) ? e : []).map((e) => e.value);
2493
2506
  r("update:modelValue", n.leafOnly ? t.filter((e) => y.value.includes(e)) : t);
2494
2507
  }
2495
- return (t, n) => (x(), s(O(Re), {
2508
+ return (t, n) => (x(), s(O(ze), {
2496
2509
  open: i.value,
2497
2510
  "onUpdate:open": n[3] ||= (e) => i.value = e
2498
2511
  }, {
2499
- default: N(() => [f(O(ze), {
2512
+ default: N(() => [f(O(Be), {
2500
2513
  "as-child": "",
2501
2514
  disabled: e.disabled
2502
2515
  }, {
@@ -2504,25 +2517,25 @@ var Si = { class: "overflow-hidden rounded-md border border-border bg-surface" }
2504
2517
  type: "button",
2505
2518
  disabled: e.disabled,
2506
2519
  class: g(["flex w-full items-center justify-between gap-2 rounded-md border border-border bg-surface px-3 text-start text-sm text-foreground shadow-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500 disabled:cursor-not-allowed disabled:opacity-50", e.size === "sm" ? "min-h-8 py-1 text-xs" : "min-h-9 py-1.5"])
2507
- }, [b.value.length === 0 ? (x(), l("span", Oi, D(e.placeholder), 1)) : (x(), l("span", ki, [(x(!0), l(a, null, w(b.value, (e) => (x(), s(Cn, {
2520
+ }, [b.value.length === 0 ? (x(), l("span", Ai, D(e.placeholder), 1)) : (x(), l("span", ji, [(x(!0), l(a, null, w(b.value, (e) => (x(), s(Tn, {
2508
2521
  key: e.value,
2509
2522
  tone: "secondary"
2510
2523
  }, {
2511
2524
  default: N(() => [d(D(e.label ?? e.value), 1)]),
2512
2525
  _: 2
2513
- }, 1024))), 128))])), f(O(R), { class: "size-4 shrink-0 opacity-50" })], 10, Di)]),
2526
+ }, 1024))), 128))])), f(O(R), { class: "size-4 shrink-0 opacity-50" })], 10, ki)]),
2514
2527
  _: 1
2515
2528
  }, 8, ["disabled"]), f(O(Le), {
2516
2529
  "side-offset": 4,
2517
2530
  class: "z-50 w-72 rounded-md border border-border bg-surface p-2 shadow-popover"
2518
2531
  }, {
2519
2532
  default: N(() => [
2520
- e.filterable ? (x(), l("div", Ai, [f(O(fe), { class: "pointer-events-none absolute start-2 top-1/2 size-3.5 -translate-y-1/2 text-muted" }), P(u("input", {
2533
+ e.filterable ? (x(), l("div", Mi, [f(O(pe), { class: "pointer-events-none absolute start-2 top-1/2 size-3.5 -translate-y-1/2 text-muted" }), P(u("input", {
2521
2534
  "onUpdate:modelValue": n[0] ||= (e) => p.value = e,
2522
2535
  placeholder: e.filterPlaceholder,
2523
2536
  class: "w-full rounded-md border border-border bg-surface py-1.5 pe-2 ps-7 text-sm placeholder:text-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"
2524
- }, null, 8, ji), [[j, p.value]])])) : c("", !0),
2525
- f(O(ct), {
2537
+ }, null, 8, Ni), [[j, p.value]])])) : c("", !0),
2538
+ f(O(ut), {
2526
2539
  "model-value": b.value,
2527
2540
  items: h.value,
2528
2541
  "get-key": (e) => e.value,
@@ -2533,7 +2546,7 @@ var Si = { class: "overflow-hidden rounded-md border border-border bg-surface" }
2533
2546
  "bubble-select": "",
2534
2547
  "onUpdate:modelValue": T
2535
2548
  }, {
2536
- default: N(() => [(x(!0), l(a, null, w(v.value, (e) => (x(), s(O(st), {
2549
+ default: N(() => [(x(!0), l(a, null, w(v.value, (e) => (x(), s(O(lt), {
2537
2550
  key: e.key,
2538
2551
  value: e.node,
2539
2552
  level: e.level,
@@ -2547,7 +2560,7 @@ var Si = { class: "overflow-hidden rounded-md border border-border bg-surface" }
2547
2560
  }, [S(e.node) === "checked" ? (x(), s(O(L), {
2548
2561
  key: 0,
2549
2562
  class: "size-3"
2550
- })) : S(e.node) === "indeterminate" ? (x(), l("span", Mi)) : c("", !0)], 2), u("span", Ni, D(e.node.label ?? e.node.value), 1)]),
2563
+ })) : S(e.node) === "indeterminate" ? (x(), l("span", Pi)) : c("", !0)], 2), u("span", Fi, D(e.node.label ?? e.node.value), 1)]),
2551
2564
  _: 2
2552
2565
  }, 1032, [
2553
2566
  "value",
@@ -2562,22 +2575,22 @@ var Si = { class: "overflow-hidden rounded-md border border-border bg-surface" }
2562
2575
  "get-children",
2563
2576
  "expanded"
2564
2577
  ]),
2565
- e.modelValue.length ? (x(), l("div", Pi, [u("button", {
2578
+ e.modelValue.length ? (x(), l("div", Ii, [u("button", {
2566
2579
  type: "button",
2567
2580
  class: "inline-flex items-center gap-1 rounded px-2 py-1 text-xs text-muted hover:bg-surface-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
2568
2581
  onClick: n[2] ||= (e) => r("update:modelValue", [])
2569
- }, [f(O(V), { class: "size-3" }), n[4] ||= d("Clear ", -1)])])) : c("", !0)
2582
+ }, [f(O(B), { class: "size-3" }), n[4] ||= d("Clear ", -1)])])) : c("", !0)
2570
2583
  ]),
2571
2584
  _: 1
2572
2585
  })]),
2573
2586
  _: 1
2574
2587
  }, 8, ["open"]));
2575
2588
  }
2576
- }), Ii = Symbol("myghf-toast"), Li = 0;
2577
- function Ri(e = {}) {
2589
+ }), Ri = Symbol("myghf-toast"), zi = 0;
2590
+ function Bi(e = {}) {
2578
2591
  let t = Math.max(1, e.max ?? 4), n = e.duration ?? 5e3, r = e.position ?? "top-end", i = C([]), a = o(() => i.value.slice(0, t));
2579
2592
  function s(e) {
2580
- let t = `toast-${++Li}`;
2593
+ let t = `toast-${++zi}`;
2581
2594
  return i.value.push({
2582
2595
  severity: "info",
2583
2596
  position: r,
@@ -2613,14 +2626,14 @@ function Ri(e = {}) {
2613
2626
  secondary: u("secondary")
2614
2627
  };
2615
2628
  }
2616
- function zi() {
2617
- let e = m(Ii);
2629
+ function Vi() {
2630
+ let e = m(Ri);
2618
2631
  if (!e) throw Error("useToast() requires a <Toaster /> mounted above this component.");
2619
2632
  return e;
2620
2633
  }
2621
2634
  //#endregion
2622
2635
  //#region src/components/toast/Toast.vue?vue&type=script&setup=true&lang.ts
2623
- var Bi = { class: "min-w-0 flex-1" }, Vi = /* @__PURE__ */ p({
2636
+ var Hi = { class: "min-w-0 flex-1" }, Ui = /* @__PURE__ */ p({
2624
2637
  __name: "Toast",
2625
2638
  props: {
2626
2639
  item: {},
@@ -2635,7 +2648,7 @@ var Bi = { class: "min-w-0 flex-1" }, Vi = /* @__PURE__ */ p({
2635
2648
  danger: "circle-alert",
2636
2649
  secondary: "info"
2637
2650
  };
2638
- return (t, n) => (x(), s(O(it), {
2651
+ return (t, n) => (x(), s(O(ot), {
2639
2652
  "default-open": !0,
2640
2653
  duration: l.value,
2641
2654
  type: a.value,
@@ -2649,20 +2662,20 @@ var Bi = { class: "min-w-0 flex-1" }, Vi = /* @__PURE__ */ p({
2649
2662
  name: e.item.icon || p[i.value],
2650
2663
  class: g(["mt-0.5 size-4 shrink-0", O(q)[i.value].icon])
2651
2664
  }, null, 8, ["name", "class"]),
2652
- u("div", Bi, [e.item.title ? (x(), s(O(at), {
2665
+ u("div", Hi, [e.item.title ? (x(), s(O(st), {
2653
2666
  key: 0,
2654
2667
  class: "font-medium"
2655
2668
  }, {
2656
2669
  default: N(() => [d(D(e.item.title), 1)]),
2657
2670
  _: 1
2658
- })) : c("", !0), e.item.description ? (x(), s(O(nt), {
2671
+ })) : c("", !0), e.item.description ? (x(), s(O(it), {
2659
2672
  key: 1,
2660
2673
  class: g(["leading-relaxed", e.item.title ? "mt-1" : ""])
2661
2674
  }, {
2662
2675
  default: N(() => [d(D(e.item.description), 1)]),
2663
2676
  _: 1
2664
2677
  }, 8, ["class"])) : c("", !0)]),
2665
- e.item.action ? (x(), s(O(et), {
2678
+ e.item.action ? (x(), s(O(nt), {
2666
2679
  key: 0,
2667
2680
  "alt-text": e.item.action.label,
2668
2681
  class: "-my-1 shrink-0 rounded-md px-2 py-1 font-medium transition-colors hover:bg-black/10 dark:hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
@@ -2671,12 +2684,12 @@ var Bi = { class: "min-w-0 flex-1" }, Vi = /* @__PURE__ */ p({
2671
2684
  default: N(() => [d(D(e.item.action.label), 1)]),
2672
2685
  _: 1
2673
2686
  }, 8, ["alt-text"])) : c("", !0),
2674
- e.item.closable === !1 ? c("", !0) : (x(), s(O(tt), {
2687
+ e.item.closable === !1 ? c("", !0) : (x(), s(O(rt), {
2675
2688
  key: 1,
2676
2689
  "aria-label": "Close",
2677
2690
  class: "-me-1 -mt-1 shrink-0 rounded-md p-1 transition-colors hover:bg-black/10 dark:hover:bg-white/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500"
2678
2691
  }, {
2679
- default: N(() => [f(O(V), { class: "size-4" })]),
2692
+ default: N(() => [f(O(B), { class: "size-4" })]),
2680
2693
  _: 1
2681
2694
  }))
2682
2695
  ]),
@@ -2688,7 +2701,7 @@ var Bi = { class: "min-w-0 flex-1" }, Vi = /* @__PURE__ */ p({
2688
2701
  "class"
2689
2702
  ]));
2690
2703
  }
2691
- }), Hi = /* @__PURE__ */ p({
2704
+ }), Wi = /* @__PURE__ */ p({
2692
2705
  __name: "Toaster",
2693
2706
  props: {
2694
2707
  position: { default: "top-end" },
@@ -2699,12 +2712,12 @@ var Bi = { class: "min-w-0 flex-1" }, Vi = /* @__PURE__ */ p({
2699
2712
  store: {}
2700
2713
  },
2701
2714
  setup(e) {
2702
- let t = e, n = t.store ?? Ri({
2715
+ let t = e, n = t.store ?? Bi({
2703
2716
  max: t.max,
2704
2717
  duration: t.duration,
2705
2718
  position: t.position
2706
2719
  });
2707
- S(Ii, n);
2720
+ S(Ri, n);
2708
2721
  let r = [
2709
2722
  "top-start",
2710
2723
  "top-center",
@@ -2723,17 +2736,17 @@ var Bi = { class: "min-w-0 flex-1" }, Vi = /* @__PURE__ */ p({
2723
2736
  function o(e) {
2724
2737
  return n.visible.value.filter((n) => (n.position ?? t.position) === e);
2725
2738
  }
2726
- return (t, u) => (x(), s(O(rt), {
2739
+ return (t, u) => (x(), s(O(at), {
2727
2740
  label: e.label,
2728
2741
  duration: e.duration
2729
2742
  }, {
2730
- default: N(() => [T(t.$slots, "default"), (x(), l(a, null, w(r, (t) => (x(), l(a, { key: t }, [o(t).length > 0 ? (x(), s(O(ot), {
2743
+ default: N(() => [T(t.$slots, "default"), (x(), l(a, null, w(r, (t) => (x(), l(a, { key: t }, [o(t).length > 0 ? (x(), s(O(ct), {
2731
2744
  key: 0,
2732
2745
  label: e.label,
2733
2746
  class: g(["pointer-events-none fixed z-50 flex max-h-screen w-full max-w-sm flex-col", i[t]]),
2734
2747
  style: _({ gap: e.gap })
2735
2748
  }, {
2736
- default: N(() => [(x(!0), l(a, null, w(o(t), (t) => (x(), s(Vi, {
2749
+ default: N(() => [(x(!0), l(a, null, w(o(t), (t) => (x(), s(Ui, {
2737
2750
  key: t.id,
2738
2751
  item: t,
2739
2752
  duration: e.duration,
@@ -2754,6 +2767,6 @@ var Bi = { class: "min-w-0 flex-1" }, Vi = /* @__PURE__ */ p({
2754
2767
  }
2755
2768
  });
2756
2769
  //#endregion
2757
- export { On as Alert, On as Message, Pn as Avatar, X as Button, xn as Checkbox, gi as DataTable, lr as DatePicker, mr as Dialog, yr as Drawer, br as DropdownMenu, Sr as DropdownMenuContent, Er as DropdownMenuGroup, Cr as DropdownMenuItem, Tr as DropdownMenuLabel, wr as DropdownMenuSeparator, xr as DropdownMenuTrigger, gn as FormDescription, bn as FormField, vn as FormMessage, Y as Icon, Qt as Input, nn as InputNumber, mn as Label, dn as Password, Vn as Select, Hn as SelectButton, jn as Skeleton, An as Spinner, Br as Table, Jr as TableBody, $ as TableCell, Qr as TableEmpty, Xr as TableHead, Gr as TableHeader, ci as TablePagination, Q as TableRow, Fn as Tabs, Rn as TabsContent, In as TabsList, Ln as TabsTrigger, Cn as Tag, an as Textarea, qt as ThemeToggle, Hi as Toaster, zr as TransferList, Fi as TreeSelect, Ei as TreeTable, Tt as buildHourOptions, Et as buildMinuteOptions, Ct as clampTime, H as cn, Ut as createTheme, Ri as createToastStore, bt as dateToValue, K as formatLocalizedDate, jt as formatLocalizedTime, Dt as from12Hour, Ot as getFirstDayOfWeek, At as getMonthLabel, kt as getWeekdayLabels, Nt as mergeFormatOptions, It as resolveIconName, W as sortRange, G as to12Hour, wt as toISODate, St as toMinutes, Mt as toNumberOrNull, Pt as toPascalCase, U as toTime, Ii as toastKey, q as toneClasses, Z as useFormField, Gt as useTheme, zi as useToast, xt as valueToDate };
2770
+ export { An as Alert, An as Message, In as Avatar, X as Button, Cn as Checkbox, vi as DataTable, dr as DatePicker, gr as Dialog, xr as Drawer, Sr as DropdownMenu, wr as DropdownMenuContent, Or as DropdownMenuGroup, Tr as DropdownMenuItem, Dr as DropdownMenuLabel, Er as DropdownMenuSeparator, Cr as DropdownMenuTrigger, vn as FormDescription, Sn as FormField, bn as FormMessage, Y as Icon, en as Input, an as InputNumber, gn as Label, pn as Password, Un as Select, Wn as SelectButton, Nn as Skeleton, Mn as Spinner, Hr as Table, Xr as TableBody, $ as TableCell, ei as TableEmpty, Qr as TableHead, qr as TableHeader, ui as TablePagination, Q as TableRow, Ln as Tabs, Bn as TabsContent, Rn as TabsList, zn as TabsTrigger, Tn as Tag, sn as Textarea, Yt as ThemeToggle, Wi as Toaster, Vr as TransferList, Li as TreeSelect, Oi as TreeTable, Dt as buildHourOptions, Ot as buildMinuteOptions, Tt as clampTime, H as cn, Gt as createTheme, Bi as createToastStore, St as dateToValue, K as formatLocalizedDate, Nt as formatLocalizedTime, kt as from12Hour, At as getFirstDayOfWeek, Mt as getMonthLabel, jt as getWeekdayLabels, Ft as mergeFormatOptions, Rt as resolveIconName, W as sortRange, G as to12Hour, Et as toISODate, wt as toMinutes, Pt as toNumberOrNull, It as toPascalCase, U as toTime, Ri as toastKey, q as toneClasses, Z as useFormField, qt as useTheme, Vi as useToast, Ct as valueToDate };
2758
2771
 
2759
2772
  //# sourceMappingURL=index.js.map