cisse-vue-ui 0.5.21 → 0.5.23

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 (137) hide show
  1. package/dist/{ListSkeleton.vue_vue_type_script_setup_true_lang-D3_Oddwt.js → Button.vue_vue_type_script_setup_true_lang-CD9QPOeU.js} +114 -10
  2. package/dist/Button.vue_vue_type_script_setup_true_lang-CD9QPOeU.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-Cev21KGJ.cjs} +113 -9
  4. package/dist/Button.vue_vue_type_script_setup_true_lang-Cev21KGJ.cjs.map +1 -0
  5. package/dist/{RangeSlider.vue_vue_type_script_setup_true_lang-ClH-pyK8.cjs → Combobox.vue_vue_type_script_setup_true_lang-D9TIId4E.cjs} +621 -266
  6. package/dist/Combobox.vue_vue_type_script_setup_true_lang-D9TIId4E.cjs.map +1 -0
  7. package/dist/{RangeSlider.vue_vue_type_script_setup_true_lang-B79_S1JL.js → Combobox.vue_vue_type_script_setup_true_lang-DCLKWzhc.js} +595 -240
  8. package/dist/Combobox.vue_vue_type_script_setup_true_lang-DCLKWzhc.js.map +1 -0
  9. package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-CsDMGhaT.cjs → ConfirmDialog.vue_vue_type_script_setup_true_lang-CwHYxBhR.cjs} +290 -128
  10. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-CwHYxBhR.cjs.map +1 -0
  11. package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-Q4PcIELi.js → ConfirmDialog.vue_vue_type_script_setup_true_lang-Dm4kLAnr.js} +291 -129
  12. package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-Dm4kLAnr.js.map +1 -0
  13. package/dist/{Timeline.vue_vue_type_script_setup_true_lang-C5SKEGPG.cjs → DarkModeToggle.vue_vue_type_script_setup_true_lang-CSxGvdSP.cjs} +192 -408
  14. package/dist/DarkModeToggle.vue_vue_type_script_setup_true_lang-CSxGvdSP.cjs.map +1 -0
  15. package/dist/{Timeline.vue_vue_type_script_setup_true_lang-ykGksWXN.js → DarkModeToggle.vue_vue_type_script_setup_true_lang-D1Q43mhJ.js} +153 -369
  16. package/dist/DarkModeToggle.vue_vue_type_script_setup_true_lang-D1Q43mhJ.js.map +1 -0
  17. package/dist/{Dropdown.vue_vue_type_script_setup_true_lang-DKxcVBKu.cjs → Dropdown.vue_vue_type_script_setup_true_lang-DNeh9Gi-.cjs} +32 -15
  18. package/dist/Dropdown.vue_vue_type_script_setup_true_lang-DNeh9Gi-.cjs.map +1 -0
  19. package/dist/{Dropdown.vue_vue_type_script_setup_true_lang-C3pr8BwC.js → Dropdown.vue_vue_type_script_setup_true_lang-DXV811zB.js} +32 -15
  20. package/dist/Dropdown.vue_vue_type_script_setup_true_lang-DXV811zB.js.map +1 -0
  21. package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-D22uNeS1.cjs → PageLayout.vue_vue_type_script_setup_true_lang-C0YzyJnK.cjs} +2 -2
  22. package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-D22uNeS1.cjs.map → PageLayout.vue_vue_type_script_setup_true_lang-C0YzyJnK.cjs.map} +1 -1
  23. package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-kT7np2ir.js → PageLayout.vue_vue_type_script_setup_true_lang-ClzYGS8h.js} +2 -2
  24. package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-kT7np2ir.js.map → PageLayout.vue_vue_type_script_setup_true_lang-ClzYGS8h.js.map} +1 -1
  25. package/dist/components/core/AccordionItem.vue.d.ts +2 -0
  26. package/dist/components/core/DarkModeToggle.stories.d.ts +15 -0
  27. package/dist/components/core/DarkModeToggle.test.d.ts +1 -0
  28. package/dist/components/core/DarkModeToggle.vue.d.ts +21 -0
  29. package/dist/components/core/Dropdown.vue.d.ts +2 -0
  30. package/dist/components/core/Popover.vue.d.ts +2 -0
  31. package/dist/components/core/Tooltip.vue.d.ts +2 -0
  32. package/dist/components/core/index.cjs +23 -21
  33. package/dist/components/core/index.cjs.map +1 -1
  34. package/dist/components/core/index.d.ts +2 -0
  35. package/dist/components/core/index.js +17 -15
  36. package/dist/components/core/index.js.map +1 -1
  37. package/dist/components/core/index.test.d.ts +1 -0
  38. package/dist/components/feedback/ConfirmDialog.stories.d.ts +12 -0
  39. package/dist/components/feedback/ConfirmDialog.test.d.ts +1 -0
  40. package/dist/components/feedback/ConfirmDialog.vue.d.ts +53 -0
  41. package/dist/components/feedback/LoadingSpinner.vue.d.ts +6 -1
  42. package/dist/components/feedback/Modal.vue.d.ts +18 -3
  43. package/dist/components/feedback/Progress.vue.d.ts +1 -1
  44. package/dist/components/feedback/index.cjs +17 -16
  45. package/dist/components/feedback/index.cjs.map +1 -1
  46. package/dist/components/feedback/index.d.ts +2 -0
  47. package/dist/components/feedback/index.js +6 -5
  48. package/dist/components/feedback/index.test.d.ts +1 -0
  49. package/dist/components/form/Checkbox.vue.d.ts +2 -0
  50. package/dist/components/form/ColorPicker.vue.d.ts +3 -0
  51. package/dist/components/form/Combobox.stories.d.ts +15 -0
  52. package/dist/components/form/Combobox.test.d.ts +1 -0
  53. package/dist/components/form/Combobox.vue.d.ts +46 -0
  54. package/dist/components/form/DatePicker.vue.d.ts +2 -0
  55. package/dist/components/form/FormHelp.vue.d.ts +2 -0
  56. package/dist/components/form/Switch.vue.d.ts +2 -0
  57. package/dist/components/form/index.cjs +17 -16
  58. package/dist/components/form/index.cjs.map +1 -1
  59. package/dist/components/form/index.d.ts +2 -0
  60. package/dist/components/form/index.js +3 -2
  61. package/dist/components/form/index.test.d.ts +1 -0
  62. package/dist/components/index.cjs +57 -54
  63. package/dist/components/index.cjs.map +1 -1
  64. package/dist/components/index.js +35 -32
  65. package/dist/components/index.test.d.ts +1 -0
  66. package/dist/components/layout/index.cjs +1 -1
  67. package/dist/components/layout/index.js +1 -1
  68. package/dist/components/layout/index.test.d.ts +1 -0
  69. package/dist/components/type/index.test.d.ts +1 -0
  70. package/dist/composables/index.cjs +9 -2
  71. package/dist/composables/index.cjs.map +1 -1
  72. package/dist/composables/index.d.ts +2 -0
  73. package/dist/composables/index.js +15 -8
  74. package/dist/composables/index.js.map +1 -1
  75. package/dist/composables/index.test.d.ts +1 -0
  76. package/dist/composables/useDarkMode.test.d.ts +1 -0
  77. package/dist/composables/useDropdown.test.d.ts +1 -0
  78. package/dist/composables/useExportCSV.test.d.ts +1 -0
  79. package/dist/composables/useFocusTrap.d.ts +41 -0
  80. package/dist/composables/useFocusTrap.test.d.ts +1 -0
  81. package/dist/composables/useId.d.ts +42 -0
  82. package/dist/composables/useId.test.d.ts +1 -0
  83. package/dist/composables/useModal.d.ts +1 -1
  84. package/dist/composables/useModal.test.d.ts +1 -0
  85. package/dist/index-BMoLBt6A.js +75 -0
  86. package/dist/index-BMoLBt6A.js.map +1 -0
  87. package/dist/index-CJwlO351.js +347 -0
  88. package/dist/index-CJwlO351.js.map +1 -0
  89. package/dist/index-CUNU12xk.cjs +346 -0
  90. package/dist/index-CUNU12xk.cjs.map +1 -0
  91. package/dist/index-DwFvFW-3.cjs +74 -0
  92. package/dist/index-DwFvFW-3.cjs.map +1 -0
  93. package/dist/index.cjs +67 -57
  94. package/dist/index.cjs.map +1 -1
  95. package/dist/index.js +51 -41
  96. package/dist/index.js.map +1 -1
  97. package/dist/index.test.d.ts +1 -0
  98. package/dist/style.css +1 -1
  99. package/dist/types/form.d.ts +4 -0
  100. package/dist/types/index.test.d.ts +1 -0
  101. package/dist/useDarkMode-Cl5QWTlC.js +53 -0
  102. package/dist/useDarkMode-Cl5QWTlC.js.map +1 -0
  103. package/dist/useDarkMode-DLZcJEUQ.cjs +52 -0
  104. package/dist/useDarkMode-DLZcJEUQ.cjs.map +1 -0
  105. package/dist/useFocusTrap-AnlJsihM.js +120 -0
  106. package/dist/useFocusTrap-AnlJsihM.js.map +1 -0
  107. package/dist/useFocusTrap-kcxO8AeU.cjs +119 -0
  108. package/dist/useFocusTrap-kcxO8AeU.cjs.map +1 -0
  109. package/dist/useId-nxrBaIC9.cjs +25 -0
  110. package/dist/useId-nxrBaIC9.cjs.map +1 -0
  111. package/dist/useId-xeHj7rkg.js +26 -0
  112. package/dist/useId-xeHj7rkg.js.map +1 -0
  113. package/dist/{useToast-CRh_sG82.cjs → useToast-Bk60GArg.cjs} +1 -50
  114. package/dist/useToast-Bk60GArg.cjs.map +1 -0
  115. package/dist/{useToast-DwFOkewC.js → useToast-ina5g3mj.js} +6 -55
  116. package/dist/useToast-ina5g3mj.js.map +1 -0
  117. package/package.json +9 -8
  118. package/dist/Checkbox.vue_vue_type_script_setup_true_lang-B-nLCCNY.js +0 -54
  119. package/dist/Checkbox.vue_vue_type_script_setup_true_lang-B-nLCCNY.js.map +0 -1
  120. package/dist/Checkbox.vue_vue_type_script_setup_true_lang-DIoHDji4.cjs +0 -53
  121. package/dist/Checkbox.vue_vue_type_script_setup_true_lang-DIoHDji4.cjs.map +0 -1
  122. package/dist/Dropdown.vue_vue_type_script_setup_true_lang-C3pr8BwC.js.map +0 -1
  123. package/dist/Dropdown.vue_vue_type_script_setup_true_lang-DKxcVBKu.cjs.map +0 -1
  124. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-CrEu33_J.cjs.map +0 -1
  125. package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-D3_Oddwt.js.map +0 -1
  126. package/dist/RangeSlider.vue_vue_type_script_setup_true_lang-B79_S1JL.js.map +0 -1
  127. package/dist/RangeSlider.vue_vue_type_script_setup_true_lang-ClH-pyK8.cjs.map +0 -1
  128. package/dist/Skeleton.vue_vue_type_script_setup_true_lang-CsDMGhaT.cjs.map +0 -1
  129. package/dist/Skeleton.vue_vue_type_script_setup_true_lang-Q4PcIELi.js.map +0 -1
  130. package/dist/Timeline.vue_vue_type_script_setup_true_lang-C5SKEGPG.cjs.map +0 -1
  131. package/dist/Timeline.vue_vue_type_script_setup_true_lang-ykGksWXN.js.map +0 -1
  132. package/dist/index-C3NAM2ds.js +0 -72
  133. package/dist/index-C3NAM2ds.js.map +0 -1
  134. package/dist/index-Ti1RIOEG.cjs +0 -71
  135. package/dist/index-Ti1RIOEG.cjs.map +0 -1
  136. package/dist/useToast-CRh_sG82.cjs.map +0 -1
  137. package/dist/useToast-DwFOkewC.js.map +0 -1
