cisse-vue-ui 0.9.0 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ConfirmDialog.vue_vue_type_script_setup_true_lang-C5KHLMvx.js → ConfirmDialog.vue_vue_type_script_setup_true_lang-DhPNxKgF.js} +40 -94
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-DhPNxKgF.js.map +1 -0
- package/dist/{ConfirmDialog.vue_vue_type_script_setup_true_lang-CLfy0-Wb.cjs → ConfirmDialog.vue_vue_type_script_setup_true_lang-DwW3MT85.cjs} +37 -91
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-DwW3MT85.cjs.map +1 -0
- package/dist/{FilterTabs.vue_vue_type_script_setup_true_lang-COkZbeGG.cjs → FilterTabs.vue_vue_type_script_setup_true_lang-CwcJkw3D.cjs} +499 -165
- package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-CwcJkw3D.cjs.map +1 -0
- package/dist/{FilterTabs.vue_vue_type_script_setup_true_lang-CzpYHtc5.js → FilterTabs.vue_vue_type_script_setup_true_lang-aPs8YGWB.js} +494 -160
- package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-aPs8YGWB.js.map +1 -0
- package/dist/{ListSkeleton.vue_vue_type_script_setup_true_lang-Bo3HqgX0.cjs → Skeleton.vue_vue_type_script_setup_true_lang-ahmyY81P.cjs} +70 -16
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-ahmyY81P.cjs.map +1 -0
- package/dist/{ListSkeleton.vue_vue_type_script_setup_true_lang-BHopJ9RG.js → Skeleton.vue_vue_type_script_setup_true_lang-mcD2ZqKf.js} +70 -16
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-mcD2ZqKf.js.map +1 -0
- package/dist/components/core/StatItem.stories.d.ts +44 -0
- package/dist/components/core/StatItem.vue.d.ts +135 -0
- package/dist/components/core/Stats.stories.d.ts +45 -0
- package/dist/components/core/Stats.vue.d.ts +97 -0
- package/dist/components/core/index.cjs +3 -1
- package/dist/components/core/index.cjs.map +1 -1
- package/dist/components/core/index.d.ts +6 -3
- package/dist/components/core/index.js +5 -3
- package/dist/components/feedback/index.cjs +8 -8
- package/dist/components/feedback/index.js +7 -7
- package/dist/components/index.cjs +11 -9
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +12 -10
- package/dist/{index-BMSH4AOz.cjs → index-CKd33NtQ.cjs} +12 -10
- package/dist/{index-BMSH4AOz.cjs.map → index-CKd33NtQ.cjs.map} +1 -1
- package/dist/{index-0kwQORZJ.js → index-D-VE0o-l.js} +6 -4
- package/dist/{index-0kwQORZJ.js.map → index-D-VE0o-l.js.map} +1 -1
- package/dist/index.cjs +12 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +16 -14
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-C5KHLMvx.js.map +0 -1
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-CLfy0-Wb.cjs.map +0 -1
- package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-COkZbeGG.cjs.map +0 -1
- package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-CzpYHtc5.js.map +0 -1
- package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-BHopJ9RG.js.map +0 -1
- package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-Bo3HqgX0.cjs.map +0 -1
- package/dist/components/core/StatsCard.stories.d.ts +0 -15
- package/dist/components/core/StatsCard.vue.d.ts +0 -44
- package/dist/components/core/StatsGrid.stories.d.ts +0 -12
- package/dist/components/core/StatsGrid.vue.d.ts +0 -16
- /package/dist/components/core/{StatsCard.test.d.ts → StatItem.test.d.ts} +0 -0
- /package/dist/components/core/{StatsGrid.test.d.ts → Stats.test.d.ts} +0 -0
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const vue = require("vue");
|
|
3
|
-
const vue$1 = require("@iconify/vue");
|
|
4
|
-
const ListSkeleton_vue_vue_type_script_setup_true_lang = require("./ListSkeleton.vue_vue_type_script_setup_true_lang-Bo3HqgX0.cjs");
|
|
5
3
|
const index = require("./index-D1x3TH9k.cjs");
|
|
4
|
+
const Skeleton_vue_vue_type_script_setup_true_lang = require("./Skeleton.vue_vue_type_script_setup_true_lang-ahmyY81P.cjs");
|
|
6
5
|
const BadgeType_vue_vue_type_script_setup_true_lang = require("./BadgeType.vue_vue_type_script_setup_true_lang-zs0NXN4g.cjs");
|
|
7
6
|
const usePagination = require("./usePagination-gvvh1zqA.cjs");
|
|
7
|
+
const vue$1 = require("@iconify/vue");
|
|
8
8
|
const useDropdown = require("./useDropdown-HI7ABBLe.cjs");
|
|
9
9
|
const useId = require("./useId-nxrBaIC9.cjs");
|
|
10
10
|
const _hoisted_1$o = {
|
|
11
11
|
key: 1,
|
|
12
12
|
class: "flex flex-col overflow-hidden rounded-lg bg-white shadow-md dark:bg-slate-950"
|
|
13
13
|
};
|
|
14
|
-
const _hoisted_2$
|
|
15
|
-
const _hoisted_3$
|
|
14
|
+
const _hoisted_2$h = { class: "flex flex-col gap-0.5" };
|
|
15
|
+
const _hoisted_3$b = {
|
|
16
16
|
key: 1,
|
|
17
17
|
class: "text-sm font-normal text-gray-600 dark:text-gray-400"
|
|
18
18
|
};
|
|
19
|
-
const _hoisted_4$
|
|
19
|
+
const _hoisted_4$8 = { class: "flex gap-2" };
|
|
20
20
|
const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
|
|
21
21
|
__name: "CardComponent",
|
|
22
22
|
props: {
|
|
@@ -38,7 +38,7 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
|
|
|
38
38
|
() => props.dividerClass || "border-gray-200 dark:border-gray-700"
|
|
39
39
|
);
|
|
40
40
|
return (_ctx, _cache) => {
|
|
41
|
-
return __props.loading ? (vue.openBlock(), vue.createBlock(
|
|
41
|
+
return __props.loading ? (vue.openBlock(), vue.createBlock(Skeleton_vue_vue_type_script_setup_true_lang._sfc_main$3, {
|
|
42
42
|
key: 0,
|
|
43
43
|
lines: __props.loadingLines,
|
|
44
44
|
"show-avatar": __props.loadingAvatar,
|
|
@@ -53,7 +53,7 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
|
|
|
53
53
|
key: 1,
|
|
54
54
|
class: vue.normalizeClass(["flex items-center justify-between border-b px-5 py-3", dividerClasses.value])
|
|
55
55
|
}, [
|
|
56
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
56
|
+
vue.createElementVNode("div", _hoisted_2$h, [
|
|
57
57
|
__props.title || _ctx.$slots.title ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
58
58
|
key: 0,
|
|
59
59
|
class: vue.normalizeClass(["text-md font-semibold", titleClasses.value])
|
|
@@ -62,13 +62,13 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
|
|
|
62
62
|
vue.createTextVNode(vue.toDisplayString(__props.title), 1)
|
|
63
63
|
])
|
|
64
64
|
], 2)) : vue.createCommentVNode("", true),
|
|
65
|
-
__props.description || _ctx.$slots.description ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$
|
|
65
|
+
__props.description || _ctx.$slots.description ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$b, [
|
|
66
66
|
vue.renderSlot(_ctx.$slots, "description", {}, () => [
|
|
67
67
|
vue.createTextVNode(vue.toDisplayString(__props.description), 1)
|
|
68
68
|
])
|
|
69
69
|
])) : vue.createCommentVNode("", true)
|
|
70
70
|
]),
|
|
71
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
71
|
+
vue.createElementVNode("div", _hoisted_4$8, [
|
|
72
72
|
vue.renderSlot(_ctx.$slots, "actions")
|
|
73
73
|
])
|
|
74
74
|
], 2)) : vue.createCommentVNode("", true),
|
|
@@ -78,9 +78,9 @@ const _sfc_main$A = /* @__PURE__ */ vue.defineComponent({
|
|
|
78
78
|
}
|
|
79
79
|
});
|
|
80
80
|
const _hoisted_1$n = ["role", "tabindex", "onKeydown"];
|
|
81
|
-
const _hoisted_2$
|
|
82
|
-
const _hoisted_3$
|
|
83
|
-
const _hoisted_4$
|
|
81
|
+
const _hoisted_2$g = ["src", "alt"];
|
|
82
|
+
const _hoisted_3$a = ["src", "alt"];
|
|
83
|
+
const _hoisted_4$7 = { class: "flex items-center gap-3" };
|
|
84
84
|
const _hoisted_5$4 = { class: "flex flex-col gap-0.5" };
|
|
85
85
|
const _hoisted_6$3 = ["src", "alt"];
|
|
86
86
|
const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -273,7 +273,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
|
|
|
273
273
|
}
|
|
274
274
|
};
|
|
275
275
|
return (_ctx, _cache) => {
|
|
276
|
-
return __props.loading ? (vue.openBlock(), vue.createBlock(
|
|
276
|
+
return __props.loading ? (vue.openBlock(), vue.createBlock(Skeleton_vue_vue_type_script_setup_true_lang._sfc_main$3, {
|
|
277
277
|
key: 0,
|
|
278
278
|
lines: __props.loadingLines,
|
|
279
279
|
"show-avatar": __props.loadingAvatar,
|
|
@@ -311,7 +311,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
|
|
|
311
311
|
src: __props.image,
|
|
312
312
|
alt: __props.imageAlt || "",
|
|
313
313
|
class: vue.normalizeClass(["w-full h-full object-cover", __props.imageClass])
|
|
314
|
-
}, null, 10, _hoisted_2$
|
|
314
|
+
}, null, 10, _hoisted_2$g)) : vue.createCommentVNode("", true)
|
|
315
315
|
]),
|
|
316
316
|
_cache[0] || (_cache[0] = vue.createElementVNode("div", { class: "absolute inset-0 bg-gradient-to-t from-black/60 to-transparent" }, null, -1))
|
|
317
317
|
], 2)) : vue.createCommentVNode("", true),
|
|
@@ -326,7 +326,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
|
|
|
326
326
|
src: __props.image,
|
|
327
327
|
alt: __props.imageAlt || "",
|
|
328
328
|
class: vue.normalizeClass(["w-full h-full object-cover", __props.imageClass])
|
|
329
|
-
}, null, 10, _hoisted_3$
|
|
329
|
+
}, null, 10, _hoisted_3$a)) : vue.createCommentVNode("", true)
|
|
330
330
|
])
|
|
331
331
|
], 6)) : vue.createCommentVNode("", true),
|
|
332
332
|
vue.createElementVNode("div", {
|
|
@@ -352,7 +352,7 @@ const _sfc_main$z = /* @__PURE__ */ vue.defineComponent({
|
|
|
352
352
|
__props.imagePosition === "background" && "text-white border-white/20"
|
|
353
353
|
])
|
|
354
354
|
}, [
|
|
355
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
355
|
+
vue.createElementVNode("div", _hoisted_4$7, [
|
|
356
356
|
__props.icon || _ctx.$slots.icon ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
357
357
|
key: 0,
|
|
358
358
|
class: vue.normalizeClass(computedIconClass.value)
|
|
@@ -648,11 +648,11 @@ const _sfc_main$r = /* @__PURE__ */ vue.defineComponent({
|
|
|
648
648
|
}
|
|
649
649
|
});
|
|
650
650
|
const _hoisted_1$k = ["colspan", "rowspan", "scope", "aria-sort"];
|
|
651
|
-
const _hoisted_2$
|
|
651
|
+
const _hoisted_2$f = {
|
|
652
652
|
key: 0,
|
|
653
653
|
d: "M7 14l5-5 5 5H7z"
|
|
654
654
|
};
|
|
655
|
-
const _hoisted_3$
|
|
655
|
+
const _hoisted_3$9 = {
|
|
656
656
|
key: 1,
|
|
657
657
|
d: "M7 10l5 5 5-5H7z"
|
|
658
658
|
};
|
|
@@ -734,7 +734,7 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
|
734
734
|
viewBox: "0 0 24 24",
|
|
735
735
|
fill: "currentColor"
|
|
736
736
|
}, [
|
|
737
|
-
__props.sorted && __props.sortDirection === "asc" ? (vue.openBlock(), vue.createElementBlock("path", _hoisted_2$
|
|
737
|
+
__props.sorted && __props.sortDirection === "asc" ? (vue.openBlock(), vue.createElementBlock("path", _hoisted_2$f)) : __props.sorted && __props.sortDirection === "desc" ? (vue.openBlock(), vue.createElementBlock("path", _hoisted_3$9)) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
|
|
738
738
|
_cache[2] || (_cache[2] = vue.createElementVNode("path", {
|
|
739
739
|
d: "M7 14l5-5 5 5H7z",
|
|
740
740
|
class: "opacity-40"
|
|
@@ -1013,7 +1013,7 @@ const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
|
1013
1013
|
}
|
|
1014
1014
|
});
|
|
1015
1015
|
const _hoisted_1$h = ["disabled", "aria-expanded"];
|
|
1016
|
-
const _hoisted_2$
|
|
1016
|
+
const _hoisted_2$e = { class: "p-4" };
|
|
1017
1017
|
const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
1018
1018
|
...{
|
|
1019
1019
|
inheritAttrs: false
|
|
@@ -1099,7 +1099,7 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
|
1099
1099
|
class: "!p-0"
|
|
1100
1100
|
}, {
|
|
1101
1101
|
default: vue.withCtx(() => [
|
|
1102
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
1102
|
+
vue.createElementVNode("div", _hoisted_2$e, [
|
|
1103
1103
|
vue.renderSlot(_ctx.$slots, "expanded")
|
|
1104
1104
|
])
|
|
1105
1105
|
]),
|
|
@@ -1113,12 +1113,12 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
|
1113
1113
|
}
|
|
1114
1114
|
});
|
|
1115
1115
|
const _hoisted_1$g = { class: "overflow-hidden" };
|
|
1116
|
-
const _hoisted_2$
|
|
1116
|
+
const _hoisted_2$d = {
|
|
1117
1117
|
key: 1,
|
|
1118
1118
|
class: "flex flex-col items-center justify-center py-12 text-center"
|
|
1119
1119
|
};
|
|
1120
|
-
const _hoisted_3$
|
|
1121
|
-
const _hoisted_4$
|
|
1120
|
+
const _hoisted_3$8 = { class: "flex flex-col items-center gap-3" };
|
|
1121
|
+
const _hoisted_4$6 = { class: "text-sm text-gray-600 dark:text-gray-400" };
|
|
1122
1122
|
const _hoisted_5$3 = {
|
|
1123
1123
|
key: 3,
|
|
1124
1124
|
class: "flex flex-col items-center justify-center py-12 text-center"
|
|
@@ -1229,13 +1229,13 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
1229
1229
|
const hasActionSlot = vue.computed(() => !!slots.action);
|
|
1230
1230
|
return (_ctx, _cache) => {
|
|
1231
1231
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [
|
|
1232
|
-
__props.loading ? (vue.openBlock(), vue.createBlock(
|
|
1232
|
+
__props.loading ? (vue.openBlock(), vue.createBlock(Skeleton_vue_vue_type_script_setup_true_lang._sfc_main$2, {
|
|
1233
1233
|
key: 0,
|
|
1234
1234
|
rows: __props.loadingRows,
|
|
1235
1235
|
columns: visibleProperties.value.length
|
|
1236
|
-
}, null, 8, ["rows", "columns"])) : __props.error ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
1236
|
+
}, null, 8, ["rows", "columns"])) : __props.error ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$d, [
|
|
1237
1237
|
vue.renderSlot(_ctx.$slots, "error", {}, () => [
|
|
1238
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
1238
|
+
vue.createElementVNode("div", _hoisted_3$8, [
|
|
1239
1239
|
_cache[2] || (_cache[2] = vue.createElementVNode("svg", {
|
|
1240
1240
|
class: "size-12 text-red-400",
|
|
1241
1241
|
fill: "none",
|
|
@@ -1249,7 +1249,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
1249
1249
|
d: "M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"
|
|
1250
1250
|
})
|
|
1251
1251
|
], -1)),
|
|
1252
|
-
vue.createElementVNode("p", _hoisted_4$
|
|
1252
|
+
vue.createElementVNode("p", _hoisted_4$6, vue.toDisplayString(__props.errorMessage), 1)
|
|
1253
1253
|
])
|
|
1254
1254
|
])
|
|
1255
1255
|
])) : __props.items && __props.items.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$y, {
|
|
@@ -1343,7 +1343,7 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
1343
1343
|
], -1))
|
|
1344
1344
|
])
|
|
1345
1345
|
])),
|
|
1346
|
-
__props.paginated && __props.items && __props.items.length > 0 && !__props.loading && !__props.error ? (vue.openBlock(), vue.createBlock(
|
|
1346
|
+
__props.paginated && __props.items && __props.items.length > 0 && !__props.loading && !__props.error ? (vue.openBlock(), vue.createBlock(Skeleton_vue_vue_type_script_setup_true_lang._sfc_main, {
|
|
1347
1347
|
key: 4,
|
|
1348
1348
|
"current-page": effectivePage.value,
|
|
1349
1349
|
"total-pages": effectiveTotalPages.value,
|
|
@@ -1359,9 +1359,9 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
1359
1359
|
}
|
|
1360
1360
|
});
|
|
1361
1361
|
const _hoisted_1$f = { class: "space-y-3" };
|
|
1362
|
-
const _hoisted_2$
|
|
1363
|
-
const _hoisted_3$
|
|
1364
|
-
const _hoisted_4$
|
|
1362
|
+
const _hoisted_2$c = { class: "flex items-center gap-3 p-3" };
|
|
1363
|
+
const _hoisted_3$7 = { class: "text-sm text-gray-600 dark:text-gray-400" };
|
|
1364
|
+
const _hoisted_4$5 = {
|
|
1365
1365
|
key: 0,
|
|
1366
1366
|
class: "text-sm text-primary font-medium"
|
|
1367
1367
|
};
|
|
@@ -1429,7 +1429,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
1429
1429
|
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
|
|
1430
1430
|
__props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$A, { key: 0 }, {
|
|
1431
1431
|
default: vue.withCtx(() => [
|
|
1432
|
-
vue.createVNode(
|
|
1432
|
+
vue.createVNode(Skeleton_vue_vue_type_script_setup_true_lang._sfc_main$4, {
|
|
1433
1433
|
items: __props.loadingItems,
|
|
1434
1434
|
"show-avatar": "",
|
|
1435
1435
|
"show-secondary": "",
|
|
@@ -1440,14 +1440,14 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
1440
1440
|
})) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
|
|
1441
1441
|
__props.selectable && selectableItems.value.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$A, { key: 0 }, {
|
|
1442
1442
|
default: vue.withCtx(() => [
|
|
1443
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
1443
|
+
vue.createElementVNode("div", _hoisted_2$c, [
|
|
1444
1444
|
vue.createVNode(index._sfc_main, {
|
|
1445
1445
|
"model-value": allSelected.value,
|
|
1446
1446
|
indeterminate: someSelected.value,
|
|
1447
1447
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("selectAll"))
|
|
1448
1448
|
}, null, 8, ["model-value", "indeterminate"]),
|
|
1449
|
-
vue.createElementVNode("span", _hoisted_3$
|
|
1450
|
-
__props.selectedItems && __props.selectedItems.size > 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$
|
|
1449
|
+
vue.createElementVNode("span", _hoisted_3$7, vue.toDisplayString(allSelected.value ? "Tout désélectionner" : "Tout sélectionner"), 1),
|
|
1450
|
+
__props.selectedItems && __props.selectedItems.size > 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$5, " (" + vue.toDisplayString(__props.selectedItems.size) + " sélectionné" + vue.toDisplayString(__props.selectedItems.size > 1 ? "s" : "") + ") ", 1)) : vue.createCommentVNode("", true)
|
|
1451
1451
|
])
|
|
1452
1452
|
]),
|
|
1453
1453
|
_: 1
|
|
@@ -1629,9 +1629,9 @@ const _hoisted_1$e = {
|
|
|
1629
1629
|
key: 0,
|
|
1630
1630
|
class: "mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"
|
|
1631
1631
|
};
|
|
1632
|
-
const _hoisted_2$
|
|
1633
|
-
const _hoisted_3$
|
|
1634
|
-
const _hoisted_4$
|
|
1632
|
+
const _hoisted_2$b = { class: "relative" };
|
|
1633
|
+
const _hoisted_3$6 = ["disabled", "placeholder"];
|
|
1634
|
+
const _hoisted_4$4 = ["disabled"];
|
|
1635
1635
|
const _hoisted_5$1 = {
|
|
1636
1636
|
key: 0,
|
|
1637
1637
|
class: "px-4 py-3 text-sm text-gray-500"
|
|
@@ -1746,7 +1746,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
1746
1746
|
class: "autocomplete-container"
|
|
1747
1747
|
}, [
|
|
1748
1748
|
__props.label ? (vue.openBlock(), vue.createElementBlock("label", _hoisted_1$e, vue.toDisplayString(__props.label), 1)) : vue.createCommentVNode("", true),
|
|
1749
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
1749
|
+
vue.createElementVNode("div", _hoisted_2$b, [
|
|
1750
1750
|
vue.createElementVNode("div", {
|
|
1751
1751
|
ref_key: "inputWrapperRef",
|
|
1752
1752
|
ref: inputWrapperRef,
|
|
@@ -1771,7 +1771,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
1771
1771
|
type: "text",
|
|
1772
1772
|
onFocus: openDropdown,
|
|
1773
1773
|
onKeydown: handleKeydown
|
|
1774
|
-
}, null, 40, _hoisted_3$
|
|
1774
|
+
}, null, 40, _hoisted_3$6), [
|
|
1775
1775
|
[vue.vModelText, searchQuery.value]
|
|
1776
1776
|
]),
|
|
1777
1777
|
__props.modelValue && !__props.disabled ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
@@ -1795,7 +1795,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
1795
1795
|
class: vue.normalizeClass([{ "rotate-180": vue.unref(isOpen) }, "size-4 text-gray-400 transition"]),
|
|
1796
1796
|
icon: "lucide:chevron-down"
|
|
1797
1797
|
}, null, 8, ["class"])
|
|
1798
|
-
], 8, _hoisted_4$
|
|
1798
|
+
], 8, _hoisted_4$4)
|
|
1799
1799
|
], 2),
|
|
1800
1800
|
(vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
1801
1801
|
to: "body",
|
|
@@ -1922,8 +1922,8 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
1922
1922
|
}
|
|
1923
1923
|
});
|
|
1924
1924
|
const _hoisted_1$d = { class: "relative inline-block" };
|
|
1925
|
-
const _hoisted_2$
|
|
1926
|
-
const _hoisted_3$
|
|
1925
|
+
const _hoisted_2$a = ["src", "alt"];
|
|
1926
|
+
const _hoisted_3$5 = { key: 1 };
|
|
1927
1927
|
const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
1928
1928
|
__name: "Avatar",
|
|
1929
1929
|
props: {
|
|
@@ -2044,7 +2044,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
2044
2044
|
alt: __props.alt || __props.name,
|
|
2045
2045
|
class: "size-full object-cover",
|
|
2046
2046
|
onError: _cache[0] || (_cache[0] = ($event) => imageError.value = true)
|
|
2047
|
-
}, null, 40, _hoisted_2$
|
|
2047
|
+
}, null, 40, _hoisted_2$a)) : initials.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$5, vue.toDisplayString(initials.value), 1)) : (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
2048
2048
|
key: 2,
|
|
2049
2049
|
icon: "lucide:user",
|
|
2050
2050
|
class: "size-1/2"
|
|
@@ -2063,7 +2063,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
2063
2063
|
}
|
|
2064
2064
|
});
|
|
2065
2065
|
const _hoisted_1$c = ["aria-selected", "disabled", "onClick"];
|
|
2066
|
-
const _hoisted_2$
|
|
2066
|
+
const _hoisted_2$9 = { class: "mt-4" };
|
|
2067
2067
|
const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
2068
2068
|
__name: "Tabs",
|
|
2069
2069
|
props: {
|
|
@@ -2132,7 +2132,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
2132
2132
|
}, vue.toDisplayString(tab.label), 11, _hoisted_1$c);
|
|
2133
2133
|
}), 128))
|
|
2134
2134
|
], 2),
|
|
2135
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
2135
|
+
vue.createElementVNode("div", _hoisted_2$9, [
|
|
2136
2136
|
vue.renderSlot(_ctx.$slots, "default", { activeTab: activeTab.value })
|
|
2137
2137
|
])
|
|
2138
2138
|
]);
|
|
@@ -2356,7 +2356,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
2356
2356
|
}
|
|
2357
2357
|
});
|
|
2358
2358
|
const _hoisted_1$9 = ["aria-describedby"];
|
|
2359
|
-
const _hoisted_2$
|
|
2359
|
+
const _hoisted_2$8 = ["id"];
|
|
2360
2360
|
const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
2361
2361
|
__name: "Tooltip",
|
|
2362
2362
|
props: {
|
|
@@ -2428,7 +2428,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
2428
2428
|
id: vue.unref(tooltipId),
|
|
2429
2429
|
class: vue.normalizeClass(positionClasses.value),
|
|
2430
2430
|
role: "tooltip"
|
|
2431
|
-
}, vue.toDisplayString(__props.content), 11, _hoisted_2$
|
|
2431
|
+
}, vue.toDisplayString(__props.content), 11, _hoisted_2$8)) : vue.createCommentVNode("", true)
|
|
2432
2432
|
]),
|
|
2433
2433
|
_: 1
|
|
2434
2434
|
})
|
|
@@ -2437,7 +2437,7 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
2437
2437
|
}
|
|
2438
2438
|
});
|
|
2439
2439
|
const _hoisted_1$8 = ["id", "aria-expanded", "aria-controls"];
|
|
2440
|
-
const _hoisted_2$
|
|
2440
|
+
const _hoisted_2$7 = ["id", "aria-labelledby"];
|
|
2441
2441
|
const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
2442
2442
|
__name: "Popover",
|
|
2443
2443
|
props: {
|
|
@@ -2522,7 +2522,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2522
2522
|
])
|
|
2523
2523
|
}, [
|
|
2524
2524
|
vue.renderSlot(_ctx.$slots, "default", { close: vue.unref(close) })
|
|
2525
|
-
], 14, _hoisted_2$
|
|
2525
|
+
], 14, _hoisted_2$7)) : vue.createCommentVNode("", true)
|
|
2526
2526
|
]),
|
|
2527
2527
|
_: 3
|
|
2528
2528
|
})
|
|
@@ -2535,9 +2535,9 @@ const _hoisted_1$7 = {
|
|
|
2535
2535
|
key: 0,
|
|
2536
2536
|
class: "flex items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700"
|
|
2537
2537
|
};
|
|
2538
|
-
const _hoisted_2$
|
|
2539
|
-
const _hoisted_3$
|
|
2540
|
-
const _hoisted_4$
|
|
2538
|
+
const _hoisted_2$6 = { class: "text-lg font-semibold text-gray-900 dark:text-white" };
|
|
2539
|
+
const _hoisted_3$4 = { class: "flex-1 overflow-y-auto p-4" };
|
|
2540
|
+
const _hoisted_4$3 = {
|
|
2541
2541
|
key: 1,
|
|
2542
2542
|
class: "px-4 py-3 border-t border-gray-200 dark:border-gray-700"
|
|
2543
2543
|
};
|
|
@@ -2662,7 +2662,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2662
2662
|
}, [
|
|
2663
2663
|
__props.title || __props.showClose || _ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
|
|
2664
2664
|
vue.renderSlot(_ctx.$slots, "header", {}, () => [
|
|
2665
|
-
vue.createElementVNode("h2", _hoisted_2$
|
|
2665
|
+
vue.createElementVNode("h2", _hoisted_2$6, vue.toDisplayString(__props.title), 1)
|
|
2666
2666
|
]),
|
|
2667
2667
|
__props.showClose ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
2668
2668
|
key: 0,
|
|
@@ -2676,10 +2676,10 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2676
2676
|
})
|
|
2677
2677
|
])) : vue.createCommentVNode("", true)
|
|
2678
2678
|
])) : vue.createCommentVNode("", true),
|
|
2679
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
2679
|
+
vue.createElementVNode("div", _hoisted_3$4, [
|
|
2680
2680
|
vue.renderSlot(_ctx.$slots, "default")
|
|
2681
2681
|
]),
|
|
2682
|
-
_ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$
|
|
2682
|
+
_ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$3, [
|
|
2683
2683
|
vue.renderSlot(_ctx.$slots, "footer")
|
|
2684
2684
|
])) : vue.createCommentVNode("", true)
|
|
2685
2685
|
], 2)) : vue.createCommentVNode("", true)
|
|
@@ -2691,7 +2691,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2691
2691
|
}
|
|
2692
2692
|
});
|
|
2693
2693
|
const _hoisted_1$6 = { "aria-label": "Breadcrumb" };
|
|
2694
|
-
const _hoisted_2$
|
|
2694
|
+
const _hoisted_2$5 = { class: "flex items-center flex-wrap gap-1 text-sm" };
|
|
2695
2695
|
const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
2696
2696
|
__name: "Breadcrumb",
|
|
2697
2697
|
props: {
|
|
@@ -2704,7 +2704,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2704
2704
|
setup(__props) {
|
|
2705
2705
|
return (_ctx, _cache) => {
|
|
2706
2706
|
return vue.openBlock(), vue.createElementBlock("nav", _hoisted_1$6, [
|
|
2707
|
-
vue.createElementVNode("ol", _hoisted_2$
|
|
2707
|
+
vue.createElementVNode("ol", _hoisted_2$5, [
|
|
2708
2708
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item, index2) => {
|
|
2709
2709
|
return vue.openBlock(), vue.createElementBlock("li", {
|
|
2710
2710
|
key: index2,
|
|
@@ -2780,9 +2780,9 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2780
2780
|
}
|
|
2781
2781
|
});
|
|
2782
2782
|
const _hoisted_1$4 = ["id", "disabled", "aria-expanded", "aria-controls"];
|
|
2783
|
-
const _hoisted_2$
|
|
2784
|
-
const _hoisted_3$
|
|
2785
|
-
const _hoisted_4$
|
|
2783
|
+
const _hoisted_2$4 = { class: "flex items-center gap-2 font-medium" };
|
|
2784
|
+
const _hoisted_3$3 = ["id", "aria-labelledby"];
|
|
2785
|
+
const _hoisted_4$2 = { class: "px-4 py-3 bg-gray-50 dark:bg-gray-900 text-gray-700 dark:text-gray-300" };
|
|
2786
2786
|
const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
2787
2787
|
__name: "AccordionItem",
|
|
2788
2788
|
props: {
|
|
@@ -2817,7 +2817,7 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2817
2817
|
"aria-controls": panelId.value,
|
|
2818
2818
|
onClick: toggle
|
|
2819
2819
|
}, [
|
|
2820
|
-
vue.createElementVNode("span", _hoisted_2$
|
|
2820
|
+
vue.createElementVNode("span", _hoisted_2$4, [
|
|
2821
2821
|
__props.icon ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
2822
2822
|
key: 0,
|
|
2823
2823
|
icon: __props.icon,
|
|
@@ -2847,10 +2847,10 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2847
2847
|
"aria-labelledby": headerId.value,
|
|
2848
2848
|
class: "overflow-hidden"
|
|
2849
2849
|
}, [
|
|
2850
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
2850
|
+
vue.createElementVNode("div", _hoisted_4$2, [
|
|
2851
2851
|
vue.renderSlot(_ctx.$slots, "default")
|
|
2852
2852
|
])
|
|
2853
|
-
], 8, _hoisted_3$
|
|
2853
|
+
], 8, _hoisted_3$3), [
|
|
2854
2854
|
[vue.vShow, isOpen.value]
|
|
2855
2855
|
])
|
|
2856
2856
|
]),
|
|
@@ -2864,9 +2864,9 @@ const _hoisted_1$3 = {
|
|
|
2864
2864
|
key: 0,
|
|
2865
2865
|
class: "relative"
|
|
2866
2866
|
};
|
|
2867
|
-
const _hoisted_2$
|
|
2868
|
-
const _hoisted_3$
|
|
2869
|
-
const _hoisted_4 = { class: "flex items-center justify-between gap-2" };
|
|
2867
|
+
const _hoisted_2$3 = { class: "flex items-start gap-4" };
|
|
2868
|
+
const _hoisted_3$2 = { class: "flex-1 min-w-0 pt-0.5" };
|
|
2869
|
+
const _hoisted_4$1 = { class: "flex items-center justify-between gap-2" };
|
|
2870
2870
|
const _hoisted_5 = { class: "text-sm font-medium text-gray-900 dark:text-white" };
|
|
2871
2871
|
const _hoisted_6 = {
|
|
2872
2872
|
key: 0,
|
|
@@ -2943,7 +2943,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2943
2943
|
key: 0,
|
|
2944
2944
|
class: vue.normalizeClass(["absolute left-4 top-8 w-0.5 h-full -ml-px", getStatusClasses(item.status).line])
|
|
2945
2945
|
}, null, 2)) : vue.createCommentVNode("", true),
|
|
2946
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
2946
|
+
vue.createElementVNode("div", _hoisted_2$3, [
|
|
2947
2947
|
vue.createElementVNode("div", {
|
|
2948
2948
|
class: vue.normalizeClass(["relative z-10 flex items-center justify-center size-8 rounded-full shrink-0", getStatusClasses(item.status).dot])
|
|
2949
2949
|
}, [
|
|
@@ -2953,8 +2953,8 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2953
2953
|
class: vue.normalizeClass(["size-4", getStatusClasses(item.status).icon])
|
|
2954
2954
|
}, null, 8, ["icon", "class"])) : vue.createCommentVNode("", true)
|
|
2955
2955
|
], 2),
|
|
2956
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
2957
|
-
vue.createElementVNode("div", _hoisted_4, [
|
|
2956
|
+
vue.createElementVNode("div", _hoisted_3$2, [
|
|
2957
|
+
vue.createElementVNode("div", _hoisted_4$1, [
|
|
2958
2958
|
vue.createElementVNode("h3", _hoisted_5, vue.toDisplayString(item.title), 1),
|
|
2959
2959
|
item.date ? (vue.openBlock(), vue.createElementBlock("time", _hoisted_6, vue.toDisplayString(item.date), 1)) : vue.createCommentVNode("", true)
|
|
2960
2960
|
]),
|
|
@@ -2996,7 +2996,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2996
2996
|
}
|
|
2997
2997
|
});
|
|
2998
2998
|
const _hoisted_1$2 = ["aria-label"];
|
|
2999
|
-
const _hoisted_2$
|
|
2999
|
+
const _hoisted_2$2 = {
|
|
3000
3000
|
key: 0,
|
|
3001
3001
|
class: "text-sm font-medium"
|
|
3002
3002
|
};
|
|
@@ -3035,129 +3035,437 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3035
3035
|
icon: vue.unref(isDark) ? __props.darkIcon : __props.lightIcon,
|
|
3036
3036
|
class: vue.normalizeClass(sizeClasses[__props.size].icon)
|
|
3037
3037
|
}, null, 8, ["icon", "class"]),
|
|
3038
|
-
__props.showLabel ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$
|
|
3038
|
+
__props.showLabel ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$2, vue.toDisplayString(vue.unref(isDark) ? "Dark" : "Light"), 1)) : vue.createCommentVNode("", true)
|
|
3039
3039
|
], 10, _hoisted_1$2);
|
|
3040
3040
|
};
|
|
3041
3041
|
}
|
|
3042
3042
|
});
|
|
3043
3043
|
const _hoisted_1$1 = {
|
|
3044
3044
|
key: 0,
|
|
3045
|
+
class: "mr-0.5"
|
|
3046
|
+
};
|
|
3047
|
+
const _hoisted_2$1 = {
|
|
3048
|
+
key: 1,
|
|
3049
|
+
class: "ml-0.5"
|
|
3050
|
+
};
|
|
3051
|
+
const _hoisted_3$1 = { key: 1 };
|
|
3052
|
+
const _hoisted_4 = {
|
|
3053
|
+
key: 2,
|
|
3045
3054
|
class: "text-gray-400"
|
|
3046
3055
|
};
|
|
3047
3056
|
const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
3048
|
-
__name: "
|
|
3057
|
+
__name: "StatItem",
|
|
3049
3058
|
props: {
|
|
3050
3059
|
label: {},
|
|
3051
3060
|
value: {},
|
|
3061
|
+
description: {},
|
|
3062
|
+
prefix: {},
|
|
3063
|
+
suffix: {},
|
|
3052
3064
|
icon: {},
|
|
3065
|
+
iconPosition: { default: "top" },
|
|
3066
|
+
iconRounded: { default: "xl" },
|
|
3067
|
+
hideIconBg: { type: Boolean, default: false },
|
|
3053
3068
|
change: {},
|
|
3054
3069
|
changeLabel: {},
|
|
3070
|
+
trend: {},
|
|
3071
|
+
trendOnly: { type: Boolean, default: false },
|
|
3072
|
+
hideTrendIcon: { type: Boolean, default: false },
|
|
3073
|
+
invertTrendColors: { type: Boolean, default: false },
|
|
3074
|
+
size: { default: "md" },
|
|
3055
3075
|
variant: { default: "default" },
|
|
3056
|
-
color: { default: "primary" }
|
|
3076
|
+
color: { default: "primary" },
|
|
3077
|
+
clickable: { type: Boolean, default: false },
|
|
3078
|
+
centered: { type: Boolean },
|
|
3079
|
+
labelFirst: { type: Boolean, default: false },
|
|
3080
|
+
compact: { type: Boolean, default: false },
|
|
3081
|
+
loading: { type: Boolean, default: false },
|
|
3082
|
+
shadow: { default: "sm" },
|
|
3083
|
+
rounded: { default: "xl" },
|
|
3084
|
+
border: { default: "none" },
|
|
3085
|
+
accent: { default: "none" },
|
|
3086
|
+
cardClass: {},
|
|
3087
|
+
iconWrapperClass: {},
|
|
3088
|
+
iconClass: {},
|
|
3089
|
+
valueClass: {},
|
|
3090
|
+
labelClass: {},
|
|
3091
|
+
descriptionClass: {},
|
|
3092
|
+
trendClass: {},
|
|
3093
|
+
contentClass: {}
|
|
3057
3094
|
},
|
|
3095
|
+
emits: ["click"],
|
|
3058
3096
|
setup(__props) {
|
|
3097
|
+
const props = __props;
|
|
3098
|
+
const isCentered = vue.computed(() => {
|
|
3099
|
+
if (props.centered !== void 0) return props.centered;
|
|
3100
|
+
return props.iconPosition === "top" || props.iconPosition === "bottom";
|
|
3101
|
+
});
|
|
3102
|
+
const effectiveTrend = vue.computed(() => {
|
|
3103
|
+
if (props.trend) return props.trend;
|
|
3104
|
+
if (props.change === void 0) return void 0;
|
|
3105
|
+
if (props.change > 0) return "up";
|
|
3106
|
+
if (props.change < 0) return "down";
|
|
3107
|
+
return "neutral";
|
|
3108
|
+
});
|
|
3109
|
+
const sizeClasses = vue.computed(() => {
|
|
3110
|
+
const sizes = {
|
|
3111
|
+
xs: {
|
|
3112
|
+
padding: props.compact ? "none" : "sm",
|
|
3113
|
+
icon: "size-6",
|
|
3114
|
+
iconInner: "size-3",
|
|
3115
|
+
value: "text-lg font-bold",
|
|
3116
|
+
label: "text-xs",
|
|
3117
|
+
description: "text-xs",
|
|
3118
|
+
change: "text-xs",
|
|
3119
|
+
gap: "gap-0.5"
|
|
3120
|
+
},
|
|
3121
|
+
sm: {
|
|
3122
|
+
padding: props.compact ? "sm" : "sm",
|
|
3123
|
+
icon: "size-8",
|
|
3124
|
+
iconInner: "size-4",
|
|
3125
|
+
value: "text-xl font-bold",
|
|
3126
|
+
label: "text-xs",
|
|
3127
|
+
description: "text-xs",
|
|
3128
|
+
change: "text-xs",
|
|
3129
|
+
gap: "gap-1"
|
|
3130
|
+
},
|
|
3131
|
+
md: {
|
|
3132
|
+
padding: props.compact ? "sm" : "md",
|
|
3133
|
+
icon: "size-10",
|
|
3134
|
+
iconInner: "size-5",
|
|
3135
|
+
value: "text-2xl sm:text-3xl font-bold",
|
|
3136
|
+
label: "text-xs sm:text-sm",
|
|
3137
|
+
description: "text-xs sm:text-sm",
|
|
3138
|
+
change: "text-xs",
|
|
3139
|
+
gap: "gap-2"
|
|
3140
|
+
},
|
|
3141
|
+
lg: {
|
|
3142
|
+
padding: props.compact ? "md" : "lg",
|
|
3143
|
+
icon: "size-12",
|
|
3144
|
+
iconInner: "size-6",
|
|
3145
|
+
value: "text-3xl sm:text-4xl font-bold",
|
|
3146
|
+
label: "text-sm sm:text-base",
|
|
3147
|
+
description: "text-sm",
|
|
3148
|
+
change: "text-sm",
|
|
3149
|
+
gap: "gap-3"
|
|
3150
|
+
},
|
|
3151
|
+
xl: {
|
|
3152
|
+
padding: props.compact ? "md" : "lg",
|
|
3153
|
+
icon: "size-14",
|
|
3154
|
+
iconInner: "size-7",
|
|
3155
|
+
value: "text-4xl sm:text-5xl font-bold",
|
|
3156
|
+
label: "text-base sm:text-lg",
|
|
3157
|
+
description: "text-sm sm:text-base",
|
|
3158
|
+
change: "text-sm",
|
|
3159
|
+
gap: "gap-4"
|
|
3160
|
+
}
|
|
3161
|
+
};
|
|
3162
|
+
return sizes[props.size];
|
|
3163
|
+
});
|
|
3164
|
+
const iconRoundedClasses = vue.computed(() => {
|
|
3165
|
+
const map = {
|
|
3166
|
+
none: "rounded-none",
|
|
3167
|
+
sm: "rounded-sm",
|
|
3168
|
+
md: "rounded-md",
|
|
3169
|
+
lg: "rounded-lg",
|
|
3170
|
+
xl: "rounded-xl",
|
|
3171
|
+
full: "rounded-full"
|
|
3172
|
+
};
|
|
3173
|
+
return map[props.iconRounded];
|
|
3174
|
+
});
|
|
3175
|
+
const iconBgClasses = vue.computed(() => {
|
|
3176
|
+
if (props.hideIconBg) return "";
|
|
3177
|
+
if (props.variant === "glass" || props.variant === "solid") return "bg-white/20";
|
|
3178
|
+
const colors = {
|
|
3179
|
+
primary: "bg-primary-100 dark:bg-primary-900/30",
|
|
3180
|
+
secondary: "bg-secondary-100 dark:bg-secondary-900/30",
|
|
3181
|
+
success: "bg-emerald-100 dark:bg-emerald-900/30",
|
|
3182
|
+
warning: "bg-amber-100 dark:bg-amber-900/30",
|
|
3183
|
+
danger: "bg-red-100 dark:bg-red-900/30",
|
|
3184
|
+
info: "bg-blue-100 dark:bg-blue-900/30"
|
|
3185
|
+
};
|
|
3186
|
+
return colors[props.color];
|
|
3187
|
+
});
|
|
3188
|
+
const iconColorClasses = vue.computed(() => {
|
|
3189
|
+
if (props.variant === "glass" || props.variant === "solid") return "text-white";
|
|
3190
|
+
const colors = {
|
|
3191
|
+
primary: "text-primary-600 dark:text-primary-400",
|
|
3192
|
+
secondary: "text-secondary-600 dark:text-secondary-400",
|
|
3193
|
+
success: "text-emerald-600 dark:text-emerald-400",
|
|
3194
|
+
warning: "text-amber-600 dark:text-amber-400",
|
|
3195
|
+
danger: "text-red-600 dark:text-red-400",
|
|
3196
|
+
info: "text-blue-600 dark:text-blue-400"
|
|
3197
|
+
};
|
|
3198
|
+
return colors[props.color];
|
|
3199
|
+
});
|
|
3200
|
+
const solidBgClasses = vue.computed(() => {
|
|
3201
|
+
if (props.variant !== "solid") return "";
|
|
3202
|
+
const colors = {
|
|
3203
|
+
primary: "bg-primary-500",
|
|
3204
|
+
secondary: "bg-secondary-500",
|
|
3205
|
+
success: "bg-emerald-500",
|
|
3206
|
+
warning: "bg-amber-500",
|
|
3207
|
+
danger: "bg-red-500",
|
|
3208
|
+
info: "bg-blue-500"
|
|
3209
|
+
};
|
|
3210
|
+
return colors[props.color];
|
|
3211
|
+
});
|
|
3212
|
+
const valueTextClasses = vue.computed(() => {
|
|
3213
|
+
if (props.variant === "glass" || props.variant === "solid") return "text-white";
|
|
3214
|
+
return "text-gray-900 dark:text-white";
|
|
3215
|
+
});
|
|
3216
|
+
const labelTextClasses = vue.computed(() => {
|
|
3217
|
+
if (props.variant === "glass") return "text-white/80";
|
|
3218
|
+
if (props.variant === "solid") return "text-white/90";
|
|
3219
|
+
return "text-gray-500 dark:text-gray-400";
|
|
3220
|
+
});
|
|
3221
|
+
const descriptionTextClasses = vue.computed(() => {
|
|
3222
|
+
if (props.variant === "glass") return "text-white/70";
|
|
3223
|
+
if (props.variant === "solid") return "text-white/80";
|
|
3224
|
+
return "text-gray-400 dark:text-gray-500";
|
|
3225
|
+
});
|
|
3226
|
+
const trendColorClasses = vue.computed(() => {
|
|
3227
|
+
if (!effectiveTrend.value || effectiveTrend.value === "neutral") {
|
|
3228
|
+
return "text-gray-500";
|
|
3229
|
+
}
|
|
3230
|
+
const isUp = effectiveTrend.value === "up";
|
|
3231
|
+
const greenColor = "text-emerald-500";
|
|
3232
|
+
const redColor = "text-red-500";
|
|
3233
|
+
if (props.invertTrendColors) {
|
|
3234
|
+
return isUp ? redColor : greenColor;
|
|
3235
|
+
}
|
|
3236
|
+
return isUp ? greenColor : redColor;
|
|
3237
|
+
});
|
|
3238
|
+
const trendIcon = vue.computed(() => {
|
|
3239
|
+
if (!effectiveTrend.value || effectiveTrend.value === "neutral") {
|
|
3240
|
+
return "heroicons:minus";
|
|
3241
|
+
}
|
|
3242
|
+
return effectiveTrend.value === "up" ? "heroicons:arrow-trending-up" : "heroicons:arrow-trending-down";
|
|
3243
|
+
});
|
|
3244
|
+
const cardVariant = vue.computed(() => {
|
|
3245
|
+
if (props.variant === "solid") return "default";
|
|
3246
|
+
return props.variant;
|
|
3247
|
+
});
|
|
3248
|
+
const effectiveShadow = vue.computed(() => {
|
|
3249
|
+
if (props.variant === "glass") return "none";
|
|
3250
|
+
return props.shadow;
|
|
3251
|
+
});
|
|
3252
|
+
const effectiveBorder = vue.computed(() => {
|
|
3253
|
+
if (props.variant === "outline") return "default";
|
|
3254
|
+
return props.border;
|
|
3255
|
+
});
|
|
3256
|
+
const layoutClasses = vue.computed(() => {
|
|
3257
|
+
const centered = isCentered.value ? "items-center text-center" : "";
|
|
3258
|
+
switch (props.iconPosition) {
|
|
3259
|
+
case "top":
|
|
3260
|
+
return `flex flex-col ${centered}`;
|
|
3261
|
+
case "bottom":
|
|
3262
|
+
return `flex flex-col-reverse ${centered}`;
|
|
3263
|
+
case "left":
|
|
3264
|
+
return "flex flex-row items-center";
|
|
3265
|
+
case "right":
|
|
3266
|
+
return "flex flex-row-reverse items-center";
|
|
3267
|
+
default:
|
|
3268
|
+
return `flex flex-col ${centered}`;
|
|
3269
|
+
}
|
|
3270
|
+
});
|
|
3271
|
+
const iconMarginClasses = vue.computed(() => {
|
|
3272
|
+
switch (props.iconPosition) {
|
|
3273
|
+
case "top":
|
|
3274
|
+
return "mb-2";
|
|
3275
|
+
case "bottom":
|
|
3276
|
+
return "mt-2";
|
|
3277
|
+
case "left":
|
|
3278
|
+
return "mr-3";
|
|
3279
|
+
case "right":
|
|
3280
|
+
return "ml-3";
|
|
3281
|
+
default:
|
|
3282
|
+
return "";
|
|
3283
|
+
}
|
|
3284
|
+
});
|
|
3285
|
+
const computedContentClasses = vue.computed(() => {
|
|
3286
|
+
const isVertical = props.iconPosition === "top" || props.iconPosition === "bottom";
|
|
3287
|
+
if (isVertical) {
|
|
3288
|
+
return `flex flex-col ${sizeClasses.value.gap}`;
|
|
3289
|
+
}
|
|
3290
|
+
return `flex flex-col flex-1 min-w-0 ${sizeClasses.value.gap}`;
|
|
3291
|
+
});
|
|
3059
3292
|
return (_ctx, _cache) => {
|
|
3060
|
-
return vue.openBlock(), vue.
|
|
3061
|
-
|
|
3062
|
-
|
|
3063
|
-
|
|
3064
|
-
|
|
3065
|
-
|
|
3066
|
-
|
|
3067
|
-
|
|
3068
|
-
|
|
3069
|
-
|
|
3070
|
-
|
|
3071
|
-
|
|
3072
|
-
|
|
3073
|
-
|
|
3074
|
-
|
|
3075
|
-
|
|
3076
|
-
|
|
3077
|
-
__props.
|
|
3078
|
-
|
|
3079
|
-
|
|
3080
|
-
|
|
3081
|
-
|
|
3082
|
-
|
|
3083
|
-
|
|
3084
|
-
|
|
3085
|
-
|
|
3086
|
-
|
|
3087
|
-
|
|
3088
|
-
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3096
|
-
|
|
3097
|
-
|
|
3098
|
-
|
|
3099
|
-
|
|
3100
|
-
|
|
3101
|
-
|
|
3102
|
-
|
|
3103
|
-
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3107
|
-
|
|
3108
|
-
|
|
3109
|
-
|
|
3110
|
-
|
|
3111
|
-
|
|
3112
|
-
|
|
3113
|
-
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3117
|
-
(
|
|
3118
|
-
|
|
3119
|
-
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
|
|
3127
|
-
|
|
3128
|
-
|
|
3129
|
-
|
|
3130
|
-
|
|
3131
|
-
|
|
3132
|
-
|
|
3133
|
-
|
|
3134
|
-
|
|
3135
|
-
|
|
3136
|
-
|
|
3137
|
-
|
|
3138
|
-
|
|
3293
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$z, {
|
|
3294
|
+
variant: cardVariant.value,
|
|
3295
|
+
padding: sizeClasses.value.padding,
|
|
3296
|
+
clickable: __props.clickable,
|
|
3297
|
+
shadow: effectiveShadow.value,
|
|
3298
|
+
border: effectiveBorder.value,
|
|
3299
|
+
rounded: __props.rounded,
|
|
3300
|
+
accent: __props.accent,
|
|
3301
|
+
"header-divider": false,
|
|
3302
|
+
class: vue.normalizeClass([__props.cardClass, solidBgClasses.value, __props.variant === "solid" && "text-white"]),
|
|
3303
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event))
|
|
3304
|
+
}, {
|
|
3305
|
+
default: vue.withCtx(() => [
|
|
3306
|
+
__props.loading ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
3307
|
+
key: 0,
|
|
3308
|
+
class: vue.normalizeClass(layoutClasses.value)
|
|
3309
|
+
}, [
|
|
3310
|
+
__props.icon ? (vue.openBlock(), vue.createBlock(Skeleton_vue_vue_type_script_setup_true_lang._sfc_main$1, {
|
|
3311
|
+
key: 0,
|
|
3312
|
+
class: vue.normalizeClass([sizeClasses.value.icon, iconRoundedClasses.value, iconMarginClasses.value])
|
|
3313
|
+
}, null, 8, ["class"])) : vue.createCommentVNode("", true),
|
|
3314
|
+
vue.createElementVNode("div", {
|
|
3315
|
+
class: vue.normalizeClass(computedContentClasses.value)
|
|
3316
|
+
}, [
|
|
3317
|
+
vue.createVNode(Skeleton_vue_vue_type_script_setup_true_lang._sfc_main$1, {
|
|
3318
|
+
class: vue.normalizeClass(sizeClasses.value.value),
|
|
3319
|
+
width: "60%",
|
|
3320
|
+
height: "1.5em"
|
|
3321
|
+
}, null, 8, ["class"]),
|
|
3322
|
+
vue.createVNode(Skeleton_vue_vue_type_script_setup_true_lang._sfc_main$1, {
|
|
3323
|
+
class: vue.normalizeClass(sizeClasses.value.label),
|
|
3324
|
+
width: "80%",
|
|
3325
|
+
height: "1em"
|
|
3326
|
+
}, null, 8, ["class"])
|
|
3327
|
+
], 2)
|
|
3328
|
+
], 2)) : (vue.openBlock(), vue.createElementBlock("div", {
|
|
3329
|
+
key: 1,
|
|
3330
|
+
class: vue.normalizeClass(layoutClasses.value)
|
|
3331
|
+
}, [
|
|
3332
|
+
__props.icon || _ctx.$slots.icon ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
3333
|
+
key: 0,
|
|
3334
|
+
class: vue.normalizeClass([
|
|
3335
|
+
"flex items-center justify-center flex-shrink-0",
|
|
3336
|
+
sizeClasses.value.icon,
|
|
3337
|
+
iconRoundedClasses.value,
|
|
3338
|
+
iconBgClasses.value,
|
|
3339
|
+
iconMarginClasses.value,
|
|
3340
|
+
__props.iconWrapperClass
|
|
3341
|
+
])
|
|
3342
|
+
}, [
|
|
3343
|
+
vue.renderSlot(_ctx.$slots, "icon", {}, () => [
|
|
3344
|
+
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
3345
|
+
icon: __props.icon,
|
|
3346
|
+
class: vue.normalizeClass([sizeClasses.value.iconInner, iconColorClasses.value, __props.iconClass])
|
|
3347
|
+
}, null, 8, ["icon", "class"])
|
|
3348
|
+
])
|
|
3349
|
+
], 2)) : vue.createCommentVNode("", true),
|
|
3350
|
+
vue.createElementVNode("div", {
|
|
3351
|
+
class: vue.normalizeClass([computedContentClasses.value, __props.contentClass])
|
|
3352
|
+
}, [
|
|
3353
|
+
__props.labelFirst ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
3354
|
+
key: 0,
|
|
3355
|
+
class: vue.normalizeClass([sizeClasses.value.label, labelTextClasses.value, __props.labelClass])
|
|
3356
|
+
}, [
|
|
3357
|
+
vue.renderSlot(_ctx.$slots, "label", {}, () => [
|
|
3358
|
+
vue.createTextVNode(vue.toDisplayString(__props.label), 1)
|
|
3359
|
+
])
|
|
3360
|
+
], 2)) : vue.createCommentVNode("", true),
|
|
3361
|
+
vue.createElementVNode("div", {
|
|
3362
|
+
class: vue.normalizeClass([sizeClasses.value.value, valueTextClasses.value, __props.valueClass])
|
|
3363
|
+
}, [
|
|
3364
|
+
vue.renderSlot(_ctx.$slots, "value", {}, () => [
|
|
3365
|
+
__props.prefix ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$1, vue.toDisplayString(__props.prefix), 1)) : vue.createCommentVNode("", true),
|
|
3366
|
+
vue.createTextVNode(" " + vue.toDisplayString(__props.value) + " ", 1),
|
|
3367
|
+
__props.suffix ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$1, vue.toDisplayString(__props.suffix), 1)) : vue.createCommentVNode("", true)
|
|
3368
|
+
])
|
|
3369
|
+
], 2),
|
|
3370
|
+
!__props.labelFirst ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
3371
|
+
key: 1,
|
|
3372
|
+
class: vue.normalizeClass([sizeClasses.value.label, labelTextClasses.value, __props.labelClass])
|
|
3373
|
+
}, [
|
|
3374
|
+
vue.renderSlot(_ctx.$slots, "label", {}, () => [
|
|
3375
|
+
vue.createTextVNode(vue.toDisplayString(__props.label), 1)
|
|
3376
|
+
])
|
|
3377
|
+
], 2)) : vue.createCommentVNode("", true),
|
|
3378
|
+
__props.description || _ctx.$slots.description ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
3379
|
+
key: 2,
|
|
3380
|
+
class: vue.normalizeClass([sizeClasses.value.description, descriptionTextClasses.value, __props.descriptionClass])
|
|
3381
|
+
}, [
|
|
3382
|
+
vue.renderSlot(_ctx.$slots, "description", {}, () => [
|
|
3383
|
+
vue.createTextVNode(vue.toDisplayString(__props.description), 1)
|
|
3384
|
+
])
|
|
3385
|
+
], 2)) : vue.createCommentVNode("", true),
|
|
3386
|
+
__props.change !== void 0 || __props.trend ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
3387
|
+
key: 3,
|
|
3388
|
+
class: vue.normalizeClass([
|
|
3389
|
+
"mt-1 font-medium inline-flex items-center gap-1",
|
|
3390
|
+
sizeClasses.value.change,
|
|
3391
|
+
trendColorClasses.value,
|
|
3392
|
+
__props.trendClass
|
|
3393
|
+
])
|
|
3394
|
+
}, [
|
|
3395
|
+
!__props.hideTrendIcon ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
3396
|
+
key: 0,
|
|
3397
|
+
icon: trendIcon.value,
|
|
3398
|
+
class: "size-3.5"
|
|
3399
|
+
}, null, 8, ["icon"])) : vue.createCommentVNode("", true),
|
|
3400
|
+
!__props.trendOnly && __props.change !== void 0 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$1, vue.toDisplayString(__props.change >= 0 ? "+" : "") + vue.toDisplayString(__props.change) + "% ", 1)) : vue.createCommentVNode("", true),
|
|
3401
|
+
__props.changeLabel ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4, vue.toDisplayString(__props.changeLabel), 1)) : vue.createCommentVNode("", true)
|
|
3402
|
+
], 2)) : vue.createCommentVNode("", true)
|
|
3403
|
+
], 2)
|
|
3404
|
+
], 2)),
|
|
3405
|
+
vue.renderSlot(_ctx.$slots, "extra")
|
|
3406
|
+
]),
|
|
3407
|
+
_: 3
|
|
3408
|
+
}, 8, ["variant", "padding", "clickable", "shadow", "border", "rounded", "accent", "class"]);
|
|
3139
3409
|
};
|
|
3140
3410
|
}
|
|
3141
3411
|
});
|
|
3142
3412
|
const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
3143
|
-
__name: "
|
|
3413
|
+
__name: "Stats",
|
|
3144
3414
|
props: {
|
|
3145
3415
|
stats: {},
|
|
3146
3416
|
cols: {},
|
|
3417
|
+
gap: { default: "md" },
|
|
3147
3418
|
variant: { default: "default" },
|
|
3148
|
-
|
|
3419
|
+
size: { default: "md" },
|
|
3420
|
+
iconPosition: { default: "top" },
|
|
3421
|
+
iconRounded: { default: "xl" },
|
|
3422
|
+
hideIconBg: { type: Boolean, default: false },
|
|
3423
|
+
color: { default: "primary" },
|
|
3424
|
+
labelFirst: { type: Boolean, default: false },
|
|
3425
|
+
compact: { type: Boolean, default: false },
|
|
3426
|
+
loading: { type: Boolean, default: false },
|
|
3427
|
+
shadow: { default: "sm" },
|
|
3428
|
+
rounded: { default: "xl" },
|
|
3429
|
+
border: { default: "none" },
|
|
3430
|
+
accent: { default: "none" },
|
|
3431
|
+
clickable: { type: Boolean, default: false },
|
|
3432
|
+
centered: { type: Boolean },
|
|
3433
|
+
invertTrendColors: { type: Boolean, default: false },
|
|
3434
|
+
hideTrendIcon: { type: Boolean, default: false },
|
|
3435
|
+
gridClass: {},
|
|
3436
|
+
cardClass: {},
|
|
3437
|
+
iconWrapperClass: {},
|
|
3438
|
+
iconClass: {},
|
|
3439
|
+
valueClass: {},
|
|
3440
|
+
labelClass: {}
|
|
3149
3441
|
},
|
|
3442
|
+
emits: ["item-click"],
|
|
3150
3443
|
setup(__props) {
|
|
3151
3444
|
return (_ctx, _cache) => {
|
|
3445
|
+
var _a, _b, _c, _d;
|
|
3152
3446
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
3153
|
-
class: vue.normalizeClass(["grid
|
|
3447
|
+
class: vue.normalizeClass(["grid", [
|
|
3448
|
+
__props.gridClass,
|
|
3449
|
+
// Gap classes
|
|
3450
|
+
__props.gap === "none" && "gap-0",
|
|
3451
|
+
__props.gap === "xs" && "gap-1 sm:gap-2",
|
|
3452
|
+
__props.gap === "sm" && "gap-2 sm:gap-3",
|
|
3453
|
+
__props.gap === "md" && "gap-3 sm:gap-4",
|
|
3454
|
+
__props.gap === "lg" && "gap-4 sm:gap-6",
|
|
3455
|
+
__props.gap === "xl" && "gap-6 sm:gap-8",
|
|
3456
|
+
// Column classes
|
|
3457
|
+
__props.cols === 1 && "grid-cols-1",
|
|
3154
3458
|
__props.cols === 2 && "grid-cols-2",
|
|
3155
3459
|
__props.cols === 3 && "grid-cols-3",
|
|
3156
3460
|
__props.cols === 4 && "grid-cols-2 sm:grid-cols-4",
|
|
3157
|
-
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
!__props.cols && __props.stats.length
|
|
3461
|
+
__props.cols === 5 && "grid-cols-2 sm:grid-cols-3 lg:grid-cols-5",
|
|
3462
|
+
__props.cols === 6 && "grid-cols-2 sm:grid-cols-3 lg:grid-cols-6",
|
|
3463
|
+
// Auto columns based on stats length
|
|
3464
|
+
!__props.cols && ((_a = __props.stats) == null ? void 0 : _a.length) === 1 && "grid-cols-1",
|
|
3465
|
+
!__props.cols && ((_b = __props.stats) == null ? void 0 : _b.length) === 2 && "grid-cols-2",
|
|
3466
|
+
!__props.cols && ((_c = __props.stats) == null ? void 0 : _c.length) === 3 && "grid-cols-3",
|
|
3467
|
+
!__props.cols && ((_d = __props.stats) == null ? void 0 : _d.length) === 4 && "grid-cols-2 sm:grid-cols-4",
|
|
3468
|
+
!__props.cols && __props.stats && __props.stats.length > 4 && "grid-cols-2 sm:grid-cols-3 lg:grid-cols-4"
|
|
3161
3469
|
]])
|
|
3162
3470
|
}, [
|
|
3163
3471
|
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.stats, (stat, index2) => {
|
|
@@ -3168,10 +3476,36 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3168
3476
|
icon: stat.icon,
|
|
3169
3477
|
change: stat.change,
|
|
3170
3478
|
"change-label": stat.changeLabel,
|
|
3479
|
+
trend: stat.trend,
|
|
3480
|
+
description: stat.description,
|
|
3481
|
+
prefix: stat.prefix,
|
|
3482
|
+
suffix: stat.suffix,
|
|
3171
3483
|
variant: __props.variant,
|
|
3172
|
-
|
|
3173
|
-
|
|
3174
|
-
|
|
3484
|
+
size: __props.size,
|
|
3485
|
+
"icon-position": __props.iconPosition,
|
|
3486
|
+
"icon-rounded": __props.iconRounded,
|
|
3487
|
+
"hide-icon-bg": __props.hideIconBg,
|
|
3488
|
+
color: stat.color || __props.color,
|
|
3489
|
+
"label-first": __props.labelFirst,
|
|
3490
|
+
compact: __props.compact,
|
|
3491
|
+
loading: __props.loading,
|
|
3492
|
+
shadow: __props.shadow,
|
|
3493
|
+
rounded: __props.rounded,
|
|
3494
|
+
border: __props.border,
|
|
3495
|
+
accent: __props.accent,
|
|
3496
|
+
clickable: __props.clickable,
|
|
3497
|
+
centered: __props.centered,
|
|
3498
|
+
"invert-trend-colors": __props.invertTrendColors,
|
|
3499
|
+
"hide-trend-icon": __props.hideTrendIcon,
|
|
3500
|
+
"card-class": __props.cardClass,
|
|
3501
|
+
"icon-wrapper-class": __props.iconWrapperClass,
|
|
3502
|
+
"icon-class": __props.iconClass,
|
|
3503
|
+
"value-class": __props.valueClass,
|
|
3504
|
+
"label-class": __props.labelClass,
|
|
3505
|
+
onClick: ($event) => _ctx.$emit("item-click", index2, stat, $event)
|
|
3506
|
+
}, null, 8, ["label", "value", "icon", "change", "change-label", "trend", "description", "prefix", "suffix", "variant", "size", "icon-position", "icon-rounded", "hide-icon-bg", "color", "label-first", "compact", "loading", "shadow", "rounded", "border", "accent", "clickable", "centered", "invert-trend-colors", "hide-trend-icon", "card-class", "icon-wrapper-class", "icon-class", "value-class", "label-class", "onClick"]);
|
|
3507
|
+
}), 128)),
|
|
3508
|
+
vue.renderSlot(_ctx.$slots, "default")
|
|
3175
3509
|
], 2);
|
|
3176
3510
|
};
|
|
3177
3511
|
}
|
|
@@ -3350,4 +3684,4 @@ exports._sfc_main$6 = _sfc_main$u;
|
|
|
3350
3684
|
exports._sfc_main$7 = _sfc_main$t;
|
|
3351
3685
|
exports._sfc_main$8 = _sfc_main$s;
|
|
3352
3686
|
exports._sfc_main$9 = _sfc_main$r;
|
|
3353
|
-
//# sourceMappingURL=FilterTabs.vue_vue_type_script_setup_true_lang-
|
|
3687
|
+
//# sourceMappingURL=FilterTabs.vue_vue_type_script_setup_true_lang-CwcJkw3D.cjs.map
|