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