cisse-vue-ui 0.5.33 → 0.6.0

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.
Files changed (84) hide show
  1. package/dist/Button.vue_vue_type_script_setup_true_lang-CBYr0Z2_.js +99 -0
  2. package/dist/Button.vue_vue_type_script_setup_true_lang-CBYr0Z2_.js.map +1 -0
  3. package/dist/Button.vue_vue_type_script_setup_true_lang-CXRj7LEP.cjs +98 -0
  4. package/dist/Button.vue_vue_type_script_setup_true_lang-CXRj7LEP.cjs.map +1 -0
  5. package/dist/{ConfirmDialog.vue_vue_type_script_setup_true_lang-CHIIi5Gu.cjs → ConfirmDialog.vue_vue_type_script_setup_true_lang-Bine-xfp.cjs} +2 -2
  6. package/dist/{ConfirmDialog.vue_vue_type_script_setup_true_lang-CHIIi5Gu.cjs.map → ConfirmDialog.vue_vue_type_script_setup_true_lang-Bine-xfp.cjs.map} +1 -1
  7. package/dist/{ConfirmDialog.vue_vue_type_script_setup_true_lang-DdCwgxtv.js → ConfirmDialog.vue_vue_type_script_setup_true_lang-DqkA1Zr-.js} +2 -2
  8. package/dist/{ConfirmDialog.vue_vue_type_script_setup_true_lang-DdCwgxtv.js.map → ConfirmDialog.vue_vue_type_script_setup_true_lang-DqkA1Zr-.js.map} +1 -1
  9. package/dist/{DarkModeToggle.vue_vue_type_script_setup_true_lang-0K4ucPlO.js → FilterTabs.vue_vue_type_script_setup_true_lang-AFYkni3y.js} +411 -136
  10. package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-AFYkni3y.js.map +1 -0
  11. package/dist/{DarkModeToggle.vue_vue_type_script_setup_true_lang-DOrIWBcH.cjs → FilterTabs.vue_vue_type_script_setup_true_lang-HwjuvIJX.cjs} +398 -123
  12. package/dist/FilterTabs.vue_vue_type_script_setup_true_lang-HwjuvIJX.cjs.map +1 -0
  13. package/dist/{IconPicker.vue_vue_type_script_setup_true_lang-agY_E72J.cjs → FormActions.vue_vue_type_script_setup_true_lang-DzN_fbUC.cjs} +404 -165
  14. package/dist/FormActions.vue_vue_type_script_setup_true_lang-DzN_fbUC.cjs.map +1 -0
  15. package/dist/{IconPicker.vue_vue_type_script_setup_true_lang-Ch1x6Ap9.js → FormActions.vue_vue_type_script_setup_true_lang-d2aur5Pu.js} +405 -166
  16. package/dist/FormActions.vue_vue_type_script_setup_true_lang-d2aur5Pu.js.map +1 -0
  17. package/dist/{Button.vue_vue_type_script_setup_true_lang-BHpVJnRn.js → ListSkeleton.vue_vue_type_script_setup_true_lang-BwtEbaiT.js} +7 -102
  18. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-BwtEbaiT.js.map +1 -0
  19. package/dist/{Button.vue_vue_type_script_setup_true_lang-CLmHDal2.cjs → ListSkeleton.vue_vue_type_script_setup_true_lang-DtwwmfWr.cjs} +6 -101
  20. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-DtwwmfWr.cjs.map +1 -0
  21. package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-rMu1Z5uH.js → PageHero.vue_vue_type_script_setup_true_lang-C-YXGDTY.js} +244 -97
  22. package/dist/PageHero.vue_vue_type_script_setup_true_lang-C-YXGDTY.js.map +1 -0
  23. package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-hhzpkC6_.cjs → PageHero.vue_vue_type_script_setup_true_lang-CKCmOxOa.cjs} +241 -94
  24. package/dist/PageHero.vue_vue_type_script_setup_true_lang-CKCmOxOa.cjs.map +1 -0
  25. package/dist/components/core/FilterTabs.stories.d.ts +14 -0
  26. package/dist/components/core/FilterTabs.test.d.ts +1 -0
  27. package/dist/components/core/FilterTabs.vue.d.ts +29 -0
  28. package/dist/components/core/StatsCard.stories.d.ts +15 -0
  29. package/dist/components/core/StatsCard.test.d.ts +1 -0
  30. package/dist/components/core/StatsCard.vue.d.ts +44 -0
  31. package/dist/components/core/StatsGrid.stories.d.ts +12 -0
  32. package/dist/components/core/StatsGrid.test.d.ts +1 -0
  33. package/dist/components/core/StatsGrid.vue.d.ts +16 -0
  34. package/dist/components/core/index.cjs +24 -21
  35. package/dist/components/core/index.cjs.map +1 -1
  36. package/dist/components/core/index.d.ts +5 -0
  37. package/dist/components/core/index.js +5 -2
  38. package/dist/components/feedback/index.cjs +5 -5
  39. package/dist/components/feedback/index.js +5 -5
  40. package/dist/components/form/FormActions.stories.d.ts +18 -0
  41. package/dist/components/form/FormActions.test.d.ts +1 -0
  42. package/dist/components/form/FormActions.vue.d.ts +56 -0
  43. package/dist/components/form/FormInput.vue.d.ts +1 -1
  44. package/dist/components/form/FormSection.stories.d.ts +13 -0
  45. package/dist/components/form/FormSection.test.d.ts +1 -0
  46. package/dist/components/form/FormSection.vue.d.ts +49 -0
  47. package/dist/components/form/index.cjs +18 -16
  48. package/dist/components/form/index.cjs.map +1 -1
  49. package/dist/components/form/index.d.ts +2 -0
  50. package/dist/components/form/index.js +3 -1
  51. package/dist/components/index.cjs +52 -45
  52. package/dist/components/index.cjs.map +1 -1
  53. package/dist/components/index.js +22 -15
  54. package/dist/components/index.js.map +1 -1
  55. package/dist/components/layout/PageHero.stories.d.ts +11 -0
  56. package/dist/components/layout/PageHero.test.d.ts +1 -0
  57. package/dist/components/layout/PageHero.vue.d.ts +51 -0
  58. package/dist/components/layout/index.cjs +5 -4
  59. package/dist/components/layout/index.cjs.map +1 -1
  60. package/dist/components/layout/index.d.ts +2 -0
  61. package/dist/components/layout/index.js +2 -1
  62. package/dist/index-6hQQcCpF.js +84 -0
  63. package/dist/index-6hQQcCpF.js.map +1 -0
  64. package/dist/index-Bp7Mpfbi.cjs +83 -0
  65. package/dist/index-Bp7Mpfbi.cjs.map +1 -0
  66. package/dist/index.cjs +53 -46
  67. package/dist/index.cjs.map +1 -1
  68. package/dist/index.js +33 -26
  69. package/dist/index.js.map +1 -1
  70. package/dist/style.css +1 -1
  71. package/dist/types/form.d.ts +4 -0
  72. package/package.json +1 -1
  73. package/dist/Button.vue_vue_type_script_setup_true_lang-BHpVJnRn.js.map +0 -1
  74. package/dist/Button.vue_vue_type_script_setup_true_lang-CLmHDal2.cjs.map +0 -1
  75. package/dist/DarkModeToggle.vue_vue_type_script_setup_true_lang-0K4ucPlO.js.map +0 -1
  76. package/dist/DarkModeToggle.vue_vue_type_script_setup_true_lang-DOrIWBcH.cjs.map +0 -1
  77. package/dist/IconPicker.vue_vue_type_script_setup_true_lang-Ch1x6Ap9.js.map +0 -1
  78. package/dist/IconPicker.vue_vue_type_script_setup_true_lang-agY_E72J.cjs.map +0 -1
  79. package/dist/PageLayout.vue_vue_type_script_setup_true_lang-hhzpkC6_.cjs.map +0 -1
  80. package/dist/PageLayout.vue_vue_type_script_setup_true_lang-rMu1Z5uH.js.map +0 -1
  81. package/dist/index-BBUxkeI7.js +0 -77
  82. package/dist/index-BBUxkeI7.js.map +0 -1
  83. package/dist/index-BlwU8BWn.cjs +0 -76
  84. package/dist/index-BlwU8BWn.cjs.map +0 -1