@@ -1,59 +1,97 @@
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, computed, createElementBlock, openBlock, createElementVNode, normalizeClass, toDisplayString, ref, onMounted, onUnmounted, createBlock, Teleport, withModifiers, unref, createCommentVNode, 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 { u as useId } from "./useId-xeHj7rkg.js";
5
+ import { u as useFocusTrap } from "./useFocusTrap-AnlJsihM.js";
6
+ import { _ as _sfc_main$c } from "./Button.vue_vue_type_script_setup_true_lang-CD9QPOeU.js";
7
+ const _hoisted_1$a = ["aria-label"];
8
+ const _hoisted_2$8 = { class: "text-center" };
9
+ const _hoisted_3$8 = {
7
10
  key: 0,
8
11
  class: "mt-4 text-gray-600 dark:text-gray-400"
9
12
  };
10
- const _sfc_main$a = /* @__PURE__ */ defineComponent({
13
+ const _hoisted_4$6 = {
14
+ key: 1,
15
+ class: "sr-only"
16
+ };
17
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
11
18
  __name: "LoadingSpinner",
12
19
  props: {
13
20
  text: {},
14
- size: { default: "md" }
21
+ size: { default: "md" },
22
+ ariaLabel: { default: "Loading" }
15
23
  },
16
24
  setup(__props) {
25
+ const props = __props;
17
26
  const sizeClasses = {
18
27
  sm: "h-8 w-8",
19
28
  md: "h-12 w-12",
20
29
  lg: "h-16 w-16"
21
30
  };
31
+ const accessibleLabel = computed(() => props.text || props.ariaLabel);
22
32
  return (_ctx, _cache) => {
23
- return openBlock(), createElementBlock("div", _hoisted_1$9, [
24
- createElementVNode("div", _hoisted_2$7, [
33
+ return openBlock(), createElementBlock("div", {
34
+ class: "flex items-center justify-center py-12",
35
+ role: "status",
36
+ "aria-live": "polite",
37
+ "aria-label": accessibleLabel.value
38
+ }, [
39
+ createElementVNode("div", _hoisted_2$8, [
25
40
  createElementVNode("div", {
26
- class: normalizeClass([sizeClasses[__props.size], "border-primary inline-block animate-spin rounded-full border-4 border-solid border-r-transparent"])
41
+ class: normalizeClass([sizeClasses[__props.size], "border-primary inline-block animate-spin rounded-full border-4 border-solid border-r-transparent"]),
42
+ "aria-hidden": "true"
27
43
  }, null, 2),
28
- __props.text ? (openBlock(), createElementBlock("p", _hoisted_3$7, toDisplayString(__props.text), 1)) : createCommentVNode("", true)
44
+ __props.text ? (openBlock(), createElementBlock("p", _hoisted_3$8, toDisplayString(__props.text), 1)) : (openBlock(), createElementBlock("span", _hoisted_4$6, toDisplayString(accessibleLabel.value), 1))
29
45
  ])
30
- ]);
46
+ ], 8, _hoisted_1$a);
31
47
  };
32
48
  }
33
49
  });
34
- const _hoisted_1$8 = {
50
+ const _hoisted_1$9 = ["id", "aria-labelledby"];
51
+ const _hoisted_2$7 = {
35
52
  key: 0,
36
53
  class: "flex items-center justify-between border-b border-gray-200 px-6 py-4 dark:border-gray-700"
37
54
  };
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 = {
55
+ const _hoisted_3$7 = ["id"];
56
+ const _hoisted_4$5 = { class: "sr-only" };
57
+ const _hoisted_5$2 = { class: "flex-1 overflow-y-auto px-6 py-4" };
58
+ const _hoisted_6$1 = {
42
59
  key: 1,
43
60
  class: "flex items-center justify-end gap-3 border-t border-gray-200 px-6 py-4 dark:border-gray-700"
44
61
  };
45
- const _sfc_main$9 = /* @__PURE__ */ defineComponent({
62
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
46
63
  __name: "Modal",
47
64
  props: {
48
65
  title: { default: "" },
49
66
  size: { default: "default" },
50
67
  closeOnBackdrop: { type: Boolean, default: true },
51
68
  closeOnEscape: { type: Boolean, default: true },
52
- closeButtonLabel: { default: "Close" }
69
+ closeButtonLabel: { default: "Close" },
70
+ teleport: { type: [String, Boolean], default: "body" },
71
+ id: {}
53
72
  },
54
73
  emits: ["close"],
55
74
  setup(__props, { emit: __emit }) {
75
+ const props = __props;
76
+ const {
77
+ title,
78
+ size,
79
+ closeOnBackdrop,
80
+ closeOnEscape,
81
+ closeButtonLabel
82
+ } = props;
83
+ const teleportDisabled = computed(() => props.teleport === false);
84
+ const teleportTarget = computed(() => props.teleport === false ? "body" : props.teleport);
56
85
  const emit = __emit;
86
+ const { id: modalId, related } = useId({ prefix: "modal", id: props.id });
87
+ const titleId = computed(() => related("title"));
88
+ const isActive = ref(true);
89
+ const { containerRef: dialogRef } = useFocusTrap({
90
+ active: isActive,
91
+ focusFirst: true,
92
+ restoreFocus: true
93
+ });
94
+ const hasTitle = computed(() => Boolean(props.title));
57
95
  const sizeClasses = {
58
96
  sm: "max-w-md",
59
97
  default: "max-w-3xl",
@@ -62,12 +100,12 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
62
100
  full: "max-w-full mx-4"
63
101
  };
64
102
  const handleBackdropClick = () => {
65
- if (__props.closeOnBackdrop) {
103
+ if (closeOnBackdrop) {
66
104
  emit("close");
67
105
  }
68
106
  };
69
107
  const handleEscape = (e) => {
70
- if (e.key === "Escape" && __props.closeOnEscape) {
108
+ if (e.key === "Escape" && closeOnEscape) {
71
109
  emit("close");
72
110
  }
73
111
  };
@@ -80,55 +118,71 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
80
118
  document.body.style.overflow = "";
81
119
  });
82
120
  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"])
121
+ return openBlock(), createBlock(Teleport, {
122
+ to: teleportTarget.value,
123
+ disabled: teleportDisabled.value
86
124
  }, [
87
125
  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"])
126
+ class: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4",
127
+ onClick: withModifiers(handleBackdropClick, ["self"])
89
128
  }, [
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)
129
+ createElementVNode("div", {
130
+ ref_key: "dialogRef",
131
+ ref: dialogRef,
132
+ id: unref(modalId),
133
+ role: "dialog",
134
+ "aria-modal": "true",
135
+ "aria-labelledby": hasTitle.value ? titleId.value : void 0,
136
+ class: normalizeClass([sizeClasses[unref(size)], "flex max-h-[90vh] w-full flex-col rounded-lg bg-white shadow-xl dark:bg-gray-900"])
137
+ }, [
138
+ unref(title) || _ctx.$slots.header || _ctx.$slots.title ? (openBlock(), createElementBlock("div", _hoisted_2$7, [
139
+ createElementVNode("h3", {
140
+ id: titleId.value,
141
+ class: "text-xl font-semibold text-gray-900 dark:text-gray-100"
142
+ }, [
143
+ renderSlot(_ctx.$slots, "header", {}, () => [
144
+ renderSlot(_ctx.$slots, "title", {}, () => [
145
+ createTextVNode(toDisplayString(unref(title)), 1)
146
+ ])
95
147
  ])
148
+ ], 8, _hoisted_3$7),
149
+ createElementVNode("button", {
150
+ 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",
151
+ type: "button",
152
+ "aria-label": "Close dialog",
153
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
154
+ }, [
155
+ createVNode(unref(Icon), {
156
+ class: "h-5 w-5",
157
+ icon: "lucide:x",
158
+ "aria-hidden": "true"
159
+ }),
160
+ createElementVNode("span", _hoisted_4$5, toDisplayString(unref(closeButtonLabel)), 1)
96
161
  ])
162
+ ])) : createCommentVNode("", true),
163
+ createElementVNode("div", _hoisted_5$2, [
164
+ renderSlot(_ctx.$slots, "default")
97
165
  ]),
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
- ]);
166
+ _ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_6$1, [
167
+ renderSlot(_ctx.$slots, "footer")
168
+ ])) : createCommentVNode("", true)
169
+ ], 10, _hoisted_1$9)
170
+ ])
171
+ ], 8, ["to", "disabled"]);
118
172
  };
