cisse-vue-ui 0.5.21 → 0.5.22

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 (88) hide show
  1. package/dist/{ListSkeleton.vue_vue_type_script_setup_true_lang-D3_Oddwt.js → Button.vue_vue_type_script_setup_true_lang-DKE8elsf.js} +102 -7
  2. package/dist/Button.vue_vue_type_script_setup_true_lang-DKE8elsf.js.map +1 -0
  3. package/dist/{ListSkeleton.vue_vue_type_script_setup_true_lang-CrEu33_J.cjs → Button.vue_vue_type_script_setup_true_lang-DrGM65ny.cjs} +101 -6
  4. package/dist/Button.vue_vue_type_script_setup_true_lang-DrGM65ny.cjs.map +1 -0
  5. package/dist/{RangeSlider.vue_vue_type_script_setup_true_lang-B79_S1JL.js → Combobox.vue_vue_type_script_setup_true_lang-DhcLb6DX.js} +408 -185
  6. package/dist/Combobox.vue_vue_type_script_setup_true_lang-DhcLb6DX.js.map +1 -0
  7. package/dist/{RangeSlider.vue_vue_type_script_setup_true_lang-ClH-pyK8.cjs → Combobox.vue_vue_type_script_setup_true_lang-FdUrjmSG.cjs} +435 -212
  8. package/dist/Combobox.vue_vue_type_script_setup_true_lang-FdUrjmSG.cjs.map +1 -0
  9. package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-Q4PcIELi.js → ConfirmDialog.vue_vue_type_script_setup_true_lang-CNucAMQg.js} +234 -119
  10. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-CNucAMQg.js.map +1 -0
  11. package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-CsDMGhaT.cjs → ConfirmDialog.vue_vue_type_script_setup_true_lang-DXb9wQQv.cjs} +233 -118
  12. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-DXb9wQQv.cjs.map +1 -0
  13. package/dist/{Timeline.vue_vue_type_script_setup_true_lang-ykGksWXN.js → DarkModeToggle.vue_vue_type_script_setup_true_lang-43fxlbro.js} +109 -357
  14. package/dist/DarkModeToggle.vue_vue_type_script_setup_true_lang-43fxlbro.js.map +1 -0
  15. package/dist/{Timeline.vue_vue_type_script_setup_true_lang-C5SKEGPG.cjs → DarkModeToggle.vue_vue_type_script_setup_true_lang-BoB48313.cjs} +148 -396
  16. package/dist/DarkModeToggle.vue_vue_type_script_setup_true_lang-BoB48313.cjs.map +1 -0
  17. package/dist/components/core/DarkModeToggle.stories.d.ts +15 -0
  18. package/dist/components/core/DarkModeToggle.test.d.ts +1 -0
  19. package/dist/components/core/DarkModeToggle.vue.d.ts +21 -0
  20. package/dist/components/core/index.cjs +22 -20
  21. package/dist/components/core/index.cjs.map +1 -1
  22. package/dist/components/core/index.d.ts +2 -0
  23. package/dist/components/core/index.js +16 -14
  24. package/dist/components/core/index.js.map +1 -1
  25. package/dist/components/feedback/ConfirmDialog.stories.d.ts +12 -0
  26. package/dist/components/feedback/ConfirmDialog.test.d.ts +1 -0
  27. package/dist/components/feedback/ConfirmDialog.vue.d.ts +53 -0
  28. package/dist/components/feedback/Modal.vue.d.ts +11 -2
  29. package/dist/components/feedback/Progress.vue.d.ts +1 -1
  30. package/dist/components/feedback/index.cjs +17 -16
  31. package/dist/components/feedback/index.cjs.map +1 -1
  32. package/dist/components/feedback/index.d.ts +2 -0
  33. package/dist/components/feedback/index.js +6 -5
  34. package/dist/components/form/ColorPicker.vue.d.ts +3 -0
  35. package/dist/components/form/Combobox.stories.d.ts +15 -0
  36. package/dist/components/form/Combobox.test.d.ts +1 -0
  37. package/dist/components/form/Combobox.vue.d.ts +46 -0
  38. package/dist/components/form/index.cjs +17 -16
  39. package/dist/components/form/index.cjs.map +1 -1
  40. package/dist/components/form/index.d.ts +2 -0
  41. package/dist/components/form/index.js +3 -2
  42. package/dist/components/index.cjs +55 -52
  43. package/dist/components/index.cjs.map +1 -1
  44. package/dist/components/index.js +33 -30
  45. package/dist/composables/index.cjs +3 -2
  46. package/dist/composables/index.cjs.map +1 -1
  47. package/dist/composables/index.js +9 -8
  48. package/dist/composables/index.js.map +1 -1
  49. package/dist/index-D7HVSFi2.cjs +337 -0
  50. package/dist/index-D7HVSFi2.cjs.map +1 -0
  51. package/dist/index-DZYqrXV0.js +75 -0
  52. package/dist/index-DZYqrXV0.js.map +1 -0
  53. package/dist/index-Dghdw1yo.js +338 -0
  54. package/dist/index-Dghdw1yo.js.map +1 -0
  55. package/dist/index-DjEv91o4.cjs +74 -0
  56. package/dist/index-DjEv91o4.cjs.map +1 -0
  57. package/dist/index.cjs +59 -55
  58. package/dist/index.cjs.map +1 -1
  59. package/dist/index.js +43 -39
  60. package/dist/index.js.map +1 -1
  61. package/dist/style.css +1 -1
  62. package/dist/useDarkMode-Cl5QWTlC.js +53 -0
  63. package/dist/useDarkMode-Cl5QWTlC.js.map +1 -0
  64. package/dist/useDarkMode-DLZcJEUQ.cjs +52 -0
  65. package/dist/useDarkMode-DLZcJEUQ.cjs.map +1 -0
  66. package/dist/{useToast-CRh_sG82.cjs → useToast-Bk60GArg.cjs} +1 -50
  67. package/dist/useToast-Bk60GArg.cjs.map +1 -0
  68. package/dist/{useToast-DwFOkewC.js → useToast-ina5g3mj.js} +6 -55
  69. package/dist/useToast-ina5g3mj.js.map +1 -0
  70. package/package.json +1 -1
  71. package/dist/Checkbox.vue_vue_type_script_setup_true_lang-B-nLCCNY.js +0 -54
  72. package/dist/Checkbox.vue_vue_type_script_setup_true_lang-B-nLCCNY.js.map +0 -1
  73. package/dist/Checkbox.vue_vue_type_script_setup_true_lang-DIoHDji4.cjs +0 -53
  74. package/dist/Checkbox.vue_vue_type_script_setup_true_lang-DIoHDji4.cjs.map +0 -1
  75. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-CrEu33_J.cjs.map +0 -1
  76. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-D3_Oddwt.js.map +0 -1
  77. package/dist/RangeSlider.vue_vue_type_script_setup_true_lang-B79_S1JL.js.map +0 -1
  78. package/dist/RangeSlider.vue_vue_type_script_setup_true_lang-ClH-pyK8.cjs.map +0 -1
  79. package/dist/Skeleton.vue_vue_type_script_setup_true_lang-CsDMGhaT.cjs.map +0 -1
  80. package/dist/Skeleton.vue_vue_type_script_setup_true_lang-Q4PcIELi.js.map +0 -1
  81. package/dist/Timeline.vue_vue_type_script_setup_true_lang-C5SKEGPG.cjs.map +0 -1
  82. package/dist/Timeline.vue_vue_type_script_setup_true_lang-ykGksWXN.js.map +0 -1
  83. package/dist/index-C3NAM2ds.js +0 -72
  84. package/dist/index-C3NAM2ds.js.map +0 -1
  85. package/dist/index-Ti1RIOEG.cjs +0 -71
  86. package/dist/index-Ti1RIOEG.cjs.map +0 -1
  87. package/dist/useToast-CRh_sG82.cjs.map +0 -1
  88. package/dist/useToast-DwFOkewC.js.map +0 -1