@@ -1,22 +1,22 @@
1
- import { defineComponent, computed, createBlock, createElementBlock, openBlock, createCommentVNode, renderSlot, normalizeClass, createElementVNode, createTextVNode, toDisplayString, useSlots, createVNode, Fragment, renderList, resolveDynamicComponent, withCtx, createSlots, ref, watch, unref, withDirectives, vModelText, withModifiers, Teleport, Transition, normalizeStyle, nextTick, resolveComponent, mergeProps, provide, inject, vShow, onMounted, onUnmounted } from "vue";
2
- import { _ as _sfc_main$l, a as useBreakpoints } from "./index-BaWpldIJ.js";
3
- import { b as _sfc_main$j, a as _sfc_main$k, c as _sfc_main$r } from "./Button.vue_vue_type_script_setup_true_lang-BHpVJnRn.js";
4
- import { e as _sfc_main$m, d as _sfc_main$n, c as _sfc_main$o, b as _sfc_main$p, a as _sfc_main$q } from "./BadgeType.vue_vue_type_script_setup_true_lang-tHRMWBb-.js";
1
+ import { defineComponent, computed, createBlock, createElementBlock, openBlock, createCommentVNode, renderSlot, normalizeClass, createElementVNode, createTextVNode, toDisplayString, useSlots, createVNode, Fragment, renderList, resolveDynamicComponent, withCtx, createSlots, ref, watch, unref, withDirectives, vModelText, withModifiers, Teleport, Transition, normalizeStyle, nextTick, resolveComponent, mergeProps, provide, inject, vShow, onMounted, onUnmounted, mergeModels, useModel } from "vue";
2
+ import { _ as _sfc_main$o, a as useBreakpoints } from "./index-BaWpldIJ.js";
3
+ import { a as _sfc_main$m, _ as _sfc_main$n, b as _sfc_main$u } from "./ListSkeleton.vue_vue_type_script_setup_true_lang-BwtEbaiT.js";
4
+ import { e as _sfc_main$p, d as _sfc_main$q, c as _sfc_main$r, b as _sfc_main$s, a as _sfc_main$t } from "./BadgeType.vue_vue_type_script_setup_true_lang-tHRMWBb-.js";
5
5
  import { Icon } from "@iconify/vue";
6
6
  import { u as useDropdown } from "./useDropdown-iVu14E6s.js";
7
7
  import { u as useId } from "./useId-xeHj7rkg.js";
8
8
  import { u as useDarkMode } from "./useDarkMode-Cl5QWTlC.js";
