@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.
- package/dist/iaclinical-components.cjs +1 -1
- package/dist/iaclinical-components.js +198 -192
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as
|
|
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__ */
|
|
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:
|
|
24
|
-
const e = t, u =
|
|
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:
|
|
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,
|
|
80
|
+
}), R = (t, b) => {
|
|
81
81
|
const e = t.__vccOpts || t;
|
|
82
|
-
for (const [u, n] of
|
|
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__ */
|
|
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:
|
|
102
|
-
const e = t, u =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
123
|
-
|
|
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:
|
|
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__ */
|
|
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
|
|
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 =
|
|
169
|
+
}, n = p(() => [
|
|
166
170
|
"w-full bg-white",
|
|
167
|
-
e[
|
|
168
|
-
u[
|
|
169
|
-
|
|
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:
|
|
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
|
-
}),
|
|
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__ */
|
|
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:
|
|
197
|
-
const e = t, u =
|
|
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] =
|
|
219
|
+
onClick: i[0] || (i[0] = H(() => {
|
|
216
220
|
}, ["stop"]))
|
|
217
221
|
}, [
|
|
218
|
-
a("div",
|
|
219
|
-
a("h2",
|
|
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__ */
|
|
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:
|
|
287
|
-
const e = t, u =
|
|
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
|
-
},
|
|
301
|
+
}, L = ($) => {
|
|
297
302
|
e.disabled || (d.value = !0);
|
|
298
|
-
},
|
|
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
|
|
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 = (
|
|
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
|
-
},
|
|
322
|
+
}, E = ($) => {
|
|
318
323
|
if ($ === 0) return "0 Bytes";
|
|
319
|
-
const B = 1024,
|
|
320
|
-
return Math.round($ / Math.pow(B,
|
|
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:
|
|
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:
|
|
329
|
-
onDragleave:
|
|
330
|
-
onDrop:
|
|
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:
|
|
345
|
+
onChange: M
|
|
341
346
|
}, null, 40, ke),
|
|
342
347
|
a("div", we, [
|
|
343
348
|
a("div", {
|
|
344
|
-
class:
|
|
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] =
|
|
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(
|
|
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:
|
|
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__ */
|
|
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
|
|
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 =
|
|
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:
|
|
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:
|
|
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__ */
|
|
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:
|
|
515
|
-
const e = t, u =
|
|
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 =
|
|
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 =
|
|
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
|
-
],
|
|
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
|
-
|
|
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 ? $() :
|
|
539
|
-
},
|
|
544
|
+
e.disabled || (n.value ? $() : E());
|
|
545
|
+
}, E = () => {
|
|
540
546
|
n.value = !0, u("open"), J(() => {
|
|
541
|
-
m(), document.addEventListener("click",
|
|
547
|
+
m(), document.addEventListener("click", z), document.addEventListener("keydown", I);
|
|
542
548
|
});
|
|
543
549
|
}, $ = () => {
|
|
544
|
-
n.value = !1, u("close"), document.removeEventListener("click",
|
|
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
|
-
},
|
|
553
|
+
}, z = (l) => {
|
|
548
554
|
const k = l.target;
|
|
549
555
|
d.value && !d.value.contains(k) && r.value && !r.value.contains(k) && $();
|
|
550
|
-
},
|
|
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(),
|
|
557
|
-
let
|
|
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
|
-
|
|
566
|
+
T = l.bottom + e.offset.y, V = l.left + e.offset.x;
|
|
561
567
|
break;
|
|
562
568
|
case "bottom-end":
|
|
563
|
-
|
|
569
|
+
T = l.bottom + e.offset.y, V = l.right - k.width + e.offset.x;
|
|
564
570
|
break;
|
|
565
571
|
case "top-start":
|
|
566
|
-
|
|
572
|
+
T = l.top - k.height - e.offset.y, V = l.left + e.offset.x;
|
|
567
573
|
break;
|
|
568
574
|
case "top-end":
|
|
569
|
-
|
|
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
|
-
|
|
578
|
+
T = l.top + e.offset.y, V = l.right + e.offset.x;
|
|
573
579
|
break;
|
|
574
580
|
case "right-end":
|
|
575
|
-
|
|
581
|
+
T = l.bottom - k.height + e.offset.y, V = l.right + e.offset.x;
|
|
576
582
|
break;
|
|
577
583
|
case "left-start":
|
|
578
|
-
|
|
584
|
+
T = l.top + e.offset.y, V = l.left - k.width - e.offset.x;
|
|
579
585
|
break;
|
|
580
586
|
case "left-end":
|
|
581
|
-
|
|
587
|
+
T = l.bottom - k.height + e.offset.y, V = l.left - k.width - e.offset.x;
|
|
582
588
|
break;
|
|
583
589
|
}
|
|
584
|
-
|
|
585
|
-
top: `${
|
|
586
|
-
left: `${
|
|
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",
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
651
|
+
class: v(y.value),
|
|
646
652
|
style: W(f.value),
|
|
647
|
-
onClick: k[0] || (k[0] =
|
|
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:
|
|
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:
|
|
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(
|
|
664
|
-
key:
|
|
669
|
+
(s(!0), o(F, null, A(t.items, (g, N) => (s(), o(F, {
|
|
670
|
+
key: g.id || N
|
|
665
671
|
}, [
|
|
666
|
-
|
|
672
|
+
g.type === "divider" ? (s(), o("div", {
|
|
667
673
|
key: 0,
|
|
668
|
-
class:
|
|
669
|
-
}, null, 2)) :
|
|
674
|
+
class: v(_.value)
|
|
675
|
+
}, null, 2)) : g.type === "header" ? (s(), o("div", {
|
|
670
676
|
key: 1,
|
|
671
|
-
class:
|
|
672
|
-
}, w(
|
|
677
|
+
class: v(M.value)
|
|
678
|
+
}, w(g.label), 3)) : (s(), o("button", {
|
|
673
679
|
key: 2,
|
|
674
680
|
type: "button",
|
|
675
|
-
class:
|
|
676
|
-
disabled:
|
|
677
|
-
onClick: (
|
|
681
|
+
class: v(O(g)),
|
|
682
|
+
disabled: g.disabled,
|
|
683
|
+
onClick: (T) => B(g)
|
|
678
684
|
}, [
|
|
679
|
-
|
|
680
|
-
C(l.$slots, `icon-${
|
|
681
|
-
typeof
|
|
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:
|
|
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-${
|
|
693
|
-
item:
|
|
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:
|
|
700
|
-
}, w(
|
|
701
|
-
|
|
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:
|
|
705
|
-
}, w(
|
|
710
|
+
title: g.description
|
|
711
|
+
}, w(g.description), 9, Re)) : c("", !0)
|
|
706
712
|
])
|
|
707
713
|
], !0)
|
|
708
714
|
]),
|
|
709
|
-
|
|
710
|
-
C(l.$slots, `suffix-${
|
|
711
|
-
|
|
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
|
-
|
|
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:
|
|
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-
|
|
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__ */
|
|
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:
|
|
788
|
-
const e = t, u =
|
|
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 =
|
|
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 =
|
|
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
|
-
}),
|
|
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 =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
828
|
+
}, E = () => {
|
|
823
829
|
n.value = !1, d.value = "";
|
|
824
830
|
}, $ = (h) => {
|
|
825
|
-
h.disabled || (u("update:modelValue", h.value), u("change", h),
|
|
831
|
+
h.disabled || (u("update:modelValue", h.value), u("change", h), E());
|
|
826
832
|
}, B = (h) => {
|
|
827
|
-
h.action && h.action(), u("action", h),
|
|
828
|
-
},
|
|
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
|
-
|
|
837
|
+
E();
|
|
832
838
|
}, 200);
|
|
833
|
-
},
|
|
834
|
-
h.key === "Escape" ?
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
859
|
-
onKeydown:
|
|
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:
|
|
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:
|
|
880
|
-
onClick: m[2] || (m[2] =
|
|
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] =
|
|
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(
|
|
899
|
-
(s(!0), o(
|
|
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:
|
|
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
|
-
|
|
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(
|
|
924
|
+
(s(!0), o(F, null, A(t.actionItems, (l) => (s(), o("button", {
|
|
919
925
|
key: l.id,
|
|
920
926
|
type: "button",
|
|
921
|
-
class:
|
|
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:
|
|
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__ */
|
|
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:
|
|
963
|
-
const e = t, u =
|
|
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 =
|
|
969
|
-
const _ = "fixed top-0 h-full z-50 flex flex-col",
|
|
970
|
-
return [_,
|
|
971
|
-
}), i =
|
|
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 =
|
|
982
|
-
return (_,
|
|
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:
|
|
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:
|
|
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
|
-
}, [...
|
|
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:
|
|
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:
|
|
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"]]),
|
|
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__ */
|
|
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
|
|
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 =
|
|
1068
|
+
}, d = p(() => {
|
|
1063
1069
|
if (!e.value)
|
|
1064
|
-
return
|
|
1065
|
-
const r = [...
|
|
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",
|
|
1072
|
-
a("table",
|
|
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(
|
|
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:
|
|
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(
|
|
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(
|
|
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__ */
|
|
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:
|
|
1133
|
-
const e = t, u =
|
|
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 =
|
|
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(
|
|
1146
|
+
(s(!0), o(F, null, A(t.tabs, (x) => (s(), o("button", {
|
|
1141
1147
|
key: x.value,
|
|
1142
1148
|
type: "button",
|
|
1143
|
-
class:
|
|
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: (
|
|
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__ */
|
|
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
|
|
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 =
|
|
1233
|
-
return (
|
|
1234
|
-
class:
|
|
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
|
-
|
|
1242
|
+
b[f.value],
|
|
1237
1243
|
n[i.value],
|
|
1238
1244
|
u[y.value],
|
|
1239
|
-
|
|
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(
|
|
1253
|
+
C(D.$slots, "default")
|
|
1248
1254
|
]),
|
|
1249
1255
|
_: 3
|
|
1250
1256
|
}, 8, ["class"]));
|