@iaclinical/components 1.0.15 → 1.0.17

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,14 +1,15 @@
1
- import { defineComponent as O, computed as d, createElementBlock as o, openBlock as s, normalizeClass as p, createElementVNode as l, createCommentVNode as g, renderSlot as B, toDisplayString as w, createBlock as q, Teleport as J, createVNode as G, Transition as Q, withCtx as U, withModifiers as F, createTextVNode as E, ref as P, normalizeStyle as R, onMounted as ee, onUnmounted as te, watch as X, nextTick as Z, Fragment as A, renderList as W, resolveDynamicComponent as Y, withDirectives as se, vModelText as oe } from "vue";
2
- const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1
+ import { defineComponent as O, computed as c, createElementBlock as o, openBlock as s, normalizeClass as x, createElementVNode as l, createCommentVNode as h, renderSlot as B, toDisplayString as w, createBlock as q, Teleport as J, createVNode as G, Transition as Q, withCtx as U, withModifiers as F, createTextVNode as P, ref as E, unref as ee, normalizeStyle as R, onMounted as te, onUnmounted as se, watch as X, nextTick as Z, Fragment as A, renderList as W, resolveDynamicComponent as Y, withDirectives as oe, vModelText as le } from "vue";
2
+ import { Icon as ae } from "@iconify/vue";
3
+ const ne = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, re = {
3
4
  key: 1,
4
5
  class: "text-base sm:text-lg font-bold text-primary-50 font-poppins whitespace-nowrap"
5
- }, ne = { class: "flex flex-1 justify-center items-center min-w-0" }, re = {
6
+ }, ie = { class: "flex flex-1 justify-center items-center min-w-0" }, de = {
6
7
  key: 0,
7
8
  class: "text-base sm:text-lg font-bold text-primary-50 font-poppins truncate"
8
- }, ie = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, de = {
9
+ }, ue = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ce = {
9
10
  key: 0,
10
11
  class: "text-base sm:text-lg font-bold text-primary-50 font-poppins whitespace-nowrap"
11
- }, ue = /* @__PURE__ */ O({
12
+ }, fe = /* @__PURE__ */ O({
12
13
  __name: "AppBar",
13
14
  props: {
14
15
  title: { default: "" },
@@ -20,35 +21,35 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
20
21
  height: { default: "md" }
21
22
  },
22
23
  emits: ["toggle-menu"],
23
- setup(t, { emit: b }) {
24
- const e = t, i = b, n = d(() => {
25
- const r = "flex flex-row items-center justify-between gap-2 sm:gap-4 px-3 sm:px-6 z-50 w-full", f = {
24
+ setup(t, { emit: u }) {
25
+ const e = t, d = u, r = c(() => {
26
+ const i = "flex flex-row items-center justify-between gap-2 sm:gap-4 px-3 sm:px-6 z-50 w-full", p = {
26
27
  default: "bg-primary-700 text-primary-50",
27
28
  dark: "bg-secondary-900 text-white",
28
29
  light: "bg-white text-secondary-900 border-b border-secondary-200"
29
- }, u = {
30
+ }, a = {
30
31
  sm: "h-12",
31
32
  md: "h-14",
32
33
  lg: "h-16"
33
- }, v = e.sticky ? "sticky top-0" : "", x = e.shadow ? "shadow-md" : "";
34
+ }, g = e.sticky ? "sticky top-0" : "", v = e.shadow ? "shadow-md" : "";
34
35
  return [
35
- r,
36
- f[e.variant],
37
- u[e.height],
38
- v,
39
- x
36
+ i,
37
+ p[e.variant],
38
+ a[e.height],
39
+ g,
40
+ v
40
41
  ].join(" ");
41
42
  });
42
- return (r, f) => (s(), o("header", {
43
- class: p(n.value)
43
+ return (i, p) => (s(), o("header", {
44
+ class: x(r.value)
44
45
  }, [
45
- l("div", le, [
46
+ l("div", ne, [
46
47
  t.showMenuButton ? (s(), o("button", {
47
48
  key: 0,
48
- onClick: f[0] || (f[0] = (u) => i("toggle-menu")),
49
+ onClick: p[0] || (p[0] = (a) => d("toggle-menu")),
49
50
  class: "p-1.5 sm:p-2 hover:bg-primary-600 rounded-md transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
50
51
  "aria-label": "Toggle menu"
51
- }, [...f[1] || (f[1] = [
52
+ }, [...p[1] || (p[1] = [
52
53
  l("svg", {
53
54
  class: "w-5 h-5 sm:w-6 sm:h-6 text-primary-50",
54
55
  fill: "none",
@@ -63,29 +64,29 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
63
64
  d: "M4 6h16M4 12h16M4 18h16"
64
65
  })
65
66
  ], -1)
66
- ])])) : g("", !0),
67
- t.title && t.titlePosition === "left" ? (s(), o("div", ae, w(t.title), 1)) : g("", !0),
68
- B(r.$slots, "left", {}, void 0, !0)
69
- ]),
70
- l("div", ne, [
71
- t.title && t.titlePosition === "center" ? (s(), o("div", re, w(t.title), 1)) : g("", !0),
72
- B(r.$slots, "center", {}, void 0, !0)
67
+ ])])) : h("", !0),
68
+ t.title && t.titlePosition === "left" ? (s(), o("div", re, w(t.title), 1)) : h("", !0),
69
+ B(i.$slots, "left", {}, void 0, !0)
73
70
  ]),
74
71
  l("div", ie, [
75
- t.title && t.titlePosition === "right" ? (s(), o("div", de, w(t.title), 1)) : g("", !0),
76
- B(r.$slots, "right", {}, void 0, !0)
72
+ t.title && t.titlePosition === "center" ? (s(), o("div", de, w(t.title), 1)) : h("", !0),
73
+ B(i.$slots, "center", {}, void 0, !0)
74
+ ]),
75
+ l("div", ue, [
76
+ t.title && t.titlePosition === "right" ? (s(), o("div", ce, w(t.title), 1)) : h("", !0),
77
+ B(i.$slots, "right", {}, void 0, !0)
77
78
  ])
78
79
  ], 2));
79
80
  }
80
- }), N = (t, b) => {
81
+ }), N = (t, u) => {
81
82
  const e = t.__vccOpts || t;
82
- for (const [i, n] of b)
83
- e[i] = n;
83
+ for (const [d, r] of u)
84
+ e[d] = r;
84
85
  return e;
85
- }, ts = /* @__PURE__ */ N(ue, [["__scopeId", "data-v-c5861315"]]), ce = ["type", "disabled", "aria-label"], fe = {
86
+ }, as = /* @__PURE__ */ N(fe, [["__scopeId", "data-v-c5861315"]]), pe = ["type", "disabled", "aria-label"], ve = {
86
87
  key: 0,
87
88
  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
- }, ss = /* @__PURE__ */ O({
89
+ }, ns = /* @__PURE__ */ O({
89
90
  __name: "Button",
90
91
  props: {
91
92
  variant: { default: "primary" },
@@ -99,9 +100,9 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
99
100
  textColorHover: { default: void 0 }
100
101
  },
101
102
  emits: ["click"],
102
- setup(t, { emit: b }) {
103
- const e = t, i = b, n = d(() => e.variant === "icon"), r = d(() => e.badge > 99 ? "99+" : e.badge.toString()), f = d(() => {
104
- const v = "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", x = {
103
+ setup(t, { emit: u }) {
104
+ const e = t, d = u, r = c(() => e.variant === "icon"), i = c(() => e.badge > 99 ? "99+" : e.badge.toString()), p = c(() => {
105
+ const g = "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", v = {
105
106
  primary: "bg-primary-500 text-white hover:bg-primary-600 active:bg-primary-700 focus-visible:ring-primary-700",
106
107
  secondary: "bg-secondary-200 text-secondary-900 hover:bg-secondary-300 focus-visible:ring-secondary-500",
107
108
  outline: "border border-secondary-300 bg-transparent hover:bg-secondary-100 focus-visible:ring-secondary-500",
@@ -110,42 +111,42 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
110
111
  icon: "hover:bg-secondary-100 focus-visible:ring-secondary-500 relative",
111
112
  text: "bg-transparent border-0 focus-visible:ring-0 focus-visible:ring-offset-0"
112
113
  }, y = {
113
- sm: n.value ? "p-1.5" : "h-8 px-3 text-sm",
114
- md: n.value ? "p-2" : "h-10 px-4 text-base",
115
- lg: n.value ? "p-3" : "h-12 px-6 text-lg"
116
- }, c = {
114
+ sm: r.value ? "p-1.5" : "h-8 px-3 text-sm",
115
+ md: r.value ? "p-2" : "h-10 px-4 text-base",
116
+ lg: r.value ? "p-3" : "h-12 px-6 text-lg"
117
+ }, f = {
117
118
  full: "rounded-full",
118
119
  xl: "rounded-2xl",
119
120
  lg: "rounded-xl",
120
121
  md: "rounded-lg",
121
122
  sm: "rounded-md",
122
123
  none: "rounded-none"
123
- }, _ = e.textColor ? e.textColor : "", C = d(() => {
124
- var S, V;
125
- return e.textColorHover ? e.textColorHover : (S = e.textColor) != null && S.includes("white") || (V = e.textColor) != null && V.includes("50") ? "hover:text-black" : "";
124
+ }, _ = e.textColor ? e.textColor : "", C = c(() => {
125
+ var I, V;
126
+ return e.textColorHover ? e.textColorHover : (I = e.textColor) != null && I.includes("white") || (V = e.textColor) != null && V.includes("50") ? "hover:text-black" : "";
126
127
  });
127
- return `${v} ${x[e.variant]} ${y[e.size]} ${c[e.radius]} ${_} ${C.value}`;
128
- }), u = (v) => {
129
- e.disabled || i("click", v);
128
+ return `${g} ${v[e.variant]} ${y[e.size]} ${f[e.radius]} ${_} ${C.value}`;
129
+ }), a = (g) => {
130
+ e.disabled || d("click", g);
130
131
  };
131
- return (v, x) => (s(), o("button", {
132
- class: p(f.value),
132
+ return (g, v) => (s(), o("button", {
133
+ class: x(p.value),
133
134
  type: t.type,
134
135
  disabled: t.disabled,
135
- onClick: u,
136
+ onClick: a,
136
137
  "aria-label": t.ariaLabel
137
138
  }, [
138
- B(v.$slots, "default"),
139
- n.value && t.badge && t.badge > 0 ? (s(), o("span", fe, w(r.value), 1)) : g("", !0)
140
- ], 10, ce));
139
+ B(g.$slots, "default"),
140
+ r.value && t.badge && t.badge > 0 ? (s(), o("span", ve, w(i.value), 1)) : h("", !0)
141
+ ], 10, pe));
141
142
  }
142
- }), pe = {
143
+ }), ge = {
143
144
  key: 0,
144
145
  class: "border-b border-gray-100 px-6 py-4"
145
- }, ge = { class: "px-6 py-4" }, ve = {
146
+ }, xe = { class: "px-6 py-4" }, he = {
146
147
  key: 1,
147
148
  class: "border-t border-gray-100 px-6 py-4 bg-gray-50"
148
- }, os = /* @__PURE__ */ O({
149
+ }, rs = /* @__PURE__ */ O({
149
150
  __name: "Card",
150
151
  props: {
151
152
  shadow: { default: "md" },
@@ -153,43 +154,43 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
153
154
  bordered: { type: Boolean, default: !1 }
154
155
  },
155
156
  setup(t) {
156
- const b = t, e = {
157
+ const u = t, e = {
157
158
  none: "",
158
159
  sm: "shadow-sm",
159
160
  md: "shadow",
160
161
  lg: "shadow-lg",
161
162
  xl: "shadow-xl"
162
- }, i = {
163
+ }, d = {
163
164
  none: "rounded-none",
164
165
  sm: "rounded-sm",
165
166
  md: "rounded-md",
166
167
  lg: "rounded-lg",
167
168
  xl: "rounded-xl",
168
169
  full: "rounded-full"
169
- }, n = d(() => [
170
+ }, r = c(() => [
170
171
  "w-full bg-white",
171
- e[b.shadow],
172
- i[b.rounded],
173
- b.bordered ? "border border-gray-200" : ""
172
+ e[u.shadow],
173
+ d[u.rounded],
174
+ u.bordered ? "border border-gray-200" : ""
174
175
  ]);
175
- return (r, f) => (s(), o("div", {
176
- class: p(n.value)
176
+ return (i, p) => (s(), o("div", {
177
+ class: x(r.value)
177
178
  }, [
178
- r.$slots.header ? (s(), o("div", pe, [
179
- B(r.$slots, "header")
180
- ])) : g("", !0),
181
- l("div", ge, [
182
- B(r.$slots, "default")
179
+ i.$slots.header ? (s(), o("div", ge, [
180
+ B(i.$slots, "header")
181
+ ])) : h("", !0),
182
+ l("div", xe, [
183
+ B(i.$slots, "default")
183
184
  ]),
184
- r.$slots.footer ? (s(), o("div", ve, [
185
- B(r.$slots, "footer")
186
- ])) : g("", !0)
185
+ i.$slots.footer ? (s(), o("div", he, [
186
+ B(i.$slots, "footer")
187
+ ])) : h("", !0)
187
188
  ], 2));
188
189
  }
189
- }), xe = { class: "flex items-center justify-between border-b border-gray-100/60 px-8 py-6" }, be = { class: "text-xl font-semibold text-gray-900" }, he = { class: "px-8 py-6" }, ye = {
190
+ }), be = { class: "flex items-center justify-between border-b border-gray-100/60 px-8 py-6" }, ye = { class: "text-xl font-semibold text-gray-900" }, me = { class: "px-8 py-6" }, we = {
190
191
  key: 0,
191
192
  class: "border-t border-gray-100 px-8 py-6 bg-gray-50"
192
- }, me = /* @__PURE__ */ O({
193
+ }, ke = /* @__PURE__ */ O({
193
194
  __name: "Dialog",
194
195
  props: {
195
196
  modelValue: { type: Boolean, default: !1 },
@@ -197,40 +198,40 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
197
198
  closeOnBackdrop: { type: Boolean, default: !0 }
198
199
  },
199
200
  emits: ["update:modelValue", "close"],
200
- setup(t, { emit: b }) {
201
- const e = t, i = b, n = d({
201
+ setup(t, { emit: u }) {
202
+ const e = t, d = u, r = c({
202
203
  get: () => e.modelValue,
203
- set: (u) => i("update:modelValue", u)
204
- }), r = () => {
205
- n.value = !1, i("close");
206
- }, f = () => {
207
- e.closeOnBackdrop && r();
204
+ set: (a) => d("update:modelValue", a)
205
+ }), i = () => {
206
+ r.value = !1, d("close");
207
+ }, p = () => {
208
+ e.closeOnBackdrop && i();
208
209
  };
209
- return (u, v) => (s(), q(J, { to: "body" }, [
210
+ return (a, g) => (s(), q(J, { to: "body" }, [
210
211
  G(Q, { name: "dialog" }, {
211
212
  default: U(() => [
212
- n.value ? (s(), o("div", {
213
+ r.value ? (s(), o("div", {
213
214
  key: 0,
214
215
  class: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 px-4",
215
- onClick: f
216
+ onClick: p
216
217
  }, [
217
218
  l("div", {
218
219
  class: "relative w-full rounded-lg bg-white shadow-xl sm:max-w-lg md:max-w-2xl",
219
- onClick: v[0] || (v[0] = F(() => {
220
+ onClick: g[0] || (g[0] = F(() => {
220
221
  }, ["stop"]))
221
222
  }, [
222
- l("div", xe, [
223
- l("h2", be, [
224
- B(u.$slots, "title", {}, () => [
225
- E(w(t.title), 1)
223
+ l("div", be, [
224
+ l("h2", ye, [
225
+ B(a.$slots, "title", {}, () => [
226
+ P(w(t.title), 1)
226
227
  ], !0)
227
228
  ]),
228
229
  l("button", {
229
230
  type: "button",
230
231
  class: "inline-flex items-center justify-center rounded-md p-1 text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
231
232
  "aria-label": "Cerrar diálogo",
232
- onClick: r
233
- }, [...v[1] || (v[1] = [
233
+ onClick: i
234
+ }, [...g[1] || (g[1] = [
234
235
  l("svg", {
235
236
  class: "h-6 w-6",
236
237
  fill: "none",
@@ -246,32 +247,32 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
246
247
  ], -1)
247
248
  ])])
248
249
  ]),
249
- l("div", he, [
250
- B(u.$slots, "default", {}, void 0, !0)
250
+ l("div", me, [
251
+ B(a.$slots, "default", {}, void 0, !0)
251
252
  ]),
252
- u.$slots.footer ? (s(), o("div", ye, [
253
- B(u.$slots, "footer", {}, void 0, !0)
254
- ])) : g("", !0)
253
+ a.$slots.footer ? (s(), o("div", we, [
254
+ B(a.$slots, "footer", {}, void 0, !0)
255
+ ])) : h("", !0)
255
256
  ])
256
- ])) : g("", !0)
257
+ ])) : h("", !0)
257
258
  ]),
258
259
  _: 3
259
260
  })
260
261
  ]));
261
262
  }
262
- }), ls = /* @__PURE__ */ N(me, [["__scopeId", "data-v-37e19754"]]), we = ["accept", "multiple", "disabled"], ke = { class: "flex flex-col items-center justify-center gap-4 text-center" }, $e = ["src", "alt"], Ce = {
263
+ }), is = /* @__PURE__ */ N(ke, [["__scopeId", "data-v-37e19754"]]), $e = ["accept", "multiple", "disabled"], Ce = { class: "flex flex-col items-center justify-center gap-4 text-center" }, Be = ["src", "alt"], ze = {
263
264
  key: 1,
264
265
  class: "w-full h-full text-gray-400",
265
266
  fill: "none",
266
267
  stroke: "currentColor",
267
268
  viewBox: "0 0 24 24"
268
- }, Be = { class: "text-center" }, Me = { class: "text-base font-medium text-gray-700" }, Te = { class: "text-primary-700" }, _e = { class: "flex items-center gap-3 flex-1 min-w-0" }, ze = { class: "flex-1 min-w-0" }, je = { class: "text-sm font-medium text-gray-900 truncate" }, Ve = { class: "text-xs text-gray-500" }, Se = {
269
+ }, Me = { class: "text-center" }, _e = { class: "text-base font-medium text-gray-700" }, Te = { class: "text-primary-700" }, je = { class: "flex items-center gap-3 flex-1 min-w-0" }, Ve = { class: "flex-1 min-w-0" }, Ie = { class: "text-sm font-medium text-gray-900 truncate" }, Se = { class: "text-xs text-gray-500" }, Le = {
269
270
  key: 1,
270
271
  class: "text-xs text-gray-500 mt-2"
271
- }, Le = {
272
+ }, Oe = {
272
273
  key: 2,
273
274
  class: "text-sm text-danger-500 mt-2"
274
- }, as = /* @__PURE__ */ O({
275
+ }, ds = /* @__PURE__ */ O({
275
276
  __name: "FileUpload",
276
277
  props: {
277
278
  modelValue: { default: null },
@@ -287,73 +288,73 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
287
288
  maxSize: { default: void 0 }
288
289
  },
289
290
  emits: ["update:modelValue", "change", "error"],
290
- setup(t, { emit: b }) {
291
- const e = t, i = b, n = P(null), r = P(!1), f = P(e.modelValue), u = P(""), v = d(() => ({
291
+ setup(t, { emit: u }) {
292
+ const e = t, d = u, r = E(null), i = E(!1), p = E(e.modelValue), a = E(""), g = c(() => ({
292
293
  sm: "w-20 h-20",
293
294
  md: "w-32 h-32",
294
295
  lg: "w-48 h-48",
295
296
  xl: "w-64 h-64"
296
- })[e.illustrationSize]), x = () => {
297
+ })[e.illustrationSize]), v = () => {
297
298
  var k;
298
- (k = n.value) == null || k.click();
299
+ (k = r.value) == null || k.click();
299
300
  }, y = () => {
300
- e.disabled || x();
301
- }, c = (k) => {
302
- e.disabled || (r.value = !0);
301
+ e.disabled || v();
302
+ }, f = (k) => {
303
+ e.disabled || (i.value = !0);
303
304
  }, _ = () => {
304
- r.value = !1;
305
+ i.value = !1;
305
306
  }, C = (k) => {
306
- if (u.value = "", e.maxSize && k.size > e.maxSize) {
307
+ if (a.value = "", e.maxSize && k.size > e.maxSize) {
307
308
  const j = (e.maxSize / 1048576).toFixed(2);
308
- return u.value = `El archivo excede el tamaño máximo de ${j}MB`, i("error", u.value), !1;
309
+ return a.value = `El archivo excede el tamaño máximo de ${j}MB`, d("error", a.value), !1;
309
310
  }
310
311
  return !0;
311
- }, S = (k) => {
312
+ }, I = (k) => {
312
313
  var H;
313
- const I = (H = k.target.files) == null ? void 0 : H[0];
314
- I && C(I) && (f.value = I, i("update:modelValue", I), i("change", I));
314
+ const L = (H = k.target.files) == null ? void 0 : H[0];
315
+ L && C(L) && (p.value = L, d("update:modelValue", L), d("change", L));
315
316
  }, V = (k) => {
316
- var I;
317
- r.value = !1;
318
- const j = (I = k.dataTransfer) == null ? void 0 : I.files[0];
319
- j && C(j) && (f.value = j, i("update:modelValue", j), i("change", j));
320
- }, z = () => {
321
- f.value = null, u.value = "", n.value && (n.value.value = ""), i("update:modelValue", null), i("change", null);
322
- }, h = (k) => {
317
+ var L;
318
+ i.value = !1;
319
+ const j = (L = k.dataTransfer) == null ? void 0 : L.files[0];
320
+ j && C(j) && (p.value = j, d("update:modelValue", j), d("change", j));
321
+ }, T = () => {
322
+ p.value = null, a.value = "", r.value && (r.value.value = ""), d("update:modelValue", null), d("change", null);
323
+ }, b = (k) => {
323
324
  if (k === 0) return "0 Bytes";
324
- const j = 1024, I = ["Bytes", "KB", "MB", "GB"], H = Math.floor(Math.log(k) / Math.log(j));
325
- return Math.round(k / Math.pow(j, H) * 100) / 100 + " " + I[H];
325
+ const j = 1024, L = ["Bytes", "KB", "MB", "GB"], H = Math.floor(Math.log(k) / Math.log(j));
326
+ return Math.round(k / Math.pow(j, H) * 100) / 100 + " " + L[H];
326
327
  };
327
328
  return (k, j) => (s(), o("div", {
328
- class: p(["relative border-2 border-dashed rounded-lg p-8 transition-colors", [
329
- r.value ? "border-primary-700 bg-primary-50" : "border-gray-300 bg-white hover:border-primary-500",
329
+ class: x(["relative border-2 border-dashed rounded-lg p-8 transition-colors", [
330
+ i.value ? "border-primary-700 bg-primary-50" : "border-gray-300 bg-white hover:border-primary-500",
330
331
  t.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"
331
332
  ]]),
332
333
  onClick: y,
333
- onDragover: F(c, ["prevent"]),
334
+ onDragover: F(f, ["prevent"]),
334
335
  onDragleave: F(_, ["prevent"]),
335
336
  onDrop: F(V, ["prevent"])
336
337
  }, [
337
338
  l("input", {
338
339
  ref_key: "fileInput",
339
- ref: n,
340
+ ref: r,
340
341
  type: "file",
341
342
  accept: t.accept,
342
343
  multiple: t.multiple,
343
344
  disabled: t.disabled,
344
345
  class: "hidden",
345
- onChange: S
346
- }, null, 40, we),
347
- l("div", ke, [
346
+ onChange: I
347
+ }, null, 40, $e),
348
+ l("div", Ce, [
348
349
  l("div", {
349
- class: p([v.value, "flex items-center justify-center"])
350
+ class: x([g.value, "flex items-center justify-center"])
350
351
  }, [
351
352
  t.illustration ? (s(), o("img", {
352
353
  key: 0,
353
354
  src: t.illustration,
354
355
  alt: t.illustrationAlt,
355
356
  class: "max-w-full max-h-full object-contain"
356
- }, null, 8, $e)) : (s(), o("svg", Ce, [...j[1] || (j[1] = [
357
+ }, null, 8, Be)) : (s(), o("svg", ze, [...j[1] || (j[1] = [
357
358
  l("path", {
358
359
  "stroke-linecap": "round",
359
360
  "stroke-linejoin": "round",
@@ -362,19 +363,19 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
362
363
  }, null, -1)
363
364
  ])]))
364
365
  ], 2),
365
- l("div", Be, [
366
- l("p", Me, [
367
- E(w(t.mainText) + " ", 1),
366
+ l("div", Me, [
367
+ l("p", _e, [
368
+ P(w(t.mainText) + " ", 1),
368
369
  l("span", Te, w(t.linkText), 1)
369
370
  ])
370
371
  ]),
371
- f.value ? (s(), o("div", {
372
+ p.value ? (s(), o("div", {
372
373
  key: 0,
373
374
  class: "w-full max-w-md bg-gray-50 rounded-lg p-4 flex items-center justify-between",
374
375
  onClick: j[0] || (j[0] = F(() => {
375
376
  }, ["stop"]))
376
377
  }, [
377
- l("div", _e, [
378
+ l("div", je, [
378
379
  j[2] || (j[2] = l("svg", {
379
380
  class: "w-6 h-6 text-gray-600 flex-shrink-0",
380
381
  fill: "none",
@@ -388,14 +389,14 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
388
389
  d: "M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"
389
390
  })
390
391
  ], -1)),
391
- l("div", ze, [
392
- l("p", je, w(f.value.name), 1),
393
- l("p", Ve, w(h(f.value.size)), 1)
392
+ l("div", Ve, [
393
+ l("p", Ie, w(p.value.name), 1),
394
+ l("p", Se, w(b(p.value.size)), 1)
394
395
  ])
395
396
  ]),
396
- t.disabled ? g("", !0) : (s(), o("button", {
397
+ t.disabled ? h("", !0) : (s(), o("button", {
397
398
  key: 0,
398
- onClick: F(z, ["stop"]),
399
+ onClick: F(T, ["stop"]),
399
400
  class: "ml-3 text-gray-400 hover:text-danger-500 transition-colors"
400
401
  }, [...j[3] || (j[3] = [
401
402
  l("svg", {
@@ -410,16 +411,73 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
410
411
  })
411
412
  ], -1)
412
413
  ])]))
413
- ])) : g("", !0),
414
- t.helperText ? (s(), o("p", Se, w(t.helperText), 1)) : g("", !0),
415
- u.value ? (s(), o("p", Le, w(u.value), 1)) : g("", !0)
414
+ ])) : h("", !0),
415
+ t.helperText ? (s(), o("p", Le, w(t.helperText), 1)) : h("", !0),
416
+ a.value ? (s(), o("p", Oe, w(a.value), 1)) : h("", !0)
416
417
  ])
417
418
  ], 34));
418
419
  }
419
- }), Ie = ["stroke-width"], Oe = {
420
+ }), De = /* @__PURE__ */ O({
421
+ __name: "Icon",
422
+ props: {
423
+ name: {},
424
+ size: { default: "md" },
425
+ color: { default: "currentColor" },
426
+ variant: { default: "filled" },
427
+ rotate: { default: 0 },
428
+ spin: { type: Boolean, default: !1 },
429
+ ariaLabel: {}
430
+ },
431
+ setup(t) {
432
+ const u = t, e = {
433
+ xs: "16px",
434
+ sm: "18px",
435
+ md: "20px",
436
+ lg: "24px",
437
+ xl: "30px",
438
+ "2xl": "36px"
439
+ }, d = (a, g) => {
440
+ const v = a.replace(/_/g, "-");
441
+ switch (g) {
442
+ case "filled":
443
+ return `material-symbols:${v}`;
444
+ case "outlined":
445
+ return `ic:outline-${v}`;
446
+ case "rounded":
447
+ return `ic:round-${v}`;
448
+ case "sharp":
449
+ return `ic:sharp-${v}`;
450
+ case "two-tone":
451
+ return `ic:twotone-${v}`;
452
+ default:
453
+ return `material-symbols:${v}`;
454
+ }
455
+ }, r = c(() => d(u.name, u.variant)), i = c(() => {
456
+ const a = [
457
+ "inline-flex items-center justify-center select-none",
458
+ "transition-transform duration-200"
459
+ ];
460
+ return u.color && (u.color.startsWith("text-") || u.color.startsWith("fill-")) && a.push(u.color), u.spin && a.push("animate-spin"), a.join(" ");
461
+ }), p = c(() => {
462
+ const a = {};
463
+ if (e[u.size] ? (a.fontSize = e[u.size], a.width = e[u.size], a.height = e[u.size]) : (a.fontSize = u.size, a.width = u.size, a.height = u.size), u.color && !u.color.startsWith("text-") && !u.color.startsWith("fill-") && (a.color = u.color), u.rotate !== 0) {
464
+ const g = `rotate(${u.rotate}deg)`;
465
+ a.transform = g;
466
+ }
467
+ return a;
468
+ });
469
+ return (a, g) => (s(), q(ee(ae), {
470
+ icon: r.value,
471
+ class: x(i.value),
472
+ style: R(p.value),
473
+ "aria-label": t.ariaLabel,
474
+ role: t.ariaLabel ? "img" : void 0
475
+ }, null, 8, ["icon", "class", "style", "aria-label", "role"]));
476
+ }
477
+ }), us = /* @__PURE__ */ N(De, [["__scopeId", "data-v-5f982e5c"]]), Ae = ["stroke-width"], Pe = {
420
478
  class: "w-full h-full rounded-lg overflow-hidden",
421
479
  style: { "background-color": "#f7f7f7" }
422
- }, De = /* @__PURE__ */ O({
480
+ }, Ee = /* @__PURE__ */ O({
423
481
  __name: "Loader",
424
482
  props: {
425
483
  type: { default: "circular" },
@@ -430,24 +488,24 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
430
488
  progress: { default: void 0 }
431
489
  },
432
490
  setup(t) {
433
- const b = t, e = {
491
+ const u = t, e = {
434
492
  primary: "text-primary-700",
435
493
  secondary: "text-secondary-500",
436
494
  success: "text-success-500",
437
495
  warning: "text-warning-500",
438
496
  danger: "text-danger-500",
439
497
  info: "text-info-500"
440
- }, i = {
498
+ }, d = {
441
499
  primary: "bg-primary-700",
442
500
  secondary: "bg-secondary-500",
443
501
  success: "bg-success-500",
444
502
  warning: "bg-warning-500",
445
503
  danger: "bg-danger-500",
446
504
  info: "bg-info-500"
447
- }, n = d(() => [e[b.color]]), r = d(() => [i[b.color]]);
448
- return (f, u) => t.type === "circular" ? (s(), o("div", {
505
+ }, r = c(() => [e[u.color]]), i = c(() => [d[u.color]]);
506
+ return (p, a) => t.type === "circular" ? (s(), o("div", {
449
507
  key: 0,
450
- class: p(n.value)
508
+ class: x(r.value)
451
509
  }, [
452
510
  (s(), o("svg", {
453
511
  class: "animate-spin",
@@ -462,8 +520,8 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
462
520
  stroke: "currentColor",
463
521
  "stroke-width": t.strokeWidth,
464
522
  fill: "none"
465
- }, null, 8, Ie),
466
- u[0] || (u[0] = l("path", {
523
+ }, null, 8, Ae),
524
+ a[0] || (a[0] = l("path", {
467
525
  class: "opacity-75",
468
526
  fill: "currentColor",
469
527
  d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"
@@ -474,30 +532,30 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
474
532
  class: "w-full",
475
533
  style: R({ height: t.height })
476
534
  }, [
477
- l("div", Oe, [
535
+ l("div", Pe, [
478
536
  l("div", {
479
- class: p([r.value, "h-full rounded-lg animate-linear-loader"]),
537
+ class: x([i.value, "h-full rounded-lg animate-linear-loader"]),
480
538
  style: R({ width: t.progress ? `${t.progress}%` : void 0 })
481
539
  }, null, 6)
482
540
  ])
483
- ], 4)) : g("", !0);
541
+ ], 4)) : h("", !0);
484
542
  }
485
- }), ns = /* @__PURE__ */ N(De, [["__scopeId", "data-v-8df4ec38"]]), Ae = ["disabled", "aria-expanded"], Ee = ["disabled", "onClick"], Pe = {
543
+ }), cs = /* @__PURE__ */ N(Ee, [["__scopeId", "data-v-8df4ec38"]]), He = ["disabled", "aria-expanded"], We = ["disabled", "onClick"], Ne = {
486
544
  key: 0,
487
545
  class: "flex-shrink-0"
488
- }, He = ["innerHTML"], We = { class: "flex-1 min-w-0 mr-2" }, Fe = { class: "flex flex-col items-start" }, Ne = ["title"], Re = ["title"], Ke = {
546
+ }, Fe = ["innerHTML"], Re = { class: "flex-1 min-w-0 mr-2" }, Ke = { class: "flex flex-col items-start" }, qe = ["title"], Ue = ["title"], Ge = {
489
547
  key: 1,
490
548
  class: "flex-shrink-0"
491
- }, qe = {
549
+ }, Qe = {
492
550
  key: 0,
493
551
  class: "text-xs text-secondary-400 font-mono whitespace-nowrap"
494
- }, Ue = { key: 1 }, Ge = {
552
+ }, Ze = { key: 1 }, Je = {
495
553
  key: 2,
496
554
  class: "w-4 h-4 ml-2 flex-shrink-0",
497
555
  fill: "none",
498
556
  stroke: "currentColor",
499
557
  viewBox: "0 0 24 24"
500
- }, Qe = /* @__PURE__ */ O({
558
+ }, Xe = /* @__PURE__ */ O({
501
559
  __name: "Menu",
502
560
  props: {
503
561
  items: { default: () => [] },
@@ -516,174 +574,175 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
516
574
  zIndex: { default: 50 }
517
575
  },
518
576
  emits: ["open", "close", "select"],
519
- setup(t, { emit: b }) {
520
- const e = t, i = b, n = P(!1), r = P(null), f = P(null), u = P({}), v = d(() => [
577
+ setup(t, { emit: u }) {
578
+ const e = t, d = u, r = E(!1), i = E(null), p = E(null), a = E({}), g = c(() => [
521
579
  "inline-flex items-center justify-center px-4 py-2 text-sm font-medium",
522
- "bg-white border border-secondary-300 rounded-md",
523
- "hover:bg-secondary-50 focus:outline-none focus:ring-2 focus:ring-primary-500",
580
+ "bg-white border border-secondary-300 rounded-md text-secondary-700",
581
+ "hover:bg-secondary-100 hover:text-secondary-900 hover:border-secondary-400",
582
+ "focus:outline-none focus:ring-2 focus:ring-primary-500",
524
583
  "disabled:opacity-50 disabled:cursor-not-allowed",
525
- "transition-colors"
526
- ].join(" ")), x = d(() => [...[
584
+ "transition-all duration-200"
585
+ ].join(" ")), v = c(() => [...[
527
586
  "fixed bg-white rounded-lg shadow-lg border border-secondary-200",
528
587
  "flex flex-col",
529
588
  "focus:outline-none"
530
- ], `z-${e.zIndex}`].join(" ")), y = d(() => "px-4 py-3 border-b border-secondary-200 bg-secondary-50"), c = d(() => "px-4 py-3 border-t border-secondary-200 bg-secondary-50"), _ = d(() => "py-1 overflow-y-auto flex-1 min-h-0"), C = d(() => "my-1 border-t border-secondary-200"), S = d(() => "px-4 py-2 text-xs font-semibold text-secondary-500 uppercase tracking-wider"), V = (a) => {
531
- const T = [
532
- "w-full flex items-center gap-3 px-4 py-2 text-sm text-left",
533
- "transition-colors focus:outline-none",
589
+ ], `z-${e.zIndex}`].join(" ")), y = c(() => "px-4 py-3 border-b border-secondary-200 bg-secondary-50"), f = c(() => "px-4 py-3 border-t border-secondary-200 bg-secondary-50"), _ = c(() => "py-1 overflow-y-auto flex-1 min-h-0"), C = c(() => "my-1 border-t border-secondary-200"), I = c(() => "px-4 py-2 text-xs font-semibold text-secondary-500 uppercase tracking-wider"), V = (n) => {
590
+ const M = [
591
+ "w-full flex items-center gap-3 px-4 py-2.5 text-sm text-left",
592
+ "transition-all duration-150 focus:outline-none cursor-pointer",
534
593
  "disabled:opacity-50 disabled:cursor-not-allowed"
535
- ], m = a.variant || "default", K = {
536
- default: "text-secondary-700 hover:bg-secondary-50 focus:bg-secondary-50",
537
- danger: "text-danger-600 hover:bg-danger-50 focus:bg-danger-50",
538
- success: "text-success-600 hover:bg-success-50 focus:bg-success-50",
539
- warning: "text-warning-600 hover:bg-warning-50 focus:bg-warning-50"
594
+ ], m = n.variant || "default", K = {
595
+ default: "text-secondary-700 hover:bg-secondary-100 hover:text-secondary-900 focus:bg-secondary-100",
596
+ danger: "text-danger-600 hover:bg-danger-100 hover:text-danger-700 focus:bg-danger-100",
597
+ success: "text-success-600 hover:bg-success-100 hover:text-success-700 focus:bg-success-100",
598
+ warning: "text-warning-600 hover:bg-warning-100 hover:text-warning-700 focus:bg-warning-100"
540
599
  };
541
- let L = "";
542
- return a.color && (L = a.color, (a.color.includes("white") || a.color.includes("50")) && (L += " hover:text-black")), [...T, L || K[m]].join(" ");
543
- }, z = () => {
544
- e.disabled || (n.value ? k() : h());
545
- }, h = () => {
546
- n.value = !0, i("open"), Z(() => {
547
- M(), document.addEventListener("click", I), document.addEventListener("keydown", H);
600
+ let S = "";
601
+ return n.color && (S = n.color, (n.color.includes("white") || n.color.includes("50")) && (S += " hover:text-black")), [...M, S || K[m]].join(" ");
602
+ }, T = () => {
603
+ e.disabled || (r.value ? k() : b());
604
+ }, b = () => {
605
+ r.value = !0, d("open"), Z(() => {
606
+ z(), document.addEventListener("click", L), document.addEventListener("keydown", H);
548
607
  });
549
608
  }, k = () => {
550
- n.value = !1, i("close"), document.removeEventListener("click", I), document.removeEventListener("keydown", H);
551
- }, j = (a) => {
552
- a.disabled || (a.action && a.action(), i("select", a), e.closeOnClick && !a.children && k());
553
- }, I = (a) => {
554
- const T = a.target;
555
- r.value && !r.value.contains(T) && f.value && !f.value.contains(T) && k();
556
- }, H = (a) => {
557
- a.key === "Escape" && k();
558
- }, $ = (a) => {
559
- (a.key === "Enter" || a.key === " ") && (a.preventDefault(), z());
560
- }, M = () => {
561
- if (!r.value || !f.value) return;
562
- const a = r.value.getBoundingClientRect(), T = f.value.getBoundingClientRect(), m = window.innerWidth, K = window.innerHeight;
563
- let L = 0, D = 0;
609
+ r.value = !1, d("close"), document.removeEventListener("click", L), document.removeEventListener("keydown", H);
610
+ }, j = (n) => {
611
+ n.disabled || (n.action && n.action(), d("select", n), e.closeOnClick && !n.children && k());
612
+ }, L = (n) => {
613
+ const M = n.target;
614
+ i.value && !i.value.contains(M) && p.value && !p.value.contains(M) && k();
615
+ }, H = (n) => {
616
+ n.key === "Escape" && k();
617
+ }, $ = (n) => {
618
+ (n.key === "Enter" || n.key === " ") && (n.preventDefault(), T());
619
+ }, z = () => {
620
+ if (!i.value || !p.value) return;
621
+ const n = i.value.getBoundingClientRect(), M = p.value.getBoundingClientRect(), m = window.innerWidth, K = window.innerHeight;
622
+ let S = 0, D = 0;
564
623
  switch (e.position) {
565
624
  case "bottom-start":
566
- L = a.bottom + e.offset.y, D = a.left + e.offset.x;
625
+ S = n.bottom + e.offset.y, D = n.left + e.offset.x;
567
626
  break;
568
627
  case "bottom-end":
569
- L = a.bottom + e.offset.y, D = a.right - T.width + e.offset.x;
628
+ S = n.bottom + e.offset.y, D = n.right - M.width + e.offset.x;
570
629
  break;
571
630
  case "top-start":
572
- L = a.top - T.height - e.offset.y, D = a.left + e.offset.x;
631
+ S = n.top - M.height - e.offset.y, D = n.left + e.offset.x;
573
632
  break;
574
633
  case "top-end":
575
- L = a.top - T.height - e.offset.y, D = a.right - T.width + e.offset.x;
634
+ S = n.top - M.height - e.offset.y, D = n.right - M.width + e.offset.x;
576
635
  break;
577
636
  case "right-start":
578
- L = a.top + e.offset.y, D = a.right + e.offset.x;
637
+ S = n.top + e.offset.y, D = n.right + e.offset.x;
579
638
  break;
580
639
  case "right-end":
581
- L = a.bottom - T.height + e.offset.y, D = a.right + e.offset.x;
640
+ S = n.bottom - M.height + e.offset.y, D = n.right + e.offset.x;
582
641
  break;
583
642
  case "left-start":
584
- L = a.top + e.offset.y, D = a.left - T.width - e.offset.x;
643
+ S = n.top + e.offset.y, D = n.left - M.width - e.offset.x;
585
644
  break;
586
645
  case "left-end":
587
- L = a.bottom - T.height + e.offset.y, D = a.left - T.width - e.offset.x;
646
+ S = n.bottom - M.height + e.offset.y, D = n.left - M.width - e.offset.x;
588
647
  break;
589
648
  }
590
- D + T.width > m && (D = m - T.width - 8), D < 8 && (D = 8), L + T.height > K && (L = K - T.height - 8), L < 8 && (L = 8), u.value = {
591
- top: `${L}px`,
649
+ D + M.width > m && (D = m - M.width - 8), D < 8 && (D = 8), S + M.height > K && (S = K - M.height - 8), S < 8 && (S = 8), a.value = {
650
+ top: `${S}px`,
592
651
  left: `${D}px`,
593
- width: e.width === "auto" ? `${Math.max(a.width, 240)}px` : e.width,
652
+ width: e.width === "auto" ? `${Math.max(n.width, 240)}px` : e.width,
594
653
  maxHeight: e.maxHeight,
595
654
  minWidth: "240px"
596
655
  };
597
656
  };
598
- return ee(() => {
599
- window.addEventListener("scroll", M, !0), window.addEventListener("resize", M);
600
- }), te(() => {
601
- window.removeEventListener("scroll", M, !0), window.removeEventListener("resize", M), document.removeEventListener("click", I), document.removeEventListener("keydown", H);
657
+ return te(() => {
658
+ window.addEventListener("scroll", z, !0), window.addEventListener("resize", z);
659
+ }), se(() => {
660
+ window.removeEventListener("scroll", z, !0), window.removeEventListener("resize", z), document.removeEventListener("click", L), document.removeEventListener("keydown", H);
602
661
  }), X(() => e.items, () => {
603
- n.value && Z(M);
604
- }, { deep: !0 }), (a, T) => (s(), o("div", {
605
- class: p(["menu-wrapper", { "w-full": t.fullWidth }])
662
+ r.value && Z(z);
663
+ }, { deep: !0 }), (n, M) => (s(), o("div", {
664
+ class: x(["menu-wrapper", { "w-full": t.fullWidth }])
606
665
  }, [
607
666
  l("div", {
608
667
  ref_key: "triggerRef",
609
- ref: r
668
+ ref: i
610
669
  }, [
611
- B(a.$slots, "trigger", {
612
- isOpen: n.value,
613
- toggle: z
670
+ B(n.$slots, "trigger", {
671
+ isOpen: r.value,
672
+ toggle: T
614
673
  }, () => [
615
674
  l("button", {
616
675
  type: "button",
617
- class: p(v.value),
676
+ class: x(g.value),
618
677
  disabled: t.disabled,
619
- onClick: z,
678
+ onClick: T,
620
679
  onKeydown: $,
621
680
  tabindex: 0,
622
681
  role: "button",
623
- "aria-expanded": n.value,
682
+ "aria-expanded": r.value,
624
683
  "aria-haspopup": !0
625
684
  }, [
626
- B(a.$slots, "trigger-content", {}, () => [
627
- E(w(t.triggerText), 1)
685
+ B(n.$slots, "trigger-content", {}, () => [
686
+ P(w(t.triggerText), 1)
628
687
  ], !0),
629
688
  t.showChevron ? (s(), o("svg", {
630
689
  key: 0,
631
- class: p(["w-4 h-4 ml-2 transition-transform", n.value ? "rotate-180" : ""]),
690
+ class: x(["w-4 h-4 ml-2 transition-transform", r.value ? "rotate-180" : ""]),
632
691
  fill: "none",
633
692
  stroke: "currentColor",
634
693
  viewBox: "0 0 24 24"
635
- }, [...T[1] || (T[1] = [
694
+ }, [...M[1] || (M[1] = [
636
695
  l("path", {
637
696
  "stroke-linecap": "round",
638
697
  "stroke-linejoin": "round",
639
698
  "stroke-width": "2",
640
699
  d: "M19 9l-7 7-7-7"
641
700
  }, null, -1)
642
- ])], 2)) : g("", !0)
643
- ], 42, Ae)
701
+ ])], 2)) : h("", !0)
702
+ ], 42, He)
644
703
  ], !0)
645
704
  ], 512),
646
705
  (s(), q(J, { to: "body" }, [
647
- n.value ? (s(), o("div", {
706
+ r.value ? (s(), o("div", {
648
707
  key: 0,
649
708
  ref_key: "menuRef",
650
- ref: f,
651
- class: p(x.value),
652
- style: R(u.value),
653
- onClick: T[0] || (T[0] = F(() => {
709
+ ref: p,
710
+ class: x(v.value),
711
+ style: R(a.value),
712
+ onClick: M[0] || (M[0] = F(() => {
654
713
  }, ["stop"]))
655
714
  }, [
656
- a.$slots.header ? (s(), o("div", {
715
+ n.$slots.header ? (s(), o("div", {
657
716
  key: 0,
658
- class: p(y.value)
717
+ class: x(y.value)
659
718
  }, [
660
- B(a.$slots, "header", { close: k }, void 0, !0)
661
- ], 2)) : g("", !0),
719
+ B(n.$slots, "header", { close: k }, void 0, !0)
720
+ ], 2)) : h("", !0),
662
721
  l("div", {
663
- class: p(_.value)
722
+ class: x(_.value)
664
723
  }, [
665
- B(a.$slots, "default", {
724
+ B(n.$slots, "default", {
666
725
  close: k,
667
- isOpen: n.value
726
+ isOpen: r.value
668
727
  }, () => [
669
728
  (s(!0), o(A, null, W(t.items, (m, K) => (s(), o(A, {
670
729
  key: m.id || K
671
730
  }, [
672
731
  m.type === "divider" ? (s(), o("div", {
673
732
  key: 0,
674
- class: p(C.value)
733
+ class: x(C.value)
675
734
  }, null, 2)) : m.type === "header" ? (s(), o("div", {
676
735
  key: 1,
677
- class: p(S.value)
736
+ class: x(I.value)
678
737
  }, w(m.label), 3)) : (s(), o("button", {
679
738
  key: 2,
680
739
  type: "button",
681
- class: p(V(m)),
740
+ class: x(V(m)),
682
741
  disabled: m.disabled,
683
- onClick: (L) => j(m)
742
+ onClick: (S) => j(m)
684
743
  }, [
685
- m.icon || a.$slots[`icon-${m.id}`] ? (s(), o("span", Pe, [
686
- B(a.$slots, `icon-${m.id}`, { item: m }, () => [
744
+ m.icon || n.$slots[`icon-${m.id}`] ? (s(), o("span", Ne, [
745
+ B(n.$slots, `icon-${m.id}`, { item: m }, () => [
687
746
  typeof m.icon != "string" ? (s(), q(Y(m.icon), {
688
747
  key: 0,
689
748
  class: "w-5 h-5"
@@ -691,85 +750,85 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
691
750
  key: 1,
692
751
  innerHTML: m.icon,
693
752
  class: "w-5 h-5 inline-block"
694
- }, null, 8, He))
753
+ }, null, 8, Fe))
695
754
  ], !0)
696
- ])) : g("", !0),
697
- l("div", We, [
698
- B(a.$slots, `item-${m.id}`, {
755
+ ])) : h("", !0),
756
+ l("div", Re, [
757
+ B(n.$slots, `item-${m.id}`, {
699
758
  item: m,
700
759
  close: k
701
760
  }, () => [
702
- l("div", Fe, [
761
+ l("div", Ke, [
703
762
  l("span", {
704
763
  class: "truncate w-full",
705
764
  title: m.label
706
- }, w(m.label), 9, Ne),
765
+ }, w(m.label), 9, qe),
707
766
  m.description ? (s(), o("span", {
708
767
  key: 0,
709
768
  class: "text-xs text-secondary-500 truncate w-full",
710
769
  title: m.description
711
- }, w(m.description), 9, Re)) : g("", !0)
770
+ }, w(m.description), 9, Ue)) : h("", !0)
712
771
  ])
713
772
  ], !0)
714
773
  ]),
715
- m.suffix || m.shortcut || a.$slots[`suffix-${m.id}`] ? (s(), o("span", Ke, [
716
- B(a.$slots, `suffix-${m.id}`, { item: m }, () => [
717
- m.shortcut ? (s(), o("span", qe, w(m.shortcut), 1)) : m.suffix ? (s(), o("span", Ue, w(m.suffix), 1)) : g("", !0)
774
+ m.suffix || m.shortcut || n.$slots[`suffix-${m.id}`] ? (s(), o("span", Ge, [
775
+ B(n.$slots, `suffix-${m.id}`, { item: m }, () => [
776
+ m.shortcut ? (s(), o("span", Qe, w(m.shortcut), 1)) : m.suffix ? (s(), o("span", Ze, w(m.suffix), 1)) : h("", !0)
718
777
  ], !0)
719
- ])) : g("", !0),
720
- m.children && m.children.length > 0 ? (s(), o("svg", Ge, [...T[2] || (T[2] = [
778
+ ])) : h("", !0),
779
+ m.children && m.children.length > 0 ? (s(), o("svg", Je, [...M[2] || (M[2] = [
721
780
  l("path", {
722
781
  "stroke-linecap": "round",
723
782
  "stroke-linejoin": "round",
724
783
  "stroke-width": "2",
725
784
  d: "M9 5l7 7-7 7"
726
785
  }, null, -1)
727
- ])])) : g("", !0)
728
- ], 10, Ee))
786
+ ])])) : h("", !0)
787
+ ], 10, We))
729
788
  ], 64))), 128))
730
789
  ], !0)
731
790
  ], 2),
732
- a.$slots.footer ? (s(), o("div", {
791
+ n.$slots.footer ? (s(), o("div", {
733
792
  key: 1,
734
- class: p(c.value)
793
+ class: x(f.value)
735
794
  }, [
736
- B(a.$slots, "footer", { close: k }, void 0, !0)
737
- ], 2)) : g("", !0)
738
- ], 6)) : g("", !0),
739
- n.value && t.overlay ? (s(), o("div", {
795
+ B(n.$slots, "footer", { close: k }, void 0, !0)
796
+ ], 2)) : h("", !0)
797
+ ], 6)) : h("", !0),
798
+ r.value && t.overlay ? (s(), o("div", {
740
799
  key: 1,
741
800
  class: "fixed inset-0 bg-black/20 z-40",
742
801
  onClick: k
743
- })) : g("", !0)
802
+ })) : h("", !0)
744
803
  ]))
745
804
  ], 2));
746
805
  }
747
- }), rs = /* @__PURE__ */ N(Qe, [["__scopeId", "data-v-335f2699"]]), Ze = ["for"], Je = {
806
+ }), fs = /* @__PURE__ */ N(Xe, [["__scopeId", "data-v-61176297"]]), Ye = ["for"], et = {
748
807
  key: 0,
749
808
  class: "text-danger-600"
750
- }, Xe = { class: "relative" }, Ye = ["id", "disabled", "aria-expanded"], et = { class: "flex-1 text-left truncate" }, tt = {
809
+ }, tt = { class: "relative" }, st = ["id", "disabled", "aria-expanded"], ot = { class: "flex-1 text-left truncate" }, lt = {
751
810
  key: 0,
752
811
  class: "p-2 border-b border-secondary-200"
753
- }, st = ["placeholder"], ot = { class: "max-h-64 overflow-y-auto" }, lt = {
812
+ }, at = ["placeholder"], nt = { class: "max-h-64 overflow-y-auto" }, rt = {
754
813
  key: 0,
755
814
  class: "px-4 py-3 text-sm text-secondary-500 text-center"
756
- }, at = ["onClick"], nt = { class: "flex items-center justify-between w-full" }, rt = { class: "truncate" }, it = {
815
+ }, it = ["onClick"], dt = { class: "flex items-center justify-between w-full" }, ut = { class: "truncate" }, ct = {
757
816
  key: 0,
758
817
  class: "w-5 h-5 text-primary-600 flex-shrink-0 ml-2",
759
818
  fill: "none",
760
819
  stroke: "currentColor",
761
820
  viewBox: "0 0 24 24",
762
821
  xmlns: "http://www.w3.org/2000/svg"
763
- }, dt = {
822
+ }, ft = {
764
823
  key: 0,
765
824
  class: "border-t border-secondary-200 my-1"
766
- }, ut = ["onClick"], ct = ["innerHTML"], ft = {
825
+ }, pt = ["onClick"], vt = ["innerHTML"], gt = {
767
826
  key: 1,
768
827
  class: "mt-1 text-sm text-danger-600"
769
- }, pt = {
828
+ }, xt = {
770
829
  key: 2,
771
830
  class: "mt-1 text-sm text-secondary-600"
772
- }, gt = /* @__PURE__ */ O({
831
+ }, ht = /* @__PURE__ */ O({
773
832
  __name: "Select",
774
833
  props: {
775
834
  modelValue: { default: null },
@@ -790,88 +849,88 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
790
849
  menuPosition: { default: "bottom" }
791
850
  },
792
851
  emits: ["update:modelValue", "change", "action"],
793
- setup(t, { emit: b }) {
794
- const e = t, i = b, n = P(!1), r = P(""), f = P(null), u = d(
852
+ setup(t, { emit: u }) {
853
+ const e = t, d = u, r = E(!1), i = E(""), p = E(null), a = c(
795
854
  () => `select-${Math.random().toString(36).substr(2, 9)}`
796
- ), v = d(() => e.options.find(($) => $.value === e.modelValue) || null), x = d(() => {
797
- if (!e.searchable || !r.value)
855
+ ), g = c(() => e.options.find(($) => $.value === e.modelValue) || null), v = c(() => {
856
+ if (!e.searchable || !i.value)
798
857
  return e.options;
799
- const $ = r.value.toLowerCase();
800
- return e.options.filter((M) => M.label.toLowerCase().includes($));
801
- }), y = d(() => "block text-sm font-semibold text-secondary-700 mb-1"), c = d(() => {
802
- const $ = "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 = {
858
+ const $ = i.value.toLowerCase();
859
+ return e.options.filter((z) => z.label.toLowerCase().includes($));
860
+ }), y = c(() => "block text-sm font-semibold text-secondary-700 mb-1"), f = c(() => {
861
+ const $ = "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", z = {
803
862
  sm: "px-3 py-1.5 text-sm",
804
863
  md: "px-4 py-2 text-base",
805
864
  lg: "px-5 py-3 text-lg"
806
- }, a = {
865
+ }, n = {
807
866
  default: "bg-white border-secondary-300 hover:border-secondary-400",
808
867
  outline: "bg-transparent border-secondary-300 hover:border-primary-500",
809
868
  filled: "bg-secondary-100 border-transparent hover:bg-secondary-200"
810
- }, T = e.error ? "border-danger-600 focus:ring-danger-500" : "";
869
+ }, M = e.error ? "border-danger-600 focus:ring-danger-500" : "";
811
870
  return [
812
871
  $,
813
- M[e.size],
814
- a[e.variant],
815
- T
872
+ z[e.size],
873
+ n[e.variant],
874
+ M
816
875
  ].join(" ");
817
- }), _ = d(() => `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`), C = ($) => {
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", a = V($) ? "bg-primary-50" : "";
819
- return [M, a].join(" ");
820
- }, S = ($) => {
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";
822
- return $.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`;
823
- }, V = ($) => $.value === e.modelValue, z = () => {
824
- e.disabled || (n.value = !n.value, n.value && e.searchable && Z(() => {
876
+ }), _ = c(() => `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`), C = ($) => {
877
+ const z = "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", n = V($) ? "bg-primary-50" : "";
878
+ return [z, n].join(" ");
879
+ }, I = ($) => {
880
+ const z = "w-full px-4 py-2 text-left text-sm font-semibold transition-colors focus:outline-none flex items-center gap-3";
881
+ return $.variant === "danger" ? `${z} text-danger-600 hover:bg-danger-50 focus:bg-danger-50` : `${z} text-secondary-700 hover:bg-secondary-50 focus:bg-secondary-50`;
882
+ }, V = ($) => $.value === e.modelValue, T = () => {
883
+ e.disabled || (r.value = !r.value, r.value && e.searchable && Z(() => {
825
884
  var $;
826
- ($ = f.value) == null || $.focus();
885
+ ($ = p.value) == null || $.focus();
827
886
  }));
828
- }, h = () => {
829
- n.value = !1, r.value = "";
887
+ }, b = () => {
888
+ r.value = !1, i.value = "";
830
889
  }, k = ($) => {
831
- $.disabled || (i("update:modelValue", $.value), i("change", $), h());
890
+ $.disabled || (d("update:modelValue", $.value), d("change", $), b());
832
891
  }, j = ($) => {
833
- $.action && $.action(), i("action", $), h();
834
- }, I = ($) => {
835
- const M = $.relatedTarget;
836
- M && M.closest(".select-wrapper") || setTimeout(() => {
837
- h();
892
+ $.action && $.action(), d("action", $), b();
893
+ }, L = ($) => {
894
+ const z = $.relatedTarget;
895
+ z && z.closest(".select-wrapper") || setTimeout(() => {
896
+ b();
838
897
  }, 200);
839
898
  }, H = ($) => {
840
- $.key === "Escape" ? h() : ($.key === "Enter" || $.key === " ") && ($.preventDefault(), z());
899
+ $.key === "Escape" ? b() : ($.key === "Enter" || $.key === " ") && ($.preventDefault(), T());
841
900
  };
842
- return X(n, ($) => {
843
- $ && (r.value = "");
844
- }), ($, M) => (s(), o("div", {
845
- class: p(["select-wrapper", { "w-full": t.fullWidth }])
901
+ return X(r, ($) => {
902
+ $ && (i.value = "");
903
+ }), ($, z) => (s(), o("div", {
904
+ class: x(["select-wrapper", { "w-full": t.fullWidth }])
846
905
  }, [
847
906
  t.label ? (s(), o("label", {
848
907
  key: 0,
849
- for: u.value,
850
- class: p(y.value)
908
+ for: a.value,
909
+ class: x(y.value)
851
910
  }, [
852
- E(w(t.label) + " ", 1),
853
- t.required ? (s(), o("span", Je, "*")) : g("", !0)
854
- ], 10, Ze)) : g("", !0),
855
- l("div", Xe, [
911
+ P(w(t.label) + " ", 1),
912
+ t.required ? (s(), o("span", et, "*")) : h("", !0)
913
+ ], 10, Ye)) : h("", !0),
914
+ l("div", tt, [
856
915
  l("button", {
857
- id: u.value,
916
+ id: a.value,
858
917
  type: "button",
859
- class: p(c.value),
918
+ class: x(f.value),
860
919
  disabled: t.disabled,
861
- "aria-expanded": n.value,
920
+ "aria-expanded": r.value,
862
921
  "aria-haspopup": !0,
863
- onClick: z,
864
- onBlur: I,
922
+ onClick: T,
923
+ onBlur: L,
865
924
  onKeydown: H
866
925
  }, [
867
- l("span", et, w(v.value ? v.value.label : t.placeholder), 1),
926
+ l("span", ot, w(g.value ? g.value.label : t.placeholder), 1),
868
927
  (s(), o("svg", {
869
- class: p(["w-5 h-5 flex-shrink-0 transition-transform text-secondary-600", n.value ? "rotate-180" : ""]),
928
+ class: x(["w-5 h-5 flex-shrink-0 transition-transform text-secondary-600", r.value ? "rotate-180" : ""]),
870
929
  fill: "none",
871
930
  stroke: "currentColor",
872
931
  viewBox: "0 0 24 24",
873
932
  xmlns: "http://www.w3.org/2000/svg"
874
- }, [...M[3] || (M[3] = [
933
+ }, [...z[3] || (z[3] = [
875
934
  l("path", {
876
935
  "stroke-linecap": "round",
877
936
  "stroke-linejoin": "round",
@@ -879,78 +938,78 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
879
938
  d: "M19 9l-7 7-7-7"
880
939
  }, null, -1)
881
940
  ])], 2))
882
- ], 42, Ye),
883
- n.value ? (s(), o("div", {
941
+ ], 42, st),
942
+ r.value ? (s(), o("div", {
884
943
  key: 0,
885
- class: p(_.value),
886
- onClick: M[2] || (M[2] = F(() => {
944
+ class: x(_.value),
945
+ onClick: z[2] || (z[2] = F(() => {
887
946
  }, ["stop"]))
888
947
  }, [
889
- t.searchable ? (s(), o("div", tt, [
890
- se(l("input", {
948
+ t.searchable ? (s(), o("div", lt, [
949
+ oe(l("input", {
891
950
  ref_key: "searchInput",
892
- ref: f,
893
- "onUpdate:modelValue": M[0] || (M[0] = (a) => r.value = a),
951
+ ref: p,
952
+ "onUpdate:modelValue": z[0] || (z[0] = (n) => i.value = n),
894
953
  type: "text",
895
954
  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",
896
955
  placeholder: t.searchPlaceholder,
897
- onKeydown: M[1] || (M[1] = F(() => {
956
+ onKeydown: z[1] || (z[1] = F(() => {
898
957
  }, ["stop"]))
899
- }, null, 40, st), [
900
- [oe, r.value]
958
+ }, null, 40, at), [
959
+ [le, i.value]
901
960
  ])
902
- ])) : g("", !0),
903
- l("div", ot, [
904
- x.value.length === 0 ? (s(), o("div", lt, w(t.emptyText), 1)) : (s(), o(A, { key: 1 }, [
905
- (s(!0), o(A, null, W(x.value, (a) => (s(), o("button", {
906
- key: a.value,
961
+ ])) : h("", !0),
962
+ l("div", nt, [
963
+ v.value.length === 0 ? (s(), o("div", rt, w(t.emptyText), 1)) : (s(), o(A, { key: 1 }, [
964
+ (s(!0), o(A, null, W(v.value, (n) => (s(), o("button", {
965
+ key: n.value,
907
966
  type: "button",
908
- class: p(C(a)),
909
- onClick: (T) => k(a)
967
+ class: x(C(n)),
968
+ onClick: (M) => k(n)
910
969
  }, [
911
- l("div", nt, [
912
- l("span", rt, w(a.label), 1),
913
- V(a) ? (s(), o("svg", it, [...M[4] || (M[4] = [
970
+ l("div", dt, [
971
+ l("span", ut, w(n.label), 1),
972
+ V(n) ? (s(), o("svg", ct, [...z[4] || (z[4] = [
914
973
  l("path", {
915
974
  "stroke-linecap": "round",
916
975
  "stroke-linejoin": "round",
917
976
  "stroke-width": "2",
918
977
  d: "M5 13l4 4L19 7"
919
978
  }, null, -1)
920
- ])])) : g("", !0)
979
+ ])])) : h("", !0)
921
980
  ])
922
- ], 10, at))), 128)),
923
- t.actionItems.length > 0 ? (s(), o("div", dt)) : g("", !0),
924
- (s(!0), o(A, null, W(t.actionItems, (a) => (s(), o("button", {
925
- key: a.id,
981
+ ], 10, it))), 128)),
982
+ t.actionItems.length > 0 ? (s(), o("div", ft)) : h("", !0),
983
+ (s(!0), o(A, null, W(t.actionItems, (n) => (s(), o("button", {
984
+ key: n.id,
926
985
  type: "button",
927
- class: p(S(a)),
928
- onClick: (T) => j(a)
986
+ class: x(I(n)),
987
+ onClick: (M) => j(n)
929
988
  }, [
930
- a.icon ? (s(), o("svg", {
989
+ n.icon ? (s(), o("svg", {
931
990
  key: 0,
932
991
  class: "w-4 h-4 flex-shrink-0",
933
992
  fill: "none",
934
993
  stroke: "currentColor",
935
994
  viewBox: "0 0 24 24",
936
995
  xmlns: "http://www.w3.org/2000/svg",
937
- innerHTML: a.icon
938
- }, null, 8, ct)) : g("", !0),
939
- E(" " + w(a.label), 1)
940
- ], 10, ut))), 128))
996
+ innerHTML: n.icon
997
+ }, null, 8, vt)) : h("", !0),
998
+ P(" " + w(n.label), 1)
999
+ ], 10, pt))), 128))
941
1000
  ], 64))
942
1001
  ])
943
- ], 2)) : g("", !0)
1002
+ ], 2)) : h("", !0)
944
1003
  ]),
945
- t.error ? (s(), o("p", ft, w(t.error), 1)) : t.helperText ? (s(), o("p", pt, w(t.helperText), 1)) : g("", !0),
946
- n.value ? (s(), o("div", {
1004
+ t.error ? (s(), o("p", gt, w(t.error), 1)) : t.helperText ? (s(), o("p", xt, w(t.helperText), 1)) : h("", !0),
1005
+ r.value ? (s(), o("div", {
947
1006
  key: 3,
948
- onClick: h,
1007
+ onClick: b,
949
1008
  class: "fixed inset-0 z-40"
950
- })) : g("", !0)
1009
+ })) : h("", !0)
951
1010
  ], 2));
952
1011
  }
953
- }), is = /* @__PURE__ */ N(gt, [["__scopeId", "data-v-f016a03c"]]), vt = /* @__PURE__ */ O({
1012
+ }), ps = /* @__PURE__ */ N(ht, [["__scopeId", "data-v-f016a03c"]]), bt = /* @__PURE__ */ O({
954
1013
  __name: "Sidebar",
955
1014
  props: {
956
1015
  modelValue: { type: Boolean, default: !1 },
@@ -965,58 +1024,58 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
965
1024
  padding: { default: "md" }
966
1025
  },
967
1026
  emits: ["update:modelValue", "close", "open"],
968
- setup(t, { emit: b }) {
969
- const e = t, i = b, n = d({
1027
+ setup(t, { emit: u }) {
1028
+ const e = t, d = u, r = c({
970
1029
  get: () => e.modelValue,
971
- set: (C) => i("update:modelValue", C)
972
- }), r = () => {
973
- e.persistent || (n.value = !1, i("close"));
974
- }, f = d(() => e.position === "left" ? "slide-right" : "slide-left"), u = d(() => {
975
- const C = "fixed top-0 h-full z-50 flex flex-col w-full max-w-full sm:max-w-none", S = e.position === "left" ? "left-0" : "right-0", V = 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 [C, S, V].filter(Boolean).join(" ");
977
- }), v = d(() => ({
1030
+ set: (C) => d("update:modelValue", C)
1031
+ }), i = () => {
1032
+ e.persistent || (r.value = !1, d("close"));
1033
+ }, p = c(() => e.position === "left" ? "slide-right" : "slide-left"), a = c(() => {
1034
+ const C = "fixed top-0 h-full z-50 flex flex-col w-full max-w-full sm:max-w-none", I = e.position === "left" ? "left-0" : "right-0", V = 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)]" : "";
1035
+ return [C, I, V].filter(Boolean).join(" ");
1036
+ }), g = c(() => ({
978
1037
  // Base fluid width; respect custom width as max constraint
979
1038
  width: "100%",
980
1039
  maxWidth: e.width,
981
1040
  backgroundColor: e.backgroundColor,
982
1041
  top: e.overlayTop,
983
1042
  height: e.overlayTop !== "0" ? `calc(100vh - ${e.overlayTop})` : "100vh"
984
- })), x = {
1043
+ })), v = {
985
1044
  none: "",
986
1045
  sm: "p-2",
987
1046
  md: "p-4",
988
1047
  lg: "p-6"
989
- }, y = d(() => `flex items-center justify-between border-b border-gray-200 ${x[e.padding]}`), c = d(() => `flex-1 overflow-y-auto ${x[e.padding]}`), _ = d(() => `border-t border-gray-200 ${x[e.padding]}`);
990
- return (C, S) => (s(), q(J, { to: "body" }, [
1048
+ }, y = c(() => `flex items-center justify-between border-b border-gray-200 ${v[e.padding]}`), f = c(() => `flex-1 overflow-y-auto ${v[e.padding]}`), _ = c(() => `border-t border-gray-200 ${v[e.padding]}`);
1049
+ return (C, I) => (s(), q(J, { to: "body" }, [
991
1050
  G(Q, { name: "fade" }, {
992
1051
  default: U(() => [
993
- n.value && t.overlay ? (s(), o("div", {
1052
+ r.value && t.overlay ? (s(), o("div", {
994
1053
  key: 0,
995
- onClick: r,
1054
+ onClick: i,
996
1055
  class: "fixed inset-0 bg-black/50 z-40",
997
1056
  style: R({ top: t.overlayTop })
998
- }, null, 4)) : g("", !0)
1057
+ }, null, 4)) : h("", !0)
999
1058
  ]),
1000
1059
  _: 1
1001
1060
  }),
1002
- G(Q, { name: f.value }, {
1061
+ G(Q, { name: p.value }, {
1003
1062
  default: U(() => [
1004
- n.value ? (s(), o("aside", {
1063
+ r.value ? (s(), o("aside", {
1005
1064
  key: 0,
1006
- class: p(u.value),
1007
- style: R(v.value)
1065
+ class: x(a.value),
1066
+ style: R(g.value)
1008
1067
  }, [
1009
1068
  C.$slots.header ? (s(), o("div", {
1010
1069
  key: 0,
1011
- class: p(y.value)
1070
+ class: x(y.value)
1012
1071
  }, [
1013
1072
  B(C.$slots, "header", {}, void 0, !0),
1014
1073
  t.closable ? (s(), o("button", {
1015
1074
  key: 0,
1016
- onClick: r,
1075
+ onClick: i,
1017
1076
  class: "p-2 hover:bg-gray-100 rounded-md transition-colors",
1018
1077
  "aria-label": "Cerrar menú"
1019
- }, [...S[0] || (S[0] = [
1078
+ }, [...I[0] || (I[0] = [
1020
1079
  l("svg", {
1021
1080
  class: "w-5 h-5",
1022
1081
  fill: "none",
@@ -1030,38 +1089,38 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1030
1089
  d: "M6 18L18 6M6 6l12 12"
1031
1090
  })
1032
1091
  ], -1)
1033
- ])])) : g("", !0)
1034
- ], 2)) : g("", !0),
1092
+ ])])) : h("", !0)
1093
+ ], 2)) : h("", !0),
1035
1094
  l("div", {
1036
- class: p(c.value)
1095
+ class: x(f.value)
1037
1096
  }, [
1038
1097
  B(C.$slots, "default", {}, void 0, !0)
1039
1098
  ], 2),
1040
1099
  C.$slots.footer ? (s(), o("div", {
1041
1100
  key: 1,
1042
- class: p(_.value)
1101
+ class: x(_.value)
1043
1102
  }, [
1044
1103
  B(C.$slots, "footer", {}, void 0, !0)
1045
- ], 2)) : g("", !0)
1046
- ], 6)) : g("", !0)
1104
+ ], 2)) : h("", !0)
1105
+ ], 6)) : h("", !0)
1047
1106
  ]),
1048
1107
  _: 3
1049
1108
  }, 8, ["name"])
1050
1109
  ]));
1051
1110
  }
1052
- }), ds = /* @__PURE__ */ N(vt, [["__scopeId", "data-v-b208234c"]]), xt = { class: "w-full space-y-4" }, bt = { class: "flex flex-col gap-3 md:hidden" }, ht = { class: "text-[11px] uppercase tracking-wide text-gray-400" }, yt = { class: "text-sm text-gray-700" }, mt = {
1111
+ }), vs = /* @__PURE__ */ N(bt, [["__scopeId", "data-v-b208234c"]]), yt = { class: "w-full space-y-4" }, mt = { class: "flex flex-col gap-3 md:hidden" }, wt = { class: "text-[11px] uppercase tracking-wide text-gray-400" }, kt = { class: "text-sm text-gray-700" }, $t = {
1053
1112
  key: 0,
1054
1113
  class: "rounded-lg border border-dashed border-gray-200 bg-white p-4 text-gray-400 text-center"
1055
- }, wt = { class: "hidden md:block w-full overflow-x-auto" }, kt = { class: "w-full border-collapse" }, $t = { class: "w-full" }, Ct = ["onClick"], Bt = { class: "flex items-center gap-2" }, Mt = {
1114
+ }, Ct = { class: "hidden md:block w-full overflow-x-auto" }, Bt = { class: "w-full border-collapse" }, zt = { class: "w-full" }, Mt = ["onClick"], _t = { class: "flex items-center gap-2" }, Tt = {
1056
1115
  key: 0,
1057
1116
  class: "text-xs text-gray-400"
1058
- }, Tt = { key: 0 }, _t = { key: 1 }, zt = { class: "w-full" }, jt = {
1117
+ }, jt = { key: 0 }, Vt = { key: 1 }, It = { class: "w-full" }, St = {
1059
1118
  key: 0,
1060
1119
  class: "flex items-center justify-center py-12 text-gray-400"
1061
- }, Vt = {
1120
+ }, Lt = {
1062
1121
  key: 0,
1063
1122
  class: "w-full px-6 py-4 bg-white"
1064
- }, St = /* @__PURE__ */ O({
1123
+ }, Ot = /* @__PURE__ */ O({
1065
1124
  __name: "Table",
1066
1125
  props: {
1067
1126
  columns: {},
@@ -1072,147 +1131,147 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1072
1131
  rowClass: { default: void 0 }
1073
1132
  },
1074
1133
  setup(t) {
1075
- const b = t, e = P(null), i = P("asc"), n = (u) => {
1076
- e.value === u ? i.value = i.value === "asc" ? "desc" : "asc" : (e.value = u, i.value = "asc");
1077
- }, r = d(() => {
1134
+ const u = t, e = E(null), d = E("asc"), r = (a) => {
1135
+ e.value === a ? d.value = d.value === "asc" ? "desc" : "asc" : (e.value = a, d.value = "asc");
1136
+ }, i = c(() => {
1078
1137
  if (!e.value)
1079
- return b.data;
1080
- const u = [...b.data];
1081
- return u.sort((v, x) => {
1082
- const y = v[e.value], c = x[e.value];
1083
- return typeof y == "string" && typeof c == "string" ? i.value === "asc" ? y.localeCompare(c) : c.localeCompare(y) : typeof y == "number" && typeof c == "number" ? i.value === "asc" ? y - c : c - y : 0;
1084
- }), u;
1085
- }), f = d(() => b.columns.filter((u) => !u.hideOnMobile));
1086
- return (u, v) => (s(), o("div", xt, [
1087
- l("div", bt, [
1088
- (s(!0), o(A, null, W(r.value, (x, y) => (s(), o("div", {
1138
+ return u.data;
1139
+ const a = [...u.data];
1140
+ return a.sort((g, v) => {
1141
+ const y = g[e.value], f = v[e.value];
1142
+ return typeof y == "string" && typeof f == "string" ? d.value === "asc" ? y.localeCompare(f) : f.localeCompare(y) : typeof y == "number" && typeof f == "number" ? d.value === "asc" ? y - f : f - y : 0;
1143
+ }), a;
1144
+ }), p = c(() => u.columns.filter((a) => !a.hideOnMobile));
1145
+ return (a, g) => (s(), o("div", yt, [
1146
+ l("div", mt, [
1147
+ (s(!0), o(A, null, W(i.value, (v, y) => (s(), o("div", {
1089
1148
  key: `card-${y}`,
1090
1149
  class: "rounded-lg border border-gray-200 bg-white p-4 shadow-sm"
1091
1150
  }, [
1092
- (s(!0), o(A, null, W(f.value, (c) => (s(), o("div", {
1093
- key: `card-${y}-${c.key}`,
1151
+ (s(!0), o(A, null, W(p.value, (f) => (s(), o("div", {
1152
+ key: `card-${y}-${f.key}`,
1094
1153
  class: "flex flex-col gap-1 py-1"
1095
1154
  }, [
1096
- l("span", ht, w(c.label), 1),
1097
- l("span", yt, [
1098
- B(u.$slots, `cell-${c.key}`, {
1099
- value: x[c.key],
1100
- row: x
1155
+ l("span", wt, w(f.label), 1),
1156
+ l("span", kt, [
1157
+ B(a.$slots, `cell-${f.key}`, {
1158
+ value: v[f.key],
1159
+ row: v
1101
1160
  }, () => [
1102
- E(w(x[c.key]), 1)
1161
+ P(w(v[f.key]), 1)
1103
1162
  ], !0)
1104
1163
  ])
1105
1164
  ]))), 128))
1106
1165
  ]))), 128)),
1107
- r.value.length === 0 ? (s(), o("div", mt, [
1108
- B(u.$slots, "empty", {}, () => [
1109
- v[0] || (v[0] = E("No hay datos disponibles", -1))
1166
+ i.value.length === 0 ? (s(), o("div", $t, [
1167
+ B(a.$slots, "empty", {}, () => [
1168
+ g[0] || (g[0] = P("No hay datos disponibles", -1))
1110
1169
  ], !0)
1111
- ])) : g("", !0)
1170
+ ])) : h("", !0)
1112
1171
  ]),
1113
- l("div", wt, [
1114
- l("table", kt, [
1115
- l("thead", $t, [
1172
+ l("div", Ct, [
1173
+ l("table", Bt, [
1174
+ l("thead", zt, [
1116
1175
  l("tr", {
1117
- class: p([
1176
+ class: x([
1118
1177
  "w-full",
1119
- b.headerClass || "bg-neutral-50 border-b border-gray-100"
1178
+ u.headerClass || "bg-neutral-50 border-b border-gray-100"
1120
1179
  ])
1121
1180
  }, [
1122
- (s(!0), o(A, null, W(t.columns, (x) => (s(), o("th", {
1123
- key: x.key,
1124
- style: R(x.width ? { width: x.width } : {}),
1125
- class: p([
1181
+ (s(!0), o(A, null, W(t.columns, (v) => (s(), o("th", {
1182
+ key: v.key,
1183
+ style: R(v.width ? { width: v.width } : {}),
1184
+ class: x([
1126
1185
  "px-4 py-3 text-left text-xs font-semibold text-gray-700 border-l border-gray-100 first:border-l-0",
1127
- x.sortable ? "cursor-pointer hover:text-primary-600 select-none transition-colors" : "",
1128
- b.headerCellClass
1186
+ v.sortable ? "cursor-pointer hover:text-primary-600 select-none transition-colors" : "",
1187
+ u.headerCellClass
1129
1188
  ]),
1130
- onClick: (y) => x.sortable && n(x.key)
1189
+ onClick: (y) => v.sortable && r(v.key)
1131
1190
  }, [
1132
- l("div", Bt, [
1133
- l("span", null, w(x.label), 1),
1134
- x.sortable ? (s(), o("span", Mt, [
1135
- e.value !== x.key ? (s(), o("span", Tt, "⇅")) : (s(), o("span", _t, w(i.value === "asc" ? "↑" : "↓"), 1))
1136
- ])) : g("", !0)
1191
+ l("div", _t, [
1192
+ l("span", null, w(v.label), 1),
1193
+ v.sortable ? (s(), o("span", Tt, [
1194
+ e.value !== v.key ? (s(), o("span", jt, "⇅")) : (s(), o("span", Vt, w(d.value === "asc" ? "↑" : "↓"), 1))
1195
+ ])) : h("", !0)
1137
1196
  ])
1138
- ], 14, Ct))), 128))
1197
+ ], 14, Mt))), 128))
1139
1198
  ], 2)
1140
1199
  ]),
1141
- l("tbody", zt, [
1142
- (s(!0), o(A, null, W(r.value, (x, y) => (s(), o("tr", {
1200
+ l("tbody", It, [
1201
+ (s(!0), o(A, null, W(i.value, (v, y) => (s(), o("tr", {
1143
1202
  key: y,
1144
- class: p([
1203
+ class: x([
1145
1204
  "w-full border-b border-gray-200 hover:bg-gray-50 transition-colors",
1146
- b.rowClass
1205
+ u.rowClass
1147
1206
  ])
1148
1207
  }, [
1149
- (s(!0), o(A, null, W(t.columns, (c) => (s(), o("td", {
1150
- key: `${y}-${c.key}`,
1151
- class: p([
1208
+ (s(!0), o(A, null, W(t.columns, (f) => (s(), o("td", {
1209
+ key: `${y}-${f.key}`,
1210
+ class: x([
1152
1211
  "px-4 py-3 text-xs text-gray-600 border-l border-gray-100 first:border-l-0",
1153
- b.cellClass
1212
+ u.cellClass
1154
1213
  ])
1155
1214
  }, [
1156
- B(u.$slots, `cell-${c.key}`, {
1157
- value: x[c.key],
1158
- row: x
1215
+ B(a.$slots, `cell-${f.key}`, {
1216
+ value: v[f.key],
1217
+ row: v
1159
1218
  }, () => [
1160
- E(w(x[c.key]), 1)
1219
+ P(w(v[f.key]), 1)
1161
1220
  ], !0)
1162
1221
  ], 2))), 128))
1163
1222
  ], 2))), 128))
1164
1223
  ])
1165
1224
  ]),
1166
- r.value.length === 0 ? (s(), o("div", jt, [
1167
- B(u.$slots, "empty", {}, () => [
1168
- v[1] || (v[1] = E("No hay datos disponibles", -1))
1225
+ i.value.length === 0 ? (s(), o("div", St, [
1226
+ B(a.$slots, "empty", {}, () => [
1227
+ g[1] || (g[1] = P("No hay datos disponibles", -1))
1169
1228
  ], !0)
1170
- ])) : g("", !0)
1229
+ ])) : h("", !0)
1171
1230
  ]),
1172
- u.$slots.footer ? (s(), o("div", Vt, [
1173
- B(u.$slots, "footer", {}, void 0, !0)
1174
- ])) : g("", !0)
1231
+ a.$slots.footer ? (s(), o("div", Lt, [
1232
+ B(a.$slots, "footer", {}, void 0, !0)
1233
+ ])) : h("", !0)
1175
1234
  ]));
1176
1235
  }
1177
- }), us = /* @__PURE__ */ N(St, [["__scopeId", "data-v-8e7ce66d"]]), Lt = { class: "w-full" }, It = {
1236
+ }), gs = /* @__PURE__ */ N(Ot, [["__scopeId", "data-v-8e7ce66d"]]), Dt = { class: "w-full" }, At = {
1178
1237
  class: "tabs-container flex flex-col sm:flex-row",
1179
1238
  role: "tablist"
1180
- }, Ot = ["aria-selected", "onClick"], Dt = { role: "tabpanel" }, At = "relative w-full sm:w-auto text-left sm:text-center px-4 sm:px-6 py-3 text-base font-semibold tracking-wide transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary-500 border-b-2", Et = "text-primary-600 border-primary-600", Pt = "hover:text-secondary-700 border-gray-100", Ht = /* @__PURE__ */ O({
1239
+ }, Pt = ["aria-selected", "onClick"], Et = { role: "tabpanel" }, Ht = "relative w-full sm:w-auto text-left sm:text-center px-4 sm:px-6 py-3 text-base font-semibold tracking-wide transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-primary-500 border-b-2", Wt = "text-primary-600 border-primary-600", Nt = "hover:text-secondary-700 border-gray-100", Ft = /* @__PURE__ */ O({
1181
1240
  __name: "Tabs",
1182
1241
  props: {
1183
1242
  modelValue: {},
1184
1243
  tabs: {}
1185
1244
  },
1186
1245
  emits: ["update:modelValue"],
1187
- setup(t, { emit: b }) {
1188
- const e = t, i = b, n = (v) => e.modelValue === v, r = (v) => {
1189
- n(v) || i("update:modelValue", v);
1190
- }, f = d(() => e.modelValue), u = d(
1191
- () => e.tabs.find((v) => v.value === f.value)
1246
+ setup(t, { emit: u }) {
1247
+ const e = t, d = u, r = (g) => e.modelValue === g, i = (g) => {
1248
+ r(g) || d("update:modelValue", g);
1249
+ }, p = c(() => e.modelValue), a = c(
1250
+ () => e.tabs.find((g) => g.value === p.value)
1192
1251
  );
1193
- return (v, x) => (s(), o("div", Lt, [
1194
- l("div", It, [
1252
+ return (g, v) => (s(), o("div", Dt, [
1253
+ l("div", At, [
1195
1254
  (s(!0), o(A, null, W(t.tabs, (y) => (s(), o("button", {
1196
1255
  key: y.value,
1197
1256
  type: "button",
1198
- class: p([
1199
- At,
1200
- n(y.value) ? Et : Pt
1257
+ class: x([
1258
+ Ht,
1259
+ r(y.value) ? Wt : Nt
1201
1260
  ]),
1202
- "aria-selected": n(y.value),
1261
+ "aria-selected": r(y.value),
1203
1262
  role: "tab",
1204
- onClick: (c) => r(y.value)
1205
- }, w(y.label), 11, Ot))), 128))
1263
+ onClick: (f) => i(y.value)
1264
+ }, w(y.label), 11, Pt))), 128))
1206
1265
  ]),
1207
- l("div", Dt, [
1208
- B(v.$slots, f.value, {
1209
- active: f.value,
1210
- tab: u.value
1266
+ l("div", Et, [
1267
+ B(g.$slots, p.value, {
1268
+ active: p.value,
1269
+ tab: a.value
1211
1270
  }, void 0, !0)
1212
1271
  ])
1213
1272
  ]));
1214
1273
  }
1215
- }), cs = /* @__PURE__ */ N(Ht, [["__scopeId", "data-v-b5a754bd"]]), Wt = "font-sans", fs = /* @__PURE__ */ O({
1274
+ }), xs = /* @__PURE__ */ N(Ft, [["__scopeId", "data-v-b5a754bd"]]), Rt = "font-sans", hs = /* @__PURE__ */ O({
1216
1275
  __name: "Text",
1217
1276
  props: {
1218
1277
  variant: { default: "body1" },
@@ -1224,7 +1283,7 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1224
1283
  weight: {}
1225
1284
  },
1226
1285
  setup(t) {
1227
- const b = {
1286
+ const u = {
1228
1287
  h1: "text-[40px] leading-[57px] tracking-[0px] font-extrabold",
1229
1288
  h2: "text-[40px] leading-[57px] tracking-[0px] font-bold",
1230
1289
  h3: "text-[28px] leading-[39px] tracking-[0px] font-extrabold",
@@ -1264,12 +1323,12 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1264
1323
  button3: "span",
1265
1324
  caption: "span",
1266
1325
  overline: "span"
1267
- }, i = {
1326
+ }, d = {
1268
1327
  left: "text-left",
1269
1328
  center: "text-center",
1270
1329
  right: "text-right",
1271
1330
  justify: "text-justify"
1272
- }, n = {
1331
+ }, r = {
1273
1332
  default: "text-secondary-900",
1274
1333
  muted: "text-secondary-600",
1275
1334
  primary: "text-primary-600",
@@ -1277,23 +1336,23 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1277
1336
  danger: "text-danger-600",
1278
1337
  success: "text-success-600",
1279
1338
  warning: "text-warning-600"
1280
- }, r = {
1339
+ }, i = {
1281
1340
  light: "font-light",
1282
1341
  normal: "font-normal",
1283
1342
  medium: "font-medium",
1284
1343
  semibold: "font-semibold",
1285
1344
  bold: "font-bold",
1286
1345
  extrabold: "font-extrabold"
1287
- }, f = t, u = d(() => f.variant), v = d(() => f.color), x = d(() => f.align), y = d(() => f.as || e[u.value] || "span"), c = d(() => f.weight ? r[f.weight] : "");
1346
+ }, p = t, a = c(() => p.variant), g = c(() => p.color), v = c(() => p.align), y = c(() => p.as || e[a.value] || "span"), f = c(() => p.weight ? i[p.weight] : "");
1288
1347
  return (_, C) => (s(), q(Y(y.value), {
1289
- class: p([
1290
- Wt,
1291
- b[u.value],
1292
- n[v.value],
1293
- i[x.value],
1294
- c.value,
1348
+ class: x([
1349
+ Rt,
1350
+ u[a.value],
1351
+ r[g.value],
1352
+ d[v.value],
1353
+ f.value,
1295
1354
  {
1296
- uppercase: t.uppercase || u.value === "overline",
1355
+ uppercase: t.uppercase || a.value === "overline",
1297
1356
  truncate: t.truncate
1298
1357
  }
1299
1358
  ])
@@ -1304,17 +1363,17 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1304
1363
  _: 3
1305
1364
  }, 8, ["class"]));
1306
1365
  }
1307
- }), Ft = { class: "w-full flex items-center justify-between gap-3 py-2" }, Nt = {
1366
+ }), Kt = { class: "w-full flex items-center justify-between gap-3 py-2" }, qt = {
1308
1367
  key: 0,
1309
1368
  class: "text-xs text-secondary-600"
1310
- }, Rt = { key: 0 }, Kt = {
1369
+ }, Ut = { key: 0 }, Gt = {
1311
1370
  class: "ml-auto inline-flex items-center gap-1",
1312
1371
  role: "navigation",
1313
1372
  "aria-label": "Pagination"
1314
- }, qt = ["disabled"], Ut = {
1373
+ }, Qt = ["disabled"], Zt = {
1315
1374
  key: 0,
1316
1375
  class: "h-8 min-w-8 px-2 inline-flex items-center justify-center text-secondary-500"
1317
- }, Gt = ["aria-label", "onClick"], Qt = ["disabled"], Zt = /* @__PURE__ */ O({
1376
+ }, Jt = ["aria-label", "onClick"], Xt = ["disabled"], Yt = /* @__PURE__ */ O({
1318
1377
  __name: "Pagination",
1319
1378
  props: {
1320
1379
  modelValue: { default: 1 },
@@ -1327,77 +1386,77 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1327
1386
  itemLabel: { default: "" }
1328
1387
  },
1329
1388
  emits: ["update:modelValue", "change"],
1330
- setup(t, { emit: b }) {
1331
- const e = t, i = b, n = d(() => {
1332
- const c = Math.ceil(e.totalItems / e.pageSize);
1333
- return c > 0 ? c : 1;
1334
- }), r = d(() => {
1335
- const c = Number(e.modelValue || 1);
1336
- return c < 1 ? 1 : c > n.value ? n.value : c;
1337
- }), f = d(() => e.totalItems === 0 ? 0 : (r.value - 1) * e.pageSize + 1), u = d(() => Math.min(r.value * e.pageSize, e.totalItems)), v = d(() => `Mostrando ${f.value} a ${u.value} de ${e.totalItems}`), x = d(() => {
1338
- const c = n.value, _ = Math.max(3, e.maxPages), C = r.value;
1339
- if (c <= _)
1340
- return Array.from({ length: c }, (k, j) => j + 1);
1341
- const S = Math.floor(_ / 2);
1342
- let V = Math.max(1, C - S), z = Math.min(c, V + _ - 1);
1343
- V = Math.max(1, Math.min(V, z - _ + 1));
1344
- const h = [];
1345
- V > 1 && (h.push(1), V > 2 && h.push("…"));
1346
- for (let k = V; k <= z; k++)
1347
- h.push(k);
1348
- return z < c && (z < c - 1 && h.push("…"), h.push(c)), h;
1389
+ setup(t, { emit: u }) {
1390
+ const e = t, d = u, r = c(() => {
1391
+ const f = Math.ceil(e.totalItems / e.pageSize);
1392
+ return f > 0 ? f : 1;
1393
+ }), i = c(() => {
1394
+ const f = Number(e.modelValue || 1);
1395
+ return f < 1 ? 1 : f > r.value ? r.value : f;
1396
+ }), p = c(() => e.totalItems === 0 ? 0 : (i.value - 1) * e.pageSize + 1), a = c(() => Math.min(i.value * e.pageSize, e.totalItems)), g = c(() => `Mostrando ${p.value} a ${a.value} de ${e.totalItems}`), v = c(() => {
1397
+ const f = r.value, _ = Math.max(3, e.maxPages), C = i.value;
1398
+ if (f <= _)
1399
+ return Array.from({ length: f }, (k, j) => j + 1);
1400
+ const I = Math.floor(_ / 2);
1401
+ let V = Math.max(1, C - I), T = Math.min(f, V + _ - 1);
1402
+ V = Math.max(1, Math.min(V, T - _ + 1));
1403
+ const b = [];
1404
+ V > 1 && (b.push(1), V > 2 && b.push("…"));
1405
+ for (let k = V; k <= T; k++)
1406
+ b.push(k);
1407
+ return T < f && (T < f - 1 && b.push("…"), b.push(f)), b;
1349
1408
  });
1350
- function y(c) {
1351
- const _ = Math.max(1, Math.min(c, n.value));
1352
- _ !== r.value && (i("update:modelValue", _), i("change", _));
1409
+ function y(f) {
1410
+ const _ = Math.max(1, Math.min(f, r.value));
1411
+ _ !== i.value && (d("update:modelValue", _), d("change", _));
1353
1412
  }
1354
- return (c, _) => (s(), o("div", Ft, [
1355
- t.showSummary ? (s(), o("div", Nt, [
1356
- B(c.$slots, "summary", {
1357
- start: f.value,
1358
- end: u.value,
1413
+ return (f, _) => (s(), o("div", Kt, [
1414
+ t.showSummary ? (s(), o("div", qt, [
1415
+ B(f.$slots, "summary", {
1416
+ start: p.value,
1417
+ end: a.value,
1359
1418
  total: t.totalItems
1360
1419
  }, () => [
1361
- E(w(v.value), 1),
1362
- t.itemLabel ? (s(), o("span", Rt, w(t.itemLabel), 1)) : g("", !0)
1420
+ P(w(g.value), 1),
1421
+ t.itemLabel ? (s(), o("span", Ut, w(t.itemLabel), 1)) : h("", !0)
1363
1422
  ], !0)
1364
- ])) : g("", !0),
1365
- l("nav", Kt, [
1423
+ ])) : h("", !0),
1424
+ l("nav", Gt, [
1366
1425
  l("button", {
1367
1426
  type: "button",
1368
1427
  class: "h-8 px-3 rounded-full text-sm font-semibold text-secondary-700 hover:bg-secondary-100 disabled:opacity-50 disabled:cursor-not-allowed",
1369
- disabled: r.value <= 1,
1370
- onClick: _[0] || (_[0] = (C) => y(r.value - 1)),
1428
+ disabled: i.value <= 1,
1429
+ onClick: _[0] || (_[0] = (C) => y(i.value - 1)),
1371
1430
  "aria-label": "Anterior"
1372
- }, w(t.previousText), 9, qt),
1373
- (s(!0), o(A, null, W(x.value, (C, S) => (s(), o(A, {
1374
- key: `page-${S}-${C}`
1431
+ }, w(t.previousText), 9, Qt),
1432
+ (s(!0), o(A, null, W(v.value, (C, I) => (s(), o(A, {
1433
+ key: `page-${I}-${C}`
1375
1434
  }, [
1376
- C === "…" ? (s(), o("span", Ut, " … ")) : (s(), o("button", {
1435
+ C === "…" ? (s(), o("span", Zt, " … ")) : (s(), o("button", {
1377
1436
  key: 1,
1378
1437
  type: "button",
1379
1438
  "aria-label": `Página ${C}`,
1380
- class: p([
1439
+ class: x([
1381
1440
  "h-8 min-w-8 px-3 rounded-full text-sm font-semibold transition-colors",
1382
- C === r.value ? "bg-primary-500 text-white" : "text-secondary-700 hover:bg-secondary-100"
1441
+ C === i.value ? "bg-primary-500 text-white" : "text-secondary-700 hover:bg-secondary-100"
1383
1442
  ]),
1384
1443
  onClick: (V) => y(C)
1385
- }, w(C), 11, Gt))
1444
+ }, w(C), 11, Jt))
1386
1445
  ], 64))), 128)),
1387
1446
  l("button", {
1388
1447
  type: "button",
1389
1448
  class: "h-8 px-3 rounded-full text-sm font-semibold text-secondary-700 hover:bg-secondary-100 disabled:opacity-50 disabled:cursor-not-allowed",
1390
- disabled: r.value >= n.value,
1391
- onClick: _[1] || (_[1] = (C) => y(r.value + 1)),
1449
+ disabled: i.value >= r.value,
1450
+ onClick: _[1] || (_[1] = (C) => y(i.value + 1)),
1392
1451
  "aria-label": "Siguiente"
1393
- }, w(t.nextText), 9, Qt)
1452
+ }, w(t.nextText), 9, Xt)
1394
1453
  ])
1395
1454
  ]));
1396
1455
  }
1397
- }), ps = /* @__PURE__ */ N(Zt, [["__scopeId", "data-v-87417cc4"]]), Jt = ["data-node-id"], Xt = { class: "shrink-0 size-12 rounded-full bg-[var(--neutrales/fondo-general-claro,#f7f7f7)] grid place-items-center" }, Yt = {
1456
+ }), bs = /* @__PURE__ */ N(Yt, [["__scopeId", "data-v-87417cc4"]]), es = ["data-node-id"], ts = { class: "shrink-0 size-12 rounded-full bg-[var(--neutrales/fondo-general-claro,#f7f7f7)] grid place-items-center" }, ss = {
1398
1457
  key: 1,
1399
1458
  class: "flex justify-end gap-1 px-6 pb-6 pt-4"
1400
- }, gs = /* @__PURE__ */ O({
1459
+ }, ys = /* @__PURE__ */ O({
1401
1460
  __name: "Alert",
1402
1461
  props: {
1403
1462
  variant: {},
@@ -1410,10 +1469,10 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1410
1469
  stackOn: {}
1411
1470
  },
1412
1471
  emits: ["close", "accept", "cancel"],
1413
- setup(t, { emit: b }) {
1414
- const e = b, i = t, n = d(() => i.variant ?? "info"), r = d(() => i.multiline ?? !1), f = d(() => i.actions ?? !1), u = d(() => i.nodeId ?? void 0), v = () => e("close"), x = d(() => {
1415
- if (i.title) return i.title;
1416
- switch (n.value) {
1472
+ setup(t, { emit: u }) {
1473
+ const e = u, d = t, r = c(() => d.variant ?? "info"), i = c(() => d.multiline ?? !1), p = c(() => d.actions ?? !1), a = c(() => d.nodeId ?? void 0), g = () => e("close"), v = c(() => {
1474
+ if (d.title) return d.title;
1475
+ switch (r.value) {
1417
1476
  case "info":
1418
1477
  return "Alerta de información";
1419
1478
  case "warning":
@@ -1423,8 +1482,8 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1423
1482
  case "error":
1424
1483
  return "Alerta de error";
1425
1484
  }
1426
- }), y = d(() => i.description ?? ""), c = d(() => {
1427
- switch (n.value) {
1485
+ }), y = c(() => d.description ?? ""), f = c(() => {
1486
+ switch (r.value) {
1428
1487
  case "info":
1429
1488
  return {
1430
1489
  border: "border-[var(--semantica/info,#0064ff)]",
@@ -1450,31 +1509,31 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1450
1509
  icon: "text-[#ff4235]"
1451
1510
  };
1452
1511
  }
1453
- }), _ = d(() => "bg-[var(--color-primario/700,#269ea4)]"), C = d(() => {
1454
- const z = "flex w-full items-start gap-4 flex-col";
1455
- if (!i.stackOn) return `${z} sm:flex-row sm:items-center`;
1456
- const h = i.stackOn, k = `${h}:flex-row ${h}:items-center`;
1457
- return `${z} ${k}`;
1458
- }), S = d(() => {
1459
- if (!i.stackOn) return "flex-col sm:flex-row items-start sm:items-center";
1460
- const z = i.stackOn;
1461
- return `flex-col ${z}:flex-row items-start ${z}:items-center`;
1462
- }), V = d(() => i.stackOn ? `self-start ${i.stackOn}:self-auto` : "self-start sm:self-auto");
1463
- return (z, h) => (s(), o("div", {
1464
- class: p(["relative w-full rounded-xl border", [
1465
- c.value.border,
1466
- c.value.bg
1512
+ }), _ = c(() => "bg-[var(--color-primario/700,#269ea4)]"), C = c(() => {
1513
+ const T = "flex w-full items-start gap-4 flex-col";
1514
+ if (!d.stackOn) return `${T} sm:flex-row sm:items-center`;
1515
+ const b = d.stackOn, k = `${b}:flex-row ${b}:items-center`;
1516
+ return `${T} ${k}`;
1517
+ }), I = c(() => {
1518
+ if (!d.stackOn) return "flex-col sm:flex-row items-start sm:items-center";
1519
+ const T = d.stackOn;
1520
+ return `flex-col ${T}:flex-row items-start ${T}:items-center`;
1521
+ }), V = c(() => d.stackOn ? `self-start ${d.stackOn}:self-auto` : "self-start sm:self-auto");
1522
+ return (T, b) => (s(), o("div", {
1523
+ class: x(["relative w-full rounded-xl border", [
1524
+ f.value.border,
1525
+ f.value.bg
1467
1526
  ]]),
1468
1527
  role: "alert",
1469
- "data-node-id": u.value
1528
+ "data-node-id": a.value
1470
1529
  }, [
1471
1530
  t.closable ? (s(), o("button", {
1472
1531
  key: 0,
1473
1532
  type: "button",
1474
1533
  class: "absolute top-3 right-3 text-[color:var(--neutrales/texto-principal,#565656)]/70 hover:opacity-100 opacity-70",
1475
1534
  "aria-label": "Cerrar",
1476
- onClick: v
1477
- }, [...h[2] || (h[2] = [
1535
+ onClick: g
1536
+ }, [...b[2] || (b[2] = [
1478
1537
  l("svg", {
1479
1538
  xmlns: "http://www.w3.org/2000/svg",
1480
1539
  width: "18",
@@ -1499,27 +1558,27 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1499
1558
  y2: "18"
1500
1559
  })
1501
1560
  ], -1)
1502
- ])])) : g("", !0),
1561
+ ])])) : h("", !0),
1503
1562
  l("div", {
1504
- class: p(["p-6", { "pb-0": f.value }])
1563
+ class: x(["p-6", { "pb-0": p.value }])
1505
1564
  }, [
1506
1565
  l("div", {
1507
- class: p(C.value)
1566
+ class: x(C.value)
1508
1567
  }, [
1509
- l("div", Xt, [
1510
- n.value === "info" ? (s(), o("svg", {
1568
+ l("div", ts, [
1569
+ r.value === "info" ? (s(), o("svg", {
1511
1570
  key: 0,
1512
1571
  xmlns: "http://www.w3.org/2000/svg",
1513
1572
  width: "24",
1514
1573
  height: "24",
1515
1574
  viewBox: "0 0 24 24",
1516
1575
  fill: "none",
1517
- class: p(c.value.icon),
1576
+ class: x(f.value.icon),
1518
1577
  stroke: "currentColor",
1519
1578
  "stroke-width": "2",
1520
1579
  "stroke-linecap": "round",
1521
1580
  "stroke-linejoin": "round"
1522
- }, [...h[3] || (h[3] = [
1581
+ }, [...b[3] || (b[3] = [
1523
1582
  l("circle", {
1524
1583
  cx: "12",
1525
1584
  cy: "12",
@@ -1537,19 +1596,19 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1537
1596
  x2: "12",
1538
1597
  y2: "8"
1539
1598
  }, null, -1)
1540
- ])], 2)) : n.value === "warning" ? (s(), o("svg", {
1599
+ ])], 2)) : r.value === "warning" ? (s(), o("svg", {
1541
1600
  key: 1,
1542
1601
  xmlns: "http://www.w3.org/2000/svg",
1543
1602
  width: "24",
1544
1603
  height: "24",
1545
1604
  viewBox: "0 0 24 24",
1546
1605
  fill: "none",
1547
- class: p(c.value.icon),
1606
+ class: x(f.value.icon),
1548
1607
  stroke: "currentColor",
1549
1608
  "stroke-width": "2",
1550
1609
  "stroke-linecap": "round",
1551
1610
  "stroke-linejoin": "round"
1552
- }, [...h[4] || (h[4] = [
1611
+ }, [...b[4] || (b[4] = [
1553
1612
  l("path", { d: "M10.29 3.86 1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0Z" }, null, -1),
1554
1613
  l("line", {
1555
1614
  x1: "12",
@@ -1563,19 +1622,19 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1563
1622
  x2: "12",
1564
1623
  y2: "17"
1565
1624
  }, null, -1)
1566
- ])], 2)) : n.value === "success" ? (s(), o("svg", {
1625
+ ])], 2)) : r.value === "success" ? (s(), o("svg", {
1567
1626
  key: 2,
1568
1627
  xmlns: "http://www.w3.org/2000/svg",
1569
1628
  width: "24",
1570
1629
  height: "24",
1571
1630
  viewBox: "0 0 24 24",
1572
1631
  fill: "none",
1573
- class: p(c.value.icon),
1632
+ class: x(f.value.icon),
1574
1633
  stroke: "currentColor",
1575
1634
  "stroke-width": "2",
1576
1635
  "stroke-linecap": "round",
1577
1636
  "stroke-linejoin": "round"
1578
- }, [...h[5] || (h[5] = [
1637
+ }, [...b[5] || (b[5] = [
1579
1638
  l("path", { d: "M22 11.08V12a10 10 0 1 1-5.93-9.14" }, null, -1),
1580
1639
  l("polyline", { points: "22 4 12 14.01 9 11.01" }, null, -1)
1581
1640
  ])], 2)) : (s(), o("svg", {
@@ -1585,12 +1644,12 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1585
1644
  height: "24",
1586
1645
  viewBox: "0 0 24 24",
1587
1646
  fill: "none",
1588
- class: p(c.value.icon),
1647
+ class: x(f.value.icon),
1589
1648
  stroke: "currentColor",
1590
1649
  "stroke-width": "2",
1591
1650
  "stroke-linecap": "round",
1592
1651
  "stroke-linejoin": "round"
1593
- }, [...h[6] || (h[6] = [
1652
+ }, [...b[6] || (b[6] = [
1594
1653
  l("polygon", { points: "7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2" }, null, -1),
1595
1654
  l("line", {
1596
1655
  x1: "12",
@@ -1607,57 +1666,58 @@ const le = { class: "flex items-center gap-2 sm:gap-3 shrink-0" }, ae = {
1607
1666
  ])], 2))
1608
1667
  ]),
1609
1668
  l("div", {
1610
- class: p(["flex-1 flex gap-4 text-[14px]", [S.value, t.closable ? "pr-6" : "", { "whitespace-nowrap": !r.value, "whitespace-pre-wrap": r.value }]])
1669
+ class: x(["flex-1 flex gap-4 text-[14px]", [I.value, t.closable ? "pr-6" : "", { "whitespace-nowrap": !i.value, "whitespace-pre-wrap": i.value }]])
1611
1670
  }, [
1612
1671
  l("div", {
1613
- class: p(["tracking-[0.1px] text-[color:var(--neutrales/texto-principal,#565656)] font-medium", V.value])
1614
- }, w(x.value), 3),
1672
+ class: x(["tracking-[0.1px] text-[color:var(--neutrales/texto-principal,#565656)] font-medium", V.value])
1673
+ }, w(v.value), 3),
1615
1674
  l("div", {
1616
- class: p(["flex-1 tracking-[0.25px] text-[color:var(--neutrales/texto-principal,#565656)]", { "overflow-hidden overflow-ellipsis": !r.value }])
1675
+ class: x(["flex-1 tracking-[0.25px] text-[color:var(--neutrales/texto-principal,#565656)]", { "overflow-hidden overflow-ellipsis": !i.value }])
1617
1676
  }, [
1618
- B(z.$slots, "description", {}, () => [
1619
- E(w(y.value), 1)
1677
+ B(T.$slots, "description", {}, () => [
1678
+ P(w(y.value), 1)
1620
1679
  ])
1621
1680
  ], 2)
1622
1681
  ], 2)
1623
1682
  ], 2)
1624
1683
  ], 2),
1625
- f.value ? (s(), o("div", Yt, [
1684
+ p.value ? (s(), o("div", ss, [
1626
1685
  l("button", {
1627
1686
  type: "button",
1628
1687
  class: "px-4 py-1.5 rounded-[18px] text-[14px] tracking-[1.25px] font-bold text-[color:var(--neutrales/texto-principal,#565656)]",
1629
- onClick: h[0] || (h[0] = (k) => z.$emit("cancel"))
1688
+ onClick: b[0] || (b[0] = (k) => T.$emit("cancel"))
1630
1689
  }, [
1631
- B(z.$slots, "cancel", {}, () => [
1632
- h[7] || (h[7] = E("Cancelar", -1))
1690
+ B(T.$slots, "cancel", {}, () => [
1691
+ b[7] || (b[7] = P("Cancelar", -1))
1633
1692
  ])
1634
1693
  ]),
1635
1694
  l("button", {
1636
1695
  type: "button",
1637
- class: p(["px-4 py-1.5 rounded-[18px] text-[14px] tracking-[1.25px] font-bold text-white", _.value]),
1638
- onClick: h[1] || (h[1] = (k) => z.$emit("accept"))
1696
+ class: x(["px-4 py-1.5 rounded-[18px] text-[14px] tracking-[1.25px] font-bold text-white", _.value]),
1697
+ onClick: b[1] || (b[1] = (k) => T.$emit("accept"))
1639
1698
  }, [
1640
- B(z.$slots, "accept", {}, () => [
1641
- h[8] || (h[8] = E("Aceptar", -1))
1699
+ B(T.$slots, "accept", {}, () => [
1700
+ b[8] || (b[8] = P("Aceptar", -1))
1642
1701
  ])
1643
1702
  ], 2)
1644
- ])) : g("", !0)
1645
- ], 10, Jt));
1703
+ ])) : h("", !0)
1704
+ ], 10, es));
1646
1705
  }
1647
1706
  });
1648
1707
  export {
1649
- gs as Alert,
1650
- ts as AppBar,
1651
- ss as Button,
1652
- os as Card,
1653
- ls as Dialog,
1654
- as as FileUpload,
1655
- ns as Loader,
1656
- rs as Menu,
1657
- ps as Pagination,
1658
- is as Select,
1659
- ds as Sidebar,
1660
- us as Table,
1661
- cs as Tabs,
1662
- fs as Text
1708
+ ys as Alert,
1709
+ as as AppBar,
1710
+ ns as Button,
1711
+ rs as Card,
1712
+ is as Dialog,
1713
+ ds as FileUpload,
1714
+ us as Icon,
1715
+ cs as Loader,
1716
+ fs as Menu,
1717
+ bs as Pagination,
1718
+ ps as Select,
1719
+ vs as Sidebar,
1720
+ gs as Table,
1721
+ xs as Tabs,
1722
+ hs as Text
1663
1723
  };