cisse-vue-ui 0.3.2 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +666 -666
- package/dist/BadgeType.vue_vue_type_script_setup_true_lang-CJb63H1I.cjs.map +1 -1
- package/dist/BadgeType.vue_vue_type_script_setup_true_lang-CnB5eNEM.js.map +1 -1
- package/dist/Checkbox.vue_vue_type_script_setup_true_lang-B-nLCCNY.js.map +1 -1
- package/dist/Checkbox.vue_vue_type_script_setup_true_lang-DIoHDji4.cjs.map +1 -1
- package/dist/{Dropdown.vue_vue_type_script_setup_true_lang-B9DsCY8M.js → Dropdown.vue_vue_type_script_setup_true_lang-C3pr8BwC.js} +2 -2
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-C3pr8BwC.js.map +1 -0
- package/dist/{Dropdown.vue_vue_type_script_setup_true_lang-nMP2OxXp.cjs → Dropdown.vue_vue_type_script_setup_true_lang-DKxcVBKu.cjs} +2 -2
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-DKxcVBKu.cjs.map +1 -0
- package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-Bnw5L-xO.cjs → PageLayout.vue_vue_type_script_setup_true_lang-1rNUMab6.cjs} +2 -2
- package/dist/PageLayout.vue_vue_type_script_setup_true_lang-1rNUMab6.cjs.map +1 -0
- package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-D8uD3-Fe.js → PageLayout.vue_vue_type_script_setup_true_lang-DLfqj6EP.js} +2 -2
- package/dist/PageLayout.vue_vue_type_script_setup_true_lang-DLfqj6EP.js.map +1 -0
- package/dist/{DatePicker.vue_vue_type_script_setup_true_lang-CxddOiV4.cjs → RangeSlider.vue_vue_type_script_setup_true_lang-BRNkkx89.cjs} +715 -100
- package/dist/RangeSlider.vue_vue_type_script_setup_true_lang-BRNkkx89.cjs.map +1 -0
- package/dist/{DatePicker.vue_vue_type_script_setup_true_lang-DKDcnO28.js → RangeSlider.vue_vue_type_script_setup_true_lang-DD9UxnCU.js} +716 -101
- package/dist/RangeSlider.vue_vue_type_script_setup_true_lang-DD9UxnCU.js.map +1 -0
- package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-DRC4EADS.js → Skeleton.vue_vue_type_script_setup_true_lang-BcWF7mwz.js} +2 -2
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-BcWF7mwz.js.map +1 -0
- package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-D2S5g9s5.cjs → Skeleton.vue_vue_type_script_setup_true_lang-D-2qAhyG.cjs} +2 -2
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-D-2qAhyG.cjs.map +1 -0
- package/dist/{Popover.vue_vue_type_script_setup_true_lang-Q7gRZsT9.js → Timeline.vue_vue_type_script_setup_true_lang-BWIfzQOG.js} +591 -135
- package/dist/Timeline.vue_vue_type_script_setup_true_lang-BWIfzQOG.js.map +1 -0
- package/dist/{Popover.vue_vue_type_script_setup_true_lang-dvlDTcf1.cjs → Timeline.vue_vue_type_script_setup_true_lang-C2Mq4XOO.cjs} +578 -122
- package/dist/Timeline.vue_vue_type_script_setup_true_lang-C2Mq4XOO.cjs.map +1 -0
- package/dist/cisse-vue-ui.css +51 -51
- package/dist/components/core/Accordion.stories.d.ts +11 -0
- package/dist/components/core/Accordion.test.d.ts +1 -0
- package/dist/components/core/Accordion.vue.d.ts +27 -0
- package/dist/components/core/AccordionItem.vue.d.ts +27 -0
- package/dist/components/core/AutocompleteComponent.test.d.ts +1 -0
- package/dist/components/core/Breadcrumb.stories.d.ts +11 -0
- package/dist/components/core/Breadcrumb.test.d.ts +1 -0
- package/dist/components/core/Breadcrumb.vue.d.ts +26 -0
- package/dist/components/core/CardComponent.test.d.ts +1 -0
- package/dist/components/core/CollapsibleCard.test.d.ts +1 -0
- package/dist/components/core/Drawer.stories.d.ts +12 -0
- package/dist/components/core/Drawer.test.d.ts +1 -0
- package/dist/components/core/Drawer.vue.d.ts +50 -0
- package/dist/components/core/Dropdown.test.d.ts +1 -0
- package/dist/components/core/MenuItem.test.d.ts +1 -0
- package/dist/components/core/MobileList.test.d.ts +1 -0
- package/dist/components/core/Popover.test.d.ts +1 -0
- package/dist/components/core/ResponsiveList.test.d.ts +1 -0
- package/dist/components/core/StatusBadge.test.d.ts +1 -0
- package/dist/components/core/Stepper.test.d.ts +1 -0
- package/dist/components/core/TabPanel.test.d.ts +1 -0
- package/dist/components/core/TableAction.test.d.ts +1 -0
- package/dist/components/core/TableComponent.test.d.ts +1 -0
- package/dist/components/core/Tabs.test.d.ts +1 -0
- package/dist/components/core/Timeline.stories.d.ts +11 -0
- package/dist/components/core/Timeline.test.d.ts +1 -0
- package/dist/components/core/Timeline.vue.d.ts +34 -0
- package/dist/components/core/index.cjs +21 -16
- package/dist/components/core/index.cjs.map +1 -1
- package/dist/components/core/index.d.ts +9 -0
- package/dist/components/core/index.js +7 -2
- package/dist/components/feedback/EmptyState.test.d.ts +1 -0
- package/dist/components/feedback/LoadingSpinner.test.d.ts +1 -0
- package/dist/components/feedback/NotificationComponent.test.d.ts +1 -0
- package/dist/components/feedback/NotificationList.test.d.ts +1 -0
- package/dist/components/feedback/PaginationControls.test.d.ts +1 -0
- package/dist/components/feedback/Toast.test.d.ts +1 -0
- package/dist/components/feedback/ToastContainer.test.d.ts +1 -0
- package/dist/components/feedback/index.cjs +1 -1
- package/dist/components/feedback/index.js +1 -1
- package/dist/components/form/Checkbox.test.d.ts +1 -0
- package/dist/components/form/ColorPicker.stories.d.ts +12 -0
- package/dist/components/form/ColorPicker.test.d.ts +1 -0
- package/dist/components/form/ColorPicker.vue.d.ts +23 -0
- package/dist/components/form/DatePicker.test.d.ts +1 -0
- package/dist/components/form/FileUpload.stories.d.ts +12 -0
- package/dist/components/form/FileUpload.test.d.ts +1 -0
- package/dist/components/form/FileUpload.vue.d.ts +40 -0
- package/dist/components/form/FormGroup.test.d.ts +1 -0
- package/dist/components/form/FormHelp.test.d.ts +1 -0
- package/dist/components/form/FormInput.test.d.ts +1 -0
- package/dist/components/form/FormLabel.test.d.ts +1 -0
- package/dist/components/form/FormSelect.test.d.ts +1 -0
- package/dist/components/form/RangeSlider.stories.d.ts +13 -0
- package/dist/components/form/RangeSlider.test.d.ts +1 -0
- package/dist/components/form/RangeSlider.vue.d.ts +35 -0
- package/dist/components/form/Rating.stories.d.ts +16 -0
- package/dist/components/form/Rating.test.d.ts +1 -0
- package/dist/components/form/Rating.vue.d.ts +43 -0
- package/dist/components/form/SearchInput.test.d.ts +1 -0
- package/dist/components/form/Slider.test.d.ts +1 -0
- package/dist/components/form/Switch.test.d.ts +1 -0
- package/dist/components/form/index.cjs +14 -10
- package/dist/components/form/index.cjs.map +1 -1
- package/dist/components/form/index.d.ts +6 -0
- package/dist/components/form/index.js +5 -1
- package/dist/components/index.cjs +37 -28
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +16 -7
- package/dist/components/layout/BaseLayout.test.d.ts +1 -0
- package/dist/components/layout/PageLayout.test.d.ts +1 -0
- package/dist/components/layout/PageLayout.vue.d.ts +3 -3
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.d.ts +1 -1
- package/dist/components/layout/index.js +1 -1
- package/dist/components/type/BadgeType.test.d.ts +1 -0
- package/dist/components/type/BooleanType.test.d.ts +1 -0
- package/dist/components/type/DateType.test.d.ts +1 -0
- package/dist/components/type/NumberType.test.d.ts +1 -0
- package/dist/components/type/TextType.test.d.ts +1 -0
- package/dist/index-B4NFaDHr.cjs +67 -0
- package/dist/index-B4NFaDHr.cjs.map +1 -0
- package/dist/index-C2DRkEjb.js +68 -0
- package/dist/index-C2DRkEjb.js.map +1 -0
- package/dist/index.cjs +38 -29
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +17 -8
- package/dist/style.css +1 -1
- package/dist/types/components.d.ts +1 -1
- package/dist/useDropdown-DHFnd259.cjs.map +1 -1
- package/dist/useDropdown-iVu14E6s.js.map +1 -1
- package/dist/useToast-DT9hFfpM.js.map +1 -1
- package/dist/useToast-nJXpFz_M.cjs.map +1 -1
- package/package.json +7 -2
- package/dist/DatePicker.vue_vue_type_script_setup_true_lang-CxddOiV4.cjs.map +0 -1
- package/dist/DatePicker.vue_vue_type_script_setup_true_lang-DKDcnO28.js.map +0 -1
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-B9DsCY8M.js.map +0 -1
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-nMP2OxXp.cjs.map +0 -1
- package/dist/PageLayout.vue_vue_type_script_setup_true_lang-Bnw5L-xO.cjs.map +0 -1
- package/dist/PageLayout.vue_vue_type_script_setup_true_lang-D8uD3-Fe.js.map +0 -1
- package/dist/Popover.vue_vue_type_script_setup_true_lang-Q7gRZsT9.js.map +0 -1
- package/dist/Popover.vue_vue_type_script_setup_true_lang-dvlDTcf1.cjs.map +0 -1
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-D2S5g9s5.cjs.map +0 -1
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-DRC4EADS.js.map +0 -1
- package/dist/index-DNndxsOE.cjs +0 -58
- package/dist/index-DNndxsOE.cjs.map +0 -1
- package/dist/index-_NEu9rf2.js +0 -59
- package/dist/index-_NEu9rf2.js.map +0 -1
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { defineComponent, createElementBlock, openBlock, createCommentVNode, renderSlot, createElementVNode, createTextVNode, toDisplayString, useSlots, computed, createVNode, Fragment, renderList, normalizeClass, createBlock, resolveDynamicComponent, withCtx, onMounted, nextTick, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, watch, shallowRef, toValue, watchEffect, unref, createSlots, ref, withDirectives, vModelText, withModifiers, Teleport, Transition, normalizeStyle, resolveComponent, mergeProps, provide, vShow } from "vue";
|
|
2
|
-
import { _ as _sfc_main$
|
|
3
|
-
import { e as _sfc_main$
|
|
1
|
+
import { defineComponent, createElementBlock, openBlock, createCommentVNode, renderSlot, createElementVNode, createTextVNode, toDisplayString, useSlots, computed, createVNode, Fragment, renderList, normalizeClass, createBlock, resolveDynamicComponent, withCtx, onMounted, nextTick, getCurrentInstance, getCurrentScope, hasInjectionContext, inject, watch, shallowRef, toValue, watchEffect, unref, createSlots, ref, withDirectives, vModelText, withModifiers, Teleport, Transition, normalizeStyle, resolveComponent, mergeProps, provide, vShow, onUnmounted } from "vue";
|
|
2
|
+
import { _ as _sfc_main$j } from "./Checkbox.vue_vue_type_script_setup_true_lang-B-nLCCNY.js";
|
|
3
|
+
import { e as _sfc_main$k, d as _sfc_main$l, c as _sfc_main$m, b as _sfc_main$n, a as _sfc_main$o } from "./BadgeType.vue_vue_type_script_setup_true_lang-CnB5eNEM.js";
|
|
4
4
|
import { Icon } from "@iconify/vue";
|
|
5
5
|
import { u as useDropdown } from "./useDropdown-iVu14E6s.js";
|
|
6
|
-
const _hoisted_1$
|
|
7
|
-
const _hoisted_2$
|
|
6
|
+
const _hoisted_1$d = { class: "flex flex-col overflow-hidden rounded-lg bg-white shadow-md dark:bg-slate-950" };
|
|
7
|
+
const _hoisted_2$a = {
|
|
8
8
|
key: 0,
|
|
9
9
|
class: "flex items-center justify-between border-b border-gray-200 px-5 py-3 dark:border-gray-700"
|
|
10
10
|
};
|
|
11
|
-
const _hoisted_3$
|
|
12
|
-
const _hoisted_4$
|
|
11
|
+
const _hoisted_3$7 = { class: "flex flex-col gap-0.5" };
|
|
12
|
+
const _hoisted_4$6 = {
|
|
13
13
|
key: 0,
|
|
14
14
|
class: "text-md font-semibold text-gray-800 dark:text-gray-200"
|
|
15
15
|
};
|
|
16
|
-
const _hoisted_5$
|
|
16
|
+
const _hoisted_5$4 = {
|
|
17
17
|
key: 1,
|
|
18
18
|
class: "text-sm font-normal text-gray-600 dark:text-gray-400"
|
|
19
19
|
};
|
|
20
|
-
const _hoisted_6$
|
|
21
|
-
const _sfc_main$
|
|
20
|
+
const _hoisted_6$4 = { class: "flex gap-2" };
|
|
21
|
+
const _sfc_main$i = /* @__PURE__ */ defineComponent({
|
|
22
22
|
__name: "CardComponent",
|
|
23
23
|
props: {
|
|
24
24
|
title: {},
|
|
@@ -26,21 +26,21 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
26
26
|
},
|
|
27
27
|
setup(__props) {
|
|
28
28
|
return (_ctx, _cache) => {
|
|
29
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
30
|
-
__props.title || __props.description || _ctx.$slots.title || _ctx.$slots.description || _ctx.$slots.actions ? (openBlock(), createElementBlock("div", _hoisted_2$
|
|
31
|
-
createElementVNode("div", _hoisted_3$
|
|
32
|
-
__props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("span", _hoisted_4$
|
|
29
|
+
return openBlock(), createElementBlock("div", _hoisted_1$d, [
|
|
30
|
+
__props.title || __props.description || _ctx.$slots.title || _ctx.$slots.description || _ctx.$slots.actions ? (openBlock(), createElementBlock("div", _hoisted_2$a, [
|
|
31
|
+
createElementVNode("div", _hoisted_3$7, [
|
|
32
|
+
__props.title || _ctx.$slots.title ? (openBlock(), createElementBlock("span", _hoisted_4$6, [
|
|
33
33
|
renderSlot(_ctx.$slots, "title", {}, () => [
|
|
34
34
|
createTextVNode(toDisplayString(__props.title), 1)
|
|
35
35
|
])
|
|
36
36
|
])) : createCommentVNode("", true),
|
|
37
|
-
__props.description || _ctx.$slots.description ? (openBlock(), createElementBlock("span", _hoisted_5$
|
|
37
|
+
__props.description || _ctx.$slots.description ? (openBlock(), createElementBlock("span", _hoisted_5$4, [
|
|
38
38
|
renderSlot(_ctx.$slots, "description", {}, () => [
|
|
39
39
|
createTextVNode(toDisplayString(__props.description), 1)
|
|
40
40
|
])
|
|
41
41
|
])) : createCommentVNode("", true)
|
|
42
42
|
]),
|
|
43
|
-
createElementVNode("div", _hoisted_6$
|
|
43
|
+
createElementVNode("div", _hoisted_6$4, [
|
|
44
44
|
renderSlot(_ctx.$slots, "actions")
|
|
45
45
|
])
|
|
46
46
|
])) : createCommentVNode("", true),
|
|
@@ -49,29 +49,29 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
|
49
49
|
};
|
|
50
50
|
}
|
|
51
51
|
});
|
|
52
|
-
const _hoisted_1$
|
|
53
|
-
const _hoisted_2$
|
|
54
|
-
const _hoisted_3$
|
|
55
|
-
const _hoisted_4$
|
|
56
|
-
const _hoisted_5$
|
|
52
|
+
const _hoisted_1$c = { class: "overflow-hidden" };
|
|
53
|
+
const _hoisted_2$9 = { class: "overflow-x-auto" };
|
|
54
|
+
const _hoisted_3$6 = { class: "w-full divide-y divide-black/10 text-left dark:divide-white/10" };
|
|
55
|
+
const _hoisted_4$5 = { class: "bg-black/5 text-sm font-semibold text-gray-600 uppercase dark:bg-white/5 dark:text-gray-400" };
|
|
56
|
+
const _hoisted_5$3 = {
|
|
57
57
|
key: 0,
|
|
58
58
|
class: "w-12 px-3 py-3"
|
|
59
59
|
};
|
|
60
|
-
const _hoisted_6$
|
|
60
|
+
const _hoisted_6$3 = {
|
|
61
61
|
key: 1,
|
|
62
62
|
class: "px-3 py-3 text-right"
|
|
63
63
|
};
|
|
64
|
-
const _hoisted_7$
|
|
65
|
-
const _hoisted_8$
|
|
64
|
+
const _hoisted_7$3 = { class: "divide-y divide-black/10 font-medium dark:divide-white/10" };
|
|
65
|
+
const _hoisted_8$3 = {
|
|
66
66
|
key: 0,
|
|
67
67
|
class: "px-3 py-4"
|
|
68
68
|
};
|
|
69
|
-
const _hoisted_9$
|
|
69
|
+
const _hoisted_9$3 = {
|
|
70
70
|
key: 1,
|
|
71
71
|
class: "flex items-center justify-end gap-2 px-3 py-4"
|
|
72
72
|
};
|
|
73
|
-
const _hoisted_10$
|
|
74
|
-
const _sfc_main$
|
|
73
|
+
const _hoisted_10$2 = { key: 0 };
|
|
74
|
+
const _sfc_main$h = /* @__PURE__ */ defineComponent({
|
|
75
75
|
__name: "TableComponent",
|
|
76
76
|
props: {
|
|
77
77
|
properties: {},
|
|
@@ -87,14 +87,14 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
87
87
|
const props = __props;
|
|
88
88
|
const emit = __emit;
|
|
89
89
|
const typeComponents = {
|
|
90
|
-
text: _sfc_main$
|
|
91
|
-
number: _sfc_main$
|
|
92
|
-
date: _sfc_main$
|
|
93
|
-
boolean: _sfc_main$
|
|
94
|
-
badge: _sfc_main$
|
|
90
|
+
text: _sfc_main$o,
|
|
91
|
+
number: _sfc_main$n,
|
|
92
|
+
date: _sfc_main$m,
|
|
93
|
+
boolean: _sfc_main$l,
|
|
94
|
+
badge: _sfc_main$k
|
|
95
95
|
};
|
|
96
96
|
const getTypeComponent = (type = "text") => {
|
|
97
|
-
return typeComponents[type] || _sfc_main$
|
|
97
|
+
return typeComponents[type] || _sfc_main$o;
|
|
98
98
|
};
|
|
99
99
|
const visibleProperties = computed(() => props.properties.filter((p) => !p.hidden));
|
|
100
100
|
const getKey = (item) => {
|
|
@@ -160,13 +160,13 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
160
160
|
};
|
|
161
161
|
const hasActionSlot = computed(() => !!slots.action);
|
|
162
162
|
return (_ctx, _cache) => {
|
|
163
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
164
|
-
createElementVNode("div", _hoisted_2$
|
|
165
|
-
createElementVNode("table", _hoisted_3$
|
|
166
|
-
createElementVNode("thead", _hoisted_4$
|
|
163
|
+
return openBlock(), createElementBlock("div", _hoisted_1$c, [
|
|
164
|
+
createElementVNode("div", _hoisted_2$9, [
|
|
165
|
+
createElementVNode("table", _hoisted_3$6, [
|
|
166
|
+
createElementVNode("thead", _hoisted_4$5, [
|
|
167
167
|
createElementVNode("tr", null, [
|
|
168
|
-
__props.selectable ? (openBlock(), createElementBlock("th", _hoisted_5$
|
|
169
|
-
createVNode(_sfc_main$
|
|
168
|
+
__props.selectable ? (openBlock(), createElementBlock("th", _hoisted_5$3, [
|
|
169
|
+
createVNode(_sfc_main$j, {
|
|
170
170
|
"model-value": allSelected.value,
|
|
171
171
|
indeterminate: someSelected.value,
|
|
172
172
|
disabled: selectableItems.value.length === 0,
|
|
@@ -183,17 +183,17 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
183
183
|
])
|
|
184
184
|
], 2);
|
|
185
185
|
}), 128)),
|
|
186
|
-
hasActionSlot.value ? (openBlock(), createElementBlock("th", _hoisted_6$
|
|
186
|
+
hasActionSlot.value ? (openBlock(), createElementBlock("th", _hoisted_6$3)) : createCommentVNode("", true)
|
|
187
187
|
])
|
|
188
188
|
]),
|
|
189
|
-
createElementVNode("tbody", _hoisted_7$
|
|
189
|
+
createElementVNode("tbody", _hoisted_7$3, [
|
|
190
190
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
|
|
191
191
|
return openBlock(), createElementBlock("tr", {
|
|
192
192
|
key: getKey(item),
|
|
193
193
|
class: normalizeClass(["hover:bg-black/5 dark:hover:bg-white/5 transition-colors", { "bg-primary/5 dark:bg-primary/10": isSelected(item) }])
|
|
194
194
|
}, [
|
|
195
|
-
__props.selectable ? (openBlock(), createElementBlock("td", _hoisted_8$
|
|
196
|
-
isSelectable(item) ? (openBlock(), createBlock(_sfc_main$
|
|
195
|
+
__props.selectable ? (openBlock(), createElementBlock("td", _hoisted_8$3, [
|
|
196
|
+
isSelectable(item) ? (openBlock(), createBlock(_sfc_main$j, {
|
|
197
197
|
key: 0,
|
|
198
198
|
"model-value": isSelected(item),
|
|
199
199
|
"onUpdate:modelValue": ($event) => handleSelect(item)
|
|
@@ -220,7 +220,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
220
220
|
])
|
|
221
221
|
], 2);
|
|
222
222
|
}), 128)),
|
|
223
|
-
hasActionSlot.value ? (openBlock(), createElementBlock("td", _hoisted_9$
|
|
223
|
+
hasActionSlot.value ? (openBlock(), createElementBlock("td", _hoisted_9$3, [
|
|
224
224
|
renderSlot(_ctx.$slots, "action", { item })
|
|
225
225
|
])) : createCommentVNode("", true)
|
|
226
226
|
], 2);
|
|
@@ -228,33 +228,33 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
228
228
|
])
|
|
229
229
|
])
|
|
230
230
|
]),
|
|
231
|
-
!__props.items || __props.items.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_10$
|
|
231
|
+
!__props.items || __props.items.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_10$2, [
|
|
232
232
|
renderSlot(_ctx.$slots, "empty")
|
|
233
233
|
])) : createCommentVNode("", true)
|
|
234
234
|
]);
|
|
235
235
|
};
|
|
236
236
|
}
|
|
237
237
|
});
|
|
238
|
-
const _hoisted_1$
|
|
239
|
-
const _hoisted_2$
|
|
240
|
-
const _hoisted_3$
|
|
241
|
-
const _hoisted_4$
|
|
238
|
+
const _hoisted_1$b = { class: "space-y-3" };
|
|
239
|
+
const _hoisted_2$8 = { class: "flex items-center gap-3 p-3" };
|
|
240
|
+
const _hoisted_3$5 = { class: "text-sm text-gray-600 dark:text-gray-400" };
|
|
241
|
+
const _hoisted_4$4 = {
|
|
242
242
|
key: 0,
|
|
243
243
|
class: "text-sm text-primary font-medium"
|
|
244
244
|
};
|
|
245
|
-
const _hoisted_5$
|
|
246
|
-
const _hoisted_6$
|
|
245
|
+
const _hoisted_5$2 = { class: "p-4 flex items-center gap-4" };
|
|
246
|
+
const _hoisted_6$2 = {
|
|
247
247
|
key: 0,
|
|
248
248
|
class: "flex-shrink-0"
|
|
249
249
|
};
|
|
250
|
-
const _hoisted_7$
|
|
250
|
+
const _hoisted_7$2 = {
|
|
251
251
|
key: 1,
|
|
252
252
|
class: "w-5 h-5"
|
|
253
253
|
};
|
|
254
|
-
const _hoisted_8$
|
|
255
|
-
const _hoisted_9$
|
|
256
|
-
const _hoisted_10 = { key: 1 };
|
|
257
|
-
const _sfc_main$
|
|
254
|
+
const _hoisted_8$2 = { class: "flex-1 min-w-0" };
|
|
255
|
+
const _hoisted_9$2 = { class: "flex-shrink-0" };
|
|
256
|
+
const _hoisted_10$1 = { key: 1 };
|
|
257
|
+
const _sfc_main$g = /* @__PURE__ */ defineComponent({
|
|
258
258
|
__name: "MobileList",
|
|
259
259
|
props: {
|
|
260
260
|
items: {},
|
|
@@ -301,42 +301,42 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
301
301
|
};
|
|
302
302
|
const hasEmptySlot = computed(() => !!slots.empty);
|
|
303
303
|
return (_ctx, _cache) => {
|
|
304
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
305
|
-
__props.selectable && selectableItems.value.length > 0 ? (openBlock(), createBlock(_sfc_main$
|
|
304
|
+
return openBlock(), createElementBlock("div", _hoisted_1$b, [
|
|
305
|
+
__props.selectable && selectableItems.value.length > 0 ? (openBlock(), createBlock(_sfc_main$i, { key: 0 }, {
|
|
306
306
|
default: withCtx(() => [
|
|
307
|
-
createElementVNode("div", _hoisted_2$
|
|
308
|
-
createVNode(_sfc_main$
|
|
307
|
+
createElementVNode("div", _hoisted_2$8, [
|
|
308
|
+
createVNode(_sfc_main$j, {
|
|
309
309
|
"model-value": allSelected.value,
|
|
310
310
|
indeterminate: someSelected.value,
|
|
311
311
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("selectAll"))
|
|
312
312
|
}, null, 8, ["model-value", "indeterminate"]),
|
|
313
|
-
createElementVNode("span", _hoisted_3$
|
|
314
|
-
__props.selectedItems && __props.selectedItems.size > 0 ? (openBlock(), createElementBlock("span", _hoisted_4$
|
|
313
|
+
createElementVNode("span", _hoisted_3$5, toDisplayString(allSelected.value ? "Tout désélectionner" : "Tout sélectionner"), 1),
|
|
314
|
+
__props.selectedItems && __props.selectedItems.size > 0 ? (openBlock(), createElementBlock("span", _hoisted_4$4, " (" + toDisplayString(__props.selectedItems.size) + " sélectionné" + toDisplayString(__props.selectedItems.size > 1 ? "s" : "") + ") ", 1)) : createCommentVNode("", true)
|
|
315
315
|
])
|
|
316
316
|
]),
|
|
317
317
|
_: 1
|
|
318
318
|
})) : createCommentVNode("", true),
|
|
319
319
|
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
|
|
320
|
-
return openBlock(), createBlock(_sfc_main$
|
|
320
|
+
return openBlock(), createBlock(_sfc_main$i, {
|
|
321
321
|
key: getKey(item),
|
|
322
322
|
class: normalizeClass(["hover:shadow-lg transition-all duration-200", {
|
|
323
323
|
"ring-2 ring-primary": isSelected(item)
|
|
324
324
|
}])
|
|
325
325
|
}, {
|
|
326
326
|
default: withCtx(() => [
|
|
327
|
-
createElementVNode("div", _hoisted_5$
|
|
328
|
-
__props.selectable ? (openBlock(), createElementBlock("div", _hoisted_6$
|
|
329
|
-
isSelectable(item) ? (openBlock(), createBlock(_sfc_main$
|
|
327
|
+
createElementVNode("div", _hoisted_5$2, [
|
|
328
|
+
__props.selectable ? (openBlock(), createElementBlock("div", _hoisted_6$2, [
|
|
329
|
+
isSelectable(item) ? (openBlock(), createBlock(_sfc_main$j, {
|
|
330
330
|
key: 0,
|
|
331
331
|
"model-value": isSelected(item),
|
|
332
332
|
"onUpdate:modelValue": ($event) => handleSelect(item)
|
|
333
|
-
}, null, 8, ["model-value", "onUpdate:modelValue"])) : (openBlock(), createElementBlock("div", _hoisted_7$
|
|
333
|
+
}, null, 8, ["model-value", "onUpdate:modelValue"])) : (openBlock(), createElementBlock("div", _hoisted_7$2))
|
|
334
334
|
])) : createCommentVNode("", true),
|
|
335
335
|
renderSlot(_ctx.$slots, "avatar", { item }),
|
|
336
|
-
createElementVNode("div", _hoisted_8$
|
|
336
|
+
createElementVNode("div", _hoisted_8$2, [
|
|
337
337
|
renderSlot(_ctx.$slots, "content", { item })
|
|
338
338
|
]),
|
|
339
|
-
createElementVNode("div", _hoisted_9$
|
|
339
|
+
createElementVNode("div", _hoisted_9$2, [
|
|
340
340
|
renderSlot(_ctx.$slots, "actions", { item })
|
|
341
341
|
])
|
|
342
342
|
])
|
|
@@ -344,7 +344,7 @@ const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
|
344
344
|
_: 2
|
|
345
345
|
}, 1032, ["class"]);
|
|
346
346
|
}), 128)),
|
|
347
|
-
__props.items.length === 0 && hasEmptySlot.value ? (openBlock(), createElementBlock("div", _hoisted_10, [
|
|
347
|
+
__props.items.length === 0 && hasEmptySlot.value ? (openBlock(), createElementBlock("div", _hoisted_10$1, [
|
|
348
348
|
renderSlot(_ctx.$slots, "empty")
|
|
349
349
|
])) : createCommentVNode("", true)
|
|
350
350
|
]);
|
|
@@ -552,7 +552,7 @@ function useBreakpoints(breakpoints, options = {}) {
|
|
|
552
552
|
}
|
|
553
553
|
});
|
|
554
554
|
}
|
|
555
|
-
const _sfc_main$
|
|
555
|
+
const _sfc_main$f = /* @__PURE__ */ defineComponent({
|
|
556
556
|
__name: "ResponsiveList",
|
|
557
557
|
props: {
|
|
558
558
|
items: {},
|
|
@@ -607,7 +607,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
607
607
|
const isDesktop = computed(() => breakpoints.greaterOrEqual(props.breakpoint).value);
|
|
608
608
|
return (_ctx, _cache) => {
|
|
609
609
|
return openBlock(), createElementBlock("div", null, [
|
|
610
|
-
!isDesktop.value ? (openBlock(), createBlock(_sfc_main$
|
|
610
|
+
!isDesktop.value ? (openBlock(), createBlock(_sfc_main$g, {
|
|
611
611
|
key: 0,
|
|
612
612
|
items: __props.items,
|
|
613
613
|
"key-field": __props.keyField,
|
|
@@ -632,9 +632,9 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
632
632
|
renderSlot(_ctx.$slots, "empty")
|
|
633
633
|
]),
|
|
634
634
|
_: 3
|
|
635
|
-
}, 8, ["items", "key-field", "selectable", "selected-items", "selectable-filter"])) : (openBlock(), createBlock(_sfc_main$
|
|
635
|
+
}, 8, ["items", "key-field", "selectable", "selected-items", "selectable-filter"])) : (openBlock(), createBlock(_sfc_main$i, { key: 1 }, {
|
|
636
636
|
default: withCtx(() => [
|
|
637
|
-
createVNode(_sfc_main$
|
|
637
|
+
createVNode(_sfc_main$h, {
|
|
638
638
|
items: __props.items,
|
|
639
639
|
properties: tableProperties.value,
|
|
640
640
|
"key-field": __props.keyField,
|
|
@@ -678,25 +678,25 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
678
678
|
};
|
|
679
679
|
}
|
|
680
680
|
});
|
|
681
|
-
const _hoisted_1$
|
|
681
|
+
const _hoisted_1$a = {
|
|
682
682
|
key: 0,
|
|
683
683
|
class: "mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"
|
|
684
684
|
};
|
|
685
|
-
const _hoisted_2$
|
|
686
|
-
const _hoisted_3$
|
|
687
|
-
const _hoisted_4 = ["disabled"];
|
|
688
|
-
const _hoisted_5 = {
|
|
685
|
+
const _hoisted_2$7 = { class: "relative" };
|
|
686
|
+
const _hoisted_3$4 = ["disabled", "placeholder"];
|
|
687
|
+
const _hoisted_4$3 = ["disabled"];
|
|
688
|
+
const _hoisted_5$1 = {
|
|
689
689
|
key: 0,
|
|
690
690
|
class: "px-4 py-3 text-sm text-gray-500"
|
|
691
691
|
};
|
|
692
|
-
const _hoisted_6 = ["data-index", "onClick"];
|
|
693
|
-
const _hoisted_7 = { class: "flex-1 dark:text-white" };
|
|
694
|
-
const _hoisted_8 = { class: "text-xs text-gray-400" };
|
|
695
|
-
const _hoisted_9 = {
|
|
692
|
+
const _hoisted_6$1 = ["data-index", "onClick"];
|
|
693
|
+
const _hoisted_7$1 = { class: "flex-1 dark:text-white" };
|
|
694
|
+
const _hoisted_8$1 = { class: "text-xs text-gray-400" };
|
|
695
|
+
const _hoisted_9$1 = {
|
|
696
696
|
key: 1,
|
|
697
697
|
class: "mt-1 text-sm text-red-600"
|
|
698
698
|
};
|
|
699
|
-
const _sfc_main$
|
|
699
|
+
const _sfc_main$e = /* @__PURE__ */ defineComponent({
|
|
700
700
|
__name: "AutocompleteComponent",
|
|
701
701
|
props: {
|
|
702
702
|
modelValue: {},
|
|
@@ -798,8 +798,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
798
798
|
ref: containerRef,
|
|
799
799
|
class: "autocomplete-container"
|
|
800
800
|
}, [
|
|
801
|
-
__props.label ? (openBlock(), createElementBlock("label", _hoisted_1$
|
|
802
|
-
createElementVNode("div", _hoisted_2$
|
|
801
|
+
__props.label ? (openBlock(), createElementBlock("label", _hoisted_1$a, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
|
|
802
|
+
createElementVNode("div", _hoisted_2$7, [
|
|
803
803
|
createElementVNode("div", {
|
|
804
804
|
ref_key: "inputWrapperRef",
|
|
805
805
|
ref: inputWrapperRef,
|
|
@@ -824,7 +824,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
824
824
|
type: "text",
|
|
825
825
|
onFocus: openDropdown,
|
|
826
826
|
onKeydown: handleKeydown
|
|
827
|
-
}, null, 40, _hoisted_3$
|
|
827
|
+
}, null, 40, _hoisted_3$4), [
|
|
828
828
|
[vModelText, searchQuery.value]
|
|
829
829
|
]),
|
|
830
830
|
__props.modelValue && !__props.disabled ? (openBlock(), createElementBlock("button", {
|
|
@@ -848,7 +848,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
848
848
|
class: normalizeClass([{ "rotate-180": unref(isOpen) }, "size-4 text-gray-400 transition"]),
|
|
849
849
|
icon: "lucide:chevron-down"
|
|
850
850
|
}, null, 8, ["class"])
|
|
851
|
-
], 8, _hoisted_4)
|
|
851
|
+
], 8, _hoisted_4$3)
|
|
852
852
|
], 2),
|
|
853
853
|
(openBlock(), createBlock(Teleport, {
|
|
854
854
|
to: "body",
|
|
@@ -873,7 +873,7 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
873
873
|
!__props.teleport && "absolute mt-2 w-full"
|
|
874
874
|
])
|
|
875
875
|
}, [
|
|
876
|
-
filteredOptions.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_5, toDisplayString(__props.noResultsText || "No results found"), 1)) : createCommentVNode("", true),
|
|
876
|
+
filteredOptions.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_5$1, toDisplayString(__props.noResultsText || "No results found"), 1)) : createCommentVNode("", true),
|
|
877
877
|
(openBlock(true), createElementBlock(Fragment, null, renderList(filteredOptions.value, (option, index) => {
|
|
878
878
|
return openBlock(), createElementBlock("button", {
|
|
879
879
|
key: option.value,
|
|
@@ -890,9 +890,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
890
890
|
class: "size-4 text-primary",
|
|
891
891
|
icon: "lucide:check"
|
|
892
892
|
})) : createCommentVNode("", true),
|
|
893
|
-
createElementVNode("span", _hoisted_7, toDisplayString(option.label), 1),
|
|
894
|
-
createElementVNode("span", _hoisted_8, "(" + toDisplayString(option.value) + ")", 1)
|
|
895
|
-
], 10, _hoisted_6);
|
|
893
|
+
createElementVNode("span", _hoisted_7$1, toDisplayString(option.label), 1),
|
|
894
|
+
createElementVNode("span", _hoisted_8$1, "(" + toDisplayString(option.value) + ")", 1)
|
|
895
|
+
], 10, _hoisted_6$1);
|
|
896
896
|
}), 128))
|
|
897
897
|
], 6)) : createCommentVNode("", true)
|
|
898
898
|
]),
|
|
@@ -900,12 +900,12 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
900
900
|
})
|
|
901
901
|
], 8, ["disabled"]))
|
|
902
902
|
]),
|
|
903
|
-
__props.error ? (openBlock(), createElementBlock("p", _hoisted_9, toDisplayString(__props.error), 1)) : createCommentVNode("", true)
|
|
903
|
+
__props.error ? (openBlock(), createElementBlock("p", _hoisted_9$1, toDisplayString(__props.error), 1)) : createCommentVNode("", true)
|
|
904
904
|
], 512);
|
|
905
905
|
};
|
|
906
906
|
}
|
|
907
907
|
});
|
|
908
|
-
const _sfc_main$
|
|
908
|
+
const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
909
909
|
__name: "TableAction",
|
|
910
910
|
props: {
|
|
911
911
|
link: {},
|
|
@@ -974,7 +974,7 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
974
974
|
};
|
|
975
975
|
}
|
|
976
976
|
});
|
|
977
|
-
const _sfc_main$
|
|
977
|
+
const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
978
978
|
__name: "Button",
|
|
979
979
|
props: {
|
|
980
980
|
variant: { default: "primary" },
|
|
@@ -1067,10 +1067,10 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
1067
1067
|
};
|
|
1068
1068
|
}
|
|
1069
1069
|
});
|
|
1070
|
-
const _hoisted_1$
|
|
1071
|
-
const _hoisted_2$
|
|
1072
|
-
const _hoisted_3 = { key: 1 };
|
|
1073
|
-
const _sfc_main$
|
|
1070
|
+
const _hoisted_1$9 = { class: "relative inline-block" };
|
|
1071
|
+
const _hoisted_2$6 = ["src", "alt"];
|
|
1072
|
+
const _hoisted_3$3 = { key: 1 };
|
|
1073
|
+
const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
1074
1074
|
__name: "Avatar",
|
|
1075
1075
|
props: {
|
|
1076
1076
|
src: {},
|
|
@@ -1116,7 +1116,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
1116
1116
|
});
|
|
1117
1117
|
const showImage = computed(() => props.src && !imageError.value);
|
|
1118
1118
|
return (_ctx, _cache) => {
|
|
1119
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1119
|
+
return openBlock(), createElementBlock("div", _hoisted_1$9, [
|
|
1120
1120
|
createElementVNode("div", {
|
|
1121
1121
|
class: normalizeClass([
|
|
1122
1122
|
"flex items-center justify-center overflow-hidden bg-gray-200 font-medium text-gray-600 dark:bg-gray-700 dark:text-gray-300",
|
|
@@ -1130,7 +1130,7 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
1130
1130
|
alt: __props.alt || __props.name,
|
|
1131
1131
|
class: "size-full object-cover",
|
|
1132
1132
|
onError: _cache[0] || (_cache[0] = ($event) => imageError.value = true)
|
|
1133
|
-
}, null, 40, _hoisted_2$
|
|
1133
|
+
}, null, 40, _hoisted_2$6)) : initials.value ? (openBlock(), createElementBlock("span", _hoisted_3$3, toDisplayString(initials.value), 1)) : (openBlock(), createBlock(unref(Icon), {
|
|
1134
1134
|
key: 2,
|
|
1135
1135
|
icon: "lucide:user",
|
|
1136
1136
|
class: "size-1/2"
|
|
@@ -1148,9 +1148,9 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
1148
1148
|
};
|
|
1149
1149
|
}
|
|
1150
1150
|
});
|
|
1151
|
-
const _hoisted_1$
|
|
1152
|
-
const _hoisted_2$
|
|
1153
|
-
const _sfc_main$
|
|
1151
|
+
const _hoisted_1$8 = ["aria-selected", "disabled", "onClick"];
|
|
1152
|
+
const _hoisted_2$5 = { class: "mt-4" };
|
|
1153
|
+
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
1154
1154
|
__name: "Tabs",
|
|
1155
1155
|
props: {
|
|
1156
1156
|
tabs: {},
|
|
@@ -1215,18 +1215,18 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
1215
1215
|
activeTab.value === tab.key ? variantClasses[__props.variant].active : variantClasses[__props.variant].inactive
|
|
1216
1216
|
]),
|
|
1217
1217
|
onClick: ($event) => selectTab(tab)
|
|
1218
|
-
}, toDisplayString(tab.label), 11, _hoisted_1$
|
|
1218
|
+
}, toDisplayString(tab.label), 11, _hoisted_1$8);
|
|
1219
1219
|
}), 128))
|
|
1220
1220
|
], 2),
|
|
1221
|
-
createElementVNode("div", _hoisted_2$
|
|
1221
|
+
createElementVNode("div", _hoisted_2$5, [
|
|
1222
1222
|
renderSlot(_ctx.$slots, "default", { activeTab: activeTab.value })
|
|
1223
1223
|
])
|
|
1224
1224
|
]);
|
|
1225
1225
|
};
|
|
1226
1226
|
}
|
|
1227
1227
|
});
|
|
1228
|
-
const _hoisted_1$
|
|
1229
|
-
const _sfc_main$
|
|
1228
|
+
const _hoisted_1$7 = { role: "tabpanel" };
|
|
1229
|
+
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
1230
1230
|
__name: "TabPanel",
|
|
1231
1231
|
props: {
|
|
1232
1232
|
value: {}
|
|
@@ -1236,7 +1236,7 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
1236
1236
|
const activeTab = inject("activeTab");
|
|
1237
1237
|
const isActive = computed(() => (activeTab == null ? void 0 : activeTab.value) === props.value);
|
|
1238
1238
|
return (_ctx, _cache) => {
|
|
1239
|
-
return withDirectives((openBlock(), createElementBlock("div", _hoisted_1$
|
|
1239
|
+
return withDirectives((openBlock(), createElementBlock("div", _hoisted_1$7, [
|
|
1240
1240
|
renderSlot(_ctx.$slots, "default")
|
|
1241
1241
|
], 512)), [
|
|
1242
1242
|
[vShow, isActive.value]
|
|
@@ -1244,11 +1244,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
1244
1244
|
};
|
|
1245
1245
|
}
|
|
1246
1246
|
});
|
|
1247
|
-
const _hoisted_1$
|
|
1247
|
+
const _hoisted_1$6 = {
|
|
1248
1248
|
key: 2,
|
|
1249
1249
|
class: "text-sm font-semibold"
|
|
1250
1250
|
};
|
|
1251
|
-
const _sfc_main$
|
|
1251
|
+
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
1252
1252
|
__name: "Stepper",
|
|
1253
1253
|
props: {
|
|
1254
1254
|
steps: {},
|
|
@@ -1317,7 +1317,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1317
1317
|
key: 1,
|
|
1318
1318
|
icon: step.icon,
|
|
1319
1319
|
class: "size-6"
|
|
1320
|
-
}, null, 8, ["icon"])) : (openBlock(), createElementBlock("span", _hoisted_1$
|
|
1320
|
+
}, null, 8, ["icon"])) : (openBlock(), createElementBlock("span", _hoisted_1$6, toDisplayString(index + 1), 1))
|
|
1321
1321
|
], 2),
|
|
1322
1322
|
createElementVNode("div", {
|
|
1323
1323
|
class: normalizeClass([
|
|
@@ -1345,9 +1345,9 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1345
1345
|
};
|
|
1346
1346
|
}
|
|
1347
1347
|
});
|
|
1348
|
-
const _hoisted_1 = { class: "overflow-hidden" };
|
|
1349
|
-
const _hoisted_2 = { class: "space-y-4 p-6" };
|
|
1350
|
-
const _sfc_main$
|
|
1348
|
+
const _hoisted_1$5 = { class: "overflow-hidden" };
|
|
1349
|
+
const _hoisted_2$4 = { class: "space-y-4 p-6" };
|
|
1350
|
+
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
1351
1351
|
__name: "CollapsibleCard",
|
|
1352
1352
|
props: {
|
|
1353
1353
|
title: {},
|
|
@@ -1361,7 +1361,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
1361
1361
|
isExpanded.value = !isExpanded.value;
|
|
1362
1362
|
};
|
|
1363
1363
|
return (_ctx, _cache) => {
|
|
1364
|
-
return openBlock(), createBlock(_sfc_main$
|
|
1364
|
+
return openBlock(), createBlock(_sfc_main$i, {
|
|
1365
1365
|
title: __props.title,
|
|
1366
1366
|
description: __props.description
|
|
1367
1367
|
}, {
|
|
@@ -1388,8 +1388,8 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
1388
1388
|
"leave-to-class": "opacity-0 max-h-0"
|
|
1389
1389
|
}, {
|
|
1390
1390
|
default: withCtx(() => [
|
|
1391
|
-
withDirectives(createElementVNode("div", _hoisted_1, [
|
|
1392
|
-
createElementVNode("div", _hoisted_2, [
|
|
1391
|
+
withDirectives(createElementVNode("div", _hoisted_1$5, [
|
|
1392
|
+
createElementVNode("div", _hoisted_2$4, [
|
|
1393
1393
|
renderSlot(_ctx.$slots, "default")
|
|
1394
1394
|
])
|
|
1395
1395
|
], 512), [
|
|
@@ -1404,7 +1404,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
1404
1404
|
};
|
|
1405
1405
|
}
|
|
1406
1406
|
});
|
|
1407
|
-
const _sfc_main$
|
|
1407
|
+
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
1408
1408
|
__name: "Tooltip",
|
|
1409
1409
|
props: {
|
|
1410
1410
|
content: {},
|
|
@@ -1479,7 +1479,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1479
1479
|
};
|
|
1480
1480
|
}
|
|
1481
1481
|
});
|
|
1482
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
1482
|
+
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
1483
1483
|
__name: "Popover",
|
|
1484
1484
|
props: {
|
|
1485
1485
|
position: { default: "bottom" },
|
|
@@ -1562,20 +1562,476 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1562
1562
|
};
|
|
1563
1563
|
}
|
|
1564
1564
|
});
|
|
1565
|
+
const _hoisted_1$4 = {
|
|
1566
|
+
key: 0,
|
|
1567
|
+
class: "flex items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700"
|
|
1568
|
+
};
|
|
1569
|
+
const _hoisted_2$3 = { class: "text-lg font-semibold text-gray-900 dark:text-white" };
|
|
1570
|
+
const _hoisted_3$2 = { class: "flex-1 overflow-y-auto p-4" };
|
|
1571
|
+
const _hoisted_4$2 = {
|
|
1572
|
+
key: 1,
|
|
1573
|
+
class: "px-4 py-3 border-t border-gray-200 dark:border-gray-700"
|
|
1574
|
+
};
|
|
1575
|
+
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
1576
|
+
__name: "Drawer",
|
|
1577
|
+
props: {
|
|
1578
|
+
modelValue: { type: Boolean },
|
|
1579
|
+
position: { default: "right" },
|
|
1580
|
+
size: { default: "md" },
|
|
1581
|
+
title: {},
|
|
1582
|
+
showClose: { type: Boolean, default: true },
|
|
1583
|
+
closeOnOverlay: { type: Boolean, default: true },
|
|
1584
|
+
closeOnEscape: { type: Boolean, default: true },
|
|
1585
|
+
overlay: { type: Boolean, default: true }
|
|
1586
|
+
},
|
|
1587
|
+
emits: ["update:modelValue"],
|
|
1588
|
+
setup(__props, { emit: __emit }) {
|
|
1589
|
+
const props = __props;
|
|
1590
|
+
const emit = __emit;
|
|
1591
|
+
const close = () => {
|
|
1592
|
+
emit("update:modelValue", false);
|
|
1593
|
+
};
|
|
1594
|
+
const handleOverlayClick = () => {
|
|
1595
|
+
if (props.closeOnOverlay) {
|
|
1596
|
+
close();
|
|
1597
|
+
}
|
|
1598
|
+
};
|
|
1599
|
+
const handleKeydown = (e) => {
|
|
1600
|
+
if (e.key === "Escape" && props.closeOnEscape && props.modelValue) {
|
|
1601
|
+
close();
|
|
1602
|
+
}
|
|
1603
|
+
};
|
|
1604
|
+
onMounted(() => {
|
|
1605
|
+
document.addEventListener("keydown", handleKeydown);
|
|
1606
|
+
});
|
|
1607
|
+
onUnmounted(() => {
|
|
1608
|
+
document.removeEventListener("keydown", handleKeydown);
|
|
1609
|
+
});
|
|
1610
|
+
watch(
|
|
1611
|
+
() => props.modelValue,
|
|
1612
|
+
(isOpen) => {
|
|
1613
|
+
if (isOpen) {
|
|
1614
|
+
document.body.style.overflow = "hidden";
|
|
1615
|
+
} else {
|
|
1616
|
+
document.body.style.overflow = "";
|
|
1617
|
+
}
|
|
1618
|
+
}
|
|
1619
|
+
);
|
|
1620
|
+
const sizeClasses = computed(() => {
|
|
1621
|
+
const isHorizontal = props.position === "left" || props.position === "right";
|
|
1622
|
+
const sizes = {
|
|
1623
|
+
sm: isHorizontal ? "w-64" : "h-32",
|
|
1624
|
+
md: isHorizontal ? "w-80" : "h-48",
|
|
1625
|
+
lg: isHorizontal ? "w-96" : "h-64",
|
|
1626
|
+
xl: isHorizontal ? "w-[32rem]" : "h-96",
|
|
1627
|
+
full: isHorizontal ? "w-screen" : "h-screen"
|
|
1628
|
+
};
|
|
1629
|
+
return sizes[props.size];
|
|
1630
|
+
});
|
|
1631
|
+
const positionClasses = computed(() => {
|
|
1632
|
+
const base = "fixed bg-white dark:bg-gray-800 shadow-xl flex flex-col";
|
|
1633
|
+
switch (props.position) {
|
|
1634
|
+
case "left":
|
|
1635
|
+
return `${base} inset-y-0 left-0 ${sizeClasses.value}`;
|
|
1636
|
+
case "right":
|
|
1637
|
+
return `${base} inset-y-0 right-0 ${sizeClasses.value}`;
|
|
1638
|
+
case "top":
|
|
1639
|
+
return `${base} inset-x-0 top-0 ${sizeClasses.value}`;
|
|
1640
|
+
case "bottom":
|
|
1641
|
+
return `${base} inset-x-0 bottom-0 ${sizeClasses.value}`;
|
|
1642
|
+
default:
|
|
1643
|
+
return base;
|
|
1644
|
+
}
|
|
1645
|
+
});
|
|
1646
|
+
const transformClasses = computed(() => {
|
|
1647
|
+
switch (props.position) {
|
|
1648
|
+
case "left":
|
|
1649
|
+
return { enter: "-translate-x-full", leave: "-translate-x-full" };
|
|
1650
|
+
case "right":
|
|
1651
|
+
return { enter: "translate-x-full", leave: "translate-x-full" };
|
|
1652
|
+
case "top":
|
|
1653
|
+
return { enter: "-translate-y-full", leave: "-translate-y-full" };
|
|
1654
|
+
case "bottom":
|
|
1655
|
+
return { enter: "translate-y-full", leave: "translate-y-full" };
|
|
1656
|
+
default:
|
|
1657
|
+
return { enter: "", leave: "" };
|
|
1658
|
+
}
|
|
1659
|
+
});
|
|
1660
|
+
return (_ctx, _cache) => {
|
|
1661
|
+
return openBlock(), createBlock(Teleport, { to: "body" }, [
|
|
1662
|
+
createVNode(Transition, {
|
|
1663
|
+
"enter-active-class": "transition-opacity duration-300 ease-out",
|
|
1664
|
+
"enter-from-class": "opacity-0",
|
|
1665
|
+
"enter-to-class": "opacity-100",
|
|
1666
|
+
"leave-active-class": "transition-opacity duration-200 ease-in",
|
|
1667
|
+
"leave-from-class": "opacity-100",
|
|
1668
|
+
"leave-to-class": "opacity-0"
|
|
1669
|
+
}, {
|
|
1670
|
+
default: withCtx(() => [
|
|
1671
|
+
__props.modelValue && __props.overlay ? (openBlock(), createElementBlock("div", {
|
|
1672
|
+
key: 0,
|
|
1673
|
+
class: "fixed inset-0 z-40 bg-black/50",
|
|
1674
|
+
onClick: handleOverlayClick
|
|
1675
|
+
})) : createCommentVNode("", true)
|
|
1676
|
+
]),
|
|
1677
|
+
_: 1
|
|
1678
|
+
}),
|
|
1679
|
+
createVNode(Transition, {
|
|
1680
|
+
"enter-active-class": "transition-transform duration-300 ease-out",
|
|
1681
|
+
"enter-from-class": transformClasses.value.enter,
|
|
1682
|
+
"enter-to-class": "translate-x-0 translate-y-0",
|
|
1683
|
+
"leave-active-class": "transition-transform duration-200 ease-in",
|
|
1684
|
+
"leave-from-class": "translate-x-0 translate-y-0",
|
|
1685
|
+
"leave-to-class": transformClasses.value.leave
|
|
1686
|
+
}, {
|
|
1687
|
+
default: withCtx(() => [
|
|
1688
|
+
__props.modelValue ? (openBlock(), createElementBlock("div", {
|
|
1689
|
+
key: 0,
|
|
1690
|
+
class: normalizeClass([positionClasses.value, "z-50"]),
|
|
1691
|
+
role: "dialog",
|
|
1692
|
+
"aria-modal": "true"
|
|
1693
|
+
}, [
|
|
1694
|
+
__props.title || __props.showClose || _ctx.$slots.header ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
|
|
1695
|
+
renderSlot(_ctx.$slots, "header", {}, () => [
|
|
1696
|
+
createElementVNode("h2", _hoisted_2$3, toDisplayString(__props.title), 1)
|
|
1697
|
+
]),
|
|
1698
|
+
__props.showClose ? (openBlock(), createElementBlock("button", {
|
|
1699
|
+
key: 0,
|
|
1700
|
+
type: "button",
|
|
1701
|
+
class: "p-1 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300 rounded-lg hover:bg-gray-100 dark:hover:bg-gray-700",
|
|
1702
|
+
onClick: close
|
|
1703
|
+
}, [
|
|
1704
|
+
createVNode(unref(Icon), {
|
|
1705
|
+
icon: "heroicons:x-mark",
|
|
1706
|
+
class: "w-5 h-5"
|
|
1707
|
+
})
|
|
1708
|
+
])) : createCommentVNode("", true)
|
|
1709
|
+
])) : createCommentVNode("", true),
|
|
1710
|
+
createElementVNode("div", _hoisted_3$2, [
|
|
1711
|
+
renderSlot(_ctx.$slots, "default")
|
|
1712
|
+
]),
|
|
1713
|
+
_ctx.$slots.footer ? (openBlock(), createElementBlock("div", _hoisted_4$2, [
|
|
1714
|
+
renderSlot(_ctx.$slots, "footer")
|
|
1715
|
+
])) : createCommentVNode("", true)
|
|
1716
|
+
], 2)) : createCommentVNode("", true)
|
|
1717
|
+
]),
|
|
1718
|
+
_: 3
|
|
1719
|
+
}, 8, ["enter-from-class", "leave-to-class"])
|
|
1720
|
+
]);
|
|
1721
|
+
};
|
|
1722
|
+
}
|
|
1723
|
+
});
|
|
1724
|
+
const _hoisted_1$3 = { "aria-label": "Breadcrumb" };
|
|
1725
|
+
const _hoisted_2$2 = { class: "flex items-center flex-wrap gap-1 text-sm" };
|
|
1726
|
+
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
1727
|
+
__name: "Breadcrumb",
|
|
1728
|
+
props: {
|
|
1729
|
+
items: {},
|
|
1730
|
+
separator: { default: "heroicons:chevron-right" },
|
|
1731
|
+
homeIcon: { default: "heroicons:home" },
|
|
1732
|
+
showHomeIcon: { type: Boolean, default: true }
|
|
1733
|
+
},
|
|
1734
|
+
emits: ["click"],
|
|
1735
|
+
setup(__props) {
|
|
1736
|
+
return (_ctx, _cache) => {
|
|
1737
|
+
return openBlock(), createElementBlock("nav", _hoisted_1$3, [
|
|
1738
|
+
createElementVNode("ol", _hoisted_2$2, [
|
|
1739
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index) => {
|
|
1740
|
+
return openBlock(), createElementBlock("li", {
|
|
1741
|
+
key: index,
|
|
1742
|
+
class: "flex items-center"
|
|
1743
|
+
}, [
|
|
1744
|
+
index > 0 ? (openBlock(), createBlock(unref(Icon), {
|
|
1745
|
+
key: 0,
|
|
1746
|
+
icon: __props.separator,
|
|
1747
|
+
class: "w-4 h-4 mx-2 text-gray-400 dark:text-gray-500 flex-shrink-0"
|
|
1748
|
+
}, null, 8, ["icon"])) : createCommentVNode("", true),
|
|
1749
|
+
(openBlock(), createBlock(resolveDynamicComponent(item.to ? "router-link" : item.href ? "a" : "span"), {
|
|
1750
|
+
to: item.to,
|
|
1751
|
+
href: item.href,
|
|
1752
|
+
class: normalizeClass([
|
|
1753
|
+
"flex items-center gap-1.5 transition-colors",
|
|
1754
|
+
index === __props.items.length - 1 ? "text-gray-900 dark:text-white font-medium cursor-default" : "text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400"
|
|
1755
|
+
]),
|
|
1756
|
+
"aria-current": index === __props.items.length - 1 ? "page" : void 0,
|
|
1757
|
+
onClick: ($event) => _ctx.$emit("click", item, index)
|
|
1758
|
+
}, {
|
|
1759
|
+
default: withCtx(() => [
|
|
1760
|
+
index === 0 && __props.showHomeIcon ? (openBlock(), createBlock(unref(Icon), {
|
|
1761
|
+
key: 0,
|
|
1762
|
+
icon: item.icon || __props.homeIcon,
|
|
1763
|
+
class: "w-4 h-4"
|
|
1764
|
+
}, null, 8, ["icon"])) : item.icon ? (openBlock(), createBlock(unref(Icon), {
|
|
1765
|
+
key: 1,
|
|
1766
|
+
icon: item.icon,
|
|
1767
|
+
class: "w-4 h-4"
|
|
1768
|
+
}, null, 8, ["icon"])) : createCommentVNode("", true),
|
|
1769
|
+
createElementVNode("span", null, toDisplayString(item.label), 1)
|
|
1770
|
+
]),
|
|
1771
|
+
_: 2
|
|
1772
|
+
}, 1032, ["to", "href", "class", "aria-current", "onClick"]))
|
|
1773
|
+
]);
|
|
1774
|
+
}), 128))
|
|
1775
|
+
])
|
|
1776
|
+
]);
|
|
1777
|
+
};
|
|
1778
|
+
}
|
|
1779
|
+
});
|
|
1780
|
+
const _hoisted_1$2 = { class: "divide-y divide-gray-200 dark:divide-gray-700 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden" };
|
|
1781
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
1782
|
+
__name: "Accordion",
|
|
1783
|
+
props: {
|
|
1784
|
+
mode: { default: "single" },
|
|
1785
|
+
defaultOpen: { default: () => [] }
|
|
1786
|
+
},
|
|
1787
|
+
setup(__props) {
|
|
1788
|
+
const props = __props;
|
|
1789
|
+
const openItems = ref(new Set(props.defaultOpen));
|
|
1790
|
+
const toggle = (key) => {
|
|
1791
|
+
if (openItems.value.has(key)) {
|
|
1792
|
+
openItems.value.delete(key);
|
|
1793
|
+
} else {
|
|
1794
|
+
if (props.mode === "single") {
|
|
1795
|
+
openItems.value.clear();
|
|
1796
|
+
}
|
|
1797
|
+
openItems.value.add(key);
|
|
1798
|
+
}
|
|
1799
|
+
openItems.value = new Set(openItems.value);
|
|
1800
|
+
};
|
|
1801
|
+
const isOpen = (key) => openItems.value.has(key);
|
|
1802
|
+
provide("accordion", {
|
|
1803
|
+
toggle,
|
|
1804
|
+
isOpen
|
|
1805
|
+
});
|
|
1806
|
+
return (_ctx, _cache) => {
|
|
1807
|
+
return openBlock(), createElementBlock("div", _hoisted_1$2, [
|
|
1808
|
+
renderSlot(_ctx.$slots, "default")
|
|
1809
|
+
]);
|
|
1810
|
+
};
|
|
1811
|
+
}
|
|
1812
|
+
});
|
|
1813
|
+
const _hoisted_1$1 = ["disabled", "aria-expanded"];
|
|
1814
|
+
const _hoisted_2$1 = { class: "flex items-center gap-2 font-medium" };
|
|
1815
|
+
const _hoisted_3$1 = { class: "overflow-hidden" };
|
|
1816
|
+
const _hoisted_4$1 = { class: "px-4 py-3 bg-gray-50 dark:bg-gray-900 text-gray-700 dark:text-gray-300" };
|
|
1817
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
1818
|
+
__name: "AccordionItem",
|
|
1819
|
+
props: {
|
|
1820
|
+
itemKey: {},
|
|
1821
|
+
title: {},
|
|
1822
|
+
icon: {},
|
|
1823
|
+
disabled: { type: Boolean }
|
|
1824
|
+
},
|
|
1825
|
+
setup(__props) {
|
|
1826
|
+
const props = __props;
|
|
1827
|
+
const accordion = inject("accordion");
|
|
1828
|
+
const isOpen = computed(() => (accordion == null ? void 0 : accordion.isOpen(props.itemKey)) ?? false);
|
|
1829
|
+
const toggle = () => {
|
|
1830
|
+
if (!props.disabled) {
|
|
1831
|
+
accordion == null ? void 0 : accordion.toggle(props.itemKey);
|
|
1832
|
+
}
|
|
1833
|
+
};
|
|
1834
|
+
return (_ctx, _cache) => {
|
|
1835
|
+
return openBlock(), createElementBlock("div", null, [
|
|
1836
|
+
createElementVNode("button", {
|
|
1837
|
+
type: "button",
|
|
1838
|
+
class: normalizeClass(["flex items-center justify-between w-full px-4 py-3 text-left transition-colors", [
|
|
1839
|
+
__props.disabled ? "bg-gray-50 text-gray-400 cursor-not-allowed dark:bg-gray-800 dark:text-gray-500" : "bg-white hover:bg-gray-50 text-gray-900 dark:bg-gray-800 dark:hover:bg-gray-700 dark:text-white"
|
|
1840
|
+
]]),
|
|
1841
|
+
disabled: __props.disabled,
|
|
1842
|
+
"aria-expanded": isOpen.value,
|
|
1843
|
+
onClick: toggle
|
|
1844
|
+
}, [
|
|
1845
|
+
createElementVNode("span", _hoisted_2$1, [
|
|
1846
|
+
__props.icon ? (openBlock(), createBlock(unref(Icon), {
|
|
1847
|
+
key: 0,
|
|
1848
|
+
icon: __props.icon,
|
|
1849
|
+
class: "w-5 h-5"
|
|
1850
|
+
}, null, 8, ["icon"])) : createCommentVNode("", true),
|
|
1851
|
+
createTextVNode(" " + toDisplayString(__props.title), 1)
|
|
1852
|
+
]),
|
|
1853
|
+
createVNode(unref(Icon), {
|
|
1854
|
+
icon: "heroicons:chevron-down",
|
|
1855
|
+
class: normalizeClass(["w-5 h-5 transition-transform duration-200", { "rotate-180": isOpen.value }])
|
|
1856
|
+
}, null, 8, ["class"])
|
|
1857
|
+
], 10, _hoisted_1$1),
|
|
1858
|
+
createVNode(Transition, {
|
|
1859
|
+
"enter-active-class": "transition-all duration-200 ease-out",
|
|
1860
|
+
"enter-from-class": "opacity-0 max-h-0",
|
|
1861
|
+
"enter-to-class": "opacity-100 max-h-screen",
|
|
1862
|
+
"leave-active-class": "transition-all duration-150 ease-in",
|
|
1863
|
+
"leave-from-class": "opacity-100 max-h-screen",
|
|
1864
|
+
"leave-to-class": "opacity-0 max-h-0"
|
|
1865
|
+
}, {
|
|
1866
|
+
default: withCtx(() => [
|
|
1867
|
+
withDirectives(createElementVNode("div", _hoisted_3$1, [
|
|
1868
|
+
createElementVNode("div", _hoisted_4$1, [
|
|
1869
|
+
renderSlot(_ctx.$slots, "default")
|
|
1870
|
+
])
|
|
1871
|
+
], 512), [
|
|
1872
|
+
[vShow, isOpen.value]
|
|
1873
|
+
])
|
|
1874
|
+
]),
|
|
1875
|
+
_: 3
|
|
1876
|
+
})
|
|
1877
|
+
]);
|
|
1878
|
+
};
|
|
1879
|
+
}
|
|
1880
|
+
});
|
|
1881
|
+
const _hoisted_1 = {
|
|
1882
|
+
key: 0,
|
|
1883
|
+
class: "relative"
|
|
1884
|
+
};
|
|
1885
|
+
const _hoisted_2 = { class: "flex items-start gap-4" };
|
|
1886
|
+
const _hoisted_3 = { class: "flex-1 min-w-0 pt-0.5" };
|
|
1887
|
+
const _hoisted_4 = { class: "flex items-center justify-between gap-2" };
|
|
1888
|
+
const _hoisted_5 = { class: "text-sm font-medium text-gray-900 dark:text-white" };
|
|
1889
|
+
const _hoisted_6 = {
|
|
1890
|
+
key: 0,
|
|
1891
|
+
class: "text-xs text-gray-500 dark:text-gray-400 whitespace-nowrap"
|
|
1892
|
+
};
|
|
1893
|
+
const _hoisted_7 = {
|
|
1894
|
+
key: 0,
|
|
1895
|
+
class: "mt-1 text-sm text-gray-600 dark:text-gray-400"
|
|
1896
|
+
};
|
|
1897
|
+
const _hoisted_8 = {
|
|
1898
|
+
key: 1,
|
|
1899
|
+
class: "flex items-start overflow-x-auto pb-4"
|
|
1900
|
+
};
|
|
1901
|
+
const _hoisted_9 = { class: "flex items-center w-full" };
|
|
1902
|
+
const _hoisted_10 = { class: "mt-2 text-center max-w-[120px]" };
|
|
1903
|
+
const _hoisted_11 = { class: "text-xs font-medium text-gray-900 dark:text-white" };
|
|
1904
|
+
const _hoisted_12 = {
|
|
1905
|
+
key: 0,
|
|
1906
|
+
class: "text-xs text-gray-500 dark:text-gray-400"
|
|
1907
|
+
};
|
|
1908
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
1909
|
+
__name: "Timeline",
|
|
1910
|
+
props: {
|
|
1911
|
+
items: {},
|
|
1912
|
+
orientation: { default: "vertical" }
|
|
1913
|
+
},
|
|
1914
|
+
setup(__props) {
|
|
1915
|
+
const getStatusClasses = (status) => {
|
|
1916
|
+
switch (status) {
|
|
1917
|
+
case "completed":
|
|
1918
|
+
return {
|
|
1919
|
+
dot: "bg-green-500",
|
|
1920
|
+
line: "bg-green-500",
|
|
1921
|
+
icon: "text-white"
|
|
1922
|
+
};
|
|
1923
|
+
case "current":
|
|
1924
|
+
return {
|
|
1925
|
+
dot: "bg-primary-500 ring-4 ring-primary-100 dark:ring-primary-900",
|
|
1926
|
+
line: "bg-gray-200 dark:bg-gray-700",
|
|
1927
|
+
icon: "text-white"
|
|
1928
|
+
};
|
|
1929
|
+
case "error":
|
|
1930
|
+
return {
|
|
1931
|
+
dot: "bg-red-500",
|
|
1932
|
+
line: "bg-red-500",
|
|
1933
|
+
icon: "text-white"
|
|
1934
|
+
};
|
|
1935
|
+
default:
|
|
1936
|
+
return {
|
|
1937
|
+
dot: "bg-gray-300 dark:bg-gray-600",
|
|
1938
|
+
line: "bg-gray-200 dark:bg-gray-700",
|
|
1939
|
+
icon: "text-gray-500 dark:text-gray-400"
|
|
1940
|
+
};
|
|
1941
|
+
}
|
|
1942
|
+
};
|
|
1943
|
+
const getDefaultIcon = (status) => {
|
|
1944
|
+
switch (status) {
|
|
1945
|
+
case "completed":
|
|
1946
|
+
return "heroicons:check";
|
|
1947
|
+
case "error":
|
|
1948
|
+
return "heroicons:x-mark";
|
|
1949
|
+
default:
|
|
1950
|
+
return "";
|
|
1951
|
+
}
|
|
1952
|
+
};
|
|
1953
|
+
return (_ctx, _cache) => {
|
|
1954
|
+
return __props.orientation === "vertical" ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
1955
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index) => {
|
|
1956
|
+
return openBlock(), createElementBlock("div", {
|
|
1957
|
+
key: item.key,
|
|
1958
|
+
class: "relative pb-8 last:pb-0"
|
|
1959
|
+
}, [
|
|
1960
|
+
index < __props.items.length - 1 ? (openBlock(), createElementBlock("div", {
|
|
1961
|
+
key: 0,
|
|
1962
|
+
class: normalizeClass(["absolute left-4 top-8 w-0.5 h-full -ml-px", getStatusClasses(item.status).line])
|
|
1963
|
+
}, null, 2)) : createCommentVNode("", true),
|
|
1964
|
+
createElementVNode("div", _hoisted_2, [
|
|
1965
|
+
createElementVNode("div", {
|
|
1966
|
+
class: normalizeClass(["relative z-10 flex items-center justify-center w-8 h-8 rounded-full flex-shrink-0", getStatusClasses(item.status).dot])
|
|
1967
|
+
}, [
|
|
1968
|
+
item.icon || getDefaultIcon(item.status) ? (openBlock(), createBlock(unref(Icon), {
|
|
1969
|
+
key: 0,
|
|
1970
|
+
icon: item.icon || getDefaultIcon(item.status),
|
|
1971
|
+
class: normalizeClass(["w-4 h-4", getStatusClasses(item.status).icon])
|
|
1972
|
+
}, null, 8, ["icon", "class"])) : createCommentVNode("", true)
|
|
1973
|
+
], 2),
|
|
1974
|
+
createElementVNode("div", _hoisted_3, [
|
|
1975
|
+
createElementVNode("div", _hoisted_4, [
|
|
1976
|
+
createElementVNode("h3", _hoisted_5, toDisplayString(item.title), 1),
|
|
1977
|
+
item.date ? (openBlock(), createElementBlock("time", _hoisted_6, toDisplayString(item.date), 1)) : createCommentVNode("", true)
|
|
1978
|
+
]),
|
|
1979
|
+
item.description ? (openBlock(), createElementBlock("p", _hoisted_7, toDisplayString(item.description), 1)) : createCommentVNode("", true),
|
|
1980
|
+
renderSlot(_ctx.$slots, item.key, { item })
|
|
1981
|
+
])
|
|
1982
|
+
])
|
|
1983
|
+
]);
|
|
1984
|
+
}), 128))
|
|
1985
|
+
])) : (openBlock(), createElementBlock("div", _hoisted_8, [
|
|
1986
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item, index) => {
|
|
1987
|
+
return openBlock(), createElementBlock("div", {
|
|
1988
|
+
key: item.key,
|
|
1989
|
+
class: normalizeClass(["flex flex-col items-center flex-shrink-0", { "flex-1": index < __props.items.length - 1 }])
|
|
1990
|
+
}, [
|
|
1991
|
+
createElementVNode("div", _hoisted_9, [
|
|
1992
|
+
createElementVNode("div", {
|
|
1993
|
+
class: normalizeClass(["relative z-10 flex items-center justify-center w-8 h-8 rounded-full flex-shrink-0", getStatusClasses(item.status).dot])
|
|
1994
|
+
}, [
|
|
1995
|
+
item.icon || getDefaultIcon(item.status) ? (openBlock(), createBlock(unref(Icon), {
|
|
1996
|
+
key: 0,
|
|
1997
|
+
icon: item.icon || getDefaultIcon(item.status),
|
|
1998
|
+
class: normalizeClass(["w-4 h-4", getStatusClasses(item.status).icon])
|
|
1999
|
+
}, null, 8, ["icon", "class"])) : createCommentVNode("", true)
|
|
2000
|
+
], 2),
|
|
2001
|
+
index < __props.items.length - 1 ? (openBlock(), createElementBlock("div", {
|
|
2002
|
+
key: 0,
|
|
2003
|
+
class: normalizeClass(["flex-1 h-0.5 mx-2", getStatusClasses(item.status).line])
|
|
2004
|
+
}, null, 2)) : createCommentVNode("", true)
|
|
2005
|
+
]),
|
|
2006
|
+
createElementVNode("div", _hoisted_10, [
|
|
2007
|
+
createElementVNode("h3", _hoisted_11, toDisplayString(item.title), 1),
|
|
2008
|
+
item.date ? (openBlock(), createElementBlock("time", _hoisted_12, toDisplayString(item.date), 1)) : createCommentVNode("", true)
|
|
2009
|
+
])
|
|
2010
|
+
], 2);
|
|
2011
|
+
}), 128))
|
|
2012
|
+
]));
|
|
2013
|
+
};
|
|
2014
|
+
}
|
|
2015
|
+
});
|
|
1565
2016
|
export {
|
|
1566
|
-
_sfc_main$
|
|
1567
|
-
_sfc_main$
|
|
1568
|
-
_sfc_main$
|
|
1569
|
-
_sfc_main$
|
|
1570
|
-
_sfc_main$
|
|
1571
|
-
_sfc_main$
|
|
1572
|
-
_sfc_main$
|
|
1573
|
-
_sfc_main$
|
|
1574
|
-
_sfc_main$
|
|
1575
|
-
_sfc_main$
|
|
1576
|
-
_sfc_main$
|
|
1577
|
-
_sfc_main$
|
|
1578
|
-
_sfc_main$
|
|
1579
|
-
_sfc_main as m
|
|
2017
|
+
_sfc_main$i as _,
|
|
2018
|
+
_sfc_main$h as a,
|
|
2019
|
+
_sfc_main$g as b,
|
|
2020
|
+
_sfc_main$f as c,
|
|
2021
|
+
_sfc_main$e as d,
|
|
2022
|
+
_sfc_main$d as e,
|
|
2023
|
+
_sfc_main$c as f,
|
|
2024
|
+
_sfc_main$b as g,
|
|
2025
|
+
_sfc_main$a as h,
|
|
2026
|
+
_sfc_main$9 as i,
|
|
2027
|
+
_sfc_main$8 as j,
|
|
2028
|
+
_sfc_main$7 as k,
|
|
2029
|
+
_sfc_main$6 as l,
|
|
2030
|
+
_sfc_main$5 as m,
|
|
2031
|
+
_sfc_main$4 as n,
|
|
2032
|
+
_sfc_main$3 as o,
|
|
2033
|
+
_sfc_main$2 as p,
|
|
2034
|
+
_sfc_main$1 as q,
|
|
2035
|
+
_sfc_main as r
|
|
1580
2036
|
};
|
|
1581
|
-
//# sourceMappingURL=
|
|
2037
|
+
//# sourceMappingURL=Timeline.vue_vue_type_script_setup_true_lang-BWIfzQOG.js.map
|