@@ -1,13 +1,14 @@
1
- import { defineComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, toDisplayString, onMounted, onUnmounted, withModifiers, renderSlot, createTextVNode, createVNode, unref, Fragment, renderList, computed, createBlock, Teleport, normalizeStyle, TransitionGroup, withCtx } from "vue";
1
+ import { defineComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, toDisplayString, computed, onMounted, onUnmounted, createBlock, Teleport, withModifiers, unref, renderSlot, createTextVNode, createVNode, Fragment, renderList, normalizeStyle, TransitionGroup, withCtx } from "vue";
2
2
  import { Icon } from "@iconify/vue";
3
3
  import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
4
- const _hoisted_1$9 = { class: "flex items-center justify-center py-12" };
5
- const _hoisted_2$7 = { class: "text-center" };
6
- const _hoisted_3$7 = {
4
+ import { _ as _sfc_main$c } from "./Button.vue_vue_type_script_setup_true_lang-DKE8elsf.js";
5
+ const _hoisted_1$a = { class: "flex items-center justify-center py-12" };
6
+ const _hoisted_2$8 = { class: "text-center" };
7
+ const _hoisted_3$8 = {
7
8
  key: 0,
8
9
  class: "mt-4 text-gray-600 dark:text-gray-400"
9
10
  };
10
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
11
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
11
12
  __name: "LoadingSpinner",
12
13
  props: {
13
14
  text: {},
@@ -20,39 +21,50 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
20
21
  lg: "h-16 w-16"
21
22
  };
22
23
  return (_ctx, _cache) => {
23
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
24
- createElementVNode("div", _hoisted_2$7, [
24
+ return openBlock(), createElementBlock("div", _hoisted_1$a, [
25
+ createElementVNode("div", _hoisted_2$8, [
25
26
  createElementVNode("div", {
26
27
  class: normalizeClass([sizeClasses[__props.size], "border-primary inline-block animate-spin rounded-full border-4 border-solid border-r-transparent"])
27
28
  }, null, 2),
28
- __props.text ? (openBlock(), createElementBlock("p", _hoisted_3$7, toDisplayString(__props.text), 1)) : createCommentVNode("", true)
29
+ __props.text ? (openBlock(), createElementBlock("p", _hoisted_3$8, toDisplayString(__props.text), 1)) : createCommentVNode("", true)
29
30
  ])
30
31
  ]);
31
32
  };
32
33
  }
33
34
  });