119
173
  }
120
174
  });
121
- const _hoisted_1$7 = {
175
+ const _hoisted_1$8 = {
122
176
  key: 0,
123
177
  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
178
  };
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 = {
179
+ const _hoisted_2$6 = { class: "flex flex-col sm:flex-row sm:items-center gap-3 sm:gap-4" };
180
+ const _hoisted_3$6 = { class: "text-sm text-gray-700 dark:text-gray-300 text-center sm:text-left" };
181
+ const _hoisted_4$4 = {
128
182
  key: 0,
129
183
  class: "flex items-center justify-center sm:justify-start gap-2"
130
184
  };
131
- const _hoisted_5 = {
185
+ const _hoisted_5$1 = {
132
186
  class: "text-sm text-gray-600 dark:text-gray-400 hidden sm:inline",
133
187
  for: "page-size"
134
188
  };
@@ -139,7 +193,7 @@ const _hoisted_9 = ["disabled"];
139
193
  const _hoisted_10 = { class: "hidden sm:inline" };
140
194
  const _hoisted_11 = ["disabled"];
141
195
  const _hoisted_12 = { class: "hidden sm:inline" };
142
- const _sfc_main$8 = /* @__PURE__ */ defineComponent({
196
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
143
197
  __name: "PaginationControls",
144
198
  props: {
145
199
  currentPage: {},
@@ -167,11 +221,11 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
167
221
  emit("update:pageSize", Number(target.value));
168
222
  };
169
223
  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),
224
+ return __props.totalPages > 1 ? (openBlock(), createElementBlock("div", _hoisted_1$8, [
225
+ createElementVNode("div", _hoisted_2$6, [
226
+ createElementVNode("div", _hoisted_3$6, toDisplayString(__props.pageLabel) + " " + toDisplayString(__props.currentPage) + " " + toDisplayString(__props.ofLabel) + " " + toDisplayString(__props.totalPages), 1),
227
+ __props.showPageSize ? (openBlock(), createElementBlock("div", _hoisted_4$4, [
228
+ createElementVNode("label", _hoisted_5$1, toDisplayString(__props.itemsPerPageLabel), 1),
175
229
  createElementVNode("select", {
176
230
  id: "page-size",
177
231
  value: __props.pageSize,
@@ -215,17 +269,17 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
215
269
  };
216
270
  }
217
271
  });
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 = {
272
+ 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" };
273
+ const _hoisted_2$5 = { class: "flex min-w-0 flex-1 flex-col" };
274
+ const _hoisted_3$5 = {
221
275
  key: 0,
222
276
  class: "text-sm font-semibold text-gray-900 dark:text-gray-100"
223
277
  };
224
- const _hoisted_4$2 = {
278
+ const _hoisted_4$3 = {
225
279
  key: 1,
226
280
  class: "mt-1 text-sm text-gray-600 dark:text-gray-400"
227
281
  };
228
- const _sfc_main$7 = /* @__PURE__ */ defineComponent({
282
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
229
283
  __name: "NotificationComponent",
230
284
  props: {
231
285
  notification: {},
@@ -292,7 +346,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
292
346
  }
293
347
  });
294
348
  return (_ctx, _cache) => {
295
- return openBlock(), createElementBlock("div", _hoisted_1$6, [
349
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
296
350
  createElementVNode("div", {
297
351
  class: normalizeClass([bgColor.value, "flex items-center justify-center rounded-full p-2"])
298
352
  }, [
@@ -301,9 +355,9 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
301
355
  icon: iconName.value
302
356
  }, null, 8, ["class", "icon"])
303
357
  ], 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)
358
+ createElementVNode("div", _hoisted_2$5, [
359
+ __props.notification.title ? (openBlock(), createElementBlock("h4", _hoisted_3$5, toDisplayString(__props.notification.title), 1)) : createCommentVNode("", true),
360
+ __props.notification.message ? (openBlock(), createElementBlock("p", _hoisted_4$3, toDisplayString(__props.notification.message), 1)) : createCommentVNode("", true)
307
361
  ]),
308
362
  createElementVNode("button", {
309
363
  class: "shrink-0 text-gray-400 transition-colors hover:text-gray-600 dark:text-gray-600 dark:hover:text-gray-400",
@@ -318,8 +372,8 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
318
372
  };
319
373
  }
320
374
  });
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({
375
+ const _hoisted_1$6 = { class: "fixed top-5 right-5 z-50 flex flex-col gap-3" };
376
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
323
377
  __name: "NotificationList",
324
378
  props: {
325
379
  notifications: {},
@@ -330,9 +384,9 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
330
384
  setup(__props, { emit: __emit }) {
331
385
  const emit = __emit;
332
386
  return (_ctx, _cache) => {
333
- return openBlock(), createElementBlock("div", _hoisted_1$5, [
387
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
334
388
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.notifications, (notification) => {
335
- return openBlock(), createBlock(_sfc_main$7, {
389
+ return openBlock(), createBlock(_sfc_main$8, {
336
390
  key: notification.id,
337
391
  notification,
338
392
  "auto-dismiss": __props.autoDismiss,
@@ -344,13 +398,13 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
344
398
  };
345
399
  }
346
400
  });
347
- const _hoisted_1$4 = { class: "flex-1" };
348
- const _hoisted_2$3 = {
401
+ const _hoisted_1$5 = { class: "flex-1" };
402
+ const _hoisted_2$4 = {
349
403
  key: 0,
350
404
  class: "mb-1 font-medium text-gray-900 dark:text-white"
351
405
  };
352
- const _hoisted_3$3 = { class: "text-sm text-gray-700 dark:text-gray-300" };
353
- const _sfc_main$5 = /* @__PURE__ */ defineComponent({
406
+ const _hoisted_3$4 = { class: "text-sm text-gray-700 dark:text-gray-300" };
407
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
354
408
  __name: "Alert",
355
409
  props: {
356
410
  variant: { default: "info" },
@@ -400,11 +454,12 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
400
454
  }, [
401
455
  createVNode(unref(Icon), {
402
456
  icon: __props.icon || unref(styles).icon,
403
- class: normalizeClass(["size-5 shrink-0", unref(styles).iconColor])
457
+ class: normalizeClass(["size-5 shrink-0", unref(styles).iconColor]),
458
+ "aria-hidden": "true"
404
459
  }, 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, [
460
+ createElementVNode("div", _hoisted_1$5, [
461
+ __props.title ? (openBlock(), createElementBlock("h4", _hoisted_2$4, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
462
+ createElementVNode("div", _hoisted_3$4, [
408
463
  renderSlot(_ctx.$slots, "default")
409
464
  ])
410
465
  ]),
@@ -412,28 +467,30 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
412
467
  key: 0,
413
468
  type: "button",
414
469
  class: "shrink-0 rounded p-1 text-gray-400 hover:bg-gray-200 hover:text-gray-600 dark:hover:bg-gray-700 dark:hover:text-gray-300",
470
+ "aria-label": "Dismiss alert",
415
471
  onClick: _cache[0] || (_cache[0] = ($event) => emit("dismiss"))
416
472
  }, [
417
473
  createVNode(unref(Icon), {
418
474
  icon: "lucide:x",
419
- class: "size-4"
475
+ class: "size-4",
476
+ "aria-hidden": "true"
420
477
  })
421
478
  ])) : createCommentVNode("", true)
422
479
  ], 2);
423
480
  };
424
481
  }
425
482
  });
426
- const _hoisted_1$3 = { class: "py-12 text-center" };
427
- const _hoisted_2$2 = {
483
+ const _hoisted_1$4 = { class: "py-12 text-center" };
484
+ const _hoisted_2$3 = {
428
485
  key: 1,
429
486
  class: "mb-2 text-lg font-medium text-gray-900 dark:text-white"
430
487
  };
431
- const _hoisted_3$2 = { class: "text-gray-500 dark:text-gray-400" };
432
- const _hoisted_4$1 = {
488
+ const _hoisted_3$3 = { class: "text-gray-500 dark:text-gray-400" };
489
+ const _hoisted_4$2 = {
433
490
  key: 2,
434
491
  class: "mt-4"
435
492
  };
436
- const _sfc_main$4 = /* @__PURE__ */ defineComponent({
493
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
437
494
  __name: "EmptyState",
438
495
  props: {
439
496
  message: { default: "No results found" },
@@ -442,32 +499,32 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
442
499
  },
443
500
  setup(__props) {
444
501
  return (_ctx, _cache) => {
445
- return openBlock(), createElementBlock("div", _hoisted_1$3, [
502
+ return openBlock(), createElementBlock("div", _hoisted_1$4, [
446
503
  __props.icon ? (openBlock(), createBlock(unref(Icon), {
447
504
  key: 0,
448
505
  icon: __props.icon,
449
506
  class: "mx-auto mb-4 size-12 text-gray-400 dark:text-gray-500"
450
507
  }, 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, [
508
+ __props.title ? (openBlock(), createElementBlock("h3", _hoisted_2$3, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
509
+ createElementVNode("p", _hoisted_3$3, [
453
510
  renderSlot(_ctx.$slots, "default", {}, () => [
454
511
  createTextVNode(toDisplayString(__props.message), 1)
455
512
  ])
456
513
  ]),
457
- _ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_4$1, [
514
+ _ctx.$slots.action ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
458
515
  renderSlot(_ctx.$slots, "action")
459
516
  ])) : createCommentVNode("", true)
460
517
  ]);
461
518
  };
462
519
  }
463
520
  });
464
- const _hoisted_1$2 = { class: "flex-1 min-w-0" };
465
- const _hoisted_2$1 = {
521
+ const _hoisted_1$3 = { class: "flex-1 min-w-0" };
522
+ const _hoisted_2$2 = {
466
523
  key: 0,
467
524
  class: "font-medium text-gray-900 dark:text-white"
468
525
  };
469
- const _hoisted_3$1 = { class: "text-sm text-gray-700 dark:text-gray-300" };
470
- const _sfc_main$3 = /* @__PURE__ */ defineComponent({
526
+ const _hoisted_3$2 = { class: "text-sm text-gray-700 dark:text-gray-300" };
527
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
471
528
  __name: "Toast",
472
529
  props: {
473
530
  message: {},
@@ -518,28 +575,31 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
518
575
  }, [
519
576
  createVNode(unref(Icon), {
520
577
  icon: unref(config).icon,
521
- class: normalizeClass(["size-5 shrink-0", unref(config).iconColor])
578
+ class: normalizeClass(["size-5 shrink-0", unref(config).iconColor]),
579
+ "aria-hidden": "true"
522
580
  }, 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)
581
+ createElementVNode("div", _hoisted_1$3, [
582
+ __props.title ? (openBlock(), createElementBlock("p", _hoisted_2$2, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
583
+ createElementVNode("p", _hoisted_3$2, toDisplayString(__props.message), 1)
526
584
  ]),
527
585
  __props.closable ? (openBlock(), createElementBlock("button", {
528
586
  key: 0,
529
587
  type: "button",
530
588
  class: "shrink-0 rounded p-1 text-gray-400 hover:bg-gray-200 hover:text-gray-600 dark:hover:bg-gray-700 dark:hover:text-gray-300",
589
+ "aria-label": "Dismiss notification",
531
590
  onClick: _cache[0] || (_cache[0] = ($event) => emit("close"))
532
591
  }, [
533
592
  createVNode(unref(Icon), {
534
593
  icon: "lucide:x",
535
- class: "size-4"
594
+ class: "size-4",
595
+ "aria-hidden": "true"
536
596
  })
537
597
  ])) : createCommentVNode("", true)
538
598
  ], 2);
539
599
  };
540
600
  }
541
601
  });
542
- const _sfc_main$2 = /* @__PURE__ */ defineComponent({
602
+ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
543
603
  __name: "ToastContainer",
544
604
  props: {
545
605
  toasts: {},
@@ -570,7 +630,9 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
570
630
  return openBlock(), createBlock(Teleport, { to: "body" }, [
571
631
  createElementVNode("div", {
572
632
  class: normalizeClass(["fixed z-[9999] flex flex-col gap-2 w-full max-w-sm", positionClasses[__props.position]]),
573
- style: normalizeStyle(topStyle.value)
633
+ style: normalizeStyle(topStyle.value),
634
+ "aria-live": "polite",
635
+ "aria-atomic": "false"
574
636
  }, [
575
637
  createVNode(TransitionGroup, {
576
638
  "enter-active-class": "transition duration-300 ease-out",
@@ -582,7 +644,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
582
644
  }, {
583
645
  default: withCtx(() => [
584
646
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.toasts, (toast) => {
585
- return openBlock(), createBlock(_sfc_main$3, {
647
+ return openBlock(), createBlock(_sfc_main$4, {
586
648
  key: toast.id,
587
649
  message: toast.message,
588
650
  type: toast.type,
@@ -599,14 +661,14 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
599
661
  };
600
662
  }
601
663
  });
602
- const _hoisted_1$1 = { class: "w-full" };
603
- const _hoisted_2 = {
664
+ const _hoisted_1$2 = { class: "w-full" };
665
+ const _hoisted_2$1 = {
604
666
  key: 0,
605
667
  class: "mb-1 flex justify-between text-sm"
606
668
  };
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({
669
+ const _hoisted_3$1 = { class: "font-medium text-gray-900 dark:text-white" };
670
+ const _hoisted_4$1 = ["aria-valuenow", "aria-valuemax"];
671
+ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
610
672
  __name: "Progress",
611
673
  props: {
612
674
  value: {},
@@ -636,10 +698,10 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
636
698
  error: "bg-red-500"
637
699
  };
638
700
  return (_ctx, _cache) => {
639
- return openBlock(), createElementBlock("div", _hoisted_1$1, [
640
- __props.showLabel && !__props.indeterminate ? (openBlock(), createElementBlock("div", _hoisted_2, [
701
+ return openBlock(), createElementBlock("div", _hoisted_1$2, [
702
+ __props.showLabel && !__props.indeterminate ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
641
703
  _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)
704
+ createElementVNode("span", _hoisted_3$1, toDisplayString(Math.round(percentage.value)) + "%", 1)
643
705
  ])) : createCommentVNode("", true),
644
706
  createElementVNode("div", {
645
707
  class: normalizeClass([
@@ -661,17 +723,18 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
661
723
  ]),
662
724
  style: normalizeStyle({ width: __props.indeterminate ? "30%" : `${percentage.value}%` })
663
725
  }, null, 6)
664
- ], 10, _hoisted_4)
726
+ ], 10, _hoisted_4$1)
665
727
  ]);
666
728
  };
667
729
  }
668
730
  });
669
- const Progress = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-546a3ae5"]]);
670
- const _hoisted_1 = {
731
+ const Progress = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-546a3ae5"]]);
732
+ const _hoisted_1$1 = {
671
733
  key: 0,
672
- class: "space-y-2"
734
+ class: "space-y-2",
735
+ "aria-hidden": "true"
673
736
  };
674
- const _sfc_main = /* @__PURE__ */ defineComponent({
737
+ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
675
738
  __name: "Skeleton",
676
739
  props: {
677
740
  variant: { default: "text" },
@@ -688,7 +751,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
688
751
  rounded: "rounded-lg"
689
752
  };
690
753
  return (_ctx, _cache) => {
691
- return __props.variant === "text" && __props.lines > 1 ? (openBlock(), createElementBlock("div", _hoisted_1, [
754
+ return __props.variant === "text" && __props.lines > 1 ? (openBlock(), createElementBlock("div", _hoisted_1$1, [
692
755
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.lines, (i) => {
693
756
  return openBlock(), createElementBlock("div", {
694
757
  key: i,
@@ -713,22 +776,121 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
713
776
  style: normalizeStyle({
714
777
  width: __props.width || (__props.variant === "circular" ? "3rem" : "100%"),
715
778
  height: __props.height || (__props.variant === "circular" ? "3rem" : __props.variant === "text" ? "1rem" : "6rem")
716
- })
779
+ }),
780
+ "aria-hidden": "true"
717
781
  }, null, 6));
718
782
  };
719
783
  }
720
784
  });
785
+ const _hoisted_1 = { class: "text-center" };
786
+ 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" };
787
+ const _hoisted_3 = { class: "mb-2 text-lg font-semibold text-gray-900 dark:text-gray-100" };
788
+ const _hoisted_4 = { class: "mb-6 text-gray-600 dark:text-gray-400" };
789
+ const _hoisted_5 = { class: "flex justify-center gap-3" };
790
+ const _sfc_main = /* @__PURE__ */ defineComponent({
791
+ __name: "ConfirmDialog",
792
+ props: {
793
+ open: { type: Boolean, default: false },
794
+ title: { default: "Confirm" },
795
+ message: { default: "Are you sure you want to proceed?" },
796
+ confirmText: { default: "Confirm" },
797
+ cancelText: { default: "Cancel" },
798
+ variant: { default: "info" },
799
+ loading: { type: Boolean, default: false },
800
+ icon: {},
801
+ teleport: { type: [String, Boolean], default: "body" }
802
+ },
803
+ emits: ["confirm", "cancel"],
804
+ setup(__props, { emit: __emit }) {
805
+ const props = __props;
806
+ const emit = __emit;
807
+ const variantConfig = {
808
+ info: {
809
+ icon: "lucide:info",
810
+ iconClass: "text-blue-500",
811
+ buttonVariant: "primary"
812
+ },
813
+ warning: {
814
+ icon: "lucide:alert-triangle",
815
+ iconClass: "text-yellow-500",
816
+ buttonVariant: "primary"
817
+ },
818
+ danger: {
819
+ icon: "lucide:alert-circle",
820
+ iconClass: "text-red-500",
821
+ buttonVariant: "danger"
822
+ },
823
+ success: {
824
+ icon: "lucide:check-circle",
825
+ iconClass: "text-green-500",
826
+ buttonVariant: "success"
827
+ }
828
+ };
829
+ const config = variantConfig[props.variant];
830
+ return (_ctx, _cache) => {
831
+ return __props.open ? (openBlock(), createBlock(_sfc_main$a, {
832
+ key: 0,
833
+ size: "sm",
834
+ "close-on-backdrop": !__props.loading,
835
+ "close-on-escape": !__props.loading,
836
+ teleport: __props.teleport,
837
+ onClose: _cache[2] || (_cache[2] = ($event) => emit("cancel"))
838
+ }, {
839
+ default: withCtx(() => [
840
+ createElementVNode("div", _hoisted_1, [
841
+ createElementVNode("div", _hoisted_2, [
842
+ createVNode(unref(Icon), {
843
+ icon: __props.icon || unref(config).icon,
844
+ class: normalizeClass([unref(config).iconClass, "h-8 w-8"])
845
+ }, null, 8, ["icon", "class"])
846
+ ]),
847
+ createElementVNode("h3", _hoisted_3, toDisplayString(__props.title), 1),
848
+ createElementVNode("p", _hoisted_4, [
849
+ renderSlot(_ctx.$slots, "default", {}, () => [
850
+ createTextVNode(toDisplayString(__props.message), 1)
851
+ ])
852
+ ]),
853
+ createElementVNode("div", _hoisted_5, [
854
+ createVNode(_sfc_main$c, {
855
+ variant: "outline",
856
+ disabled: __props.loading,
857
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("cancel"))
858
+ }, {
859
+ default: withCtx(() => [
860
+ createTextVNode(toDisplayString(__props.cancelText), 1)
861
+ ]),
862
+ _: 1
863
+ }, 8, ["disabled"]),
864
+ createVNode(_sfc_main$c, {
865
+ variant: unref(config).buttonVariant,
866
+ loading: __props.loading,
867
+ onClick: _cache[1] || (_cache[1] = ($event) => emit("confirm"))
868
+ }, {
869
+ default: withCtx(() => [
870
+ createTextVNode(toDisplayString(__props.confirmText), 1)
871
+ ]),
872
+ _: 1
873
+ }, 8, ["variant", "loading"])
874
+ ])
875
+ ])
876
+ ]),
877
+ _: 3
878
+ }, 8, ["close-on-backdrop", "close-on-escape", "teleport"])) : createCommentVNode("", true);
879
+ };
880
+ }
881
+ });
721
882
  export {
722
883
  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
884
+ _sfc_main$b as _,
885
+ _sfc_main$a as a,
886
+ _sfc_main$9 as b,
887
+ _sfc_main$8 as c,
888
+ _sfc_main$7 as d,
889
+ _sfc_main$6 as e,
890
+ _sfc_main$5 as f,
891
+ _sfc_main$4 as g,
892
+ _sfc_main$3 as h,
893
+ _sfc_main$1 as i,
894
+ _sfc_main as j
733
895
  };
734
- //# sourceMappingURL=Skeleton.vue_vue_type_script_setup_true_lang-Q4PcIELi.js.map
896
+ //# sourceMappingURL=ConfirmDialog.vue_vue_type_script_setup_true_lang-Dm4kLAnr.js.map