@iaclinical/components 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { defineComponent as L, computed as g, createElementBlock as o, openBlock as s, normalizeClass as b, createElementVNode as a, createCommentVNode as c, renderSlot as C, toDisplayString as w, createBlock as q, Teleport as X, createVNode as G, Transition as Q, withCtx as U, withModifiers as E, createTextVNode as K, ref as V, normalizeStyle as W, onMounted as ee, onUnmounted as te, watch as Y, nextTick as J, Fragment as H, renderList as A, resolveDynamicComponent as Z, withDirectives as se, vModelText as oe } from "vue";
1
+ import { defineComponent as S, computed as p, createElementBlock as o, openBlock as s, normalizeClass as v, createElementVNode as a, createCommentVNode as c, renderSlot as C, toDisplayString as w, createBlock as q, Teleport as X, createVNode as G, Transition as Q, withCtx as U, withModifiers as H, createTextVNode as K, ref as j, normalizeStyle as W, onMounted as ee, onUnmounted as te, watch as Y, nextTick as J, Fragment as F, renderList as A, resolveDynamicComponent as Z, withDirectives as se, vModelText as oe } from "vue";
2
2
  const le = { class: "flex items-center gap-4" }, ae = {
3
3
  key: 1,
4
4
  class: "text-lg font-bold text-primary-50 font-poppins"
@@ -8,7 +8,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
8
8
  }, ie = { class: "flex items-center gap-3" }, de = {
9
9
  key: 0,
10
10
  class: "text-lg font-bold text-primary-50 font-poppins"
11
- }, ue = /* @__PURE__ */ L({
11
+ }, ue = /* @__PURE__ */ S({
12
12
  __name: "AppBar",
13
13
  props: {
14
14
  title: { default: "" },
@@ -20,8 +20,8 @@ const le = { class: "flex items-center gap-4" }, ae = {
20
20
  height: { default: "md" }
21
21
  },
22
22
  emits: ["toggle-menu"],
23
- setup(t, { emit: v }) {
24
- const e = t, u = v, n = g(() => {
23
+ setup(t, { emit: b }) {
24
+ const e = t, u = b, n = p(() => {
25
25
  const d = "flex items-center justify-between px-6 z-50", r = {
26
26
  default: "bg-primary-700 text-primary-50",
27
27
  dark: "bg-secondary-900 text-white",
@@ -40,7 +40,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
40
40
  ].join(" ");
41
41
  });
42
42
  return (d, r) => (s(), o("header", {
43
- class: b(n.value)
43
+ class: v(n.value)
44
44
  }, [
45
45
  a("div", le, [
46
46
  t.showMenuButton ? (s(), o("button", {
@@ -77,15 +77,15 @@ const le = { class: "flex items-center gap-4" }, ae = {
77
77
  ])
78
78
  ], 2));
79
79
  }
80
- }), R = (t, v) => {
80
+ }), R = (t, b) => {
81
81
  const e = t.__vccOpts || t;
82
- for (const [u, n] of v)
82
+ for (const [u, n] of b)
83
83
  e[u] = n;
84
84
  return e;
85
85
  }, Ht = /* @__PURE__ */ R(ue, [["__scopeId", "data-v-883474b5"]]), ce = ["type", "disabled", "aria-label"], fe = {
86
86
  key: 0,
87
87
  class: "absolute top-0 right-0 inline-flex items-center justify-center px-1.5 py-0.5 text-xs font-bold leading-none text-white transform translate-x-1/2 -translate-y-1/2 bg-danger-600 rounded-full min-w-[1.25rem]"
88
- }, Ft = /* @__PURE__ */ L({
88
+ }, Ft = /* @__PURE__ */ S({
89
89
  __name: "Button",
90
90
  props: {
91
91
  variant: { default: "primary" },
@@ -95,11 +95,12 @@ const le = { class: "flex items-center gap-4" }, ae = {
95
95
  disabled: { type: Boolean, default: !1 },
96
96
  badge: { default: 0 },
97
97
  ariaLabel: { default: "" },
98
- textColor: { default: void 0 }
98
+ textColor: { default: void 0 },
99
+ textColorHover: { default: void 0 }
99
100
  },
100
101
  emits: ["click"],
101
- setup(t, { emit: v }) {
102
- const e = t, u = v, n = g(() => e.variant === "icon"), d = g(() => e.badge > 99 ? "99+" : e.badge.toString()), r = g(() => {
102
+ setup(t, { emit: b }) {
103
+ const e = t, u = b, n = p(() => e.variant === "icon"), d = p(() => e.badge > 99 ? "99+" : e.badge.toString()), r = p(() => {
103
104
  const i = "inline-flex items-center justify-center font-semibold tracking-wide transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", y = {
104
105
  primary: "bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700 focus-visible:ring-primary-700",
105
106
  secondary: "bg-secondary-200 text-secondary-900 hover:bg-secondary-300 focus-visible:ring-secondary-500",
@@ -112,20 +113,23 @@ const le = { class: "flex items-center gap-4" }, ae = {
112
113
  sm: n.value ? "p-1.5" : "h-8 px-3 text-sm",
113
114
  md: n.value ? "p-2" : "h-10 px-4 text-base",
114
115
  lg: n.value ? "p-3" : "h-12 px-6 text-lg"
115
- }, j = {
116
+ }, L = {
116
117
  full: "rounded-full",
117
118
  xl: "rounded-2xl",
118
119
  lg: "rounded-xl",
119
120
  md: "rounded-lg",
120
121
  sm: "rounded-md",
121
122
  none: "rounded-none"
122
- }, S = e.textColor ? e.textColor : "";
123
- return `${i} ${y[e.variant]} ${x[e.size]} ${j[e.radius]} ${S}`;
123
+ }, D = e.textColor ? e.textColor : "", _ = p(() => {
124
+ var M, O;
125
+ return e.textColorHover ? e.textColorHover : (M = e.textColor) != null && M.includes("white") || (O = e.textColor) != null && O.includes("50") ? "hover:text-black" : "";
126
+ });
127
+ return `${i} ${y[e.variant]} ${x[e.size]} ${L[e.radius]} ${D} ${_.value}`;
124
128
  }), f = (i) => {
125
129
  e.disabled || u("click", i);
126
130
  };
127
131
  return (i, y) => (s(), o("button", {
128
- class: b(r.value),
132
+ class: v(r.value),
129
133
  type: t.type,
130
134
  disabled: t.disabled,
131
135
  onClick: f,
@@ -141,7 +145,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
141
145
  }, ge = { class: "px-6 py-4" }, he = {
142
146
  key: 1,
143
147
  class: "border-t border-gray-100 px-6 py-4 bg-gray-50"
144
- }, Pt = /* @__PURE__ */ L({
148
+ }, Pt = /* @__PURE__ */ S({
145
149
  __name: "Card",
146
150
  props: {
147
151
  shadow: { default: "md" },
@@ -149,7 +153,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
149
153
  bordered: { type: Boolean, default: !1 }
150
154
  },
151
155
  setup(t) {
152
- const v = t, e = {
156
+ const b = t, e = {
153
157
  none: "",
154
158
  sm: "shadow-sm",
155
159
  md: "shadow",
@@ -162,14 +166,14 @@ const le = { class: "flex items-center gap-4" }, ae = {
162
166
  lg: "rounded-lg",
163
167
  xl: "rounded-xl",
164
168
  full: "rounded-full"
165
- }, n = g(() => [
169
+ }, n = p(() => [
166
170
  "w-full bg-white",
167
- e[v.shadow],
168
- u[v.rounded],
169
- v.bordered ? "border border-gray-200" : ""
171
+ e[b.shadow],
172
+ u[b.rounded],
173
+ b.bordered ? "border border-gray-200" : ""
170
174
  ]);
171
175
  return (d, r) => (s(), o("div", {
172
- class: b(n.value)
176
+ class: v(n.value)
173
177
  }, [
174
178
  d.$slots.header ? (s(), o("div", pe, [
175
179
  C(d.$slots, "header")
@@ -182,10 +186,10 @@ const le = { class: "flex items-center gap-4" }, ae = {
182
186
  ])) : c("", !0)
183
187
  ], 2));
184
188
  }
185
- }), be = { class: "flex items-center justify-between border-b border-gray-100 px-8 py-6" }, ve = { class: "text-xl font-semibold text-gray-900" }, ye = { class: "px-8 py-6" }, xe = {
189
+ }), ve = { class: "flex items-center justify-between border-b border-gray-100 px-8 py-6" }, be = { class: "text-xl font-semibold text-gray-900" }, ye = { class: "px-8 py-6" }, xe = {
186
190
  key: 0,
187
191
  class: "border-t border-gray-100 px-8 py-6 bg-gray-50"
188
- }, me = /* @__PURE__ */ L({
192
+ }, me = /* @__PURE__ */ S({
189
193
  __name: "Dialog",
190
194
  props: {
191
195
  modelValue: { type: Boolean, default: !1 },
@@ -193,8 +197,8 @@ const le = { class: "flex items-center gap-4" }, ae = {
193
197
  closeOnBackdrop: { type: Boolean, default: !0 }
194
198
  },
195
199
  emits: ["update:modelValue"],
196
- setup(t, { emit: v }) {
197
- const e = t, u = v, n = g({
200
+ setup(t, { emit: b }) {
201
+ const e = t, u = b, n = p({
198
202
  get: () => e.modelValue,
199
203
  set: (f) => u("update:modelValue", f)
200
204
  }), d = () => {
@@ -212,11 +216,11 @@ const le = { class: "flex items-center gap-4" }, ae = {
212
216
  }, [
213
217
  a("div", {
214
218
  class: "relative w-full max-w-2xl rounded-lg bg-white shadow-xl",
215
- onClick: i[0] || (i[0] = E(() => {
219
+ onClick: i[0] || (i[0] = H(() => {
216
220
  }, ["stop"]))
217
221
  }, [
218
- a("div", be, [
219
- a("h2", ve, [
222
+ a("div", ve, [
223
+ a("h2", be, [
220
224
  C(f.$slots, "title", {}, () => [
221
225
  K(w(t.title), 1)
222
226
  ], !0)
@@ -267,7 +271,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
267
271
  }, Se = {
268
272
  key: 2,
269
273
  class: "text-sm text-danger-500 mt-2"
270
- }, At = /* @__PURE__ */ L({
274
+ }, At = /* @__PURE__ */ S({
271
275
  __name: "FileUpload",
272
276
  props: {
273
277
  modelValue: { default: null },
@@ -283,19 +287,20 @@ const le = { class: "flex items-center gap-4" }, ae = {
283
287
  maxSize: { default: void 0 }
284
288
  },
285
289
  emits: ["update:modelValue", "change", "error"],
286
- setup(t, { emit: v }) {
287
- const e = t, u = v, n = V(null), d = V(!1), r = V(e.modelValue), f = V(""), i = g(() => ({
290
+ setup(t, { emit: b }) {
291
+ const e = t, u = b, n = j(null), d = j(!1), r = j(e.modelValue), f = j(""), i = p(() => ({
288
292
  sm: "w-20 h-20",
289
293
  md: "w-32 h-32",
290
- lg: "w-48 h-48"
294
+ lg: "w-48 h-48",
295
+ xl: "w-64 h-64"
291
296
  })[e.illustrationSize]), y = () => {
292
297
  var $;
293
298
  ($ = n.value) == null || $.click();
294
299
  }, x = () => {
295
300
  e.disabled || y();
296
- }, j = ($) => {
301
+ }, L = ($) => {
297
302
  e.disabled || (d.value = !0);
298
- }, S = () => {
303
+ }, D = () => {
299
304
  d.value = !1;
300
305
  }, _ = ($) => {
301
306
  if (f.value = "", e.maxSize && $.size > e.maxSize) {
@@ -303,31 +308,31 @@ const le = { class: "flex items-center gap-4" }, ae = {
303
308
  return f.value = `El archivo excede el tamaño máximo de ${B}MB`, u("error", f.value), !1;
304
309
  }
305
310
  return !0;
311
+ }, M = ($) => {
312
+ var I;
313
+ const z = (I = $.target.files) == null ? void 0 : I[0];
314
+ z && _(z) && (r.value = z, u("update:modelValue", z), u("change", z));
306
315
  }, O = ($) => {
307
- var D;
308
- const T = (D = $.target.files) == null ? void 0 : D[0];
309
- T && _(T) && (r.value = T, u("update:modelValue", T), u("change", T));
310
- }, F = ($) => {
311
- var T;
316
+ var z;
312
317
  d.value = !1;
313
- const B = (T = $.dataTransfer) == null ? void 0 : T.files[0];
318
+ const B = (z = $.dataTransfer) == null ? void 0 : z.files[0];
314
319
  B && _(B) && (r.value = B, u("update:modelValue", B), u("change", B));
315
320
  }, P = () => {
316
321
  r.value = null, f.value = "", n.value && (n.value.value = ""), u("update:modelValue", null), u("change", null);
317
- }, I = ($) => {
322
+ }, E = ($) => {
318
323
  if ($ === 0) return "0 Bytes";
319
- const B = 1024, T = ["Bytes", "KB", "MB", "GB"], D = Math.floor(Math.log($) / Math.log(B));
320
- return Math.round($ / Math.pow(B, D) * 100) / 100 + " " + T[D];
324
+ const B = 1024, z = ["Bytes", "KB", "MB", "GB"], I = Math.floor(Math.log($) / Math.log(B));
325
+ return Math.round($ / Math.pow(B, I) * 100) / 100 + " " + z[I];
321
326
  };
322
327
  return ($, B) => (s(), o("div", {
323
- class: b(["relative border-2 border-dashed rounded-lg p-8 transition-colors", [
328
+ class: v(["relative border-2 border-dashed rounded-lg p-8 transition-colors", [
324
329
  d.value ? "border-primary-700 bg-primary-50" : "border-gray-300 bg-white hover:border-primary-500",
325
330
  t.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"
326
331
  ]]),
327
332
  onClick: x,
328
- onDragover: E(j, ["prevent"]),
329
- onDragleave: E(S, ["prevent"]),
330
- onDrop: E(F, ["prevent"])
333
+ onDragover: H(L, ["prevent"]),
334
+ onDragleave: H(D, ["prevent"]),
335
+ onDrop: H(O, ["prevent"])
331
336
  }, [
332
337
  a("input", {
333
338
  ref_key: "fileInput",
@@ -337,11 +342,11 @@ const le = { class: "flex items-center gap-4" }, ae = {
337
342
  multiple: t.multiple,
338
343
  disabled: t.disabled,
339
344
  class: "hidden",
340
- onChange: O
345
+ onChange: M
341
346
  }, null, 40, ke),
342
347
  a("div", we, [
343
348
  a("div", {
344
- class: b([i.value, "flex items-center justify-center"])
349
+ class: v([i.value, "flex items-center justify-center"])
345
350
  }, [
346
351
  t.illustration ? (s(), o("img", {
347
352
  key: 0,
@@ -366,7 +371,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
366
371
  r.value ? (s(), o("div", {
367
372
  key: 0,
368
373
  class: "w-full max-w-md bg-gray-50 rounded-lg p-4 flex items-center justify-between",
369
- onClick: B[0] || (B[0] = E(() => {
374
+ onClick: B[0] || (B[0] = H(() => {
370
375
  }, ["stop"]))
371
376
  }, [
372
377
  a("div", ze, [
@@ -385,12 +390,12 @@ const le = { class: "flex items-center gap-4" }, ae = {
385
390
  ], -1)),
386
391
  a("div", Me, [
387
392
  a("p", Ve, w(r.value.name), 1),
388
- a("p", je, w(I(r.value.size)), 1)
393
+ a("p", je, w(E(r.value.size)), 1)
389
394
  ])
390
395
  ]),
391
396
  t.disabled ? c("", !0) : (s(), o("button", {
392
397
  key: 0,
393
- onClick: E(P, ["stop"]),
398
+ onClick: H(P, ["stop"]),
394
399
  class: "ml-3 text-gray-400 hover:text-danger-500 transition-colors"
395
400
  }, [...B[3] || (B[3] = [
396
401
  a("svg", {
@@ -414,7 +419,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
414
419
  }), De = ["stroke-width"], Oe = {
415
420
  class: "w-full h-full rounded-lg overflow-hidden",
416
421
  style: { "background-color": "#f7f7f7" }
417
- }, Ie = /* @__PURE__ */ L({
422
+ }, Ie = /* @__PURE__ */ S({
418
423
  __name: "Loader",
419
424
  props: {
420
425
  type: { default: "circular" },
@@ -425,7 +430,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
425
430
  progress: { default: void 0 }
426
431
  },
427
432
  setup(t) {
428
- const v = t, e = {
433
+ const b = t, e = {
429
434
  primary: "text-primary-700",
430
435
  secondary: "text-secondary-500",
431
436
  success: "text-success-500",
@@ -439,10 +444,10 @@ const le = { class: "flex items-center gap-4" }, ae = {
439
444
  warning: "bg-warning-500",
440
445
  danger: "bg-danger-500",
441
446
  info: "bg-info-500"
442
- }, n = g(() => [e[v.color]]), d = g(() => [u[v.color]]);
447
+ }, n = p(() => [e[b.color]]), d = p(() => [u[b.color]]);
443
448
  return (r, f) => t.type === "circular" ? (s(), o("div", {
444
449
  key: 0,
445
- class: b(n.value)
450
+ class: v(n.value)
446
451
  }, [
447
452
  (s(), o("svg", {
448
453
  class: "animate-spin",
@@ -471,7 +476,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
471
476
  }, [
472
477
  a("div", Oe, [
473
478
  a("div", {
474
- class: b([d.value, "h-full rounded-lg animate-linear-loader"]),
479
+ class: v([d.value, "h-full rounded-lg animate-linear-loader"]),
475
480
  style: W({ width: t.progress ? `${t.progress}%` : void 0 })
476
481
  }, null, 6)
477
482
  ])
@@ -492,7 +497,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
492
497
  fill: "none",
493
498
  stroke: "currentColor",
494
499
  viewBox: "0 0 24 24"
495
- }, Qe = /* @__PURE__ */ L({
500
+ }, Qe = /* @__PURE__ */ S({
496
501
  __name: "Menu",
497
502
  props: {
498
503
  items: { default: () => [] },
@@ -511,79 +516,80 @@ const le = { class: "flex items-center gap-4" }, ae = {
511
516
  zIndex: { default: 50 }
512
517
  },
513
518
  emits: ["open", "close", "select"],
514
- setup(t, { emit: v }) {
515
- const e = t, u = v, n = V(!1), d = V(null), r = V(null), f = V({}), i = g(() => [
519
+ setup(t, { emit: b }) {
520
+ const e = t, u = b, n = j(!1), d = j(null), r = j(null), f = j({}), i = p(() => [
516
521
  "inline-flex items-center justify-center px-4 py-2 text-sm font-medium",
517
522
  "bg-white border border-secondary-300 rounded-md",
518
523
  "hover:bg-secondary-50 focus:outline-none focus:ring-2 focus:ring-primary-500",
519
524
  "disabled:opacity-50 disabled:cursor-not-allowed",
520
525
  "transition-colors"
521
- ].join(" ")), y = g(() => [...[
526
+ ].join(" ")), y = p(() => [...[
522
527
  "fixed bg-white rounded-lg shadow-lg border border-secondary-200",
523
528
  "flex flex-col",
524
529
  "focus:outline-none"
525
- ], `z-${e.zIndex}`].join(" ")), x = g(() => "px-4 py-3 border-b border-secondary-200 bg-secondary-50"), j = g(() => "px-4 py-3 border-t border-secondary-200 bg-secondary-50"), S = g(() => "py-1 overflow-y-auto flex-1 min-h-0"), _ = g(() => "my-1 border-t border-secondary-200"), O = g(() => "px-4 py-2 text-xs font-semibold text-secondary-500 uppercase tracking-wider"), F = (l) => {
530
+ ], `z-${e.zIndex}`].join(" ")), x = p(() => "px-4 py-3 border-b border-secondary-200 bg-secondary-50"), L = p(() => "px-4 py-3 border-t border-secondary-200 bg-secondary-50"), D = p(() => "py-1 overflow-y-auto flex-1 min-h-0"), _ = p(() => "my-1 border-t border-secondary-200"), M = p(() => "px-4 py-2 text-xs font-semibold text-secondary-500 uppercase tracking-wider"), O = (l) => {
526
531
  const k = [
527
532
  "w-full flex items-center gap-3 px-4 py-2 text-sm text-left",
528
533
  "transition-colors focus:outline-none",
529
534
  "disabled:opacity-50 disabled:cursor-not-allowed"
530
- ], p = l.variant || "default", N = {
535
+ ], g = l.variant || "default", N = {
531
536
  default: "text-secondary-700 hover:bg-secondary-50 focus:bg-secondary-50",
532
537
  danger: "text-danger-600 hover:bg-danger-50 focus:bg-danger-50",
533
538
  success: "text-success-600 hover:bg-success-50 focus:bg-success-50",
534
539
  warning: "text-warning-600 hover:bg-warning-50 focus:bg-warning-50"
535
540
  };
536
- return [...k, N[p]].join(" ");
541
+ let T = "";
542
+ return l.color && (T = l.color, (l.color.includes("white") || l.color.includes("50")) && (T += " hover:text-black")), [...k, T || N[g]].join(" ");
537
543
  }, P = () => {
538
- e.disabled || (n.value ? $() : I());
539
- }, I = () => {
544
+ e.disabled || (n.value ? $() : E());
545
+ }, E = () => {
540
546
  n.value = !0, u("open"), J(() => {
541
- m(), document.addEventListener("click", T), document.addEventListener("keydown", D);
547
+ m(), document.addEventListener("click", z), document.addEventListener("keydown", I);
542
548
  });
543
549
  }, $ = () => {
544
- n.value = !1, u("close"), document.removeEventListener("click", T), document.removeEventListener("keydown", D);
550
+ n.value = !1, u("close"), document.removeEventListener("click", z), document.removeEventListener("keydown", I);
545
551
  }, B = (l) => {
546
552
  l.disabled || (l.action && l.action(), u("select", l), e.closeOnClick && !l.children && $());
547
- }, T = (l) => {
553
+ }, z = (l) => {
548
554
  const k = l.target;
549
555
  d.value && !d.value.contains(k) && r.value && !r.value.contains(k) && $();
550
- }, D = (l) => {
556
+ }, I = (l) => {
551
557
  l.key === "Escape" && $();
552
558
  }, h = (l) => {
553
559
  (l.key === "Enter" || l.key === " ") && (l.preventDefault(), P());
554
560
  }, m = () => {
555
561
  if (!d.value || !r.value) return;
556
- const l = d.value.getBoundingClientRect(), k = r.value.getBoundingClientRect(), p = window.innerWidth, N = window.innerHeight;
557
- let z = 0, M = 0;
562
+ const l = d.value.getBoundingClientRect(), k = r.value.getBoundingClientRect(), g = window.innerWidth, N = window.innerHeight;
563
+ let T = 0, V = 0;
558
564
  switch (e.position) {
559
565
  case "bottom-start":
560
- z = l.bottom + e.offset.y, M = l.left + e.offset.x;
566
+ T = l.bottom + e.offset.y, V = l.left + e.offset.x;
561
567
  break;
562
568
  case "bottom-end":
563
- z = l.bottom + e.offset.y, M = l.right - k.width + e.offset.x;
569
+ T = l.bottom + e.offset.y, V = l.right - k.width + e.offset.x;
564
570
  break;
565
571
  case "top-start":
566
- z = l.top - k.height - e.offset.y, M = l.left + e.offset.x;
572
+ T = l.top - k.height - e.offset.y, V = l.left + e.offset.x;
567
573
  break;
568
574
  case "top-end":
569
- z = l.top - k.height - e.offset.y, M = l.right - k.width + e.offset.x;
575
+ T = l.top - k.height - e.offset.y, V = l.right - k.width + e.offset.x;
570
576
  break;
571
577
  case "right-start":
572
- z = l.top + e.offset.y, M = l.right + e.offset.x;
578
+ T = l.top + e.offset.y, V = l.right + e.offset.x;
573
579
  break;
574
580
  case "right-end":
575
- z = l.bottom - k.height + e.offset.y, M = l.right + e.offset.x;
581
+ T = l.bottom - k.height + e.offset.y, V = l.right + e.offset.x;
576
582
  break;
577
583
  case "left-start":
578
- z = l.top + e.offset.y, M = l.left - k.width - e.offset.x;
584
+ T = l.top + e.offset.y, V = l.left - k.width - e.offset.x;
579
585
  break;
580
586
  case "left-end":
581
- z = l.bottom - k.height + e.offset.y, M = l.left - k.width - e.offset.x;
587
+ T = l.bottom - k.height + e.offset.y, V = l.left - k.width - e.offset.x;
582
588
  break;
583
589
  }
584
- M + k.width > p && (M = p - k.width - 8), M < 8 && (M = 8), z + k.height > N && (z = N - k.height - 8), z < 8 && (z = 8), f.value = {
585
- top: `${z}px`,
586
- left: `${M}px`,
590
+ V + k.width > g && (V = g - k.width - 8), V < 8 && (V = 8), T + k.height > N && (T = N - k.height - 8), T < 8 && (T = 8), f.value = {
591
+ top: `${T}px`,
592
+ left: `${V}px`,
587
593
  width: e.width === "auto" ? `${Math.max(l.width, 240)}px` : e.width,
588
594
  maxHeight: e.maxHeight,
589
595
  minWidth: "240px"
@@ -592,11 +598,11 @@ const le = { class: "flex items-center gap-4" }, ae = {
592
598
  return ee(() => {
593
599
  window.addEventListener("scroll", m, !0), window.addEventListener("resize", m);
594
600
  }), te(() => {
595
- window.removeEventListener("scroll", m, !0), window.removeEventListener("resize", m), document.removeEventListener("click", T), document.removeEventListener("keydown", D);
601
+ window.removeEventListener("scroll", m, !0), window.removeEventListener("resize", m), document.removeEventListener("click", z), document.removeEventListener("keydown", I);
596
602
  }), Y(() => e.items, () => {
597
603
  n.value && J(m);
598
604
  }, { deep: !0 }), (l, k) => (s(), o("div", {
599
- class: b(["menu-wrapper", { "w-full": t.fullWidth }])
605
+ class: v(["menu-wrapper", { "w-full": t.fullWidth }])
600
606
  }, [
601
607
  a("div", {
602
608
  ref_key: "triggerRef",
@@ -608,7 +614,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
608
614
  }, () => [
609
615
  a("button", {
610
616
  type: "button",
611
- class: b(i.value),
617
+ class: v(i.value),
612
618
  disabled: t.disabled,
613
619
  onClick: P,
614
620
  onKeydown: h,
@@ -622,7 +628,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
622
628
  ], !0),
623
629
  t.showChevron ? (s(), o("svg", {
624
630
  key: 0,
625
- class: b(["w-4 h-4 ml-2 transition-transform", n.value ? "rotate-180" : ""]),
631
+ class: v(["w-4 h-4 ml-2 transition-transform", n.value ? "rotate-180" : ""]),
626
632
  fill: "none",
627
633
  stroke: "currentColor",
628
634
  viewBox: "0 0 24 24"
@@ -642,76 +648,76 @@ const le = { class: "flex items-center gap-4" }, ae = {
642
648
  key: 0,
643
649
  ref_key: "menuRef",
644
650
  ref: r,
645
- class: b(y.value),
651
+ class: v(y.value),
646
652
  style: W(f.value),
647
- onClick: k[0] || (k[0] = E(() => {
653
+ onClick: k[0] || (k[0] = H(() => {
648
654
  }, ["stop"]))
649
655
  }, [
650
656
  l.$slots.header ? (s(), o("div", {
651
657
  key: 0,
652
- class: b(x.value)
658
+ class: v(x.value)
653
659
  }, [
654
660
  C(l.$slots, "header", { close: $ }, void 0, !0)
655
661
  ], 2)) : c("", !0),
656
662
  a("div", {
657
- class: b(S.value)
663
+ class: v(D.value)
658
664
  }, [
659
665
  C(l.$slots, "default", {
660
666
  close: $,
661
667
  isOpen: n.value
662
668
  }, () => [
663
- (s(!0), o(H, null, A(t.items, (p, N) => (s(), o(H, {
664
- key: p.id || N
669
+ (s(!0), o(F, null, A(t.items, (g, N) => (s(), o(F, {
670
+ key: g.id || N
665
671
  }, [
666
- p.type === "divider" ? (s(), o("div", {
672
+ g.type === "divider" ? (s(), o("div", {
667
673
  key: 0,
668
- class: b(_.value)
669
- }, null, 2)) : p.type === "header" ? (s(), o("div", {
674
+ class: v(_.value)
675
+ }, null, 2)) : g.type === "header" ? (s(), o("div", {
670
676
  key: 1,
671
- class: b(O.value)
672
- }, w(p.label), 3)) : (s(), o("button", {
677
+ class: v(M.value)
678
+ }, w(g.label), 3)) : (s(), o("button", {
673
679
  key: 2,
674
680
  type: "button",
675
- class: b(F(p)),
676
- disabled: p.disabled,
677
- onClick: (z) => B(p)
681
+ class: v(O(g)),
682
+ disabled: g.disabled,
683
+ onClick: (T) => B(g)
678
684
  }, [
679
- p.icon || l.$slots[`icon-${p.id}`] ? (s(), o("span", Fe, [
680
- C(l.$slots, `icon-${p.id}`, { item: p }, () => [
681
- typeof p.icon != "string" ? (s(), q(Z(p.icon), {
685
+ g.icon || l.$slots[`icon-${g.id}`] ? (s(), o("span", Fe, [
686
+ C(l.$slots, `icon-${g.id}`, { item: g }, () => [
687
+ typeof g.icon != "string" ? (s(), q(Z(g.icon), {
682
688
  key: 0,
683
689
  class: "w-5 h-5"
684
690
  })) : (s(), o("span", {
685
691
  key: 1,
686
- innerHTML: p.icon,
692
+ innerHTML: g.icon,
687
693
  class: "w-5 h-5 inline-block"
688
694
  }, null, 8, Pe))
689
695
  ], !0)
690
696
  ])) : c("", !0),
691
697
  a("div", We, [
692
- C(l.$slots, `item-${p.id}`, {
693
- item: p,
698
+ C(l.$slots, `item-${g.id}`, {
699
+ item: g,
694
700
  close: $
695
701
  }, () => [
696
702
  a("div", Ae, [
697
703
  a("span", {
698
704
  class: "truncate w-full",
699
- title: p.label
700
- }, w(p.label), 9, Ke),
701
- p.description ? (s(), o("span", {
705
+ title: g.label
706
+ }, w(g.label), 9, Ke),
707
+ g.description ? (s(), o("span", {
702
708
  key: 0,
703
709
  class: "text-xs text-secondary-500 truncate w-full",
704
- title: p.description
705
- }, w(p.description), 9, Re)) : c("", !0)
710
+ title: g.description
711
+ }, w(g.description), 9, Re)) : c("", !0)
706
712
  ])
707
713
  ], !0)
708
714
  ]),
709
- p.suffix || p.shortcut || l.$slots[`suffix-${p.id}`] ? (s(), o("span", Ne, [
710
- C(l.$slots, `suffix-${p.id}`, { item: p }, () => [
711
- p.shortcut ? (s(), o("span", qe, w(p.shortcut), 1)) : p.suffix ? (s(), o("span", Ue, w(p.suffix), 1)) : c("", !0)
715
+ g.suffix || g.shortcut || l.$slots[`suffix-${g.id}`] ? (s(), o("span", Ne, [
716
+ C(l.$slots, `suffix-${g.id}`, { item: g }, () => [
717
+ g.shortcut ? (s(), o("span", qe, w(g.shortcut), 1)) : g.suffix ? (s(), o("span", Ue, w(g.suffix), 1)) : c("", !0)
712
718
  ], !0)
713
719
  ])) : c("", !0),
714
- p.children && p.children.length > 0 ? (s(), o("svg", Ge, [...k[2] || (k[2] = [
720
+ g.children && g.children.length > 0 ? (s(), o("svg", Ge, [...k[2] || (k[2] = [
715
721
  a("path", {
716
722
  "stroke-linecap": "round",
717
723
  "stroke-linejoin": "round",
@@ -725,7 +731,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
725
731
  ], 2),
726
732
  l.$slots.footer ? (s(), o("div", {
727
733
  key: 1,
728
- class: b(j.value)
734
+ class: v(L.value)
729
735
  }, [
730
736
  C(l.$slots, "footer", { close: $ }, void 0, !0)
731
737
  ], 2)) : c("", !0)
@@ -738,7 +744,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
738
744
  ]))
739
745
  ], 2));
740
746
  }
741
- }), Rt = /* @__PURE__ */ R(Qe, [["__scopeId", "data-v-e155a86b"]]), Je = ["for"], Xe = {
747
+ }), Rt = /* @__PURE__ */ R(Qe, [["__scopeId", "data-v-335f2699"]]), Je = ["for"], Xe = {
742
748
  key: 0,
743
749
  class: "text-danger-600"
744
750
  }, Ye = { class: "relative" }, Ze = ["id", "disabled", "aria-expanded"], et = { class: "flex-1 text-left truncate" }, tt = {
@@ -763,7 +769,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
763
769
  }, pt = {
764
770
  key: 2,
765
771
  class: "mt-1 text-sm text-secondary-600"
766
- }, gt = /* @__PURE__ */ L({
772
+ }, gt = /* @__PURE__ */ S({
767
773
  __name: "Select",
768
774
  props: {
769
775
  modelValue: { default: null },
@@ -784,15 +790,15 @@ const le = { class: "flex items-center gap-4" }, ae = {
784
790
  menuPosition: { default: "bottom" }
785
791
  },
786
792
  emits: ["update:modelValue", "change", "action"],
787
- setup(t, { emit: v }) {
788
- const e = t, u = v, n = V(!1), d = V(""), r = V(null), f = g(
793
+ setup(t, { emit: b }) {
794
+ const e = t, u = b, n = j(!1), d = j(""), r = j(null), f = p(
789
795
  () => `select-${Math.random().toString(36).substr(2, 9)}`
790
- ), i = g(() => e.options.find((h) => h.value === e.modelValue) || null), y = g(() => {
796
+ ), i = p(() => e.options.find((h) => h.value === e.modelValue) || null), y = p(() => {
791
797
  if (!e.searchable || !d.value)
792
798
  return e.options;
793
799
  const h = d.value.toLowerCase();
794
800
  return e.options.filter((m) => m.label.toLowerCase().includes(h));
795
- }), x = g(() => "block text-sm font-semibold text-secondary-700 mb-1"), j = g(() => {
801
+ }), x = p(() => "block text-sm font-semibold text-secondary-700 mb-1"), L = p(() => {
796
802
  const h = "w-full flex items-center justify-between gap-2 border rounded-md transition-colors focus:outline-none focus:ring-2 focus:ring-primary-500 disabled:opacity-50 disabled:cursor-not-allowed", m = {
797
803
  sm: "px-3 py-1.5 text-sm",
798
804
  md: "px-4 py-2 text-base",
@@ -808,40 +814,40 @@ const le = { class: "flex items-center gap-4" }, ae = {
808
814
  l[e.variant],
809
815
  k
810
816
  ].join(" ");
811
- }), S = g(() => `absolute ${e.menuPosition === "top" ? "bottom-full mb-1" : "top-full mt-1"} left-0 right-0 bg-white rounded-lg shadow-lg border border-secondary-200 z-50 overflow-hidden`), _ = (h) => {
812
- const m = "w-full px-4 py-2 text-left hover:bg-primary-50 transition-colors focus:outline-none focus:bg-primary-50 disabled:opacity-50 disabled:cursor-not-allowed", l = F(h) ? "bg-primary-50" : "";
817
+ }), D = p(() => `absolute ${e.menuPosition === "top" ? "bottom-full mb-1" : "top-full mt-1"} left-0 right-0 bg-white rounded-lg shadow-lg border border-secondary-200 z-50 overflow-hidden`), _ = (h) => {
818
+ const m = "w-full px-4 py-2 text-left hover:bg-primary-50 transition-colors focus:outline-none focus:bg-primary-50 disabled:opacity-50 disabled:cursor-not-allowed", l = O(h) ? "bg-primary-50" : "";
813
819
  return [m, l].join(" ");
814
- }, O = (h) => {
820
+ }, M = (h) => {
815
821
  const m = "w-full px-4 py-2 text-left text-sm font-semibold transition-colors focus:outline-none flex items-center gap-3";
816
822
  return h.variant === "danger" ? `${m} text-danger-600 hover:bg-danger-50 focus:bg-danger-50` : `${m} text-secondary-700 hover:bg-secondary-50 focus:bg-secondary-50`;
817
- }, F = (h) => h.value === e.modelValue, P = () => {
823
+ }, O = (h) => h.value === e.modelValue, P = () => {
818
824
  e.disabled || (n.value = !n.value, n.value && e.searchable && J(() => {
819
825
  var h;
820
826
  (h = r.value) == null || h.focus();
821
827
  }));
822
- }, I = () => {
828
+ }, E = () => {
823
829
  n.value = !1, d.value = "";
824
830
  }, $ = (h) => {
825
- h.disabled || (u("update:modelValue", h.value), u("change", h), I());
831
+ h.disabled || (u("update:modelValue", h.value), u("change", h), E());
826
832
  }, B = (h) => {
827
- h.action && h.action(), u("action", h), I();
828
- }, T = (h) => {
833
+ h.action && h.action(), u("action", h), E();
834
+ }, z = (h) => {
829
835
  const m = h.relatedTarget;
830
836
  m && m.closest(".select-wrapper") || setTimeout(() => {
831
- I();
837
+ E();
832
838
  }, 200);
833
- }, D = (h) => {
834
- h.key === "Escape" ? I() : (h.key === "Enter" || h.key === " ") && (h.preventDefault(), P());
839
+ }, I = (h) => {
840
+ h.key === "Escape" ? E() : (h.key === "Enter" || h.key === " ") && (h.preventDefault(), P());
835
841
  };
836
842
  return Y(n, (h) => {
837
843
  h && (d.value = "");
838
844
  }), (h, m) => (s(), o("div", {
839
- class: b(["select-wrapper", { "w-full": t.fullWidth }])
845
+ class: v(["select-wrapper", { "w-full": t.fullWidth }])
840
846
  }, [
841
847
  t.label ? (s(), o("label", {
842
848
  key: 0,
843
849
  for: f.value,
844
- class: b(x.value)
850
+ class: v(x.value)
845
851
  }, [
846
852
  K(w(t.label) + " ", 1),
847
853
  t.required ? (s(), o("span", Xe, "*")) : c("", !0)
@@ -850,17 +856,17 @@ const le = { class: "flex items-center gap-4" }, ae = {
850
856
  a("button", {
851
857
  id: f.value,
852
858
  type: "button",
853
- class: b(j.value),
859
+ class: v(L.value),
854
860
  disabled: t.disabled,
855
861
  "aria-expanded": n.value,
856
862
  "aria-haspopup": !0,
857
863
  onClick: P,
858
- onBlur: T,
859
- onKeydown: D
864
+ onBlur: z,
865
+ onKeydown: I
860
866
  }, [
861
867
  a("span", et, w(i.value ? i.value.label : t.placeholder), 1),
862
868
  (s(), o("svg", {
863
- class: b(["w-5 h-5 flex-shrink-0 transition-transform text-secondary-600", n.value ? "rotate-180" : ""]),
869
+ class: v(["w-5 h-5 flex-shrink-0 transition-transform text-secondary-600", n.value ? "rotate-180" : ""]),
864
870
  fill: "none",
865
871
  stroke: "currentColor",
866
872
  viewBox: "0 0 24 24",
@@ -876,8 +882,8 @@ const le = { class: "flex items-center gap-4" }, ae = {
876
882
  ], 42, Ze),
877
883
  n.value ? (s(), o("div", {
878
884
  key: 0,
879
- class: b(S.value),
880
- onClick: m[2] || (m[2] = E(() => {
885
+ class: v(D.value),
886
+ onClick: m[2] || (m[2] = H(() => {
881
887
  }, ["stop"]))
882
888
  }, [
883
889
  t.searchable ? (s(), o("div", tt, [
@@ -888,23 +894,23 @@ const le = { class: "flex items-center gap-4" }, ae = {
888
894
  type: "text",
889
895
  class: "w-full px-3 py-2 text-sm border border-secondary-300 rounded-md focus:outline-none focus:ring-2 focus:ring-primary-500",
890
896
  placeholder: t.searchPlaceholder,
891
- onKeydown: m[1] || (m[1] = E(() => {
897
+ onKeydown: m[1] || (m[1] = H(() => {
892
898
  }, ["stop"]))
893
899
  }, null, 40, st), [
894
900
  [oe, d.value]
895
901
  ])
896
902
  ])) : c("", !0),
897
903
  a("div", ot, [
898
- y.value.length === 0 ? (s(), o("div", lt, w(t.emptyText), 1)) : (s(), o(H, { key: 1 }, [
899
- (s(!0), o(H, null, A(y.value, (l) => (s(), o("button", {
904
+ y.value.length === 0 ? (s(), o("div", lt, w(t.emptyText), 1)) : (s(), o(F, { key: 1 }, [
905
+ (s(!0), o(F, null, A(y.value, (l) => (s(), o("button", {
900
906
  key: l.value,
901
907
  type: "button",
902
- class: b(_(l)),
908
+ class: v(_(l)),
903
909
  onClick: (k) => $(l)
904
910
  }, [
905
911
  a("div", nt, [
906
912
  a("span", rt, w(l.label), 1),
907
- F(l) ? (s(), o("svg", it, [...m[4] || (m[4] = [
913
+ O(l) ? (s(), o("svg", it, [...m[4] || (m[4] = [
908
914
  a("path", {
909
915
  "stroke-linecap": "round",
910
916
  "stroke-linejoin": "round",
@@ -915,10 +921,10 @@ const le = { class: "flex items-center gap-4" }, ae = {
915
921
  ])
916
922
  ], 10, at))), 128)),
917
923
  t.actionItems.length > 0 ? (s(), o("div", dt)) : c("", !0),
918
- (s(!0), o(H, null, A(t.actionItems, (l) => (s(), o("button", {
924
+ (s(!0), o(F, null, A(t.actionItems, (l) => (s(), o("button", {
919
925
  key: l.id,
920
926
  type: "button",
921
- class: b(O(l)),
927
+ class: v(M(l)),
922
928
  onClick: (k) => B(l)
923
929
  }, [
924
930
  l.icon ? (s(), o("svg", {
@@ -939,12 +945,12 @@ const le = { class: "flex items-center gap-4" }, ae = {
939
945
  t.error ? (s(), o("p", ft, w(t.error), 1)) : t.helperText ? (s(), o("p", pt, w(t.helperText), 1)) : c("", !0),
940
946
  n.value ? (s(), o("div", {
941
947
  key: 3,
942
- onClick: I,
948
+ onClick: E,
943
949
  class: "fixed inset-0 z-40"
944
950
  })) : c("", !0)
945
951
  ], 2));
946
952
  }
947
- }), Nt = /* @__PURE__ */ R(gt, [["__scopeId", "data-v-f016a03c"]]), ht = /* @__PURE__ */ L({
953
+ }), Nt = /* @__PURE__ */ R(gt, [["__scopeId", "data-v-f016a03c"]]), ht = /* @__PURE__ */ S({
948
954
  __name: "Sidebar",
949
955
  props: {
950
956
  modelValue: { type: Boolean, default: !1 },
@@ -959,16 +965,16 @@ const le = { class: "flex items-center gap-4" }, ae = {
959
965
  padding: { default: "md" }
960
966
  },
961
967
  emits: ["update:modelValue", "close", "open"],
962
- setup(t, { emit: v }) {
963
- const e = t, u = v, n = g({
968
+ setup(t, { emit: b }) {
969
+ const e = t, u = b, n = p({
964
970
  get: () => e.modelValue,
965
971
  set: (_) => u("update:modelValue", _)
966
972
  }), d = () => {
967
973
  e.persistent || (n.value = !1, u("close"));
968
- }, r = g(() => e.position === "left" ? "slide-right" : "slide-left"), f = g(() => {
969
- const _ = "fixed top-0 h-full z-50 flex flex-col", O = e.position === "left" ? "left-0" : "right-0", F = e.shadow ? e.position === "left" ? "shadow-[2px_0_8px_rgba(0,0,0,0.1)]" : "shadow-[-2px_0_8px_rgba(0,0,0,0.1)]" : "";
970
- return [_, O, F].filter(Boolean).join(" ");
971
- }), i = g(() => ({
974
+ }, r = p(() => e.position === "left" ? "slide-right" : "slide-left"), f = p(() => {
975
+ const _ = "fixed top-0 h-full z-50 flex flex-col", M = e.position === "left" ? "left-0" : "right-0", O = e.shadow ? e.position === "left" ? "shadow-[2px_0_8px_rgba(0,0,0,0.1)]" : "shadow-[-2px_0_8px_rgba(0,0,0,0.1)]" : "";
976
+ return [_, M, O].filter(Boolean).join(" ");
977
+ }), i = p(() => ({
972
978
  width: e.width,
973
979
  backgroundColor: e.backgroundColor,
974
980
  top: e.overlayTop,
@@ -978,8 +984,8 @@ const le = { class: "flex items-center gap-4" }, ae = {
978
984
  sm: "p-2",
979
985
  md: "p-4",
980
986
  lg: "p-6"
981
- }, x = g(() => `flex items-center justify-between border-b border-gray-200 ${y[e.padding]}`), j = g(() => `flex-1 overflow-y-auto ${y[e.padding]}`), S = g(() => `border-t border-gray-200 ${y[e.padding]}`);
982
- return (_, O) => (s(), q(X, { to: "body" }, [
987
+ }, x = p(() => `flex items-center justify-between border-b border-gray-200 ${y[e.padding]}`), L = p(() => `flex-1 overflow-y-auto ${y[e.padding]}`), D = p(() => `border-t border-gray-200 ${y[e.padding]}`);
988
+ return (_, M) => (s(), q(X, { to: "body" }, [
983
989
  G(Q, { name: "fade" }, {
984
990
  default: U(() => [
985
991
  n.value && t.overlay ? (s(), o("div", {
@@ -995,12 +1001,12 @@ const le = { class: "flex items-center gap-4" }, ae = {
995
1001
  default: U(() => [
996
1002
  n.value ? (s(), o("aside", {
997
1003
  key: 0,
998
- class: b(f.value),
1004
+ class: v(f.value),
999
1005
  style: W(i.value)
1000
1006
  }, [
1001
1007
  _.$slots.header ? (s(), o("div", {
1002
1008
  key: 0,
1003
- class: b(x.value)
1009
+ class: v(x.value)
1004
1010
  }, [
1005
1011
  C(_.$slots, "header", {}, void 0, !0),
1006
1012
  t.closable ? (s(), o("button", {
@@ -1008,7 +1014,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
1008
1014
  onClick: d,
1009
1015
  class: "p-2 hover:bg-gray-100 rounded-md transition-colors",
1010
1016
  "aria-label": "Cerrar menú"
1011
- }, [...O[0] || (O[0] = [
1017
+ }, [...M[0] || (M[0] = [
1012
1018
  a("svg", {
1013
1019
  class: "w-5 h-5",
1014
1020
  fill: "none",
@@ -1025,13 +1031,13 @@ const le = { class: "flex items-center gap-4" }, ae = {
1025
1031
  ])])) : c("", !0)
1026
1032
  ], 2)) : c("", !0),
1027
1033
  a("div", {
1028
- class: b(j.value)
1034
+ class: v(L.value)
1029
1035
  }, [
1030
1036
  C(_.$slots, "default", {}, void 0, !0)
1031
1037
  ], 2),
1032
1038
  _.$slots.footer ? (s(), o("div", {
1033
1039
  key: 1,
1034
- class: b(S.value)
1040
+ class: v(D.value)
1035
1041
  }, [
1036
1042
  C(_.$slots, "footer", {}, void 0, !0)
1037
1043
  ], 2)) : c("", !0)
@@ -1041,7 +1047,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
1041
1047
  }, 8, ["name"])
1042
1048
  ]));
1043
1049
  }
1044
- }), qt = /* @__PURE__ */ R(ht, [["__scopeId", "data-v-fffb0e44"]]), bt = { class: "w-full overflow-x-auto" }, vt = { class: "w-full border-collapse" }, yt = { class: "w-full" }, xt = { class: "bg-white border-b border-gray-100 w-full" }, mt = ["onClick"], kt = { class: "flex items-center gap-2" }, wt = {
1050
+ }), qt = /* @__PURE__ */ R(ht, [["__scopeId", "data-v-fffb0e44"]]), vt = { class: "w-full overflow-x-auto" }, bt = { class: "w-full border-collapse" }, yt = { class: "w-full" }, xt = { class: "bg-white border-b border-gray-100 w-full" }, mt = ["onClick"], kt = { class: "flex items-center gap-2" }, wt = {
1045
1051
  key: 0,
1046
1052
  class: "text-xs text-gray-400"
1047
1053
  }, $t = { key: 0 }, Ct = { key: 1 }, Bt = { class: "w-full" }, _t = {
@@ -1050,32 +1056,32 @@ const le = { class: "flex items-center gap-4" }, ae = {
1050
1056
  }, Tt = {
1051
1057
  key: 1,
1052
1058
  class: "w-full px-6 py-4 bg-white"
1053
- }, zt = /* @__PURE__ */ L({
1059
+ }, zt = /* @__PURE__ */ S({
1054
1060
  __name: "Table",
1055
1061
  props: {
1056
1062
  columns: {},
1057
1063
  data: {}
1058
1064
  },
1059
1065
  setup(t) {
1060
- const v = t, e = V(null), u = V("asc"), n = (r) => {
1066
+ const b = t, e = j(null), u = j("asc"), n = (r) => {
1061
1067
  e.value === r ? u.value = u.value === "asc" ? "desc" : "asc" : (e.value = r, u.value = "asc");
1062
- }, d = g(() => {
1068
+ }, d = p(() => {
1063
1069
  if (!e.value)
1064
- return v.data;
1065
- const r = [...v.data];
1070
+ return b.data;
1071
+ const r = [...b.data];
1066
1072
  return r.sort((f, i) => {
1067
1073
  const y = f[e.value], x = i[e.value];
1068
1074
  return typeof y == "string" && typeof x == "string" ? u.value === "asc" ? y.localeCompare(x) : x.localeCompare(y) : typeof y == "number" && typeof x == "number" ? u.value === "asc" ? y - x : x - y : 0;
1069
1075
  }), r;
1070
1076
  });
1071
- return (r, f) => (s(), o("div", bt, [
1072
- a("table", vt, [
1077
+ return (r, f) => (s(), o("div", vt, [
1078
+ a("table", bt, [
1073
1079
  a("thead", yt, [
1074
1080
  a("tr", xt, [
1075
- (s(!0), o(H, null, A(t.columns, (i) => (s(), o("th", {
1081
+ (s(!0), o(F, null, A(t.columns, (i) => (s(), o("th", {
1076
1082
  key: i.key,
1077
1083
  style: W(i.width ? { width: i.width } : {}),
1078
- class: b([
1084
+ class: v([
1079
1085
  "px-8 py-4 text-left text-base font-semibold text-gray-900 border-0",
1080
1086
  i.sortable ? "cursor-pointer hover:text-primary-700 select-none transition-colors" : ""
1081
1087
  ]),
@@ -1091,11 +1097,11 @@ const le = { class: "flex items-center gap-4" }, ae = {
1091
1097
  ])
1092
1098
  ]),
1093
1099
  a("tbody", Bt, [
1094
- (s(!0), o(H, null, A(d.value, (i, y) => (s(), o("tr", {
1100
+ (s(!0), o(F, null, A(d.value, (i, y) => (s(), o("tr", {
1095
1101
  key: y,
1096
1102
  class: "w-full hover:bg-gray-50 transition-colors"
1097
1103
  }, [
1098
- (s(!0), o(H, null, A(t.columns, (x) => (s(), o("td", {
1104
+ (s(!0), o(F, null, A(t.columns, (x) => (s(), o("td", {
1099
1105
  key: `${y}-${x.key}`,
1100
1106
  class: "px-8 py-4 text-base text-gray-700 border-0"
1101
1107
  }, [
@@ -1122,31 +1128,31 @@ const le = { class: "flex items-center gap-4" }, ae = {
1122
1128
  }), Ut = /* @__PURE__ */ R(zt, [["__scopeId", "data-v-6b3ff0a8"]]), Mt = { class: "w-full" }, Vt = {
1123
1129
  class: "flex border-b border-gray-100",
1124
1130
  role: "tablist"
1125
- }, jt = ["aria-selected", "onClick"], Lt = { role: "tabpanel" }, St = "relative px-6 py-3 text-base font-semibold tracking-wide transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary-500", Dt = "text-primary-700 border-b-4 border-primary-700", Ot = "text-gray-600 border-b-4 border-transparent hover:text-gray-800", Gt = /* @__PURE__ */ L({
1131
+ }, jt = ["aria-selected", "onClick"], Lt = { role: "tabpanel" }, St = "relative px-6 py-3 text-base font-semibold tracking-wide transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary-500", Dt = "text-primary-700 border-b-4 border-primary-700", Ot = "text-gray-600 border-b-4 border-transparent hover:text-gray-800", Gt = /* @__PURE__ */ S({
1126
1132
  __name: "Tabs",
1127
1133
  props: {
1128
1134
  modelValue: {},
1129
1135
  tabs: {}
1130
1136
  },
1131
1137
  emits: ["update:modelValue"],
1132
- setup(t, { emit: v }) {
1133
- const e = t, u = v, n = (i) => e.modelValue === i, d = (i) => {
1138
+ setup(t, { emit: b }) {
1139
+ const e = t, u = b, n = (i) => e.modelValue === i, d = (i) => {
1134
1140
  n(i) || u("update:modelValue", i);
1135
- }, r = g(() => e.modelValue), f = g(
1141
+ }, r = p(() => e.modelValue), f = p(
1136
1142
  () => e.tabs.find((i) => i.value === r.value)
1137
1143
  );
1138
1144
  return (i, y) => (s(), o("div", Mt, [
1139
1145
  a("div", Vt, [
1140
- (s(!0), o(H, null, A(t.tabs, (x) => (s(), o("button", {
1146
+ (s(!0), o(F, null, A(t.tabs, (x) => (s(), o("button", {
1141
1147
  key: x.value,
1142
1148
  type: "button",
1143
- class: b([
1149
+ class: v([
1144
1150
  St,
1145
1151
  n(x.value) ? Dt : Ot
1146
1152
  ]),
1147
1153
  "aria-selected": n(x.value),
1148
1154
  role: "tab",
1149
- onClick: (j) => d(x.value)
1155
+ onClick: (L) => d(x.value)
1150
1156
  }, w(x.label), 11, jt))), 128))
1151
1157
  ]),
1152
1158
  a("div", Lt, [
@@ -1157,7 +1163,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
1157
1163
  ])
1158
1164
  ]));
1159
1165
  }
1160
- }), It = "font-sans", Qt = /* @__PURE__ */ L({
1166
+ }), It = "font-sans", Qt = /* @__PURE__ */ S({
1161
1167
  __name: "Text",
1162
1168
  props: {
1163
1169
  variant: { default: "body1" },
@@ -1169,7 +1175,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
1169
1175
  weight: {}
1170
1176
  },
1171
1177
  setup(t) {
1172
- const v = {
1178
+ const b = {
1173
1179
  h1: "text-[40px] leading-[57px] tracking-[0px] font-extrabold",
1174
1180
  h2: "text-[40px] leading-[57px] tracking-[0px] font-bold",
1175
1181
  h3: "text-[28px] leading-[39px] tracking-[0px] font-extrabold",
@@ -1229,14 +1235,14 @@ const le = { class: "flex items-center gap-4" }, ae = {
1229
1235
  semibold: "font-semibold",
1230
1236
  bold: "font-bold",
1231
1237
  extrabold: "font-extrabold"
1232
- }, r = t, f = g(() => r.variant), i = g(() => r.color), y = g(() => r.align), x = g(() => r.as || e[f.value] || "span"), j = g(() => r.weight ? d[r.weight] : "");
1233
- return (S, _) => (s(), q(Z(x.value), {
1234
- class: b([
1238
+ }, r = t, f = p(() => r.variant), i = p(() => r.color), y = p(() => r.align), x = p(() => r.as || e[f.value] || "span"), L = p(() => r.weight ? d[r.weight] : "");
1239
+ return (D, _) => (s(), q(Z(x.value), {
1240
+ class: v([
1235
1241
  It,
1236
- v[f.value],
1242
+ b[f.value],
1237
1243
  n[i.value],
1238
1244
  u[y.value],
1239
- j.value,
1245
+ L.value,
1240
1246
  {
1241
1247
  uppercase: t.uppercase || f.value === "overline",
1242
1248
  truncate: t.truncate
@@ -1244,7 +1250,7 @@ const le = { class: "flex items-center gap-4" }, ae = {
1244
1250
  ])
1245
1251
  }, {
1246
1252
  default: U(() => [
1247
- C(S.$slots, "default")
1253
+ C(D.$slots, "default")
1248
1254
  ]),
1249
1255
  _: 3
1250
1256
  }, 8, ["class"]));