34
- const _hoisted_1$8 = {
35
+ const _hoisted_1$9 = {
35
36
  key: 0,
36
37
  class: "flex items-center justify-between border-b border-gray-200 px-6 py-4 dark:border-gray-700"
37
38
  };
38
- const _hoisted_2$6 = { class: "text-xl font-semibold text-gray-900 dark:text-gray-100" };
39
- const _hoisted_3$6 = { class: "sr-only" };
40
- const _hoisted_4$4 = { class: "flex-1 overflow-y-auto px-6 py-4" };
41
- const _hoisted_5$1 = {
39
+ const _hoisted_2$7 = { class: "text-xl font-semibold text-gray-900 dark:text-gray-100" };
40
+ const _hoisted_3$7 = { class: "sr-only" };
41
+ const _hoisted_4$5 = { class: "flex-1 overflow-y-auto px-6 py-4" };
42
+ const _hoisted_5$2 = {
42
43
  key: 1,
43
44
  class: "flex items-center justify-end gap-3 border-t border-gray-200 px-6 py-4 dark:border-gray-700"
44
45
  };
45
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
46
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
46
47
  __name: "Modal",
47
48
  props: {
48
49
  title: { default: "" },
49
50
  size: { default: "default" },
50
51
  closeOnBackdrop: { type: Boolean, default: true },
51
52
  closeOnEscape: { type: Boolean, default: true },
52
- closeButtonLabel: { default: "Close" }
53
+ closeButtonLabel: { default: "Close" },
54
+ teleport: { type: [String, Boolean], default: "body" }
53
55
  },
54
56
  emits: ["close"],
55
57
  setup(__props, { emit: __emit }) {
58
+ const props = __props;
59
+ const {
60
+ title,
61
+ size,
62
+ closeOnBackdrop,
63
+ closeOnEscape,
64
+ closeButtonLabel
65
+ } = props;
66
+ const teleportDisabled = computed(() => props.teleport === false);
67
+ const teleportTarget = computed(() => props.teleport === false ? "body" : props.teleport);
56
68
  const emit = __emit;
57
69
  const sizeClasses = {
58
70
  sm: "max-w-md",
@@ -62,12 +74,12 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
62
74
  full: "max-w-full mx-4"
63
75
  };
64
76
  const handleBackdropClick = () => {
65
- if (__props.closeOnBackdrop) {
77
+ if (closeOnBackdrop) {
66
78
  emit("close");
67
79
  }
68
80
  };
69
81
  const handleEscape = (e) => {
70
- if (e.key === "Escape" && __props.closeOnEscape) {
82
+ if (e.key === "Escape" && closeOnEscape) {
71
83
  emit("close");
72
84
  }
73
85
  };
@@ -80,55 +92,60 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
80
92
  document.body.style.overflow = "";
81
93
  });
82
94
  return (_ctx, _cache) => {
83
- return openBlock(), createElementBlock("div", {
84
- class: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
85
- onClick: withModifiers(handleBackdropClick, ["self"])
95
+ return openBlock(), createBlock(Teleport, {
96
+ to: teleportTarget.value,
97
+ disabled: teleportDisabled.value
86
98
  }, [
87
99
  createElementVNode("div", {
88
- class: normalizeClass([sizeClasses[__props.size], "flex max-h-[90vh] w-full flex-col rounded-lg bg-white shadow-xl dark:bg-gray-900"])
100
+ class: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
101
+ onClick: withModifiers(handleBackdropClick, ["self"])
89
102
  }, [
90
- __props.title || _ctx.$slots.header || _ctx.$slots.title ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
91
- createElementVNode("h3", _hoisted_2$6, [
92
- renderSlot(_ctx.$slots, "header", {}, () => [
93
- renderSlot(_ctx.$slots, "title", {}, () => [
94
- createTextVNode(toDisplayString(__props.title), 1)
103
+ createElementVNode("div", {
104
+ class: normalizeClass([sizeClasses[unref(size)], "flex max-h-[90vh] w-full flex-col rounded-lg bg-white shadow-xl dark:bg-gray-900"])
105
+ }, [
106
+ unref(title) || _ctx.$slots.header || _ctx.$slots.title ? (openBlock(), createElementBlock("div", _hoisted_1$9, [
107
+ createElementVNode("h3", _hoisted_2$7, [
108
+ renderSlot(_ctx.$slots, "header", {}, () => [
109
+ renderSlot(_ctx.$slots, "title", {}, () => [
110
+ createTextVNode(toDisplayString(unref(title)), 1)
111
+ ])
95
112
  ])
113
+ ]),
114
+ createElementVNode("button", {
115
+ class: "rounded-lg p-1.5 text-gray-400 hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-gray-800 dark:hover:text-gray-100",
116
+ type: "button",
117
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
118
+ }, [
119
+ createVNode(unref(Icon), {
120
+ class: "h-5 w-5",
121
+ icon: "lucide:x"
122
+ }),
123
+ createElementVNode("span", _hoisted_3$7, toDisplayString(unref(closeButtonLabel)), 1)
96
124
  ])
125
+ ])) : createCommentVNode("", true),
126
+ createElementVNode("div", _hoisted_4$5, [
127
+ renderSlot(_ctx.$slots, "default")
97
128
  ]),
98
- createElementVNode("button", {
99
- class: "rounded-lg p-1.5 text-gray-400 hover:bg-gray-100 hover:text-gray-900 dark:hover:bg-gray-800 dark:hover:text-gray-100",
100
- type: "button",
101
- onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
102
- }, [
103
- createVNode(unref(Icon), {
104
- class: "h-5 w-5",
105
- icon: "lucide:x"
106
- }),
107
- createElementVNode("span", _hoisted_3$6, toDisplayString(__props.closeButtonLabel), 1)
108
- ])
109
- ])) : createCommentVNode("", true),
110
- createElementVNode("div", _hoisted_4$4, [
111
- renderSlot(_ctx.$slots, "default")
112
- ]),
113
- _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_5$1, [
114
- renderSlot(_ctx.$slots, "footer")
115
- ])) : createCommentVNode("", true)
116
- ], 2)
117
- ]);
129
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_5$2, [
130
+ renderSlot(_ctx.$slots, "footer")
131
+ ])) : createCommentVNode("", true)
132
+ ], 2)
133
+ ])
134
+ ], 8, ["to", "disabled"]);
118
135
  };