9
- const _hoisted_1$f = {
9
+ const _hoisted_1$h = {
10
10
  key: 1,
11
11
  class: "flex flex-col overflow-hidden rounded-lg bg-white shadow-md dark:bg-slate-950"
12
12
  };
13
- const _hoisted_2$c = { class: "flex flex-col gap-0.5" };
14
- const _hoisted_3$7 = {
13
+ const _hoisted_2$d = { class: "flex flex-col gap-0.5" };
14
+ const _hoisted_3$8 = {
15
15
  key: 1,
16
16
  class: "text-sm font-normal text-gray-600 dark:text-gray-400"
17
17
  };
18
18
  const _hoisted_4$6 = { class: "flex gap-2" };
19
- const _sfc_main$i = /* @__PURE__ */ defineComponent({
19
+ const _sfc_main$l = /* @__PURE__ */ defineComponent({
20
20
  __name: "CardComponent",
21
21
  props: {
22
22
  title: {},
@@ -37,12 +37,12 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
37
37
  () => props.dividerClass || "border-gray-200 dark:border-gray-700"
38
38
  );
39
39
  return (_ctx, _cache) => {
40
- return __props.loading ? (openBlock(), createBlock(_sfc_main$j, {
40
+ return __props.loading ? (openBlock(), createBlock(_sfc_main$m, {
41
41
  key: 0,
42
42
  lines: __props.loadingLines,
43
43
  "show-avatar": __props.loadingAvatar,
44
44
  "show-actions": __props.loadingActions
45
- }, null, 8, ["lines", "show-avatar", "show-actions"])) : (openBlock(), createElementBlock("div", _hoisted_1$f, [
45
+ }, null, 8, ["lines", "show-avatar", "show-actions"])) : (openBlock(), createElementBlock("div", _hoisted_1$h, [
46
46
  _ctx.$slots.header ? (openBlock(), createElementBlock("div", {
47
47
  key: 0,
48
48
  class: normalizeClass(["border-b", dividerClasses.value])
@@ -52,7 +52,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
52
52
  key: 1,
53
53
  class: normalizeClass(["flex items-center justify-between border-b px-5 py-3", dividerClasses.value])
54
54
  }, [
55
- createElementVNode("div", _hoisted_2$c, [
55
+ createElementVNode("div", _hoisted_2$d, [
56
56
  __props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("span", {
57
57
  key: 0,
58
58
  class: normalizeClass(["text-md font-semibold", titleClasses.value])
@@ -61,7 +61,7 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
61
61
  createTextVNode(toDisplayString(__props.title), 1)
62
62
  ])
63
63
  ], 2)) : createCommentVNode("", true),
64
- __props.description || _ctx.$slots.description ? (openBlock(), createElementBlock("span", _hoisted_3$7, [
64
+ __props.description || _ctx.$slots.description ? (openBlock(), createElementBlock("span", _hoisted_3$8, [
65
65
  renderSlot(_ctx.$slots, "description", {}, () => [
66
66
  createTextVNode(toDisplayString(__props.description), 1)
67
67
  ])
@@ -76,12 +76,12 @@ const _sfc_main$i = /* @__PURE__ */ defineComponent({
76
76
  };
77
77
  }
78
78
  });
79
- const _hoisted_1$e = { class: "overflow-hidden" };
80
- const _hoisted_2$b = {
79
+ const _hoisted_1$g = { class: "overflow-hidden" };
80
+ const _hoisted_2$c = {
81
81
  key: 1,
82
82
  class: "overflow-x-auto"
83
83
  };
84
- const _hoisted_3$6 = { class: "w-full divide-y divide-black/10 text-left dark:divide-white/10" };
84
+ const _hoisted_3$7 = { class: "w-full divide-y divide-black/10 text-left dark:divide-white/10" };
85
85
  const _hoisted_4$5 = { class: "bg-black/5 text-sm font-semibold text-gray-600 uppercase dark:bg-white/5 dark:text-gray-400" };
86
86
  const _hoisted_5$3 = {
87
87
  key: 0,
@@ -110,7 +110,7 @@ const _hoisted_12$1 = {
110
110
  class: "flex items-center justify-end gap-2 px-3 py-4"
111
111
  };
112
112
  const _hoisted_13 = { key: 0 };
113
- const _sfc_main$h = /* @__PURE__ */ defineComponent({
113
+ const _sfc_main$k = /* @__PURE__ */ defineComponent({
114
114
  __name: "TableComponent",
115
115
  props: {
116
116
  properties: {},
@@ -130,14 +130,14 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
130
130
  const props = __props;
131
131
  const emit = __emit;
132
132
  const typeComponents = {
133
- text: _sfc_main$q,
134
- number: _sfc_main$p,
135
- date: _sfc_main$o,
136
- boolean: _sfc_main$n,
137
- badge: _sfc_main$m
133
+ text: _sfc_main$t,
134
+ number: _sfc_main$s,
135
+ date: _sfc_main$r,
136
+ boolean: _sfc_main$q,
137
+ badge: _sfc_main$p
138
138
  };
139
139
  const getTypeComponent = (type = "text") => {
140
- return typeComponents[type] || _sfc_main$q;
140
+ return typeComponents[type] || _sfc_main$t;
141
141
  };
142
142
  const visibleProperties = computed(() => props.properties.filter((p) => !p.hidden));
143
143
  const getKey = (item) => {
@@ -211,17 +211,17 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
211
211
  return props.sortBy === property.name;
212
212
  };
213
213
  return (_ctx, _cache) => {
214
- return openBlock(), createElementBlock("div", _hoisted_1$e, [
215
- __props.loading ? (openBlock(), createBlock(_sfc_main$k, {
214
+ return openBlock(), createElementBlock("div", _hoisted_1$g, [
215
+ __props.loading ? (openBlock(), createBlock(_sfc_main$n, {
216
216
  key: 0,
217
217
  rows: __props.loadingRows,
218
218
  columns: visibleProperties.value.length
219
- }, null, 8, ["rows", "columns"])) : (openBlock(), createElementBlock("div", _hoisted_2$b, [
220
- createElementVNode("table", _hoisted_3$6, [
219
+ }, null, 8, ["rows", "columns"])) : (openBlock(), createElementBlock("div", _hoisted_2$c, [
220
+ createElementVNode("table", _hoisted_3$7, [
221
221
  createElementVNode("thead", _hoisted_4$5, [
222
222
  createElementVNode("tr", null, [
223
223
  __props.selectable ? (openBlock(), createElementBlock("th", _hoisted_5$3, [
224
- createVNode(_sfc_main$l, {
224
+ createVNode(_sfc_main$o, {
225
225
  "model-value": allSelected.value,
226
226
  indeterminate: someSelected.value,
227
227
  disabled: selectableItems.value.length === 0,
@@ -280,7 +280,7 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
280
280
  class: normalizeClass(["hover:bg-black/5 dark:hover:bg-white/5 transition-colors", { "bg-primary/5 dark:bg-primary/10": isSelected(item) }])
281
281
  }, [
282
282
  __props.selectable ? (openBlock(), createElementBlock("td", _hoisted_11$1, [
283
- isSelectable(item) ? (openBlock(), createBlock(_sfc_main$l, {
283
+ isSelectable(item) ? (openBlock(), createBlock(_sfc_main$o, {
284
284
  key: 0,
285
285
  "model-value": isSelected(item),
286
286
  "onUpdate:modelValue": ($event) => handleSelect(item)
@@ -322,9 +322,9 @@ const _sfc_main$h = /* @__PURE__ */ defineComponent({
322
322
  };
323
323
  }
324
324
  });
325
- const _hoisted_1$d = { class: "space-y-3" };
326
- const _hoisted_2$a = { class: "flex items-center gap-3 p-3" };
327
- const _hoisted_3$5 = { class: "text-sm text-gray-600 dark:text-gray-400" };
325
+ const _hoisted_1$f = { class: "space-y-3" };
326
+ const _hoisted_2$b = { class: "flex items-center gap-3 p-3" };
327
+ const _hoisted_3$6 = { class: "text-sm text-gray-600 dark:text-gray-400" };
328
328
  const _hoisted_4$4 = {
329
329
  key: 0,
330
330
  class: "text-sm text-primary font-medium"
@@ -341,7 +341,7 @@ const _hoisted_7$2 = {
341
341
  const _hoisted_8$2 = { class: "flex-1 min-w-0 overflow-hidden" };
342
342
  const _hoisted_9$2 = { class: "shrink-0" };
343
343
  const _hoisted_10$1 = { key: 1 };
344
- const _sfc_main$g = /* @__PURE__ */ defineComponent({
344
+ const _sfc_main$j = /* @__PURE__ */ defineComponent({
345
345
  __name: "MobileList",
346
346
  props: {
347
347
  items: {},
@@ -390,10 +390,10 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
390
390
  };
391
391
  const hasEmptySlot = computed(() => !!slots.empty);
392
392
  return (_ctx, _cache) => {
393
- return openBlock(), createElementBlock("div", _hoisted_1$d, [
394
- __props.loading ? (openBlock(), createBlock(_sfc_main$i, { key: 0 }, {
393
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
394
+ __props.loading ? (openBlock(), createBlock(_sfc_main$l, { key: 0 }, {
395
395
  default: withCtx(() => [
396
- createVNode(_sfc_main$r, {
396
+ createVNode(_sfc_main$u, {
397
397
  items: __props.loadingItems,
398
398
  "show-avatar": "",
399
399
  "show-secondary": "",
@@ -402,22 +402,22 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
402
402
  ]),
403
403
  _: 1
404
404
  })) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [
405
- __props.selectable && selectableItems.value.length > 0 ? (openBlock(), createBlock(_sfc_main$i, { key: 0 }, {
405
+ __props.selectable && selectableItems.value.length > 0 ? (openBlock(), createBlock(_sfc_main$l, { key: 0 }, {
406
406
  default: withCtx(() => [
407
- createElementVNode("div", _hoisted_2$a, [
408
- createVNode(_sfc_main$l, {
407
+ createElementVNode("div", _hoisted_2$b, [
408
+ createVNode(_sfc_main$o, {
409
409
  "model-value": allSelected.value,
410
410
  indeterminate: someSelected.value,
411
411
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("selectAll"))
412
412
  }, null, 8, ["model-value", "indeterminate"]),
413
- createElementVNode("span", _hoisted_3$5, toDisplayString(allSelected.value ? "Tout désélectionner" : "Tout sélectionner"), 1),
413
+ createElementVNode("span", _hoisted_3$6, toDisplayString(allSelected.value ? "Tout désélectionner" : "Tout sélectionner"), 1),
414
414
  __props.selectedItems && __props.selectedItems.size > 0 ? (openBlock(), createElementBlock("span", _hoisted_4$4, " (" + toDisplayString(__props.selectedItems.size) + " sélectionné" + toDisplayString(__props.selectedItems.size > 1 ? "s" : "") + ") ", 1)) : createCommentVNode("", true)
415
415
  ])
416
416
  ]),
417
417
  _: 1
418
418
  })) : createCommentVNode("", true),
419
419
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
420
- return openBlock(), createBlock(_sfc_main$i, {
420
+ return openBlock(), createBlock(_sfc_main$l, {
421
421
  key: getKey(item),
422
422
  class: normalizeClass(["hover:shadow-lg transition-all duration-200", {
423
423
  "ring-2 ring-primary": isSelected(item)
@@ -426,7 +426,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
426
426
  default: withCtx(() => [
427
427
  createElementVNode("div", _hoisted_5$2, [
428
428
  __props.selectable ? (openBlock(), createElementBlock("div", _hoisted_6$2, [
429
- isSelectable(item) ? (openBlock(), createBlock(_sfc_main$l, {
429
+ isSelectable(item) ? (openBlock(), createBlock(_sfc_main$o, {
430
430
  key: 0,
431
431
  "model-value": isSelected(item),
432
432
  "onUpdate:modelValue": ($event) => handleSelect(item)
@@ -452,7 +452,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
452
452
  };
453
453
  }
454
454
  });
455
- const _sfc_main$f = /* @__PURE__ */ defineComponent({
455
+ const _sfc_main$i = /* @__PURE__ */ defineComponent({
456
456
  __name: "ResponsiveList",
457
457
  props: {
458
458
  items: {},
@@ -511,7 +511,7 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
511
511
  const isDesktop = computed(() => breakpoints.greaterOrEqual(props.breakpoint).value);
512
512
  return (_ctx, _cache) => {
513
513
  return openBlock(), createElementBlock("div", null, [
514
- !isDesktop.value ? (openBlock(), createBlock(_sfc_main$g, {
514
+ !isDesktop.value ? (openBlock(), createBlock(_sfc_main$j, {
515
515
  key: 0,
516
516
  items: __props.items,
517
517
  "key-field": __props.keyField,
@@ -538,9 +538,9 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
538
538
  renderSlot(_ctx.$slots, "empty")
539
539
  ]),
540
540
  _: 3
541
- }, 8, ["items", "key-field", "selectable", "selected-items", "selectable-filter", "loading", "loading-items"])) : (openBlock(), createBlock(_sfc_main$i, { key: 1 }, {
541
+ }, 8, ["items", "key-field", "selectable", "selected-items", "selectable-filter", "loading", "loading-items"])) : (openBlock(), createBlock(_sfc_main$l, { key: 1 }, {
542
542
  default: withCtx(() => [
543
- createVNode(_sfc_main$h, {
543
+ createVNode(_sfc_main$k, {
544
544
  items: __props.items,
545
545
  properties: tableProperties.value,
546
546
  "key-field": __props.keyField,
@@ -589,12 +589,12 @@ const _sfc_main$f = /* @__PURE__ */ defineComponent({
589
589
  };
590
590
  }
591
591
  });
592
- const _hoisted_1$c = {
592
+ const _hoisted_1$e = {
593
593
  key: 0,
594
594
  class: "mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"
595
595
  };
596
- const _hoisted_2$9 = { class: "relative" };
597
- const _hoisted_3$4 = ["disabled", "placeholder"];
596
+ const _hoisted_2$a = { class: "relative" };
597
+ const _hoisted_3$5 = ["disabled", "placeholder"];
598
598
  const _hoisted_4$3 = ["disabled"];
599
599
  const _hoisted_5$1 = {
600
600
  key: 0,
@@ -607,7 +607,7 @@ const _hoisted_9$1 = {
607
607
  key: 1,
608
608
  class: "mt-1 text-sm text-red-600"
609
609
  };
610
- const _sfc_main$e = /* @__PURE__ */ defineComponent({
610
+ const _sfc_main$h = /* @__PURE__ */ defineComponent({
611
611
  __name: "AutocompleteComponent",
612
612
  props: {
613
613
  modelValue: {},
@@ -709,8 +709,8 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
709
709
  ref: containerRef,
710
710
  class: "autocomplete-container"
711
711
  }, [
712
- __props.label ? (openBlock(), createElementBlock("label", _hoisted_1$c, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
713
- createElementVNode("div", _hoisted_2$9, [
712
+ __props.label ? (openBlock(), createElementBlock("label", _hoisted_1$e, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
713
+ createElementVNode("div", _hoisted_2$a, [
714
714
  createElementVNode("div", {
715
715
  ref_key: "inputWrapperRef",
716
716
  ref: inputWrapperRef,
@@ -735,7 +735,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
735
735
  type: "text",
736
736
  onFocus: openDropdown,
737
737
  onKeydown: handleKeydown
738
- }, null, 40, _hoisted_3$4), [
738
+ }, null, 40, _hoisted_3$5), [
739
739
  [vModelText, searchQuery.value]
740
740
  ]),
741
741
  __props.modelValue && !__props.disabled ? (openBlock(), createElementBlock("button", {
@@ -816,7 +816,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
816
816
  };
817
817
  }
818
818
  });
819
- const _sfc_main$d = /* @__PURE__ */ defineComponent({
819
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
820
820
  __name: "TableAction",
821
821
  props: {
822
822
  link: {},
@@ -885,10 +885,10 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
885
885
  };
886
886
  }
887
887
  });
888
- const _hoisted_1$b = { class: "relative inline-block" };
889
- const _hoisted_2$8 = ["src", "alt"];
890
- const _hoisted_3$3 = { key: 1 };
891
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
888
+ const _hoisted_1$d = { class: "relative inline-block" };
889
+ const _hoisted_2$9 = ["src", "alt"];
890
+ const _hoisted_3$4 = { key: 1 };
891
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
892
892
  __name: "Avatar",
893
893
  props: {
894
894
  src: {},
@@ -934,7 +934,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
934
934
  });
935
935
  const showImage = computed(() => props.src && !imageError.value);
936
936
  return (_ctx, _cache) => {
937
- return openBlock(), createElementBlock("div", _hoisted_1$b, [
937
+ return openBlock(), createElementBlock("div", _hoisted_1$d, [
938
938
  createElementVNode("div", {
939
939
  class: normalizeClass([
940
940
  "flex items-center justify-center overflow-hidden bg-gray-200 font-medium text-gray-600 dark:bg-gray-700 dark:text-gray-300",
@@ -948,7 +948,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
948
948
  alt: __props.alt || __props.name,
949
949
  class: "size-full object-cover",
950
950
  onError: _cache[0] || (_cache[0] = ($event) => imageError.value = true)
951
- }, null, 40, _hoisted_2$8)) : initials.value ? (openBlock(), createElementBlock("span", _hoisted_3$3, toDisplayString(initials.value), 1)) : (openBlock(), createBlock(unref(Icon), {
951
+ }, null, 40, _hoisted_2$9)) : initials.value ? (openBlock(), createElementBlock("span", _hoisted_3$4, toDisplayString(initials.value), 1)) : (openBlock(), createBlock(unref(Icon), {
952
952
  key: 2,
953
953
  icon: "lucide:user",
954
954
  class: "size-1/2"
@@ -966,9 +966,9 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
966
966
  };
967
967
  }
968
968
  });
969
- const _hoisted_1$a = ["aria-selected", "disabled", "onClick"];
970
- const _hoisted_2$7 = { class: "mt-4" };
971
- const _sfc_main$b = /* @__PURE__ */ defineComponent({
969
+ const _hoisted_1$c = ["aria-selected", "disabled", "onClick"];
970
+ const _hoisted_2$8 = { class: "mt-4" };
971
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
972
972
  __name: "Tabs",
973
973
  props: {
974
974
  tabs: {},
@@ -1033,18 +1033,18 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1033
1033
  activeTab.value === tab.key ? variantClasses[__props.variant].active : variantClasses[__props.variant].inactive
1034
1034
  ]),
1035
1035
  onClick: ($event) => selectTab(tab)
1036
- }, toDisplayString(tab.label), 11, _hoisted_1$a);
1036
+ }, toDisplayString(tab.label), 11, _hoisted_1$c);
1037
1037
  }), 128))
1038
1038
  ], 2),
1039
- createElementVNode("div", _hoisted_2$7, [
1039
+ createElementVNode("div", _hoisted_2$8, [
1040
1040
  renderSlot(_ctx.$slots, "default", { activeTab: activeTab.value })
1041
1041
  ])
1042
1042
  ]);
1043
1043
  };
1044
1044
  }
1045
1045
  });
1046
- const _hoisted_1$9 = { role: "tabpanel" };
1047
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
1046
+ const _hoisted_1$b = { role: "tabpanel" };
1047
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
1048
1048
  __name: "TabPanel",
1049
1049
  props: {
1050
1050
  value: {}
@@ -1054,7 +1054,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
1054
1054
  const activeTab = inject("activeTab");
1055
1055
  const isActive = computed(() => (activeTab == null ? void 0 : activeTab.value) === props.value);
1056
1056
  return (_ctx, _cache) => {
1057
- return withDirectives((openBlock(), createElementBlock("div", _hoisted_1$9, [
1057
+ return withDirectives((openBlock(), createElementBlock("div", _hoisted_1$b, [
1058
1058
  renderSlot(_ctx.$slots, "default")
1059
1059
  ], 512)), [
1060
1060
  [vShow, isActive.value]
@@ -1062,11 +1062,11 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
1062
1062
  };
1063
1063
  }
1064
1064
  });
1065
- const _hoisted_1$8 = {
1065
+ const _hoisted_1$a = {
1066
1066
  key: 2,
1067
1067
  class: "text-sm font-semibold"
1068
1068
  };
1069
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1069
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
1070
1070
  __name: "Stepper",
1071
1071
  props: {
1072
1072
  steps: {},
@@ -1135,7 +1135,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1135
1135
  key: 1,
1136
1136
  icon: step.icon,
1137
1137
  class: "size-6"
1138
- }, null, 8, ["icon"])) : (openBlock(), createElementBlock("span", _hoisted_1$8, toDisplayString(index + 1), 1))
1138
+ }, null, 8, ["icon"])) : (openBlock(), createElementBlock("span", _hoisted_1$a, toDisplayString(index + 1), 1))
1139
1139
  ], 2),
1140
1140
  createElementVNode("div", {
1141
1141
  class: normalizeClass([
@@ -1163,7 +1163,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1163
1163
  };
1164
1164
  }
1165
1165
  });
1166
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1166
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
1167
1167
  __name: "CollapsibleCard",
1168
1168
  props: {
1169
1169
  title: {},
@@ -1181,7 +1181,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1181
1181
  };
1182
1182
  const hasCustomHeader = () => !!slots.header;
1183
1183
  return (_ctx, _cache) => {
1184
- return openBlock(), createBlock(_sfc_main$i, null, createSlots({
1184
+ return openBlock(), createBlock(_sfc_main$l, null, createSlots({
1185
1185
  default: withCtx(() => [
1186
1186
  createVNode(Transition, {
1187
1187
  "enter-active-class": "transition-all duration-200 ease-out",
@@ -1259,9 +1259,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1259
1259
  };
1260
1260
  }
1261
1261
  });
1262
- const _hoisted_1$7 = ["aria-describedby"];
1263
- const _hoisted_2$6 = ["id"];
1264
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1262
+ const _hoisted_1$9 = ["aria-describedby"];
1263
+ const _hoisted_2$7 = ["id"];
1264
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
1265
1265
  __name: "Tooltip",
1266
1266
  props: {
1267
1267
  content: {},
@@ -1332,17 +1332,17 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1332
1332
  id: unref(tooltipId),
1333
1333
  class: normalizeClass(positionClasses.value),
1334
1334
  role: "tooltip"
1335
- }, toDisplayString(__props.content), 11, _hoisted_2$6)) : createCommentVNode("", true)
1335
+ }, toDisplayString(__props.content), 11, _hoisted_2$7)) : createCommentVNode("", true)
1336
1336
  ]),
1337
1337
  _: 1
1338
1338
  })
1339
- ], 40, _hoisted_1$7);
1339
+ ], 40, _hoisted_1$9);
1340
1340
  };
1341
1341
  }
1342
1342
  });
1343
- const _hoisted_1$6 = ["id", "aria-expanded", "aria-controls"];
1344
- const _hoisted_2$5 = ["id", "aria-labelledby"];
1345
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
1343
+ const _hoisted_1$8 = ["id", "aria-expanded", "aria-controls"];
1344
+ const _hoisted_2$6 = ["id", "aria-labelledby"];
1345
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
1346
1346
  __name: "Popover",
1347
1347
  props: {
1348
1348
  position: { default: "bottom" },
@@ -1398,7 +1398,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
1398
1398
  onClick: handleTrigger
1399
1399
  }, [
1400
1400
  renderSlot(_ctx.$slots, "trigger")
1401
- ], 8, _hoisted_1$6),
1401
+ ], 8, _hoisted_1$8),
1402
1402
  (openBlock(), createBlock(Teleport, {
1403
1403
  to: "body",
1404
1404
  disabled: !__props.teleport
@@ -1426,7 +1426,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
1426
1426
  ])
1427
1427
  }, [
1428
1428
  renderSlot(_ctx.$slots, "default", { close: unref(close) })
1429
- ], 14, _hoisted_2$5)) : createCommentVNode("", true)
1429
+ ], 14, _hoisted_2$6)) : createCommentVNode("", true)
1430
1430
  ]),
1431
1431
  _: 3
1432
1432
  })
@@ -1435,17 +1435,17 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
1435
1435
  };
1436
1436
  }
1437
1437
  });
1438
- const _hoisted_1$5 = {
1438
+ const _hoisted_1$7 = {
1439
1439
  key: 0,
1440
1440
  class: "flex items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700"
1441
1441
  };
1442
- const _hoisted_2$4 = { class: "text-lg font-semibold text-gray-900 dark:text-white" };
1443
- const _hoisted_3$2 = { class: "flex-1 overflow-y-auto p-4" };
1442
+ const _hoisted_2$5 = { class: "text-lg font-semibold text-gray-900 dark:text-white" };
1443
+ const _hoisted_3$3 = { class: "flex-1 overflow-y-auto p-4" };
1444
1444
  const _hoisted_4$2 = {
1445
1445
  key: 1,
1446
1446
  class: "px-4 py-3 border-t border-gray-200 dark:border-gray-700"
1447
1447
  };
1448
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1448
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
1449
1449
  __name: "Drawer",
1450
1450
  props: {
1451
1451
  modelValue: { type: Boolean },
@@ -1564,9 +1564,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1564
1564
  role: "dialog",
1565
1565
  "aria-modal": "true"
1566
1566
  }, [
1567
- __props.title || __props.showClose || _ctx.$slots.header ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
1567
+ __props.title || __props.showClose || _ctx.$slots.header ? (openBlock(), createElementBlock("div", _hoisted_1$7, [
1568
1568
  renderSlot(_ctx.$slots, "header", {}, () => [
1569
- createElementVNode("h2", _hoisted_2$4, toDisplayString(__props.title), 1)
1569
+ createElementVNode("h2", _hoisted_2$5, toDisplayString(__props.title), 1)
1570
1570
  ]),
1571
1571
  __props.showClose ? (openBlock(), createElementBlock("button", {
1572
1572
  key: 0,
@@ -1580,7 +1580,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1580
1580
  })
1581
1581
  ])) : createCommentVNode("", true)
1582
1582
  ])) : createCommentVNode("", true),
1583
- createElementVNode("div", _hoisted_3$2, [
1583
+ createElementVNode("div", _hoisted_3$3, [
1584
1584
  renderSlot(_ctx.$slots, "default")
1585
1585
  ]),
1586
1586
  _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
@@ -1594,9 +1594,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1594
1594
  };
1595
1595
  }
1596
1596
  });
1597
- const _hoisted_1$4 = { "aria-label": "Breadcrumb" };
1598
- const _hoisted_2$3 = { class: "flex items-center flex-wrap gap-1 text-sm" };
1599
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1597
+ const _hoisted_1$6 = { "aria-label": "Breadcrumb" };
1598
+ const _hoisted_2$4 = { class: "flex items-center flex-wrap gap-1 text-sm" };
1599
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
1600
1600
  __name: "Breadcrumb",
1601
1601
  props: {
1602
1602
  items: {},
@@ -1607,8 +1607,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1607
1607
  emits: ["click"],
1608
1608
  setup(__props) {
1609
1609
  return (_ctx, _cache) => {
1610
- return openBlock(), createElementBlock("nav", _hoisted_1$4, [
1611
- createElementVNode("ol", _hoisted_2$3, [
1610
+ return openBlock(), createElementBlock("nav", _hoisted_1$6, [
1611
+ createElementVNode("ol", _hoisted_2$4, [
1612
1612
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index) => {
1613
1613
  return openBlock(), createElementBlock("li", {
1614
1614
  key: index,
@@ -1650,8 +1650,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1650
1650
  };
1651
1651
  }
1652
1652
  });
1653
- const _hoisted_1$3 = { class: "divide-y divide-gray-200 dark:divide-gray-700 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden" };
1654
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1653
+ const _hoisted_1$5 = { class: "divide-y divide-gray-200 dark:divide-gray-700 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden" };
1654
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
1655
1655
  __name: "Accordion",
1656
1656
  props: {
1657
1657
  mode: { default: "single" },
@@ -1677,17 +1677,17 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1677
1677
  isOpen
1678
1678
  });
1679
1679
  return (_ctx, _cache) => {
1680
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
1680
+ return openBlock(), createElementBlock("div", _hoisted_1$5, [
1681
1681
  renderSlot(_ctx.$slots, "default")
1682
1682
  ]);
1683
1683
  };
1684
1684
  }
1685
1685
  });
1686
- const _hoisted_1$2 = ["id", "disabled", "aria-expanded", "aria-controls"];
1687
- const _hoisted_2$2 = { class: "flex items-center gap-2 font-medium" };
1688
- const _hoisted_3$1 = ["id", "aria-labelledby"];
1686
+ const _hoisted_1$4 = ["id", "disabled", "aria-expanded", "aria-controls"];
1687
+ const _hoisted_2$3 = { class: "flex items-center gap-2 font-medium" };
1688
+ const _hoisted_3$2 = ["id", "aria-labelledby"];
1689
1689
  const _hoisted_4$1 = { class: "px-4 py-3 bg-gray-50 dark:bg-gray-900 text-gray-700 dark:text-gray-300" };
1690
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1690
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
1691
1691
  __name: "AccordionItem",
1692
1692
  props: {
1693
1693
  itemKey: {},
@@ -1721,7 +1721,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1721
1721
  "aria-controls": panelId.value,
1722
1722
  onClick: toggle
1723
1723
  }, [
1724
- createElementVNode("span", _hoisted_2$2, [
1724
+ createElementVNode("span", _hoisted_2$3, [
1725
1725
  __props.icon ? (openBlock(), createBlock(unref(Icon), {
1726
1726
  key: 0,
1727
1727
  icon: __props.icon,
@@ -1735,7 +1735,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1735
1735
  class: normalizeClass(["size-5 transition-transform duration-200", { "rotate-180": isOpen.value }]),
1736
1736
  "aria-hidden": "true"
1737
1737
  }, null, 8, ["class"])
1738
- ], 10, _hoisted_1$2),
1738
+ ], 10, _hoisted_1$4),
1739
1739
  createVNode(Transition, {
1740
1740
  "enter-active-class": "transition-all duration-200 ease-out",
1741
1741
  "enter-from-class": "opacity-0 max-h-0",
@@ -1754,7 +1754,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1754
1754
  createElementVNode("div", _hoisted_4$1, [
1755
1755
  renderSlot(_ctx.$slots, "default")
1756
1756
  ])
1757
- ], 8, _hoisted_3$1), [
1757
+ ], 8, _hoisted_3$2), [
1758
1758
  [vShow, isOpen.value]
1759
1759
  ])
1760
1760
  ]),
@@ -1764,12 +1764,12 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1764
1764
  };
1765
1765
  }
1766
1766
  });
1767
- const _hoisted_1$1 = {
1767
+ const _hoisted_1$3 = {
1768
1768
  key: 0,
1769
1769
  class: "relative"
1770
1770
  };
1771
- const _hoisted_2$1 = { class: "flex items-start gap-4" };
1772
- const _hoisted_3 = { class: "flex-1 min-w-0 pt-0.5" };
1771
+ const _hoisted_2$2 = { class: "flex items-start gap-4" };
1772
+ const _hoisted_3$1 = { class: "flex-1 min-w-0 pt-0.5" };
1773
1773
  const _hoisted_4 = { class: "flex items-center justify-between gap-2" };
1774
1774
  const _hoisted_5 = { class: "text-sm font-medium text-gray-900 dark:text-white" };
1775
1775
  const _hoisted_6 = {
@@ -1791,7 +1791,7 @@ const _hoisted_12 = {
1791
1791
  key: 0,
1792
1792
  class: "text-xs text-gray-500 dark:text-gray-400"
1793
1793
  };
1794
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1794
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
1795
1795
  __name: "Timeline",
1796
1796
  props: {
1797
1797
  items: {},
@@ -1837,7 +1837,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1837
1837
  }
1838
1838
  };
1839
1839
  return (_ctx, _cache) => {
1840
- return __props.orientation === "vertical" ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
1840
+ return __props.orientation === "vertical" ? (openBlock(), createElementBlock("div", _hoisted_1$3, [
1841
1841
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index) => {
1842
1842
  return openBlock(), createElementBlock("div", {
1843
1843
  key: item.key,
@@ -1847,7 +1847,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1847
1847
  key: 0,
1848
1848
  class: normalizeClass(["absolute left-4 top-8 w-0.5 h-full -ml-px", getStatusClasses(item.status).line])
1849
1849
  }, null, 2)) : createCommentVNode("", true),
1850
- createElementVNode("div", _hoisted_2$1, [
1850
+ createElementVNode("div", _hoisted_2$2, [
1851
1851
  createElementVNode("div", {
1852
1852
  class: normalizeClass(["relative z-10 flex items-center justify-center size-8 rounded-full shrink-0", getStatusClasses(item.status).dot])
1853
1853
  }, [
@@ -1857,7 +1857,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1857
1857
  class: normalizeClass(["size-4", getStatusClasses(item.status).icon])
1858
1858
  }, null, 8, ["icon", "class"])) : createCommentVNode("", true)
1859
1859
  ], 2),
1860
- createElementVNode("div", _hoisted_3, [
1860
+ createElementVNode("div", _hoisted_3$1, [
1861
1861
  createElementVNode("div", _hoisted_4, [
1862
1862
  createElementVNode("h3", _hoisted_5, toDisplayString(item.title), 1),
1863
1863
  item.date ? (openBlock(), createElementBlock("time", _hoisted_6, toDisplayString(item.date), 1)) : createCommentVNode("", true)
@@ -1899,12 +1899,12 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
1899
1899
  };
1900
1900
  }
1901
1901
  });
1902
- const _hoisted_1 = ["aria-label"];
1903
- const _hoisted_2 = {
1902
+ const _hoisted_1$2 = ["aria-label"];
1903
+ const _hoisted_2$1 = {
1904
1904
  key: 0,
1905
1905
  class: "text-sm font-medium"
1906
1906
  };
1907
- const _sfc_main = /* @__PURE__ */ defineComponent({
1907
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
1908
1908
  __name: "DarkModeToggle",
1909
1909
  props: {
1910
1910
  size: { default: "md" },
@@ -1939,30 +1939,305 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
1939
1939
  icon: unref(isDark) ? __props.darkIcon : __props.lightIcon,
1940
1940
  class: normalizeClass(sizeClasses[__props.size].icon)
1941
1941
  }, null, 8, ["icon", "class"]),
1942
- __props.showLabel ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(unref(isDark) ? "Dark" : "Light"), 1)) : createCommentVNode("", true)
1943
- ], 10, _hoisted_1);
1942
+ __props.showLabel ? (openBlock(), createElementBlock("span", _hoisted_2$1, toDisplayString(unref(isDark) ? "Dark" : "Light"), 1)) : createCommentVNode("", true)
1943
+ ], 10, _hoisted_1$2);
1944
+ };
1945
+ }
1946
+ });
1947
+ const _hoisted_1$1 = {
1948
+ key: 0,
1949
+ class: "text-gray-400"
1950
+ };
1951
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
1952
+ __name: "StatsCard",
1953
+ props: {
1954
+ label: {},
1955
+ value: {},
1956
+ icon: {},
1957
+ change: {},
1958
+ changeLabel: {},
1959
+ variant: { default: "default" },
1960
+ color: { default: "primary" }
1961
+ },
1962
+ setup(__props) {
1963
+ return (_ctx, _cache) => {
1964
+ return openBlock(), createElementBlock("div", {
1965
+ class: normalizeClass([
1966
+ "rounded-2xl p-4 text-center transition-all",
1967
+ __props.variant === "default" && "bg-white dark:bg-slate-800 border border-gray-100 dark:border-slate-700 shadow-sm",
1968
+ __props.variant === "glass" && "bg-white/15 backdrop-blur-sm border border-white/20",
1969
+ __props.variant === "outline" && "border-2 border-gray-200 dark:border-slate-600",
1970
+ __props.variant === "solid" && __props.color === "primary" && "bg-primary-500 text-white",
1971
+ __props.variant === "solid" && __props.color === "success" && "bg-emerald-500 text-white",
1972
+ __props.variant === "solid" && __props.color === "warning" && "bg-amber-500 text-white",
1973
+ __props.variant === "solid" && __props.color === "danger" && "bg-red-500 text-white",
1974
+ __props.variant === "solid" && __props.color === "info" && "bg-blue-500 text-white"
1975
+ ])
1976
+ }, [
1977
+ __props.icon ? (openBlock(), createElementBlock("div", {
1978
+ key: 0,
1979
+ class: normalizeClass([
1980
+ "size-10 mx-auto mb-2 rounded-xl flex items-center justify-center",
1981
+ __props.variant === "glass" && "bg-white/20",
1982
+ __props.variant === "solid" && "bg-white/20",
1983
+ __props.variant === "default" && __props.color === "primary" && "bg-primary-100 dark:bg-primary-900/30",
1984
+ __props.variant === "default" && __props.color === "success" && "bg-emerald-100 dark:bg-emerald-900/30",
1985
+ __props.variant === "default" && __props.color === "warning" && "bg-amber-100 dark:bg-amber-900/30",
1986
+ __props.variant === "default" && __props.color === "danger" && "bg-red-100 dark:bg-red-900/30",
1987
+ __props.variant === "default" && __props.color === "info" && "bg-blue-100 dark:bg-blue-900/30",
1988
+ __props.variant === "outline" && "bg-gray-100 dark:bg-slate-700"
1989
+ ])
1990
+ }, [
1991
+ createVNode(unref(Icon), {
1992
+ icon: __props.icon,
1993
+ class: normalizeClass([
1994
+ "size-5",
1995
+ (__props.variant === "glass" || __props.variant === "solid") && "text-white",
1996
+ __props.variant === "default" && __props.color === "primary" && "text-primary-600 dark:text-primary-400",
1997
+ __props.variant === "default" && __props.color === "success" && "text-emerald-600 dark:text-emerald-400",
1998
+ __props.variant === "default" && __props.color === "warning" && "text-amber-600 dark:text-amber-400",
1999
+ __props.variant === "default" && __props.color === "danger" && "text-red-600 dark:text-red-400",
2000
+ __props.variant === "default" && __props.color === "info" && "text-blue-600 dark:text-blue-400",
2001
+ __props.variant === "outline" && "text-gray-600 dark:text-gray-400"
2002
+ ])
2003
+ }, null, 8, ["icon", "class"])
2004
+ ], 2)) : createCommentVNode("", true),
2005
+ createElementVNode("div", {
2006
+ class: normalizeClass([
2007
+ "text-2xl sm:text-3xl font-bold",
2008
+ (__props.variant === "glass" || __props.variant === "solid") && "text-white",
2009
+ (__props.variant === "default" || __props.variant === "outline") && "text-gray-900 dark:text-white"
2010
+ ])
2011
+ }, [
2012
+ renderSlot(_ctx.$slots, "value", {}, () => [
2013
+ createTextVNode(toDisplayString(__props.value), 1)
2014
+ ])
2015
+ ], 2),
2016
+ createElementVNode("div", {
2017
+ class: normalizeClass([
2018
+ "text-xs sm:text-sm",
2019
+ __props.variant === "glass" && "text-white/80",
2020
+ __props.variant === "solid" && "text-white/90",
2021
+ (__props.variant === "default" || __props.variant === "outline") && "text-gray-500 dark:text-gray-400"
2022
+ ])
2023
+ }, [
2024
+ renderSlot(_ctx.$slots, "label", {}, () => [
2025
+ createTextVNode(toDisplayString(__props.label), 1)
2026
+ ])
2027
+ ], 2),
2028
+ __props.change !== void 0 ? (openBlock(), createElementBlock("div", {
2029
+ key: 1,
2030
+ class: normalizeClass([
2031
+ "mt-2 text-xs font-medium inline-flex items-center gap-1",
2032
+ __props.change >= 0 ? "text-emerald-500" : "text-red-500"
2033
+ ])
2034
+ }, [
2035
+ createVNode(unref(Icon), {
2036
+ icon: __props.change >= 0 ? "heroicons:arrow-trending-up" : "heroicons:arrow-trending-down",
2037
+ class: "size-3.5"
2038
+ }, null, 8, ["icon"]),
2039
+ createElementVNode("span", null, toDisplayString(__props.change >= 0 ? "+" : "") + toDisplayString(__props.change) + "%", 1),
2040
+ __props.changeLabel ? (openBlock(), createElementBlock("span", _hoisted_1$1, toDisplayString(__props.changeLabel), 1)) : createCommentVNode("", true)
2041
+ ], 2)) : createCommentVNode("", true)
2042
+ ], 2);
2043
+ };
2044
+ }
2045
+ });
2046
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
2047
+ __name: "StatsGrid",
2048
+ props: {
2049
+ stats: {},
2050
+ cols: {},
2051
+ variant: { default: "default" },
2052
+ color: { default: "primary" }
2053
+ },
2054
+ setup(__props) {
2055
+ return (_ctx, _cache) => {
2056
+ return openBlock(), createElementBlock("div", {
2057
+ class: normalizeClass(["grid gap-3 sm:gap-4", [
2058
+ __props.cols === 2 && "grid-cols-2",
2059
+ __props.cols === 3 && "grid-cols-3",
2060
+ __props.cols === 4 && "grid-cols-2 sm:grid-cols-4",
2061
+ !__props.cols && __props.stats.length === 2 && "grid-cols-2",
2062
+ !__props.cols && __props.stats.length === 3 && "grid-cols-3",
2063
+ !__props.cols && __props.stats.length === 4 && "grid-cols-2 sm:grid-cols-4",
2064
+ !__props.cols && __props.stats.length > 4 && "grid-cols-2 sm:grid-cols-3 lg:grid-cols-4"
2065
+ ]])
2066
+ }, [
2067
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.stats, (stat, index) => {
2068
+ return openBlock(), createBlock(_sfc_main$2, {
2069
+ key: index,
2070
+ label: stat.label,
2071
+ value: stat.value,
2072
+ icon: stat.icon,
2073
+ change: stat.change,
2074
+ "change-label": stat.changeLabel,
2075
+ variant: __props.variant,
2076
+ color: __props.color
2077
+ }, null, 8, ["label", "value", "icon", "change", "change-label", "variant", "color"]);
2078
+ }), 128))
2079
+ ], 2);
2080
+ };
2081
+ }
2082
+ });
2083
+ const _hoisted_1 = ["disabled", "onClick"];
2084
+ const _hoisted_2 = ["disabled", "onClick"];
2085
+ const _hoisted_3 = ["disabled", "onClick"];
2086
+ const _sfc_main = /* @__PURE__ */ defineComponent({
2087
+ __name: "FilterTabs",
2088
+ props: /* @__PURE__ */ mergeModels({
2089
+ options: {},
2090
+ variant: { default: "pills" },
2091
+ size: { default: "md" },
2092
+ fullWidth: { type: Boolean }
2093
+ }, {
2094
+ "modelValue": { required: true },
2095
+ "modelModifiers": {}
2096
+ }),
2097
+ emits: ["update:modelValue"],
2098
+ setup(__props) {
2099
+ const modelValue = useModel(__props, "modelValue");
2100
+ return (_ctx, _cache) => {
2101
+ return __props.variant === "pills" ? (openBlock(), createElementBlock("div", {
2102
+ key: 0,
2103
+ class: normalizeClass([
2104
+ "inline-flex p-1 bg-white dark:bg-slate-800 rounded-2xl shadow-sm border border-gray-100 dark:border-slate-700 gap-1",
2105
+ __props.fullWidth && "w-full"
2106
+ ])
2107
+ }, [
2108
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
2109
+ return openBlock(), createElementBlock("button", {
2110
+ key: option.key,
2111
+ type: "button",
2112
+ disabled: option.disabled,
2113
+ class: normalizeClass([
2114
+ "flex items-center justify-center gap-2 rounded-xl font-medium transition-all",
2115
+ __props.fullWidth && "flex-1",
2116
+ __props.size === "sm" && "px-3 py-1.5 text-xs",
2117
+ __props.size === "md" && "px-4 py-2.5 text-sm",
2118
+ __props.size === "lg" && "px-5 py-3 text-base",
2119
+ modelValue.value === option.key ? "bg-primary-500 text-white shadow-md" : "text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white hover:bg-gray-50 dark:hover:bg-slate-700",
2120
+ option.disabled && "opacity-50 cursor-not-allowed"
2121
+ ]),
2122
+ onClick: ($event) => !option.disabled && (modelValue.value = option.key)
2123
+ }, [
2124
+ option.icon ? (openBlock(), createBlock(unref(Icon), {
2125
+ key: 0,
2126
+ icon: option.icon,
2127
+ class: "size-4"
2128
+ }, null, 8, ["icon"])) : createCommentVNode("", true),
2129
+ createElementVNode("span", null, toDisplayString(option.label), 1),
2130
+ option.count !== void 0 ? (openBlock(), createElementBlock("span", {
2131
+ key: 1,
2132
+ class: normalizeClass([
2133
+ "px-1.5 py-0.5 rounded-full text-xs font-medium",
2134
+ modelValue.value === option.key ? "bg-white/20 text-white" : "bg-gray-100 dark:bg-slate-700 text-gray-600 dark:text-gray-400"
2135
+ ])
2136
+ }, toDisplayString(option.count), 3)) : createCommentVNode("", true)
2137
+ ], 10, _hoisted_1);
2138
+ }), 128))
2139
+ ], 2)) : __props.variant === "underline" ? (openBlock(), createElementBlock("div", {
2140
+ key: 1,
2141
+ class: normalizeClass([
2142
+ "flex border-b border-gray-200 dark:border-slate-700",
2143
+ __props.fullWidth && "w-full"
2144
+ ])
2145
+ }, [
2146
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
2147
+ return openBlock(), createElementBlock("button", {
2148
+ key: option.key,
2149
+ type: "button",
2150
+ disabled: option.disabled,
2151
+ class: normalizeClass([
2152
+ "flex items-center justify-center gap-2 font-medium transition-all border-b-2 -mb-px",
2153
+ __props.fullWidth && "flex-1",
2154
+ __props.size === "sm" && "px-3 py-2 text-xs",
2155
+ __props.size === "md" && "px-4 py-3 text-sm",
2156
+ __props.size === "lg" && "px-5 py-4 text-base",
2157
+ modelValue.value === option.key ? "border-primary-500 text-primary-600 dark:text-primary-400" : "border-transparent text-gray-500 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 hover:border-gray-300",
2158
+ option.disabled && "opacity-50 cursor-not-allowed"
2159
+ ]),
2160
+ onClick: ($event) => !option.disabled && (modelValue.value = option.key)
2161
+ }, [
2162
+ option.icon ? (openBlock(), createBlock(unref(Icon), {
2163
+ key: 0,
2164
+ icon: option.icon,
2165
+ class: "size-4"
2166
+ }, null, 8, ["icon"])) : createCommentVNode("", true),
2167
+ createElementVNode("span", null, toDisplayString(option.label), 1),
2168
+ option.count !== void 0 ? (openBlock(), createElementBlock("span", {
2169
+ key: 1,
2170
+ class: normalizeClass([
2171
+ "px-1.5 py-0.5 rounded-full text-xs font-medium",
2172
+ modelValue.value === option.key ? "bg-primary-100 dark:bg-primary-900/30 text-primary-600 dark:text-primary-400" : "bg-gray-100 dark:bg-slate-700 text-gray-500"
2173
+ ])
2174
+ }, toDisplayString(option.count), 3)) : createCommentVNode("", true)
2175
+ ], 10, _hoisted_2);
2176
+ }), 128))
2177
+ ], 2)) : __props.variant === "boxed" ? (openBlock(), createElementBlock("div", {
2178
+ key: 2,
2179
+ class: normalizeClass([
2180
+ "inline-flex bg-gray-100 dark:bg-slate-800 rounded-xl p-1 gap-1",
2181
+ __props.fullWidth && "w-full"
2182
+ ])
2183
+ }, [
2184
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.options, (option) => {
2185
+ return openBlock(), createElementBlock("button", {
2186
+ key: option.key,
2187
+ type: "button",
2188
+ disabled: option.disabled,
2189
+ class: normalizeClass([
2190
+ "flex items-center justify-center gap-2 rounded-lg font-medium transition-all",
2191
+ __props.fullWidth && "flex-1",
2192
+ __props.size === "sm" && "px-3 py-1.5 text-xs",
2193
+ __props.size === "md" && "px-4 py-2 text-sm",
2194
+ __props.size === "lg" && "px-5 py-2.5 text-base",
2195
+ modelValue.value === option.key ? "bg-white dark:bg-slate-700 text-gray-900 dark:text-white shadow-sm" : "text-gray-600 dark:text-gray-400 hover:text-gray-900 dark:hover:text-white",
2196
+ option.disabled && "opacity-50 cursor-not-allowed"
2197
+ ]),
2198
+ onClick: ($event) => !option.disabled && (modelValue.value = option.key)
2199
+ }, [
2200
+ option.icon ? (openBlock(), createBlock(unref(Icon), {
2201
+ key: 0,
2202
+ icon: option.icon,
2203
+ class: "size-4"
2204
+ }, null, 8, ["icon"])) : createCommentVNode("", true),
2205
+ createElementVNode("span", null, toDisplayString(option.label), 1),
2206
+ option.count !== void 0 ? (openBlock(), createElementBlock("span", {
2207
+ key: 1,
2208
+ class: normalizeClass([
2209
+ "px-1.5 py-0.5 rounded-full text-xs font-medium",
2210
+ modelValue.value === option.key ? "bg-gray-100 dark:bg-slate-600 text-gray-600 dark:text-gray-300" : "bg-gray-200 dark:bg-slate-700 text-gray-500 dark:text-gray-400"
2211
+ ])
2212
+ }, toDisplayString(option.count), 3)) : createCommentVNode("", true)
2213
+ ], 10, _hoisted_3);
2214
+ }), 128))
2215
+ ], 2)) : createCommentVNode("", true);
1944
2216
  };
1945
2217
  }
1946
2218
  });
1947
2219
  export {
1948
- _sfc_main$i as _,
1949
- _sfc_main$h as a,
1950
- _sfc_main$g as b,
1951
- _sfc_main$f as c,
1952
- _sfc_main$e as d,
1953
- _sfc_main$d as e,
1954
- _sfc_main$c as f,
1955
- _sfc_main$b as g,
1956
- _sfc_main$a as h,
1957
- _sfc_main$9 as i,
1958
- _sfc_main$8 as j,
1959
- _sfc_main$7 as k,
1960
- _sfc_main$6 as l,
1961
- _sfc_main$5 as m,
1962
- _sfc_main$4 as n,
1963
- _sfc_main$3 as o,
1964
- _sfc_main$2 as p,
1965
- _sfc_main$1 as q,
1966
- _sfc_main as r
2220
+ _sfc_main$l as _,
2221
+ _sfc_main$k as a,
2222
+ _sfc_main$j as b,
2223
+ _sfc_main$i as c,
2224
+ _sfc_main$h as d,
2225
+ _sfc_main$g as e,
2226
+ _sfc_main$f as f,
2227
+ _sfc_main$e as g,
2228
+ _sfc_main$d as h,
2229
+ _sfc_main$c as i,
2230
+ _sfc_main$b as j,
2231
+ _sfc_main$a as k,
2232
+ _sfc_main$9 as l,
2233
+ _sfc_main$8 as m,
2234
+ _sfc_main$7 as n,
2235
+ _sfc_main$6 as o,
2236
+ _sfc_main$5 as p,
2237
+ _sfc_main$4 as q,
2238
+ _sfc_main$3 as r,
2239
+ _sfc_main$2 as s,
2240
+ _sfc_main$1 as t,
2241
+ _sfc_main as u
1967
2242
  };
1968
- //# sourceMappingURL=DarkModeToggle.vue_vue_type_script_setup_true_lang-0K4ucPlO.js.map
2243
+ //# sourceMappingURL=FilterTabs.vue_vue_type_script_setup_true_lang-AFYkni3y.js.map