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.
- 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
- package/dist/Button.vue_vue_type_script_setup_true_lang-CD9QPOeU.js.map +1 -0
- 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
- package/dist/Button.vue_vue_type_script_setup_true_lang-Cev21KGJ.cjs.map +1 -0
- 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
- package/dist/Combobox.vue_vue_type_script_setup_true_lang-D9TIId4E.cjs.map +1 -0
- 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
- package/dist/Combobox.vue_vue_type_script_setup_true_lang-DCLKWzhc.js.map +1 -0
- package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-CsDMGhaT.cjs → ConfirmDialog.vue_vue_type_script_setup_true_lang-CwHYxBhR.cjs} +290 -128
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-CwHYxBhR.cjs.map +1 -0
- package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-Q4PcIELi.js → ConfirmDialog.vue_vue_type_script_setup_true_lang-Dm4kLAnr.js} +291 -129
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-Dm4kLAnr.js.map +1 -0
- package/dist/{Timeline.vue_vue_type_script_setup_true_lang-C5SKEGPG.cjs → DarkModeToggle.vue_vue_type_script_setup_true_lang-CSxGvdSP.cjs} +192 -408
- package/dist/DarkModeToggle.vue_vue_type_script_setup_true_lang-CSxGvdSP.cjs.map +1 -0
- package/dist/{Timeline.vue_vue_type_script_setup_true_lang-ykGksWXN.js → DarkModeToggle.vue_vue_type_script_setup_true_lang-D1Q43mhJ.js} +153 -369
- package/dist/DarkModeToggle.vue_vue_type_script_setup_true_lang-D1Q43mhJ.js.map +1 -0
- package/dist/{Dropdown.vue_vue_type_script_setup_true_lang-DKxcVBKu.cjs → Dropdown.vue_vue_type_script_setup_true_lang-DNeh9Gi-.cjs} +32 -15
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-DNeh9Gi-.cjs.map +1 -0
- package/dist/{Dropdown.vue_vue_type_script_setup_true_lang-C3pr8BwC.js → Dropdown.vue_vue_type_script_setup_true_lang-DXV811zB.js} +32 -15
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-DXV811zB.js.map +1 -0
- package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-D22uNeS1.cjs → PageLayout.vue_vue_type_script_setup_true_lang-C0YzyJnK.cjs} +2 -2
- 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
- package/dist/{PageLayout.vue_vue_type_script_setup_true_lang-kT7np2ir.js → PageLayout.vue_vue_type_script_setup_true_lang-ClzYGS8h.js} +2 -2
- 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
- package/dist/components/core/AccordionItem.vue.d.ts +2 -0
- package/dist/components/core/DarkModeToggle.stories.d.ts +15 -0
- package/dist/components/core/DarkModeToggle.test.d.ts +1 -0
- package/dist/components/core/DarkModeToggle.vue.d.ts +21 -0
- package/dist/components/core/Dropdown.vue.d.ts +2 -0
- package/dist/components/core/Popover.vue.d.ts +2 -0
- package/dist/components/core/Tooltip.vue.d.ts +2 -0
- package/dist/components/core/index.cjs +23 -21
- package/dist/components/core/index.cjs.map +1 -1
- package/dist/components/core/index.d.ts +2 -0
- package/dist/components/core/index.js +17 -15
- package/dist/components/core/index.js.map +1 -1
- package/dist/components/core/index.test.d.ts +1 -0
- package/dist/components/feedback/ConfirmDialog.stories.d.ts +12 -0
- package/dist/components/feedback/ConfirmDialog.test.d.ts +1 -0
- package/dist/components/feedback/ConfirmDialog.vue.d.ts +53 -0
- package/dist/components/feedback/LoadingSpinner.vue.d.ts +6 -1
- package/dist/components/feedback/Modal.vue.d.ts +18 -3
- package/dist/components/feedback/Progress.vue.d.ts +1 -1
- package/dist/components/feedback/index.cjs +17 -16
- package/dist/components/feedback/index.cjs.map +1 -1
- package/dist/components/feedback/index.d.ts +2 -0
- package/dist/components/feedback/index.js +6 -5
- package/dist/components/feedback/index.test.d.ts +1 -0
- package/dist/components/form/Checkbox.vue.d.ts +2 -0
- package/dist/components/form/ColorPicker.vue.d.ts +3 -0
- package/dist/components/form/Combobox.stories.d.ts +15 -0
- package/dist/components/form/Combobox.test.d.ts +1 -0
- package/dist/components/form/Combobox.vue.d.ts +46 -0
- package/dist/components/form/DatePicker.vue.d.ts +2 -0
- package/dist/components/form/FormHelp.vue.d.ts +2 -0
- package/dist/components/form/Switch.vue.d.ts +2 -0
- package/dist/components/form/index.cjs +17 -16
- package/dist/components/form/index.cjs.map +1 -1
- package/dist/components/form/index.d.ts +2 -0
- package/dist/components/form/index.js +3 -2
- package/dist/components/form/index.test.d.ts +1 -0
- package/dist/components/index.cjs +57 -54
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +35 -32
- package/dist/components/index.test.d.ts +1 -0
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.js +1 -1
- package/dist/components/layout/index.test.d.ts +1 -0
- package/dist/components/type/index.test.d.ts +1 -0
- package/dist/composables/index.cjs +9 -2
- package/dist/composables/index.cjs.map +1 -1
- package/dist/composables/index.d.ts +2 -0
- package/dist/composables/index.js +15 -8
- package/dist/composables/index.js.map +1 -1
- package/dist/composables/index.test.d.ts +1 -0
- package/dist/composables/useDarkMode.test.d.ts +1 -0
- package/dist/composables/useDropdown.test.d.ts +1 -0
- package/dist/composables/useExportCSV.test.d.ts +1 -0
- package/dist/composables/useFocusTrap.d.ts +41 -0
- package/dist/composables/useFocusTrap.test.d.ts +1 -0
- package/dist/composables/useId.d.ts +42 -0
- package/dist/composables/useId.test.d.ts +1 -0
- package/dist/composables/useModal.d.ts +1 -1
- package/dist/composables/useModal.test.d.ts +1 -0
- package/dist/index-BMoLBt6A.js +75 -0
- package/dist/index-BMoLBt6A.js.map +1 -0
- package/dist/index-CJwlO351.js +347 -0
- package/dist/index-CJwlO351.js.map +1 -0
- package/dist/index-CUNU12xk.cjs +346 -0
- package/dist/index-CUNU12xk.cjs.map +1 -0
- package/dist/index-DwFvFW-3.cjs +74 -0
- package/dist/index-DwFvFW-3.cjs.map +1 -0
- package/dist/index.cjs +67 -57
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +51 -41
- package/dist/index.js.map +1 -1
- package/dist/index.test.d.ts +1 -0
- package/dist/style.css +1 -1
- package/dist/types/form.d.ts +4 -0
- package/dist/types/index.test.d.ts +1 -0
- package/dist/useDarkMode-Cl5QWTlC.js +53 -0
- package/dist/useDarkMode-Cl5QWTlC.js.map +1 -0
- package/dist/useDarkMode-DLZcJEUQ.cjs +52 -0
- package/dist/useDarkMode-DLZcJEUQ.cjs.map +1 -0
- package/dist/useFocusTrap-AnlJsihM.js +120 -0
- package/dist/useFocusTrap-AnlJsihM.js.map +1 -0
- package/dist/useFocusTrap-kcxO8AeU.cjs +119 -0
- package/dist/useFocusTrap-kcxO8AeU.cjs.map +1 -0
- package/dist/useId-nxrBaIC9.cjs +25 -0
- package/dist/useId-nxrBaIC9.cjs.map +1 -0
- package/dist/useId-xeHj7rkg.js +26 -0
- package/dist/useId-xeHj7rkg.js.map +1 -0
- package/dist/{useToast-CRh_sG82.cjs → useToast-Bk60GArg.cjs} +1 -50
- package/dist/useToast-Bk60GArg.cjs.map +1 -0
- package/dist/{useToast-DwFOkewC.js → useToast-ina5g3mj.js} +6 -55
- package/dist/useToast-ina5g3mj.js.map +1 -0
- package/package.json +9 -8
- package/dist/Checkbox.vue_vue_type_script_setup_true_lang-B-nLCCNY.js +0 -54
- package/dist/Checkbox.vue_vue_type_script_setup_true_lang-B-nLCCNY.js.map +0 -1
- package/dist/Checkbox.vue_vue_type_script_setup_true_lang-DIoHDji4.cjs +0 -53
- package/dist/Checkbox.vue_vue_type_script_setup_true_lang-DIoHDji4.cjs.map +0 -1
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-C3pr8BwC.js.map +0 -1
- package/dist/Dropdown.vue_vue_type_script_setup_true_lang-DKxcVBKu.cjs.map +0 -1
- package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-CrEu33_J.cjs.map +0 -1
- package/dist/ListSkeleton.vue_vue_type_script_setup_true_lang-D3_Oddwt.js.map +0 -1
- package/dist/RangeSlider.vue_vue_type_script_setup_true_lang-B79_S1JL.js.map +0 -1
- package/dist/RangeSlider.vue_vue_type_script_setup_true_lang-ClH-pyK8.cjs.map +0 -1
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-CsDMGhaT.cjs.map +0 -1
- package/dist/Skeleton.vue_vue_type_script_setup_true_lang-Q4PcIELi.js.map +0 -1
- package/dist/Timeline.vue_vue_type_script_setup_true_lang-C5SKEGPG.cjs.map +0 -1
- package/dist/Timeline.vue_vue_type_script_setup_true_lang-ykGksWXN.js.map +0 -1
- package/dist/index-C3NAM2ds.js +0 -72
- package/dist/index-C3NAM2ds.js.map +0 -1
- package/dist/index-Ti1RIOEG.cjs +0 -71
- package/dist/index-Ti1RIOEG.cjs.map +0 -1
- package/dist/useToast-CRh_sG82.cjs.map +0 -1
- package/dist/useToast-DwFOkewC.js.map +0 -1
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { defineComponent, createElementBlock, openBlock, renderSlot, createTextVNode, toDisplayString, mergeModels, useModel, withDirectives, mergeProps, vModelDynamic,
|
|
1
|
+
import { defineComponent, createElementBlock, openBlock, renderSlot, createTextVNode, toDisplayString, mergeModels, useModel, withDirectives, mergeProps, vModelDynamic, computed, ref, watch, createElementVNode, createBlock, unref, normalizeClass, createVNode, Teleport, Transition, withCtx, createCommentVNode, normalizeStyle, vModelText, Fragment, renderList, nextTick, withModifiers, withKeys } from "vue";
|
|
2
|
+
import { u as useId } from "./useId-xeHj7rkg.js";
|
|
2
3
|
import { Icon } from "@iconify/vue";
|
|
3
4
|
import { u as useDropdown } from "./useDropdown-iVu14E6s.js";
|
|
4
5
|
import { _ as _export_sfc } from "./_plugin-vue_export-helper-1tPrXgE0.js";
|
|
5
|
-
|
|
6
|
-
const
|
|
6
|
+
import { o as onClickOutside } from "./index-CJwlO351.js";
|
|
7
|
+
const _hoisted_1$d = ["data-error", "for"];
|
|
8
|
+
const _sfc_main$d = /* @__PURE__ */ defineComponent({
|
|
7
9
|
__name: "FormLabel",
|
|
8
10
|
props: {
|
|
9
11
|
error: { type: [String, Boolean] },
|
|
@@ -17,32 +19,36 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
|
17
19
|
class: "block text-sm font-medium text-gray-700 data-[error=true]:text-red-500 dark:text-gray-300"
|
|
18
20
|
}, [
|
|
19
21
|
renderSlot(_ctx.$slots, "default")
|
|
20
|
-
], 8, _hoisted_1$
|
|
22
|
+
], 8, _hoisted_1$d);
|
|
21
23
|
};
|
|
22
24
|
}
|
|
23
25
|
});
|
|
24
|
-
const _hoisted_1$
|
|
25
|
-
const _sfc_main$
|
|
26
|
+
const _hoisted_1$c = ["id", "data-error", "role", "aria-live"];
|
|
27
|
+
const _sfc_main$c = /* @__PURE__ */ defineComponent({
|
|
26
28
|
__name: "FormHelp",
|
|
27
29
|
props: {
|
|
30
|
+
id: {},
|
|
28
31
|
error: { type: Boolean },
|
|
29
32
|
text: {}
|
|
30
33
|
},
|
|
31
34
|
setup(__props) {
|
|
32
35
|
return (_ctx, _cache) => {
|
|
33
36
|
return openBlock(), createElementBlock("p", {
|
|
37
|
+
id: __props.id,
|
|
34
38
|
"data-error": __props.error,
|
|
39
|
+
role: __props.error ? "alert" : void 0,
|
|
40
|
+
"aria-live": __props.error ? "polite" : void 0,
|
|
35
41
|
class: "mt-2 text-sm text-gray-400 peer-user-invalid:visible data-[error=true]:text-red-500 dark:text-gray-500"
|
|
36
42
|
}, [
|
|
37
43
|
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
38
44
|
createTextVNode(toDisplayString(__props.text ?? ""), 1)
|
|
39
45
|
])
|
|
40
|
-
], 8, _hoisted_1$
|
|
46
|
+
], 8, _hoisted_1$c);
|
|
41
47
|
};
|
|
42
48
|
}
|
|
43
49
|
});
|
|
44
|
-
const _hoisted_1$
|
|
45
|
-
const _sfc_main$
|
|
50
|
+
const _hoisted_1$b = ["id", "disabled", "name", "placeholder", "type", "required", "aria-invalid", "aria-required", "aria-describedby"];
|
|
51
|
+
const _sfc_main$b = /* @__PURE__ */ defineComponent({
|
|
46
52
|
__name: "FormInput",
|
|
47
53
|
props: /* @__PURE__ */ mergeModels({
|
|
48
54
|
type: { default: "text" },
|
|
@@ -51,49 +57,59 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
|
51
57
|
disabled: { type: Boolean },
|
|
52
58
|
invalid: { type: Boolean },
|
|
53
59
|
id: {},
|
|
54
|
-
name: {}
|
|
60
|
+
name: {},
|
|
61
|
+
required: { type: Boolean },
|
|
62
|
+
describedBy: {}
|
|
55
63
|
}, {
|
|
56
64
|
"modelValue": {},
|
|
57
65
|
"modelModifiers": {}
|
|
58
66
|
}),
|
|
59
67
|
emits: ["update:modelValue"],
|
|
60
68
|
setup(__props) {
|
|
69
|
+
const props = __props;
|
|
61
70
|
const modelValue = useModel(__props, "modelValue");
|
|
62
71
|
return (_ctx, _cache) => {
|
|
63
72
|
return withDirectives((openBlock(), createElementBlock("input", mergeProps({
|
|
64
|
-
id:
|
|
73
|
+
id: props.id ?? props.name ?? "",
|
|
65
74
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
|
|
66
|
-
disabled:
|
|
67
|
-
name:
|
|
68
|
-
placeholder:
|
|
69
|
-
type:
|
|
75
|
+
disabled: props.disabled,
|
|
76
|
+
name: props.name ?? "",
|
|
77
|
+
placeholder: props.placeholder,
|
|
78
|
+
type: props.type,
|
|
79
|
+
required: props.required,
|
|
80
|
+
"aria-invalid": props.invalid || void 0,
|
|
81
|
+
"aria-required": props.required || void 0,
|
|
82
|
+
"aria-describedby": props.describedBy || void 0,
|
|
70
83
|
class: "mt-1 block w-full rounded-md border border-gray-300 bg-white px-3 py-2 text-sm text-gray-800 placeholder-gray-400 shadow-sm user-invalid:border-red-500 user-invalid:text-red-600 focus:border-primary focus:ring-1 focus:ring-primary focus:outline-none focus:user-invalid:border-red-500 focus:user-invalid:ring-red-500 disabled:border-gray-200 disabled:bg-gray-50 disabled:text-gray-500 disabled:shadow-none dark:border-gray-700 dark:bg-gray-900 dark:text-gray-200 dark:placeholder-gray-500 dark:focus:border-primary dark:focus:ring-primary dark:disabled:border-gray-800 dark:disabled:bg-gray-950 dark:disabled:text-gray-500"
|
|
71
|
-
}, _ctx.$attrs), null, 16, _hoisted_1$
|
|
84
|
+
}, _ctx.$attrs), null, 16, _hoisted_1$b)), [
|
|
72
85
|
[vModelDynamic, modelValue.value]
|
|
73
86
|
]);
|
|
74
87
|
};
|
|
75
88
|
}
|
|
76
89
|
});
|
|
77
|
-
const _hoisted_1$
|
|
78
|
-
const _hoisted_2$
|
|
79
|
-
const _hoisted_3$
|
|
80
|
-
const _hoisted_4$
|
|
90
|
+
const _hoisted_1$a = { class: "relative" };
|
|
91
|
+
const _hoisted_2$9 = ["id", "disabled", "aria-expanded", "aria-controls", "aria-invalid", "aria-describedby"];
|
|
92
|
+
const _hoisted_3$8 = { class: "flex-1 truncate" };
|
|
93
|
+
const _hoisted_4$6 = ["id", "aria-label"];
|
|
94
|
+
const _hoisted_5$5 = {
|
|
81
95
|
key: 0,
|
|
82
96
|
class: "sticky top-0 border-b border-gray-200 bg-white p-2 dark:border-gray-700 dark:bg-gray-800"
|
|
83
97
|
};
|
|
84
|
-
const
|
|
85
|
-
const
|
|
98
|
+
const _hoisted_6$5 = { class: "flex items-center gap-2 rounded-md border border-gray-300 bg-gray-50 px-2 py-1.5 dark:border-gray-600 dark:bg-gray-900" };
|
|
99
|
+
const _hoisted_7$5 = {
|
|
86
100
|
key: 1,
|
|
87
|
-
class: "px-4 py-3 text-sm text-gray-500 dark:text-gray-400"
|
|
101
|
+
class: "px-4 py-3 text-sm text-gray-500 dark:text-gray-400",
|
|
102
|
+
role: "status"
|
|
88
103
|
};
|
|
89
|
-
const
|
|
90
|
-
const
|
|
91
|
-
const
|
|
104
|
+
const _hoisted_8$4 = { class: "py-1" };
|
|
105
|
+
const _hoisted_9$2 = ["aria-selected", "data-index", "onClick", "onMouseenter"];
|
|
106
|
+
const _hoisted_10$2 = {
|
|
92
107
|
key: 1,
|
|
93
|
-
class: "size-4 shrink-0"
|
|
108
|
+
class: "size-4 shrink-0",
|
|
109
|
+
"aria-hidden": "true"
|
|
94
110
|
};
|
|
95
|
-
const
|
|
96
|
-
const _sfc_main$
|
|
111
|
+
const _hoisted_11$2 = { class: "flex-1" };
|
|
112
|
+
const _sfc_main$a = /* @__PURE__ */ defineComponent({
|
|
97
113
|
__name: "FormSelect",
|
|
98
114
|
props: /* @__PURE__ */ mergeModels({
|
|
99
115
|
options: {},
|
|
@@ -104,6 +120,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
104
120
|
invalid: { type: Boolean },
|
|
105
121
|
id: {},
|
|
106
122
|
name: {},
|
|
123
|
+
required: { type: Boolean },
|
|
124
|
+
describedBy: {},
|
|
107
125
|
teleport: { type: Boolean, default: true },
|
|
108
126
|
searchable: { type: Boolean, default: false },
|
|
109
127
|
noResultsText: { default: "No results found" },
|
|
@@ -115,6 +133,9 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
115
133
|
emits: ["update:modelValue"],
|
|
116
134
|
setup(__props) {
|
|
117
135
|
const props = __props;
|
|
136
|
+
const { id: generatedId, related } = useId({ prefix: "select", id: props.id });
|
|
137
|
+
const triggerId = computed(() => props.id ?? props.name ?? generatedId.value);
|
|
138
|
+
const listboxId = computed(() => related("listbox"));
|
|
118
139
|
const modelValue = useModel(__props, "modelValue");
|
|
119
140
|
const searchQuery = ref("");
|
|
120
141
|
const triggerRef = ref();
|
|
@@ -206,14 +227,19 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
206
227
|
return [base, state, text, props.triggerClass];
|
|
207
228
|
});
|
|
208
229
|
return (_ctx, _cache) => {
|
|
209
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
230
|
+
return openBlock(), createElementBlock("div", _hoisted_1$a, [
|
|
210
231
|
createElementVNode("button", {
|
|
211
|
-
id:
|
|
232
|
+
id: triggerId.value,
|
|
212
233
|
ref_key: "triggerRef",
|
|
213
234
|
ref: triggerRef,
|
|
214
235
|
type: "button",
|
|
215
236
|
disabled: __props.disabled,
|
|
216
237
|
class: normalizeClass(triggerClasses.value),
|
|
238
|
+
"aria-haspopup": "listbox",
|
|
239
|
+
"aria-expanded": unref(isOpen),
|
|
240
|
+
"aria-controls": listboxId.value,
|
|
241
|
+
"aria-invalid": __props.invalid || void 0,
|
|
242
|
+
"aria-describedby": __props.describedBy || void 0,
|
|
217
243
|
onClick: toggle,
|
|
218
244
|
onKeydown: handleKeydown
|
|
219
245
|
}, [
|
|
@@ -221,13 +247,14 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
221
247
|
option: selectedOption.value,
|
|
222
248
|
placeholder: __props.placeholder
|
|
223
249
|
}, () => [
|
|
224
|
-
createElementVNode("span", _hoisted_3$
|
|
250
|
+
createElementVNode("span", _hoisted_3$8, toDisplayString(displayValue.value), 1)
|
|
225
251
|
]),
|
|
226
252
|
createVNode(unref(Icon), {
|
|
227
253
|
icon: "lucide:chevron-down",
|
|
228
|
-
class: normalizeClass(["size-4 shrink-0 text-gray-400 transition-transform", unref(isOpen) && "rotate-180"])
|
|
254
|
+
class: normalizeClass(["size-4 shrink-0 text-gray-400 transition-transform", unref(isOpen) && "rotate-180"]),
|
|
255
|
+
"aria-hidden": "true"
|
|
229
256
|
}, null, 8, ["class"])
|
|
230
|
-
], 42, _hoisted_2$
|
|
257
|
+
], 42, _hoisted_2$9),
|
|
231
258
|
(openBlock(), createBlock(Teleport, {
|
|
232
259
|
to: "body",
|
|
233
260
|
disabled: !__props.teleport
|
|
@@ -243,19 +270,23 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
243
270
|
default: withCtx(() => [
|
|
244
271
|
unref(isOpen) ? (openBlock(), createElementBlock("div", {
|
|
245
272
|
key: 0,
|
|
273
|
+
id: listboxId.value,
|
|
246
274
|
ref_key: "dropdownRef",
|
|
247
275
|
ref: dropdownRef,
|
|
276
|
+
role: "listbox",
|
|
277
|
+
"aria-label": __props.placeholder || "Select an option",
|
|
248
278
|
style: normalizeStyle(unref(dropdownStyle)),
|
|
249
279
|
class: normalizeClass([
|
|
250
280
|
"z-[9999] max-h-60 overflow-auto rounded-lg border border-gray-200 bg-white shadow-lg dark:border-gray-700 dark:bg-gray-800",
|
|
251
281
|
!__props.teleport && "absolute mt-1 w-full"
|
|
252
282
|
])
|
|
253
283
|
}, [
|
|
254
|
-
__props.searchable ? (openBlock(), createElementBlock("div",
|
|
255
|
-
createElementVNode("div",
|
|
284
|
+
__props.searchable ? (openBlock(), createElementBlock("div", _hoisted_5$5, [
|
|
285
|
+
createElementVNode("div", _hoisted_6$5, [
|
|
256
286
|
createVNode(unref(Icon), {
|
|
257
287
|
icon: "lucide:search",
|
|
258
|
-
class: "size-4 text-gray-400"
|
|
288
|
+
class: "size-4 text-gray-400",
|
|
289
|
+
"aria-hidden": "true"
|
|
259
290
|
}),
|
|
260
291
|
withDirectives(createElementVNode("input", {
|
|
261
292
|
ref_key: "searchInputRef",
|
|
@@ -264,18 +295,21 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
264
295
|
type: "text",
|
|
265
296
|
class: "flex-1 bg-transparent text-sm outline-none dark:text-white",
|
|
266
297
|
placeholder: "Search...",
|
|
298
|
+
"aria-label": "Search options",
|
|
267
299
|
onKeydown: handleKeydown
|
|
268
300
|
}, null, 544), [
|
|
269
301
|
[vModelText, searchQuery.value]
|
|
270
302
|
])
|
|
271
303
|
])
|
|
272
304
|
])) : createCommentVNode("", true),
|
|
273
|
-
filteredOptions.value.length === 0 ? (openBlock(), createElementBlock("div",
|
|
274
|
-
createElementVNode("div",
|
|
305
|
+
filteredOptions.value.length === 0 ? (openBlock(), createElementBlock("div", _hoisted_7$5, toDisplayString(__props.noResultsText), 1)) : createCommentVNode("", true),
|
|
306
|
+
createElementVNode("div", _hoisted_8$4, [
|
|
275
307
|
(openBlock(true), createElementBlock(Fragment, null, renderList(filteredOptions.value, (option, index) => {
|
|
276
308
|
return openBlock(), createElementBlock("button", {
|
|
277
309
|
key: String(option.value),
|
|
278
310
|
type: "button",
|
|
311
|
+
role: "option",
|
|
312
|
+
"aria-selected": modelValue.value === option.value,
|
|
279
313
|
"data-index": index,
|
|
280
314
|
class: normalizeClass([
|
|
281
315
|
"flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors",
|
|
@@ -294,14 +328,15 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
294
328
|
modelValue.value === option.value ? (openBlock(), createBlock(unref(Icon), {
|
|
295
329
|
key: 0,
|
|
296
330
|
icon: "lucide:check",
|
|
297
|
-
class: "size-4 shrink-0 text-primary"
|
|
298
|
-
|
|
299
|
-
|
|
331
|
+
class: "size-4 shrink-0 text-primary",
|
|
332
|
+
"aria-hidden": "true"
|
|
333
|
+
})) : (openBlock(), createElementBlock("span", _hoisted_10$2)),
|
|
334
|
+
createElementVNode("span", _hoisted_11$2, toDisplayString(option.label), 1)
|
|
300
335
|
])
|
|
301
|
-
], 42,
|
|
336
|
+
], 42, _hoisted_9$2);
|
|
302
337
|
}), 128))
|
|
303
338
|
])
|
|
304
|
-
], 6)) : createCommentVNode("", true)
|
|
339
|
+
], 14, _hoisted_4$6)) : createCommentVNode("", true)
|
|
305
340
|
]),
|
|
306
341
|
_: 3
|
|
307
342
|
})
|
|
@@ -310,8 +345,8 @@ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
|
310
345
|
};
|
|
311
346
|
}
|
|
312
347
|
});
|
|
313
|
-
const _hoisted_1$
|
|
314
|
-
const _sfc_main$
|
|
348
|
+
const _hoisted_1$9 = ["hidden"];
|
|
349
|
+
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
|
|
315
350
|
__name: "FormGroup",
|
|
316
351
|
props: /* @__PURE__ */ mergeModels({
|
|
317
352
|
label: {},
|
|
@@ -326,6 +361,8 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
326
361
|
invalid: { type: Boolean },
|
|
327
362
|
id: {},
|
|
328
363
|
name: {},
|
|
364
|
+
required: { type: Boolean },
|
|
365
|
+
describedBy: {},
|
|
329
366
|
options: {}
|
|
330
367
|
}, {
|
|
331
368
|
"modelValue": {},
|
|
@@ -335,8 +372,12 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
335
372
|
setup(__props) {
|
|
336
373
|
const props = __props;
|
|
337
374
|
const modelValue = useModel(__props, "modelValue");
|
|
375
|
+
const { id: generatedId, related } = useId({ prefix: "field", id: props.id });
|
|
376
|
+
const inputId = computed(() => props.id ?? props.name ?? generatedId.value);
|
|
377
|
+
const helpId = computed(() => related("help"));
|
|
338
378
|
const computedCols = computed(() => `span ${props.cols} / span ${props.cols}`);
|
|
339
379
|
const isSelect = computed(() => props.select === true);
|
|
380
|
+
const hasError = computed(() => props.error && typeof props.error === "string");
|
|
340
381
|
return (_ctx, _cache) => {
|
|
341
382
|
return openBlock(), createElementBlock("div", {
|
|
342
383
|
style: normalizeStyle({ gridColumn: computedCols.value }),
|
|
@@ -344,9 +385,9 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
344
385
|
}, [
|
|
345
386
|
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
346
387
|
renderSlot(_ctx.$slots, "label", {}, () => [
|
|
347
|
-
__props.label ? (openBlock(), createBlock(_sfc_main$
|
|
388
|
+
__props.label ? (openBlock(), createBlock(_sfc_main$d, {
|
|
348
389
|
key: 0,
|
|
349
|
-
"html-for":
|
|
390
|
+
"html-for": inputId.value,
|
|
350
391
|
error: __props.error
|
|
351
392
|
}, {
|
|
352
393
|
default: withCtx(() => [
|
|
@@ -356,33 +397,42 @@ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
|
356
397
|
}, 8, ["html-for", "error"])) : createCommentVNode("", true)
|
|
357
398
|
]),
|
|
358
399
|
renderSlot(_ctx.$slots, "input", {}, () => [
|
|
359
|
-
isSelect.value ? (openBlock(), createBlock(_sfc_main$
|
|
400
|
+
isSelect.value ? (openBlock(), createBlock(_sfc_main$a, mergeProps({
|
|
360
401
|
key: 0,
|
|
361
402
|
modelValue: modelValue.value,
|
|
362
403
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)
|
|
363
|
-
}, { ..._ctx.$attrs, ..._ctx.$props }
|
|
404
|
+
}, { ..._ctx.$attrs, ..._ctx.$props }, {
|
|
405
|
+
id: inputId.value,
|
|
406
|
+
invalid: Boolean(__props.error),
|
|
407
|
+
"described-by": hasError.value ? helpId.value : void 0
|
|
408
|
+
}), null, 16, ["modelValue", "id", "invalid", "described-by"])) : (openBlock(), createBlock(_sfc_main$b, mergeProps({
|
|
364
409
|
key: 1,
|
|
365
410
|
modelValue: modelValue.value,
|
|
366
411
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => modelValue.value = $event)
|
|
367
|
-
}, { ..._ctx.$attrs, ..._ctx.$props }
|
|
412
|
+
}, { ..._ctx.$attrs, ..._ctx.$props }, {
|
|
413
|
+
id: inputId.value,
|
|
414
|
+
invalid: Boolean(__props.error),
|
|
415
|
+
"described-by": hasError.value ? helpId.value : void 0
|
|
416
|
+
}), null, 16, ["modelValue", "id", "invalid", "described-by"]))
|
|
368
417
|
]),
|
|
369
|
-
|
|
418
|
+
hasError.value ? (openBlock(), createBlock(_sfc_main$c, {
|
|
370
419
|
key: 0,
|
|
420
|
+
id: helpId.value,
|
|
371
421
|
error: true
|
|
372
422
|
}, {
|
|
373
423
|
default: withCtx(() => [
|
|
374
424
|
createTextVNode(toDisplayString(__props.error), 1)
|
|
375
425
|
]),
|
|
376
426
|
_: 1
|
|
377
|
-
})) : createCommentVNode("", true)
|
|
427
|
+
}, 8, ["id"])) : createCommentVNode("", true)
|
|
378
428
|
])
|
|
379
|
-
], 12, _hoisted_1$
|
|
429
|
+
], 12, _hoisted_1$9);
|
|
380
430
|
};
|
|
381
431
|
}
|
|
382
432
|
});
|
|
383
|
-
const _hoisted_1$
|
|
384
|
-
const _hoisted_2$
|
|
385
|
-
const _sfc_main$
|
|
433
|
+
const _hoisted_1$8 = { class: "relative" };
|
|
434
|
+
const _hoisted_2$8 = ["disabled", "placeholder", "value"];
|
|
435
|
+
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
|
|
386
436
|
__name: "SearchInput",
|
|
387
437
|
props: {
|
|
388
438
|
modelValue: {},
|
|
@@ -398,7 +448,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
398
448
|
emit("update:modelValue", target.value);
|
|
399
449
|
};
|
|
400
450
|
return (_ctx, _cache) => {
|
|
401
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
451
|
+
return openBlock(), createElementBlock("div", _hoisted_1$8, [
|
|
402
452
|
createVNode(unref(Icon), {
|
|
403
453
|
icon: __props.icon,
|
|
404
454
|
class: "absolute top-1/2 left-3 h-5 w-5 -translate-y-1/2 text-gray-400"
|
|
@@ -410,37 +460,36 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
|
410
460
|
class: "focus:border-primary focus:ring-primary w-full rounded-lg border border-gray-300 bg-white py-2 pr-4 pl-10 text-gray-900 placeholder-gray-400 transition-colors disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-500",
|
|
411
461
|
type: "text",
|
|
412
462
|
onInput: handleInput
|
|
413
|
-
}, null, 40, _hoisted_2$
|
|
463
|
+
}, null, 40, _hoisted_2$8)
|
|
414
464
|
]);
|
|
415
465
|
};
|
|
416
466
|
}
|
|
417
467
|
});
|
|
418
|
-
const _hoisted_1$
|
|
419
|
-
const _hoisted_2$
|
|
468
|
+
const _hoisted_1$7 = ["id", "aria-checked", "aria-labelledby", "aria-describedby", "disabled"];
|
|
469
|
+
const _hoisted_2$7 = {
|
|
420
470
|
key: 0,
|
|
421
471
|
class: "flex flex-col"
|
|
422
472
|
};
|
|
423
|
-
const _hoisted_3$
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
};
|
|
427
|
-
const _hoisted_4$4 = {
|
|
428
|
-
key: 1,
|
|
429
|
-
class: "text-sm text-gray-500 dark:text-gray-400"
|
|
430
|
-
};
|
|
431
|
-
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
473
|
+
const _hoisted_3$7 = ["id"];
|
|
474
|
+
const _hoisted_4$5 = ["id"];
|
|
475
|
+
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
432
476
|
__name: "Switch",
|
|
433
477
|
props: {
|
|
434
478
|
modelValue: { type: Boolean, default: false },
|
|
435
479
|
label: {},
|
|
436
480
|
description: {},
|
|
437
481
|
disabled: { type: Boolean },
|
|
438
|
-
size: { default: "md" }
|
|
482
|
+
size: { default: "md" },
|
|
483
|
+
id: {}
|
|
439
484
|
},
|
|
440
485
|
emits: ["update:modelValue"],
|
|
441
486
|
setup(__props, { emit: __emit }) {
|
|
442
487
|
const props = __props;
|
|
443
488
|
const emit = __emit;
|
|
489
|
+
const { id: generatedId, related } = useId({ prefix: "switch", id: props.id });
|
|
490
|
+
const switchId = computed(() => props.id ?? generatedId.value);
|
|
491
|
+
const labelId = computed(() => related("label"));
|
|
492
|
+
const descriptionId = computed(() => related("description"));
|
|
444
493
|
const toggle = () => {
|
|
445
494
|
if (props.disabled) return;
|
|
446
495
|
emit("update:modelValue", !props.modelValue);
|
|
@@ -465,9 +514,12 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
465
514
|
class: normalizeClass(["inline-flex items-start gap-3", __props.disabled ? "cursor-not-allowed opacity-50" : "cursor-pointer"])
|
|
466
515
|
}, [
|
|
467
516
|
createElementVNode("button", {
|
|
517
|
+
id: switchId.value,
|
|
468
518
|
type: "button",
|
|
469
519
|
role: "switch",
|
|
470
520
|
"aria-checked": __props.modelValue,
|
|
521
|
+
"aria-labelledby": __props.label ? labelId.value : void 0,
|
|
522
|
+
"aria-describedby": __props.description ? descriptionId.value : void 0,
|
|
471
523
|
disabled: __props.disabled,
|
|
472
524
|
class: normalizeClass([
|
|
473
525
|
"relative inline-flex shrink-0 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2",
|
|
@@ -481,29 +533,38 @@ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
|
481
533
|
"inline-block transform rounded-full bg-white shadow-sm transition-transform",
|
|
482
534
|
dotSizes[__props.size],
|
|
483
535
|
__props.modelValue ? translateSizes[__props.size] : "translate-x-1"
|
|
484
|
-
])
|
|
536
|
+
]),
|
|
537
|
+
"aria-hidden": "true"
|
|
485
538
|
}, null, 2)
|
|
486
|
-
], 10, _hoisted_1$
|
|
487
|
-
__props.label || __props.description ? (openBlock(), createElementBlock("div", _hoisted_2$
|
|
488
|
-
__props.label ? (openBlock(), createElementBlock("span",
|
|
489
|
-
|
|
539
|
+
], 10, _hoisted_1$7),
|
|
540
|
+
__props.label || __props.description ? (openBlock(), createElementBlock("div", _hoisted_2$7, [
|
|
541
|
+
__props.label ? (openBlock(), createElementBlock("span", {
|
|
542
|
+
key: 0,
|
|
543
|
+
id: labelId.value,
|
|
544
|
+
class: "text-sm font-medium text-gray-900 dark:text-white"
|
|
545
|
+
}, toDisplayString(__props.label), 9, _hoisted_3$7)) : createCommentVNode("", true),
|
|
546
|
+
__props.description ? (openBlock(), createElementBlock("span", {
|
|
547
|
+
key: 1,
|
|
548
|
+
id: descriptionId.value,
|
|
549
|
+
class: "text-sm text-gray-500 dark:text-gray-400"
|
|
550
|
+
}, toDisplayString(__props.description), 9, _hoisted_4$5)) : createCommentVNode("", true)
|
|
490
551
|
])) : createCommentVNode("", true)
|
|
491
552
|
], 2);
|
|
492
553
|
};
|
|
493
554
|
}
|
|
494
555
|
});
|
|
495
|
-
const _hoisted_1$
|
|
496
|
-
const _hoisted_2$
|
|
556
|
+
const _hoisted_1$6 = { class: "w-full" };
|
|
557
|
+
const _hoisted_2$6 = {
|
|
497
558
|
key: 0,
|
|
498
559
|
class: "mb-2 flex justify-between text-sm"
|
|
499
560
|
};
|
|
500
|
-
const _hoisted_3$
|
|
501
|
-
const _hoisted_4$
|
|
502
|
-
const _hoisted_5$
|
|
503
|
-
const _hoisted_6$
|
|
504
|
-
const _hoisted_7$
|
|
561
|
+
const _hoisted_3$6 = { class: "text-gray-600 dark:text-gray-400" };
|
|
562
|
+
const _hoisted_4$4 = { class: "font-medium text-gray-900 dark:text-white" };
|
|
563
|
+
const _hoisted_5$4 = { class: "text-gray-600 dark:text-gray-400" };
|
|
564
|
+
const _hoisted_6$4 = { class: "relative" };
|
|
565
|
+
const _hoisted_7$4 = ["value", "min", "max", "step", "disabled"];
|
|
505
566
|
const _hoisted_8$3 = { class: "pointer-events-none absolute inset-y-0 left-0 flex items-center" };
|
|
506
|
-
const _sfc_main$
|
|
567
|
+
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
|
|
507
568
|
__name: "Slider",
|
|
508
569
|
props: /* @__PURE__ */ mergeModels({
|
|
509
570
|
min: { default: 0 },
|
|
@@ -534,13 +595,13 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
534
595
|
modelValue.value = Number(target.value);
|
|
535
596
|
};
|
|
536
597
|
return (_ctx, _cache) => {
|
|
537
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
538
|
-
__props.showValue ? (openBlock(), createElementBlock("div", _hoisted_2$
|
|
539
|
-
createElementVNode("span", _hoisted_3$
|
|
540
|
-
createElementVNode("span", _hoisted_4$
|
|
541
|
-
createElementVNode("span", _hoisted_5$
|
|
598
|
+
return openBlock(), createElementBlock("div", _hoisted_1$6, [
|
|
599
|
+
__props.showValue ? (openBlock(), createElementBlock("div", _hoisted_2$6, [
|
|
600
|
+
createElementVNode("span", _hoisted_3$6, toDisplayString(__props.min), 1),
|
|
601
|
+
createElementVNode("span", _hoisted_4$4, toDisplayString(displayValue.value), 1),
|
|
602
|
+
createElementVNode("span", _hoisted_5$4, toDisplayString(__props.max), 1)
|
|
542
603
|
])) : createCommentVNode("", true),
|
|
543
|
-
createElementVNode("div", _hoisted_6$
|
|
604
|
+
createElementVNode("div", _hoisted_6$4, [
|
|
544
605
|
createElementVNode("input", {
|
|
545
606
|
type: "range",
|
|
546
607
|
value: modelValue.value,
|
|
@@ -550,7 +611,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
550
611
|
disabled: __props.disabled,
|
|
551
612
|
class: "slider-input w-full cursor-pointer appearance-none bg-transparent disabled:cursor-not-allowed disabled:opacity-50",
|
|
552
613
|
onInput: handleInput
|
|
553
|
-
}, null, 40, _hoisted_7$
|
|
614
|
+
}, null, 40, _hoisted_7$4),
|
|
554
615
|
createElementVNode("div", _hoisted_8$3, [
|
|
555
616
|
createElementVNode("div", {
|
|
556
617
|
class: "h-2 rounded-full bg-primary",
|
|
@@ -562,18 +623,27 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
562
623
|
};
|
|
563
624
|
}
|
|
564
625
|
});
|
|
565
|
-
const Slider = /* @__PURE__ */ _export_sfc(_sfc_main$
|
|
566
|
-
const _hoisted_1$
|
|
567
|
-
const _hoisted_2$
|
|
568
|
-
const _hoisted_3$
|
|
569
|
-
const _hoisted_4$
|
|
570
|
-
const _hoisted_5$
|
|
571
|
-
const _hoisted_6$
|
|
572
|
-
const _hoisted_7$
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
626
|
+
const Slider = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-a411f1b4"]]);
|
|
627
|
+
const _hoisted_1$5 = { class: "relative" };
|
|
628
|
+
const _hoisted_2$5 = ["id", "disabled", "aria-expanded", "aria-controls"];
|
|
629
|
+
const _hoisted_3$5 = { class: "flex-1 truncate" };
|
|
630
|
+
const _hoisted_4$3 = { class: "flex items-center gap-1" };
|
|
631
|
+
const _hoisted_5$3 = ["id", "aria-label"];
|
|
632
|
+
const _hoisted_6$3 = { class: "mb-4 flex items-center justify-between" };
|
|
633
|
+
const _hoisted_7$3 = {
|
|
634
|
+
class: "font-medium text-gray-900 dark:text-white",
|
|
635
|
+
"aria-live": "polite",
|
|
636
|
+
"aria-atomic": "true"
|
|
637
|
+
};
|
|
638
|
+
const _hoisted_8$2 = {
|
|
639
|
+
class: "mb-2 grid grid-cols-7 gap-1",
|
|
640
|
+
role: "row"
|
|
641
|
+
};
|
|
642
|
+
const _hoisted_9$1 = ["abbr"];
|
|
643
|
+
const _hoisted_10$1 = ["id", "aria-label"];
|
|
644
|
+
const _hoisted_11$1 = ["aria-label", "aria-selected", "aria-disabled", "disabled", "onClick"];
|
|
645
|
+
const _hoisted_12 = { class: "mt-4 border-t border-gray-200 pt-3 dark:border-gray-700" };
|
|
646
|
+
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
577
647
|
__name: "DatePicker",
|
|
578
648
|
props: /* @__PURE__ */ mergeModels({
|
|
579
649
|
placeholder: { default: "Select date" },
|
|
@@ -582,7 +652,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
582
652
|
disabled: { type: Boolean, default: false },
|
|
583
653
|
minDate: {},
|
|
584
654
|
maxDate: {},
|
|
585
|
-
teleport: { type: Boolean, default: true }
|
|
655
|
+
teleport: { type: Boolean, default: true },
|
|
656
|
+
id: {}
|
|
586
657
|
}, {
|
|
587
658
|
"modelValue": { default: null },
|
|
588
659
|
"modelModifiers": {}
|
|
@@ -590,6 +661,10 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
590
661
|
emits: ["update:modelValue"],
|
|
591
662
|
setup(__props) {
|
|
592
663
|
const props = __props;
|
|
664
|
+
const { related } = useId({ prefix: "datepicker", id: props.id });
|
|
665
|
+
const triggerId = computed(() => related("trigger"));
|
|
666
|
+
const calendarId = computed(() => related("calendar"));
|
|
667
|
+
const gridId = computed(() => related("grid"));
|
|
593
668
|
const modelValue = useModel(__props, "modelValue");
|
|
594
669
|
const triggerRef = ref();
|
|
595
670
|
const calendarRef = ref();
|
|
@@ -682,13 +757,26 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
682
757
|
const clear = () => {
|
|
683
758
|
modelValue.value = null;
|
|
684
759
|
};
|
|
760
|
+
const getDateLabel = (date) => {
|
|
761
|
+
const formatter = new Intl.DateTimeFormat(props.locale, {
|
|
762
|
+
weekday: "long",
|
|
763
|
+
year: "numeric",
|
|
764
|
+
month: "long",
|
|
765
|
+
day: "numeric"
|
|
766
|
+
});
|
|
767
|
+
return formatter.format(date);
|
|
768
|
+
};
|
|
685
769
|
return (_ctx, _cache) => {
|
|
686
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
770
|
+
return openBlock(), createElementBlock("div", _hoisted_1$5, [
|
|
687
771
|
createElementVNode("button", {
|
|
772
|
+
id: triggerId.value,
|
|
688
773
|
ref_key: "triggerRef",
|
|
689
774
|
ref: triggerRef,
|
|
690
775
|
type: "button",
|
|
691
776
|
disabled: __props.disabled,
|
|
777
|
+
"aria-expanded": unref(isOpen),
|
|
778
|
+
"aria-haspopup": "dialog",
|
|
779
|
+
"aria-controls": calendarId.value,
|
|
692
780
|
class: normalizeClass([
|
|
693
781
|
"flex w-full items-center justify-between gap-2 rounded-md border px-3 py-2 text-sm text-left transition",
|
|
694
782
|
__props.disabled ? "cursor-not-allowed border-gray-200 bg-gray-50 text-gray-500 dark:border-gray-800 dark:bg-gray-950" : unref(isOpen) ? "border-primary ring-2 ring-primary/20 bg-white dark:bg-gray-900" : "border-gray-300 bg-white hover:border-gray-400 dark:border-gray-700 dark:bg-gray-900",
|
|
@@ -697,25 +785,28 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
697
785
|
onClick: _cache[0] || (_cache[0] = //@ts-ignore
|
|
698
786
|
(...args) => unref(toggle) && unref(toggle)(...args))
|
|
699
787
|
}, [
|
|
700
|
-
createElementVNode("span", _hoisted_3$
|
|
701
|
-
createElementVNode("div", _hoisted_4$
|
|
788
|
+
createElementVNode("span", _hoisted_3$5, toDisplayString(displayValue.value || __props.placeholder), 1),
|
|
789
|
+
createElementVNode("div", _hoisted_4$3, [
|
|
702
790
|
modelValue.value ? (openBlock(), createElementBlock("button", {
|
|
703
791
|
key: 0,
|
|
704
792
|
type: "button",
|
|
705
793
|
class: "rounded p-0.5 hover:bg-gray-100 dark:hover:bg-gray-800",
|
|
794
|
+
"aria-label": "Clear date",
|
|
706
795
|
onClick: withModifiers(clear, ["stop"])
|
|
707
796
|
}, [
|
|
708
797
|
createVNode(unref(Icon), {
|
|
709
798
|
icon: "lucide:x",
|
|
710
|
-
class: "size-4 text-gray-400"
|
|
799
|
+
class: "size-4 text-gray-400",
|
|
800
|
+
"aria-hidden": "true"
|
|
711
801
|
})
|
|
712
802
|
])) : createCommentVNode("", true),
|
|
713
803
|
createVNode(unref(Icon), {
|
|
714
804
|
icon: "lucide:calendar",
|
|
715
|
-
class: "size-4 text-gray-400"
|
|
805
|
+
class: "size-4 text-gray-400",
|
|
806
|
+
"aria-hidden": "true"
|
|
716
807
|
})
|
|
717
808
|
])
|
|
718
|
-
], 10, _hoisted_2$
|
|
809
|
+
], 10, _hoisted_2$5),
|
|
719
810
|
(openBlock(), createBlock(Teleport, {
|
|
720
811
|
to: "body",
|
|
721
812
|
disabled: !__props.teleport
|
|
@@ -731,47 +822,66 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
731
822
|
default: withCtx(() => [
|
|
732
823
|
unref(isOpen) ? (openBlock(), createElementBlock("div", {
|
|
733
824
|
key: 0,
|
|
825
|
+
id: calendarId.value,
|
|
734
826
|
ref_key: "calendarRef",
|
|
735
827
|
ref: calendarRef,
|
|
828
|
+
role: "dialog",
|
|
829
|
+
"aria-modal": "true",
|
|
830
|
+
"aria-label": `Choose date, ${monthYear.value}`,
|
|
736
831
|
style: normalizeStyle(unref(dropdownStyle)),
|
|
737
832
|
class: "z-[9999] w-72 rounded-lg border border-gray-200 bg-white p-4 shadow-lg dark:border-gray-700 dark:bg-gray-800"
|
|
738
833
|
}, [
|
|
739
|
-
createElementVNode("div",
|
|
834
|
+
createElementVNode("div", _hoisted_6$3, [
|
|
740
835
|
createElementVNode("button", {
|
|
741
836
|
type: "button",
|
|
742
837
|
class: "rounded p-1 hover:bg-gray-100 dark:hover:bg-gray-700",
|
|
838
|
+
"aria-label": "Previous month",
|
|
743
839
|
onClick: prevMonth
|
|
744
840
|
}, [
|
|
745
841
|
createVNode(unref(Icon), {
|
|
746
842
|
icon: "lucide:chevron-left",
|
|
747
|
-
class: "size-5 text-gray-600 dark:text-gray-400"
|
|
843
|
+
class: "size-5 text-gray-600 dark:text-gray-400",
|
|
844
|
+
"aria-hidden": "true"
|
|
748
845
|
})
|
|
749
846
|
]),
|
|
750
|
-
createElementVNode("span",
|
|
847
|
+
createElementVNode("span", _hoisted_7$3, toDisplayString(monthYear.value), 1),
|
|
751
848
|
createElementVNode("button", {
|
|
752
849
|
type: "button",
|
|
753
850
|
class: "rounded p-1 hover:bg-gray-100 dark:hover:bg-gray-700",
|
|
851
|
+
"aria-label": "Next month",
|
|
754
852
|
onClick: nextMonth
|
|
755
853
|
}, [
|
|
756
854
|
createVNode(unref(Icon), {
|
|
757
855
|
icon: "lucide:chevron-right",
|
|
758
|
-
class: "size-5 text-gray-600 dark:text-gray-400"
|
|
856
|
+
class: "size-5 text-gray-600 dark:text-gray-400",
|
|
857
|
+
"aria-hidden": "true"
|
|
759
858
|
})
|
|
760
859
|
])
|
|
761
860
|
]),
|
|
762
|
-
createElementVNode("div",
|
|
861
|
+
createElementVNode("div", _hoisted_8$2, [
|
|
763
862
|
(openBlock(true), createElementBlock(Fragment, null, renderList(weekDays.value, (day) => {
|
|
764
863
|
return openBlock(), createElementBlock("div", {
|
|
765
864
|
key: day,
|
|
766
|
-
class: "text-center text-xs font-medium text-gray-500 dark:text-gray-400"
|
|
767
|
-
|
|
865
|
+
class: "text-center text-xs font-medium text-gray-500 dark:text-gray-400",
|
|
866
|
+
role: "columnheader",
|
|
867
|
+
abbr: day
|
|
868
|
+
}, toDisplayString(day), 9, _hoisted_9$1);
|
|
768
869
|
}), 128))
|
|
769
870
|
]),
|
|
770
|
-
createElementVNode("div",
|
|
871
|
+
createElementVNode("div", {
|
|
872
|
+
id: gridId.value,
|
|
873
|
+
class: "grid grid-cols-7 gap-1",
|
|
874
|
+
role: "grid",
|
|
875
|
+
"aria-label": monthYear.value
|
|
876
|
+
}, [
|
|
771
877
|
(openBlock(true), createElementBlock(Fragment, null, renderList(calendarDays.value, (day, index) => {
|
|
772
878
|
return openBlock(), createElementBlock("button", {
|
|
773
879
|
key: index,
|
|
774
880
|
type: "button",
|
|
881
|
+
role: "gridcell",
|
|
882
|
+
"aria-label": getDateLabel(day.date),
|
|
883
|
+
"aria-selected": day.isSelected,
|
|
884
|
+
"aria-disabled": day.isDisabled || void 0,
|
|
775
885
|
disabled: day.isDisabled,
|
|
776
886
|
class: normalizeClass([
|
|
777
887
|
"h-8 w-8 rounded text-sm transition",
|
|
@@ -782,17 +892,17 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
782
892
|
day.isSelected && "bg-primary text-white font-semibold"
|
|
783
893
|
]),
|
|
784
894
|
onClick: ($event) => selectDate(day)
|
|
785
|
-
}, toDisplayString(day.date.getDate()), 11,
|
|
895
|
+
}, toDisplayString(day.date.getDate()), 11, _hoisted_11$1);
|
|
786
896
|
}), 128))
|
|
787
|
-
]),
|
|
788
|
-
createElementVNode("div",
|
|
897
|
+
], 8, _hoisted_10$1),
|
|
898
|
+
createElementVNode("div", _hoisted_12, [
|
|
789
899
|
createElementVNode("button", {
|
|
790
900
|
type: "button",
|
|
791
901
|
class: "w-full rounded py-1.5 text-sm font-medium text-primary hover:bg-primary/10",
|
|
792
902
|
onClick: _cache[1] || (_cache[1] = ($event) => selectDate({ date: /* @__PURE__ */ new Date(), isDisabled: false }))
|
|
793
903
|
}, " Today ")
|
|
794
904
|
])
|
|
795
|
-
],
|
|
905
|
+
], 12, _hoisted_5$3)) : createCommentVNode("", true)
|
|
796
906
|
]),
|
|
797
907
|
_: 1
|
|
798
908
|
})
|
|
@@ -801,19 +911,19 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
801
911
|
};
|
|
802
912
|
}
|
|
803
913
|
});
|
|
804
|
-
const _hoisted_1$
|
|
805
|
-
const _hoisted_2$
|
|
806
|
-
const _hoisted_3$
|
|
807
|
-
const _hoisted_4$
|
|
808
|
-
const _hoisted_5$
|
|
914
|
+
const _hoisted_1$4 = { class: "space-y-4" };
|
|
915
|
+
const _hoisted_2$4 = ["accept", "multiple", "disabled"];
|
|
916
|
+
const _hoisted_3$4 = { class: "space-y-2" };
|
|
917
|
+
const _hoisted_4$2 = { class: "text-sm font-medium text-gray-700 dark:text-gray-300" };
|
|
918
|
+
const _hoisted_5$2 = {
|
|
809
919
|
key: 0,
|
|
810
920
|
class: "text-xs text-gray-500 dark:text-gray-400"
|
|
811
921
|
};
|
|
812
|
-
const _hoisted_6$
|
|
922
|
+
const _hoisted_6$2 = {
|
|
813
923
|
key: 1,
|
|
814
924
|
class: "text-xs text-gray-500 dark:text-gray-400"
|
|
815
925
|
};
|
|
816
|
-
const _hoisted_7$
|
|
926
|
+
const _hoisted_7$2 = {
|
|
817
927
|
key: 0,
|
|
818
928
|
class: "space-y-2"
|
|
819
929
|
};
|
|
@@ -821,7 +931,7 @@ const _hoisted_8$1 = { class: "flex-1 min-w-0" };
|
|
|
821
931
|
const _hoisted_9 = { class: "text-sm font-medium text-gray-700 dark:text-gray-300 truncate" };
|
|
822
932
|
const _hoisted_10 = { class: "text-xs text-gray-500 dark:text-gray-400" };
|
|
823
933
|
const _hoisted_11 = ["onClick"];
|
|
824
|
-
const _sfc_main$
|
|
934
|
+
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
825
935
|
__name: "FileUpload",
|
|
826
936
|
props: {
|
|
827
937
|
accept: {},
|
|
@@ -949,7 +1059,7 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
949
1059
|
return "heroicons:document";
|
|
950
1060
|
};
|
|
951
1061
|
return (_ctx, _cache) => {
|
|
952
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1062
|
+
return openBlock(), createElementBlock("div", _hoisted_1$4, [
|
|
953
1063
|
createElementVNode("div", {
|
|
954
1064
|
class: normalizeClass(dropzoneClasses.value),
|
|
955
1065
|
onDrop: withModifiers(handleDrop, ["prevent"]),
|
|
@@ -966,18 +1076,18 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
966
1076
|
multiple: __props.multiple,
|
|
967
1077
|
disabled: __props.disabled,
|
|
968
1078
|
onChange: handleInputChange
|
|
969
|
-
}, null, 40, _hoisted_2$
|
|
970
|
-
createElementVNode("div", _hoisted_3$
|
|
1079
|
+
}, null, 40, _hoisted_2$4),
|
|
1080
|
+
createElementVNode("div", _hoisted_3$4, [
|
|
971
1081
|
createVNode(unref(Icon), {
|
|
972
1082
|
icon: "heroicons:cloud-arrow-up",
|
|
973
1083
|
class: normalizeClass(["w-12 h-12 mx-auto text-gray-400", { "text-primary-500": isDragging.value }])
|
|
974
1084
|
}, null, 8, ["class"]),
|
|
975
|
-
createElementVNode("p", _hoisted_4$
|
|
976
|
-
__props.description ? (openBlock(), createElementBlock("p", _hoisted_5$
|
|
977
|
-
__props.maxSize ? (openBlock(), createElementBlock("p", _hoisted_6$
|
|
1085
|
+
createElementVNode("p", _hoisted_4$2, toDisplayString(__props.label), 1),
|
|
1086
|
+
__props.description ? (openBlock(), createElementBlock("p", _hoisted_5$2, toDisplayString(__props.description), 1)) : createCommentVNode("", true),
|
|
1087
|
+
__props.maxSize ? (openBlock(), createElementBlock("p", _hoisted_6$2, " Max size: " + toDisplayString(formatSize(__props.maxSize)), 1)) : createCommentVNode("", true)
|
|
978
1088
|
])
|
|
979
1089
|
], 34),
|
|
980
|
-
files.value.length > 0 ? (openBlock(), createElementBlock("ul", _hoisted_7$
|
|
1090
|
+
files.value.length > 0 ? (openBlock(), createElementBlock("ul", _hoisted_7$2, [
|
|
981
1091
|
(openBlock(true), createElementBlock(Fragment, null, renderList(files.value, (uploadedFile) => {
|
|
982
1092
|
return openBlock(), createElementBlock("li", {
|
|
983
1093
|
key: uploadedFile.id,
|
|
@@ -1008,13 +1118,13 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
|
1008
1118
|
};
|
|
1009
1119
|
}
|
|
1010
1120
|
});
|
|
1011
|
-
const _hoisted_1$
|
|
1012
|
-
const _hoisted_2$
|
|
1013
|
-
const _hoisted_3$
|
|
1121
|
+
const _hoisted_1$3 = { class: "flex items-center gap-1" };
|
|
1122
|
+
const _hoisted_2$3 = ["disabled", "onClick", "onMousemove"];
|
|
1123
|
+
const _hoisted_3$3 = {
|
|
1014
1124
|
key: 0,
|
|
1015
1125
|
class: "ml-2 text-sm font-medium text-gray-700 dark:text-gray-300"
|
|
1016
1126
|
};
|
|
1017
|
-
const _sfc_main$
|
|
1127
|
+
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
|
|
1018
1128
|
__name: "Rating",
|
|
1019
1129
|
props: {
|
|
1020
1130
|
modelValue: { default: 0 },
|
|
@@ -1077,7 +1187,7 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
1077
1187
|
hoverValue.value = null;
|
|
1078
1188
|
};
|
|
1079
1189
|
return (_ctx, _cache) => {
|
|
1080
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1190
|
+
return openBlock(), createElementBlock("div", _hoisted_1$3, [
|
|
1081
1191
|
createElementVNode("div", {
|
|
1082
1192
|
class: "flex items-center",
|
|
1083
1193
|
onMouseleave: handleMouseLeave
|
|
@@ -1109,29 +1219,29 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
|
1109
1219
|
class: normalizeClass([sizeClasses.value, __props.color])
|
|
1110
1220
|
}, null, 8, ["icon", "class"])
|
|
1111
1221
|
], 4)
|
|
1112
|
-
], 42, _hoisted_2$
|
|
1222
|
+
], 42, _hoisted_2$3);
|
|
1113
1223
|
}), 128))
|
|
1114
1224
|
], 32),
|
|
1115
|
-
__props.showValue ? (openBlock(), createElementBlock("span", _hoisted_3$
|
|
1225
|
+
__props.showValue ? (openBlock(), createElementBlock("span", _hoisted_3$3, toDisplayString(__props.modelValue.toFixed(__props.allowHalf ? 1 : 0)), 1)) : createCommentVNode("", true)
|
|
1116
1226
|
]);
|
|
1117
1227
|
};
|
|
1118
1228
|
}
|
|
1119
1229
|
});
|
|
1120
|
-
const _hoisted_1$
|
|
1121
|
-
const _hoisted_2$
|
|
1230
|
+
const _hoisted_1$2 = { class: "relative inline-block" };
|
|
1231
|
+
const _hoisted_2$2 = {
|
|
1122
1232
|
key: 0,
|
|
1123
1233
|
class: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"
|
|
1124
1234
|
};
|
|
1125
|
-
const _hoisted_3$
|
|
1126
|
-
const _hoisted_4 = { class: "text-sm font-mono text-gray-700 dark:text-gray-300" };
|
|
1127
|
-
const _hoisted_5 = { class: "grid grid-cols-5 gap-2 mb-3" };
|
|
1128
|
-
const _hoisted_6 = ["title", "onClick"];
|
|
1129
|
-
const _hoisted_7 = {
|
|
1235
|
+
const _hoisted_3$2 = ["disabled"];
|
|
1236
|
+
const _hoisted_4$1 = { class: "text-sm font-mono text-gray-700 dark:text-gray-300" };
|
|
1237
|
+
const _hoisted_5$1 = { class: "grid grid-cols-5 gap-2 mb-3" };
|
|
1238
|
+
const _hoisted_6$1 = ["title", "onClick"];
|
|
1239
|
+
const _hoisted_7$1 = {
|
|
1130
1240
|
key: 0,
|
|
1131
1241
|
class: "flex items-center gap-2 pt-3 border-t border-gray-200 dark:border-gray-700"
|
|
1132
1242
|
};
|
|
1133
1243
|
const _hoisted_8 = ["value"];
|
|
1134
|
-
const _sfc_main$
|
|
1244
|
+
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
|
|
1135
1245
|
__name: "ColorPicker",
|
|
1136
1246
|
props: {
|
|
1137
1247
|
modelValue: { default: "#3b82f6" },
|
|
@@ -1159,11 +1269,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1159
1269
|
] },
|
|
1160
1270
|
showInput: { type: Boolean, default: true },
|
|
1161
1271
|
disabled: { type: Boolean, default: false },
|
|
1162
|
-
label: {}
|
|
1272
|
+
label: {},
|
|
1273
|
+
teleport: { type: [String, Boolean], default: false }
|
|
1163
1274
|
},
|
|
1164
1275
|
emits: ["update:modelValue"],
|
|
1165
1276
|
setup(__props, { emit: __emit }) {
|
|
1166
1277
|
const props = __props;
|
|
1278
|
+
const teleportDisabled = computed(() => props.teleport === false);
|
|
1279
|
+
const teleportTarget = computed(() => props.teleport === false ? "body" : props.teleport);
|
|
1167
1280
|
const emit = __emit;
|
|
1168
1281
|
const isOpen = ref(false);
|
|
1169
1282
|
const inputValue = ref(props.modelValue);
|
|
@@ -1197,8 +1310,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1197
1310
|
isOpen.value = false;
|
|
1198
1311
|
};
|
|
1199
1312
|
return (_ctx, _cache) => {
|
|
1200
|
-
return openBlock(), createElementBlock("div", _hoisted_1$
|
|
1201
|
-
__props.label ? (openBlock(), createElementBlock("label", _hoisted_2$
|
|
1313
|
+
return openBlock(), createElementBlock("div", _hoisted_1$2, [
|
|
1314
|
+
__props.label ? (openBlock(), createElementBlock("label", _hoisted_2$2, toDisplayString(__props.label), 1)) : createCommentVNode("", true),
|
|
1202
1315
|
createElementVNode("button", {
|
|
1203
1316
|
type: "button",
|
|
1204
1317
|
class: normalizeClass(["flex items-center gap-2 px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg bg-white dark:bg-gray-800 hover:bg-gray-50 dark:hover:bg-gray-700 transition-colors", { "opacity-50 cursor-not-allowed": __props.disabled }]),
|
|
@@ -1209,90 +1322,95 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1209
1322
|
class: "w-6 h-6 rounded border border-gray-200 dark:border-gray-600",
|
|
1210
1323
|
style: normalizeStyle({ backgroundColor: __props.modelValue })
|
|
1211
1324
|
}, null, 4),
|
|
1212
|
-
createElementVNode("span", _hoisted_4, toDisplayString(__props.modelValue), 1),
|
|
1325
|
+
createElementVNode("span", _hoisted_4$1, toDisplayString(__props.modelValue), 1),
|
|
1213
1326
|
createVNode(unref(Icon), {
|
|
1214
1327
|
icon: "heroicons:chevron-down",
|
|
1215
1328
|
class: normalizeClass(["w-4 h-4 text-gray-400", { "rotate-180": isOpen.value }])
|
|
1216
1329
|
}, null, 8, ["class"])
|
|
1217
|
-
], 10, _hoisted_3$
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1223
|
-
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1330
|
+
], 10, _hoisted_3$2),
|
|
1331
|
+
(openBlock(), createBlock(Teleport, {
|
|
1332
|
+
to: teleportTarget.value,
|
|
1333
|
+
disabled: teleportDisabled.value
|
|
1334
|
+
}, [
|
|
1335
|
+
createVNode(Transition, {
|
|
1336
|
+
"enter-active-class": "transition duration-100 ease-out",
|
|
1337
|
+
"enter-from-class": "opacity-0 scale-95",
|
|
1338
|
+
"enter-to-class": "opacity-100 scale-100",
|
|
1339
|
+
"leave-active-class": "transition duration-75 ease-in",
|
|
1340
|
+
"leave-from-class": "opacity-100 scale-100",
|
|
1341
|
+
"leave-to-class": "opacity-0 scale-95"
|
|
1342
|
+
}, {
|
|
1343
|
+
default: withCtx(() => [
|
|
1344
|
+
isOpen.value ? (openBlock(), createElementBlock("div", {
|
|
1345
|
+
key: 0,
|
|
1346
|
+
class: "absolute z-50 mt-2 p-3 bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-lg shadow-lg",
|
|
1347
|
+
onClick: _cache[1] || (_cache[1] = withModifiers(() => {
|
|
1348
|
+
}, ["stop"]))
|
|
1349
|
+
}, [
|
|
1350
|
+
createElementVNode("div", _hoisted_5$1, [
|
|
1351
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.swatches, (color) => {
|
|
1352
|
+
return openBlock(), createElementBlock("button", {
|
|
1353
|
+
key: color,
|
|
1354
|
+
type: "button",
|
|
1355
|
+
class: normalizeClass(["w-8 h-8 rounded-lg border-2 transition-transform hover:scale-110 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-1", [
|
|
1356
|
+
__props.modelValue === color ? "border-primary-500 ring-2 ring-primary-500 ring-offset-1" : "border-transparent"
|
|
1357
|
+
]]),
|
|
1358
|
+
style: normalizeStyle({ backgroundColor: color }),
|
|
1359
|
+
title: color,
|
|
1360
|
+
onClick: ($event) => selectColor(color)
|
|
1361
|
+
}, [
|
|
1362
|
+
__props.modelValue === color ? (openBlock(), createBlock(unref(Icon), {
|
|
1363
|
+
key: 0,
|
|
1364
|
+
icon: "heroicons:check",
|
|
1365
|
+
class: normalizeClass(["w-4 h-4 mx-auto", [
|
|
1366
|
+
["#ffffff", "#f9fafb", "#f3f4f6", "#e5e7eb", "#eab308", "#f59e0b"].includes(color) ? "text-gray-800" : "text-white"
|
|
1367
|
+
]])
|
|
1368
|
+
}, null, 8, ["class"])) : createCommentVNode("", true)
|
|
1369
|
+
], 14, _hoisted_6$1);
|
|
1370
|
+
}), 128))
|
|
1371
|
+
]),
|
|
1372
|
+
__props.showInput ? (openBlock(), createElementBlock("div", _hoisted_7$1, [
|
|
1373
|
+
createElementVNode("input", {
|
|
1374
|
+
type: "color",
|
|
1375
|
+
value: __props.modelValue,
|
|
1376
|
+
class: "w-8 h-8 rounded cursor-pointer border-0 p-0",
|
|
1377
|
+
onInput: handleNativeInput
|
|
1378
|
+
}, null, 40, _hoisted_8),
|
|
1379
|
+
withDirectives(createElementVNode("input", {
|
|
1380
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputValue.value = $event),
|
|
1381
|
+
type: "text",
|
|
1382
|
+
class: "flex-1 px-2 py-1 text-sm font-mono border border-gray-300 dark:border-gray-600 rounded bg-white dark:bg-gray-700 text-gray-900 dark:text-white",
|
|
1383
|
+
placeholder: "#000000",
|
|
1384
|
+
onChange: handleInputChange,
|
|
1385
|
+
onKeyup: withKeys(handleInputChange, ["enter"])
|
|
1386
|
+
}, null, 544), [
|
|
1387
|
+
[vModelText, inputValue.value]
|
|
1388
|
+
])
|
|
1389
|
+
])) : createCommentVNode("", true)
|
|
1272
1390
|
])) : createCommentVNode("", true)
|
|
1273
|
-
])
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1391
|
+
]),
|
|
1392
|
+
_: 1
|
|
1393
|
+
}),
|
|
1394
|
+
isOpen.value ? (openBlock(), createElementBlock("div", {
|
|
1395
|
+
key: 0,
|
|
1396
|
+
class: "fixed inset-0 z-40",
|
|
1397
|
+
onClick: closePicker
|
|
1398
|
+
})) : createCommentVNode("", true)
|
|
1399
|
+
], 8, ["to", "disabled"]))
|
|
1282
1400
|
]);
|
|
1283
1401
|
};
|
|
1284
1402
|
}
|
|
1285
1403
|
});
|
|
1286
|
-
const _hoisted_1 = { class: "space-y-2" };
|
|
1287
|
-
const _hoisted_2 = {
|
|
1404
|
+
const _hoisted_1$1 = { class: "space-y-2" };
|
|
1405
|
+
const _hoisted_2$1 = {
|
|
1288
1406
|
key: 0,
|
|
1289
1407
|
class: "flex justify-between text-sm font-medium text-gray-700 dark:text-gray-300"
|
|
1290
1408
|
};
|
|
1291
|
-
const _hoisted_3 = {
|
|
1409
|
+
const _hoisted_3$1 = {
|
|
1292
1410
|
key: 1,
|
|
1293
1411
|
class: "flex justify-between text-xs text-gray-500 dark:text-gray-400"
|
|
1294
1412
|
};
|
|
1295
|
-
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
1413
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
1296
1414
|
__name: "RangeSlider",
|
|
1297
1415
|
props: {
|
|
1298
1416
|
modelValue: { default: () => [25, 75] },
|
|
@@ -1370,8 +1488,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1370
1488
|
}
|
|
1371
1489
|
};
|
|
1372
1490
|
return (_ctx, _cache) => {
|
|
1373
|
-
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
1374
|
-
__props.showLabels ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
1491
|
+
return openBlock(), createElementBlock("div", _hoisted_1$1, [
|
|
1492
|
+
__props.showLabels ? (openBlock(), createElementBlock("div", _hoisted_2$1, [
|
|
1375
1493
|
createElementVNode("span", null, toDisplayString(__props.formatLabel(minValue.value)), 1),
|
|
1376
1494
|
createElementVNode("span", null, toDisplayString(__props.formatLabel(maxValue.value)), 1)
|
|
1377
1495
|
])) : createCommentVNode("", true),
|
|
@@ -1404,7 +1522,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1404
1522
|
onMousedown: _cache[1] || (_cache[1] = ($event) => handleMouseDown("max"))
|
|
1405
1523
|
}, null, 38)
|
|
1406
1524
|
], 2),
|
|
1407
|
-
__props.showMinMax ? (openBlock(), createElementBlock("div", _hoisted_3, [
|
|
1525
|
+
__props.showMinMax ? (openBlock(), createElementBlock("div", _hoisted_3$1, [
|
|
1408
1526
|
createElementVNode("span", null, toDisplayString(__props.formatLabel(__props.min)), 1),
|
|
1409
1527
|
createElementVNode("span", null, toDisplayString(__props.formatLabel(__props.max)), 1)
|
|
1410
1528
|
])) : createCommentVNode("", true)
|
|
@@ -1412,19 +1530,256 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1412
1530
|
};
|
|
1413
1531
|
}
|
|
1414
1532
|
});
|
|
1533
|
+
const _hoisted_1 = ["aria-expanded", "aria-controls"];
|
|
1534
|
+
const _hoisted_2 = ["id", "name", "placeholder", "disabled", "aria-controls"];
|
|
1535
|
+
const _hoisted_3 = { class: "flex items-center gap-1" };
|
|
1536
|
+
const _hoisted_4 = ["id", "aria-label", "aria-multiselectable"];
|
|
1537
|
+
const _hoisted_5 = ["aria-selected", "aria-disabled", "disabled", "onClick"];
|
|
1538
|
+
const _hoisted_6 = { class: "flex-1" };
|
|
1539
|
+
const _hoisted_7 = {
|
|
1540
|
+
key: 1,
|
|
1541
|
+
class: "px-3 py-2 text-center text-sm text-gray-500 dark:text-gray-400",
|
|
1542
|
+
role: "status"
|
|
1543
|
+
};
|
|
1544
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
1545
|
+
__name: "Combobox",
|
|
1546
|
+
props: {
|
|
1547
|
+
modelValue: {},
|
|
1548
|
+
options: {},
|
|
1549
|
+
placeholder: { default: "Select..." },
|
|
1550
|
+
searchPlaceholder: { default: "Search..." },
|
|
1551
|
+
multiple: { type: Boolean, default: false },
|
|
1552
|
+
disabled: { type: Boolean, default: false },
|
|
1553
|
+
clearable: { type: Boolean, default: false },
|
|
1554
|
+
noResultsText: { default: "No results found" },
|
|
1555
|
+
name: {},
|
|
1556
|
+
id: {},
|
|
1557
|
+
teleport: { type: [String, Boolean], default: false }
|
|
1558
|
+
},
|
|
1559
|
+
emits: ["update:modelValue"],
|
|
1560
|
+
setup(__props, { emit: __emit }) {
|
|
1561
|
+
const props = __props;
|
|
1562
|
+
const { id: generatedId, related } = useId({ prefix: "combobox", id: props.id });
|
|
1563
|
+
const inputId = computed(() => props.id ?? generatedId.value);
|
|
1564
|
+
const listboxId = computed(() => related("listbox"));
|
|
1565
|
+
const teleportDisabled = computed(() => props.teleport === false);
|
|
1566
|
+
const teleportTarget = computed(() => props.teleport === false ? "body" : props.teleport);
|
|
1567
|
+
const emit = __emit;
|
|
1568
|
+
const containerRef = ref();
|
|
1569
|
+
const inputRef = ref();
|
|
1570
|
+
const isOpen = ref(false);
|
|
1571
|
+
const search = ref("");
|
|
1572
|
+
onClickOutside(containerRef, () => {
|
|
1573
|
+
isOpen.value = false;
|
|
1574
|
+
});
|
|
1575
|
+
const filteredOptions = computed(() => {
|
|
1576
|
+
if (!search.value) return props.options;
|
|
1577
|
+
const query = search.value.toLowerCase();
|
|
1578
|
+
return props.options.filter(
|
|
1579
|
+
(opt) => opt.label.toLowerCase().includes(query)
|
|
1580
|
+
);
|
|
1581
|
+
});
|
|
1582
|
+
const selectedOptions = computed(() => {
|
|
1583
|
+
if (props.modelValue === null || props.modelValue === void 0) return [];
|
|
1584
|
+
const values = Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue];
|
|
1585
|
+
return props.options.filter((opt) => values.includes(opt.value));
|
|
1586
|
+
});
|
|
1587
|
+
const displayValue = computed(() => {
|
|
1588
|
+
var _a;
|
|
1589
|
+
if (selectedOptions.value.length === 0) return "";
|
|
1590
|
+
if (props.multiple) {
|
|
1591
|
+
return selectedOptions.value.map((o) => o.label).join(", ");
|
|
1592
|
+
}
|
|
1593
|
+
return ((_a = selectedOptions.value[0]) == null ? void 0 : _a.label) || "";
|
|
1594
|
+
});
|
|
1595
|
+
const isSelected = (option) => {
|
|
1596
|
+
if (props.modelValue === null || props.modelValue === void 0) return false;
|
|
1597
|
+
if (Array.isArray(props.modelValue)) {
|
|
1598
|
+
return props.modelValue.includes(option.value);
|
|
1599
|
+
}
|
|
1600
|
+
return props.modelValue === option.value;
|
|
1601
|
+
};
|
|
1602
|
+
const toggleOption = (option) => {
|
|
1603
|
+
if (option.disabled) return;
|
|
1604
|
+
if (props.multiple) {
|
|
1605
|
+
const currentValues = Array.isArray(props.modelValue) ? [...props.modelValue] : [];
|
|
1606
|
+
const index = currentValues.indexOf(option.value);
|
|
1607
|
+
if (index === -1) {
|
|
1608
|
+
currentValues.push(option.value);
|
|
1609
|
+
} else {
|
|
1610
|
+
currentValues.splice(index, 1);
|
|
1611
|
+
}
|
|
1612
|
+
emit("update:modelValue", currentValues);
|
|
1613
|
+
} else {
|
|
1614
|
+
emit("update:modelValue", option.value);
|
|
1615
|
+
isOpen.value = false;
|
|
1616
|
+
search.value = "";
|
|
1617
|
+
}
|
|
1618
|
+
};
|
|
1619
|
+
const clear = () => {
|
|
1620
|
+
emit("update:modelValue", props.multiple ? [] : null);
|
|
1621
|
+
search.value = "";
|
|
1622
|
+
};
|
|
1623
|
+
const openDropdown = () => {
|
|
1624
|
+
if (props.disabled) return;
|
|
1625
|
+
isOpen.value = true;
|
|
1626
|
+
nextTick(() => {
|
|
1627
|
+
var _a;
|
|
1628
|
+
(_a = inputRef.value) == null ? void 0 : _a.focus();
|
|
1629
|
+
});
|
|
1630
|
+
};
|
|
1631
|
+
watch(isOpen, (open) => {
|
|
1632
|
+
if (!open) {
|
|
1633
|
+
search.value = "";
|
|
1634
|
+
}
|
|
1635
|
+
});
|
|
1636
|
+
return (_ctx, _cache) => {
|
|
1637
|
+
return openBlock(), createElementBlock("div", {
|
|
1638
|
+
ref_key: "containerRef",
|
|
1639
|
+
ref: containerRef,
|
|
1640
|
+
class: "relative"
|
|
1641
|
+
}, [
|
|
1642
|
+
createElementVNode("div", {
|
|
1643
|
+
role: "combobox",
|
|
1644
|
+
"aria-expanded": isOpen.value,
|
|
1645
|
+
"aria-haspopup": "listbox",
|
|
1646
|
+
"aria-controls": listboxId.value,
|
|
1647
|
+
class: normalizeClass([
|
|
1648
|
+
"flex min-h-[42px] w-full cursor-pointer items-center rounded-lg border bg-white px-3 py-2 transition-colors",
|
|
1649
|
+
"dark:bg-gray-900",
|
|
1650
|
+
__props.disabled ? "cursor-not-allowed border-gray-200 bg-gray-50 dark:border-gray-700 dark:bg-gray-800" : isOpen.value ? "border-primary ring-2 ring-primary/20" : "border-gray-300 hover:border-gray-400 dark:border-gray-600 dark:hover:border-gray-500"
|
|
1651
|
+
]),
|
|
1652
|
+
onClick: openDropdown
|
|
1653
|
+
}, [
|
|
1654
|
+
!isOpen.value ? (openBlock(), createElementBlock("span", {
|
|
1655
|
+
key: 0,
|
|
1656
|
+
class: normalizeClass([
|
|
1657
|
+
"flex-1 truncate text-sm",
|
|
1658
|
+
selectedOptions.value.length ? "text-gray-900 dark:text-gray-100" : "text-gray-400 dark:text-gray-500"
|
|
1659
|
+
])
|
|
1660
|
+
}, toDisplayString(displayValue.value || __props.placeholder), 3)) : withDirectives((openBlock(), createElementBlock("input", {
|
|
1661
|
+
key: 1,
|
|
1662
|
+
id: inputId.value,
|
|
1663
|
+
ref_key: "inputRef",
|
|
1664
|
+
ref: inputRef,
|
|
1665
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => search.value = $event),
|
|
1666
|
+
type: "text",
|
|
1667
|
+
name: __props.name,
|
|
1668
|
+
placeholder: __props.searchPlaceholder,
|
|
1669
|
+
disabled: __props.disabled,
|
|
1670
|
+
"aria-autocomplete": "list",
|
|
1671
|
+
"aria-controls": listboxId.value,
|
|
1672
|
+
class: "flex-1 border-none bg-transparent text-sm text-gray-900 outline-none placeholder:text-gray-400 dark:text-gray-100 dark:placeholder:text-gray-500",
|
|
1673
|
+
onClick: _cache[1] || (_cache[1] = withModifiers(() => {
|
|
1674
|
+
}, ["stop"]))
|
|
1675
|
+
}, null, 8, _hoisted_2)), [
|
|
1676
|
+
[vModelText, search.value]
|
|
1677
|
+
]),
|
|
1678
|
+
createElementVNode("div", _hoisted_3, [
|
|
1679
|
+
__props.clearable && selectedOptions.value.length > 0 && !__props.disabled ? (openBlock(), createElementBlock("button", {
|
|
1680
|
+
key: 0,
|
|
1681
|
+
type: "button",
|
|
1682
|
+
class: "rounded p-0.5 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",
|
|
1683
|
+
"aria-label": "Clear selection",
|
|
1684
|
+
onClick: withModifiers(clear, ["stop"])
|
|
1685
|
+
}, [
|
|
1686
|
+
createVNode(unref(Icon), {
|
|
1687
|
+
icon: "lucide:x",
|
|
1688
|
+
class: "h-4 w-4",
|
|
1689
|
+
"aria-hidden": "true"
|
|
1690
|
+
})
|
|
1691
|
+
])) : createCommentVNode("", true),
|
|
1692
|
+
createVNode(unref(Icon), {
|
|
1693
|
+
icon: "lucide:chevron-down",
|
|
1694
|
+
class: normalizeClass([
|
|
1695
|
+
"h-4 w-4 text-gray-400 transition-transform",
|
|
1696
|
+
isOpen.value && "rotate-180"
|
|
1697
|
+
]),
|
|
1698
|
+
"aria-hidden": "true"
|
|
1699
|
+
}, null, 8, ["class"])
|
|
1700
|
+
])
|
|
1701
|
+
], 10, _hoisted_1),
|
|
1702
|
+
(openBlock(), createBlock(Teleport, {
|
|
1703
|
+
to: teleportTarget.value,
|
|
1704
|
+
disabled: teleportDisabled.value
|
|
1705
|
+
}, [
|
|
1706
|
+
createVNode(Transition, {
|
|
1707
|
+
"enter-active-class": "transition duration-100 ease-out",
|
|
1708
|
+
"enter-from-class": "transform scale-95 opacity-0",
|
|
1709
|
+
"enter-to-class": "transform scale-100 opacity-100",
|
|
1710
|
+
"leave-active-class": "transition duration-75 ease-in",
|
|
1711
|
+
"leave-from-class": "transform scale-100 opacity-100",
|
|
1712
|
+
"leave-to-class": "transform scale-95 opacity-0"
|
|
1713
|
+
}, {
|
|
1714
|
+
default: withCtx(() => [
|
|
1715
|
+
isOpen.value ? (openBlock(), createElementBlock("div", {
|
|
1716
|
+
key: 0,
|
|
1717
|
+
id: listboxId.value,
|
|
1718
|
+
role: "listbox",
|
|
1719
|
+
"aria-label": __props.placeholder,
|
|
1720
|
+
"aria-multiselectable": __props.multiple || void 0,
|
|
1721
|
+
class: "absolute z-50 mt-1 max-h-60 w-full overflow-auto rounded-lg border border-gray-200 bg-white py-1 shadow-lg dark:border-gray-700 dark:bg-gray-900"
|
|
1722
|
+
}, [
|
|
1723
|
+
filteredOptions.value.length ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(filteredOptions.value, (option) => {
|
|
1724
|
+
return openBlock(), createElementBlock("button", {
|
|
1725
|
+
key: option.value,
|
|
1726
|
+
type: "button",
|
|
1727
|
+
role: "option",
|
|
1728
|
+
"aria-selected": isSelected(option),
|
|
1729
|
+
"aria-disabled": option.disabled || void 0,
|
|
1730
|
+
disabled: option.disabled,
|
|
1731
|
+
class: normalizeClass([
|
|
1732
|
+
"flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors",
|
|
1733
|
+
option.disabled ? "cursor-not-allowed text-gray-400 dark:text-gray-500" : isSelected(option) ? "bg-primary/10 text-primary dark:bg-primary/20" : "text-gray-700 hover:bg-gray-100 dark:text-gray-300 dark:hover:bg-gray-800"
|
|
1734
|
+
]),
|
|
1735
|
+
onClick: ($event) => toggleOption(option)
|
|
1736
|
+
}, [
|
|
1737
|
+
__props.multiple ? (openBlock(), createElementBlock("span", {
|
|
1738
|
+
key: 0,
|
|
1739
|
+
class: normalizeClass([
|
|
1740
|
+
"flex h-4 w-4 items-center justify-center rounded border",
|
|
1741
|
+
isSelected(option) ? "border-primary bg-primary text-white" : "border-gray-300 dark:border-gray-600"
|
|
1742
|
+
]),
|
|
1743
|
+
"aria-hidden": "true"
|
|
1744
|
+
}, [
|
|
1745
|
+
isSelected(option) ? (openBlock(), createBlock(unref(Icon), {
|
|
1746
|
+
key: 0,
|
|
1747
|
+
icon: "lucide:check",
|
|
1748
|
+
class: "h-3 w-3"
|
|
1749
|
+
})) : createCommentVNode("", true)
|
|
1750
|
+
], 2)) : createCommentVNode("", true),
|
|
1751
|
+
createElementVNode("span", _hoisted_6, toDisplayString(option.label), 1),
|
|
1752
|
+
!__props.multiple && isSelected(option) ? (openBlock(), createBlock(unref(Icon), {
|
|
1753
|
+
key: 1,
|
|
1754
|
+
icon: "lucide:check",
|
|
1755
|
+
class: "h-4 w-4 text-primary",
|
|
1756
|
+
"aria-hidden": "true"
|
|
1757
|
+
})) : createCommentVNode("", true)
|
|
1758
|
+
], 10, _hoisted_5);
|
|
1759
|
+
}), 128)) : (openBlock(), createElementBlock("div", _hoisted_7, toDisplayString(__props.noResultsText), 1))
|
|
1760
|
+
], 8, _hoisted_4)) : createCommentVNode("", true)
|
|
1761
|
+
]),
|
|
1762
|
+
_: 1
|
|
1763
|
+
})
|
|
1764
|
+
], 8, ["to", "disabled"]))
|
|
1765
|
+
], 512);
|
|
1766
|
+
};
|
|
1767
|
+
}
|
|
1768
|
+
});
|
|
1415
1769
|
export {
|
|
1416
1770
|
Slider as S,
|
|
1417
|
-
_sfc_main$
|
|
1418
|
-
_sfc_main$
|
|
1419
|
-
_sfc_main$
|
|
1420
|
-
_sfc_main$
|
|
1421
|
-
_sfc_main$
|
|
1422
|
-
_sfc_main$
|
|
1423
|
-
_sfc_main$
|
|
1424
|
-
_sfc_main$
|
|
1425
|
-
_sfc_main$
|
|
1426
|
-
_sfc_main$
|
|
1427
|
-
_sfc_main$
|
|
1428
|
-
_sfc_main as k
|
|
1771
|
+
_sfc_main$d as _,
|
|
1772
|
+
_sfc_main$c as a,
|
|
1773
|
+
_sfc_main$b as b,
|
|
1774
|
+
_sfc_main$a as c,
|
|
1775
|
+
_sfc_main$9 as d,
|
|
1776
|
+
_sfc_main$8 as e,
|
|
1777
|
+
_sfc_main$7 as f,
|
|
1778
|
+
_sfc_main$5 as g,
|
|
1779
|
+
_sfc_main$4 as h,
|
|
1780
|
+
_sfc_main$3 as i,
|
|
1781
|
+
_sfc_main$2 as j,
|
|
1782
|
+
_sfc_main$1 as k,
|
|
1783
|
+
_sfc_main as l
|
|
1429
1784
|
};
|
|
1430
|
-
//# sourceMappingURL=
|
|
1785
|
+
//# sourceMappingURL=Combobox.vue_vue_type_script_setup_true_lang-DCLKWzhc.js.map
|