119
136
  }
120
137
  });
121
- const _hoisted_1$7 = {
138
+ const _hoisted_1$8 = {
122
139
  key: 0,
123
140
  class: "flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3 border-t border-gray-200 px-4 sm:px-6 py-4 dark:border-gray-700"
124
141
  };
125
- const _hoisted_2$5 = { class: "flex flex-col sm:flex-row sm:items-center gap-3 sm:gap-4" };
126
- const _hoisted_3$5 = { class: "text-sm text-gray-700 dark:text-gray-300 text-center sm:text-left" };
127
- const _hoisted_4$3 = {
142
+ const _hoisted_2$6 = { class: "flex flex-col sm:flex-row sm:items-center gap-3 sm:gap-4" };
143
+ const _hoisted_3$6 = { class: "text-sm text-gray-700 dark:text-gray-300 text-center sm:text-left" };
144
+ const _hoisted_4$4 = {
128
145
  key: 0,
129
146
  class: "flex items-center justify-center sm:justify-start gap-2"
130
147
  };
131
- const _hoisted_5 = {
148
+ const _hoisted_5$1 = {
132
149
  class: "text-sm text-gray-600 dark:text-gray-400 hidden sm:inline",
133
150
  for: "page-size"
134
151
  };
@@ -139,7 +156,7 @@ const _hoisted_9 = ["disabled"];
139
156
  const _hoisted_10 = { class: "hidden sm:inline" };
140
157
  const _hoisted_11 = ["disabled"];
141
158
  const _hoisted_12 = { class: "hidden sm:inline" };
142
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
159
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
143
160
  __name: "PaginationControls",
144
161
  props: {
145
162
  currentPage: {},
@@ -167,11 +184,11 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
167
184
  emit("update:pageSize", Number(target.value));
168
185
  };
169
186
  return (_ctx, _cache) => {
170
- return __props.totalPages > 1 ? (openBlock(), createElementBlock("div", _hoisted_1$7, [
171
- createElementVNode("div", _hoisted_2$5, [
172
- createElementVNode("div", _hoisted_3$5, toDisplayString(__props.pageLabel) + " " + toDisplayString(__props.currentPage) + " " + toDisplayString(__props.ofLabel) + " " + toDisplayString(__props.totalPages), 1),
173
- __props.showPageSize ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
174
- createElementVNode("label", _hoisted_5, toDisplayString(__props.itemsPerPageLabel), 1),
187
+ return __props.totalPages > 1 ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
188
+ createElementVNode("div", _hoisted_2$6, [
189
+ createElementVNode("div", _hoisted_3$6, toDisplayString(__props.pageLabel) + " " + toDisplayString(__props.currentPage) + " " + toDisplayString(__props.ofLabel) + " " + toDisplayString(__props.totalPages), 1),
190
+ __props.showPageSize ? (openBlock(), createElementBlock("div", _hoisted_4$4, [
191
+ createElementVNode("label", _hoisted_5$1, toDisplayString(__props.itemsPerPageLabel), 1),
175
192
  createElementVNode("select", {
176
193
  id: "page-size",
177
194
  value: __props.pageSize,
@@ -215,17 +232,17 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
215
232
  };
216
233
  }
217
234
  });
218
- const _hoisted_1$6 = { class: "flex max-w-md items-start space-x-3 rounded-lg border border-gray-200 bg-white p-4 shadow-lg dark:border-gray-800 dark:bg-black" };
219
- const _hoisted_2$4 = { class: "flex min-w-0 flex-1 flex-col" };
220
- const _hoisted_3$4 = {
235
+ const _hoisted_1$7 = { class: "flex max-w-md items-start space-x-3 rounded-lg border border-gray-200 bg-white p-4 shadow-lg dark:border-gray-800 dark:bg-black" };
236
+ const _hoisted_2$5 = { class: "flex min-w-0 flex-1 flex-col" };
237
+ const _hoisted_3$5 = {
221
238
  key: 0,
222
239
  class: "text-sm font-semibold text-gray-900 dark:text-gray-100"
223
240
  };
224
- const _hoisted_4$2 = {
241
+ const _hoisted_4$3 = {
225
242
  key: 1,
226
243
  class: "mt-1 text-sm text-gray-600 dark:text-gray-400"
227
244
  };
228
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
245
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
229
246
  __name: "NotificationComponent",
230
247
  props: {
231
248
  notification: {},
@@ -292,7 +309,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
292
309
  }
293
310
  });
294
311
  return (_ctx, _cache) => {
295
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
312
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
296
313
  createElementVNode("div", {
297
314
  class: normalizeClass([bgColor.value, "flex items-center justify-center rounded-full p-2"])
298
315
  }, [
@@ -301,9 +318,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
301
318
  icon: iconName.value
302
319
  }, null, 8, ["class", "icon"])
303
320
  ], 2),
304
- createElementVNode("div", _hoisted_2$4, [
305
- __props.notification.title ? (openBlock(), createElementBlock("h4", _hoisted_3$4, toDisplayString(__props.notification.title), 1)) : createCommentVNode("", true),
306
- __props.notification.message ? (openBlock(), createElementBlock("p", _hoisted_4$2, toDisplayString(__props.notification.message), 1)) : createCommentVNode("", true)
321
+ createElementVNode("div", _hoisted_2$5, [
322
+ __props.notification.title ? (openBlock(), createElementBlock("h4", _hoisted_3$5, toDisplayString(__props.notification.title), 1)) : createCommentVNode("", true),
323
+ __props.notification.message ? (openBlock(), createElementBlock("p", _hoisted_4$3, toDisplayString(__props.notification.message), 1)) : createCommentVNode("", true)
307
324
  ]),
308
325
  createElementVNode("button", {
309
326
  class: "shrink-0 text-gray-400 transition-colors hover:text-gray-600 dark:text-gray-600 dark:hover:text-gray-400",
@@ -318,8 +335,8 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
318
335
  };
319
336
  }
320
337
  });
321
- const _hoisted_1$5 = { class: "fixed top-5 right-5 z-50 flex flex-col gap-3" };
322
- const _sfc_main$6 = /* @__PURE__ */ defineComponent({
338
+ const _hoisted_1$6 = { class: "fixed top-5 right-5 z-50 flex flex-col gap-3" };
339
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
323
340
  __name: "NotificationList",
324
341
  props: {
325
342
  notifications: {},
@@ -330,9 +347,9 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
330
347
  setup(__props, { emit: __emit }) {
331
348
  const emit = __emit;
332
349
  return (_ctx, _cache) => {
333
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
350
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
334
351
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.notifications, (notification) => {
335
- return openBlock(), createBlock(_sfc_main$7, {
352
+ return openBlock(), createBlock(_sfc_main$8, {
336
353
  key: notification.id,
337
354
  notification,
338
355
  "auto-dismiss": __props.autoDismiss,
@@ -344,13 +361,13 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
344
361
  };
345
362
  }
346
363
  });
347
- const _hoisted_1$4 = { class: "flex-1" };
348
- const _hoisted_2$3 = {
364
+ const _hoisted_1$5 = { class: "flex-1" };
365
+ const _hoisted_2$4 = {
349
366
  key: 0,
350
367
  class: "mb-1 font-medium text-gray-900 dark:text-white"
351
368
  };
352
- const _hoisted_3$3 = { class: "text-sm text-gray-700 dark:text-gray-300" };
353
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
369
+ const _hoisted_3$4 = { class: "text-sm text-gray-700 dark:text-gray-300" };
370
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
354
371
  __name: "Alert",
355
372
  props: {
356
373
  variant: { default: "info" },
@@ -402,9 +419,9 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
402
419
  icon: __props.icon || unref(styles).icon,
403
420
  class: normalizeClass(["size-5 shrink-0", unref(styles).iconColor])
404
421
  }, null, 8, ["icon", "class"]),
405
- createElementVNode("div", _hoisted_1$4, [
406
- __props.title ? (openBlock(), createElementBlock("h4", _hoisted_2$3, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
407
- createElementVNode("div", _hoisted_3$3, [
422
+ createElementVNode("div", _hoisted_1$5, [
423
+ __props.title ? (openBlock(), createElementBlock("h4", _hoisted_2$4, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
424
+ createElementVNode("div", _hoisted_3$4, [
408
425
  renderSlot(_ctx.$slots, "default")
409
426
  ])
410
427
  ]),
@@ -423,17 +440,17 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
423
440
  };
424
441
  }
425
442
  });
426
- const _hoisted_1$3 = { class: "py-12 text-center" };
427
- const _hoisted_2$2 = {
443
+ const _hoisted_1$4 = { class: "py-12 text-center" };
444
+ const _hoisted_2$3 = {
428
445
  key: 1,
429
446
  class: "mb-2 text-lg font-medium text-gray-900 dark:text-white"
430
447
  };
431
- const _hoisted_3$2 = { class: "text-gray-500 dark:text-gray-400" };
432
- const _hoisted_4$1 = {
448
+ const _hoisted_3$3 = { class: "text-gray-500 dark:text-gray-400" };
449
+ const _hoisted_4$2 = {
433
450
  key: 2,
434
451
  class: "mt-4"
435
452
  };
436
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
453
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
437
454
  __name: "EmptyState",
438
455
  props: {
439
456
  message: { default: "No results found" },
@@ -442,32 +459,32 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
442
459
  },
443
460
  setup(__props) {
444
461
  return (_ctx, _cache) => {
445
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
462
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
446
463
  __props.icon ? (openBlock(), createBlock(unref(Icon), {
447
464
  key: 0,
448
465
  icon: __props.icon,
449
466
  class: "mx-auto mb-4 size-12 text-gray-400 dark:text-gray-500"
450
467
  }, null, 8, ["icon"])) : createCommentVNode("", true),
451
- __props.title ? (openBlock(), createElementBlock("h3", _hoisted_2$2, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
452
- createElementVNode("p", _hoisted_3$2, [
468
+ __props.title ? (openBlock(), createElementBlock("h3", _hoisted_2$3, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
469
+ createElementVNode("p", _hoisted_3$3, [
453
470
  renderSlot(_ctx.$slots, "default", {}, () => [
454
471
  createTextVNode(toDisplayString(__props.message), 1)
455
472
  ])
456
473
  ]),
457
- _ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
474
+ _ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
458
475
  renderSlot(_ctx.$slots, "action")
459
476
  ])) : createCommentVNode("", true)
460
477
  ]);
461
478
  };
462
479
  }
463
480
  });
464
- const _hoisted_1$2 = { class: "flex-1 min-w-0" };
465
- const _hoisted_2$1 = {
481
+ const _hoisted_1$3 = { class: "flex-1 min-w-0" };
482
+ const _hoisted_2$2 = {
466
483
  key: 0,
467
484
  class: "font-medium text-gray-900 dark:text-white"
468
485
  };
469
- const _hoisted_3$1 = { class: "text-sm text-gray-700 dark:text-gray-300" };
470
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
486
+ const _hoisted_3$2 = { class: "text-sm text-gray-700 dark:text-gray-300" };
487
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
471
488
  __name: "Toast",
472
489
  props: {
473
490
  message: {},
@@ -520,9 +537,9 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
520
537
  icon: unref(config).icon,
521
538
  class: normalizeClass(["size-5 shrink-0", unref(config).iconColor])
522
539
  }, null, 8, ["icon", "class"]),
523
- createElementVNode("div", _hoisted_1$2, [
524
- __props.title ? (openBlock(), createElementBlock("p", _hoisted_2$1, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
525
- createElementVNode("p", _hoisted_3$1, toDisplayString(__props.message), 1)
540
+ createElementVNode("div", _hoisted_1$3, [
541
+ __props.title ? (openBlock(), createElementBlock("p", _hoisted_2$2, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
542
+ createElementVNode("p", _hoisted_3$2, toDisplayString(__props.message), 1)
526
543
  ]),
527
544
  __props.closable ? (openBlock(), createElementBlock("button", {
528
545
  key: 0,
@@ -539,7 +556,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
539
556
  };
540
557
  }
541
558
  });
542
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
559
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
543
560
  __name: "ToastContainer",
544
561
  props: {
545
562
  toasts: {},
@@ -582,7 +599,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
582
599
  }, {
583
600
  default: withCtx(() => [
584
601
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.toasts, (toast) => {
585
- return openBlock(), createBlock(_sfc_main$3, {
602
+ return openBlock(), createBlock(_sfc_main$4, {
586
603
  key: toast.id,
587
604
  message: toast.message,
588
605
  type: toast.type,
@@ -599,14 +616,14 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
599
616
  };
600
617
  }
601
618
  });
602
- const _hoisted_1$1 = { class: "w-full" };
603
- const _hoisted_2 = {
619
+ const _hoisted_1$2 = { class: "w-full" };
620
+ const _hoisted_2$1 = {
604
621
  key: 0,
605
622
  class: "mb-1 flex justify-between text-sm"
606
623
  };
607
- const _hoisted_3 = { class: "font-medium text-gray-900 dark:text-white" };
608
- const _hoisted_4 = ["aria-valuenow", "aria-valuemax"];
609
- const _sfc_main$1 = /* @__PURE__ */ defineComponent({
624
+ const _hoisted_3$1 = { class: "font-medium text-gray-900 dark:text-white" };
625
+ const _hoisted_4$1 = ["aria-valuenow", "aria-valuemax"];
626
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
610
627
  __name: "Progress",
611
628
  props: {
612
629
  value: {},
@@ -636,10 +653,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
636
653
  error: "bg-red-500"
637
654
  };
638
655
  return (_ctx, _cache) => {
639
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
640
- __props.showLabel && !__props.indeterminate ? (openBlock(), createElementBlock("div", _hoisted_2, [
656
+ return openBlock(), createElementBlock("div", _hoisted_1$2, [
657
+ __props.showLabel && !__props.indeterminate ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
641
658
  _cache[0] || (_cache[0] = createElementVNode("span", { class: "text-gray-600 dark:text-gray-400" }, "Progress", -1)),
642
- createElementVNode("span", _hoisted_3, toDisplayString(Math.round(percentage.value)) + "%", 1)
659
+ createElementVNode("span", _hoisted_3$1, toDisplayString(Math.round(percentage.value)) + "%", 1)
643
660
  ])) : createCommentVNode("", true),
644
661
  createElementVNode("div", {
645
662
  class: normalizeClass([
@@ -661,17 +678,17 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
661
678
  ]),
662
679
  style: normalizeStyle({ width: __props.indeterminate ? "30%" : `${percentage.value}%` })
663
680
  }, null, 6)
664
- ], 10, _hoisted_4)
681
+ ], 10, _hoisted_4$1)
665
682
  ]);
666
683
  };
667
684
  }
668
685
  });
669
- const Progress = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-546a3ae5"]]);
670
- const _hoisted_1 = {
686
+ const Progress = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-546a3ae5"]]);
687
+ const _hoisted_1$1 = {
671
688
  key: 0,
672
689
  class: "space-y-2"
673
690
  };
674
- const _sfc_main = /* @__PURE__ */ defineComponent({
691
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
675
692
  __name: "Skeleton",
676
693
  props: {
677
694
  variant: { default: "text" },
@@ -688,7 +705,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
688
705
  rounded: "rounded-lg"
689
706
  };
690
707
  return (_ctx, _cache) => {
691
- return __props.variant === "text" && __props.lines > 1 ? (openBlock(), createElementBlock("div", _hoisted_1, [
708
+ return __props.variant === "text" && __props.lines > 1 ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
692
709
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.lines, (i) => {
693
710
  return openBlock(), createElementBlock("div", {
694
711
  key: i,
@@ -718,17 +735,115 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
718
735
  };
719
736
  }
720
737
  });
738
+ const _hoisted_1 = { class: "text-center" };
739
+ const _hoisted_2 = { class: "mx-auto mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-gray-100 dark:bg-gray-800" };
740
+ const _hoisted_3 = { class: "mb-2 text-lg font-semibold text-gray-900 dark:text-gray-100" };
741
+ const _hoisted_4 = { class: "mb-6 text-gray-600 dark:text-gray-400" };
742
+ const _hoisted_5 = { class: "flex justify-center gap-3" };
743
+ const _sfc_main = /* @__PURE__ */ defineComponent({
744
+ __name: "ConfirmDialog",
745
+ props: {
746
+ open: { type: Boolean, default: false },
747
+ title: { default: "Confirm" },
748
+ message: { default: "Are you sure you want to proceed?" },
749
+ confirmText: { default: "Confirm" },
750
+ cancelText: { default: "Cancel" },
751
+ variant: { default: "info" },
752
+ loading: { type: Boolean, default: false },
753
+ icon: {},
754
+ teleport: { type: [String, Boolean], default: "body" }
755
+ },
756
+ emits: ["confirm", "cancel"],
757
+ setup(__props, { emit: __emit }) {
758
+ const props = __props;
759
+ const emit = __emit;
760
+ const variantConfig = {
761
+ info: {
762
+ icon: "lucide:info",
763
+ iconClass: "text-blue-500",
764
+ buttonVariant: "primary"
765
+ },
766
+ warning: {
767
+ icon: "lucide:alert-triangle",
768
+ iconClass: "text-yellow-500",
769
+ buttonVariant: "primary"
770
+ },
771
+ danger: {
772
+ icon: "lucide:alert-circle",
773
+ iconClass: "text-red-500",
774
+ buttonVariant: "danger"
775
+ },
776
+ success: {
777
+ icon: "lucide:check-circle",
778
+ iconClass: "text-green-500",
779
+ buttonVariant: "success"
780
+ }
781
+ };
782
+ const config = variantConfig[props.variant];
783
+ return (_ctx, _cache) => {
784
+ return __props.open ? (openBlock(), createBlock(_sfc_main$a, {
785
+ key: 0,
786
+ size: "sm",
787
+ "close-on-backdrop": !__props.loading,
788
+ "close-on-escape": !__props.loading,
789
+ teleport: __props.teleport,
790
+ onClose: _cache[2] || (_cache[2] = ($event) => emit("cancel"))
791
+ }, {
792
+ default: withCtx(() => [
793
+ createElementVNode("div", _hoisted_1, [
794
+ createElementVNode("div", _hoisted_2, [
795
+ createVNode(unref(Icon), {
796
+ icon: __props.icon || unref(config).icon,
797
+ class: normalizeClass([unref(config).iconClass, "h-8 w-8"])
798
+ }, null, 8, ["icon", "class"])
799
+ ]),
800
+ createElementVNode("h3", _hoisted_3, toDisplayString(__props.title), 1),
801
+ createElementVNode("p", _hoisted_4, [
802
+ renderSlot(_ctx.$slots, "default", {}, () => [
803
+ createTextVNode(toDisplayString(__props.message), 1)
804
+ ])
805
+ ]),
806
+ createElementVNode("div", _hoisted_5, [
807
+ createVNode(_sfc_main$c, {
808
+ variant: "outline",
809
+ disabled: __props.loading,
810
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("cancel"))
811
+ }, {
812
+ default: withCtx(() => [
813
+ createTextVNode(toDisplayString(__props.cancelText), 1)
814
+ ]),
815
+ _: 1
816
+ }, 8, ["disabled"]),
817
+ createVNode(_sfc_main$c, {
818
+ variant: unref(config).buttonVariant,
819
+ loading: __props.loading,
820
+ onClick: _cache[1] || (_cache[1] = ($event) => emit("confirm"))
821
+ }, {
822
+ default: withCtx(() => [
823
+ createTextVNode(toDisplayString(__props.confirmText), 1)
824
+ ]),
825
+ _: 1
826
+ }, 8, ["variant", "loading"])
827
+ ])
828
+ ])
829
+ ]),
830
+ _: 3
831
+ }, 8, ["close-on-backdrop", "close-on-escape", "teleport"])) : createCommentVNode("", true);
832
+ };
833
+ }
834
+ });
721
835
  export {
722
836
  Progress as P,
723
- _sfc_main$a as _,
724
- _sfc_main$9 as a,
725
- _sfc_main$8 as b,
726
- _sfc_main$7 as c,
727
- _sfc_main$6 as d,
728
- _sfc_main$5 as e,
729
- _sfc_main$4 as f,
730
- _sfc_main$3 as g,
731
- _sfc_main$2 as h,
732
- _sfc_main as i
837
+ _sfc_main$b as _,
838
+ _sfc_main$a as a,
839
+ _sfc_main$9 as b,
840
+ _sfc_main$8 as c,
841
+ _sfc_main$7 as d,
842
+ _sfc_main$6 as e,
843
+ _sfc_main$5 as f,
844
+ _sfc_main$4 as g,
845
+ _sfc_main$3 as h,
846
+ _sfc_main$1 as i,
847
+ _sfc_main as j
733
848
  };
734
- //# sourceMappingURL=Skeleton.vue_vue_type_script_setup_true_lang-Q4PcIELi.js.map
849
+ //# sourceMappingURL=ConfirmDialog.vue_vue_type_script_setup_true_lang-CNucAMQg.js.map