cisse-vue-ui 0.5.21 → 0.5.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{ListSkeleton.vue_vue_type_script_setup_true_lang-D3_Oddwt.js → Button.vue_vue_type_script_setup_true_lang-DKE8elsf.js} +102 -7
- package/dist/Button.vue_vue_type_script_setup_true_lang-DKE8elsf.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-DrGM65ny.cjs} +101 -6
- package/dist/Button.vue_vue_type_script_setup_true_lang-DrGM65ny.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-DhcLb6DX.js} +408 -185
- package/dist/Combobox.vue_vue_type_script_setup_true_lang-DhcLb6DX.js.map +1 -0
- package/dist/{RangeSlider.vue_vue_type_script_setup_true_lang-ClH-pyK8.cjs → Combobox.vue_vue_type_script_setup_true_lang-FdUrjmSG.cjs} +435 -212
- package/dist/Combobox.vue_vue_type_script_setup_true_lang-FdUrjmSG.cjs.map +1 -0
- package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-Q4PcIELi.js → ConfirmDialog.vue_vue_type_script_setup_true_lang-CNucAMQg.js} +234 -119
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-CNucAMQg.js.map +1 -0
- package/dist/{Skeleton.vue_vue_type_script_setup_true_lang-CsDMGhaT.cjs → ConfirmDialog.vue_vue_type_script_setup_true_lang-DXb9wQQv.cjs} +233 -118
- package/dist/ConfirmDialog.vue_vue_type_script_setup_true_lang-DXb9wQQv.cjs.map +1 -0
- package/dist/{Timeline.vue_vue_type_script_setup_true_lang-ykGksWXN.js → DarkModeToggle.vue_vue_type_script_setup_true_lang-43fxlbro.js} +109 -357
- package/dist/DarkModeToggle.vue_vue_type_script_setup_true_lang-43fxlbro.js.map +1 -0
- package/dist/{Timeline.vue_vue_type_script_setup_true_lang-C5SKEGPG.cjs → DarkModeToggle.vue_vue_type_script_setup_true_lang-BoB48313.cjs} +148 -396
- package/dist/DarkModeToggle.vue_vue_type_script_setup_true_lang-BoB48313.cjs.map +1 -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/index.cjs +22 -20
- package/dist/components/core/index.cjs.map +1 -1
- package/dist/components/core/index.d.ts +2 -0
- package/dist/components/core/index.js +16 -14
- package/dist/components/core/index.js.map +1 -1
- 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/Modal.vue.d.ts +11 -2
- 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/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/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/index.cjs +55 -52
- package/dist/components/index.cjs.map +1 -1
- package/dist/components/index.js +33 -30
- package/dist/composables/index.cjs +3 -2
- package/dist/composables/index.cjs.map +1 -1
- package/dist/composables/index.js +9 -8
- package/dist/composables/index.js.map +1 -1
- package/dist/index-D7HVSFi2.cjs +337 -0
- package/dist/index-D7HVSFi2.cjs.map +1 -0
- package/dist/index-DZYqrXV0.js +75 -0
- package/dist/index-DZYqrXV0.js.map +1 -0
- package/dist/index-Dghdw1yo.js +338 -0
- package/dist/index-Dghdw1yo.js.map +1 -0
- package/dist/index-DjEv91o4.cjs +74 -0
- package/dist/index-DjEv91o4.cjs.map +1 -0
- package/dist/index.cjs +59 -55
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +43 -39
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- 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/{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 +1 -1
- 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/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
|
@@ -3,8 +3,9 @@ const vue = require("vue");
|
|
|
3
3
|
const vue$1 = require("@iconify/vue");
|
|
4
4
|
const useDropdown = require("./useDropdown-DHFnd259.cjs");
|
|
5
5
|
const _pluginVue_exportHelper = require("./_plugin-vue_export-helper-DM9IkUGy.cjs");
|
|
6
|
-
const
|
|
7
|
-
const
|
|
6
|
+
const index = require("./index-D7HVSFi2.cjs");
|
|
7
|
+
const _hoisted_1$d = ["data-error", "for"];
|
|
8
|
+
const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
8
9
|
__name: "FormLabel",
|
|
9
10
|
props: {
|
|
10
11
|
error: { type: [String, Boolean] },
|
|
@@ -18,12 +19,12 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
18
19
|
class: "block text-sm font-medium text-gray-700 data-[error=true]:text-red-500 dark:text-gray-300"
|
|
19
20
|
}, [
|
|
20
21
|
vue.renderSlot(_ctx.$slots, "default")
|
|
21
|
-
], 8, _hoisted_1$
|
|
22
|
+
], 8, _hoisted_1$d);
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
25
|
});
|
|
25
|
-
const _hoisted_1$
|
|
26
|
-
const _sfc_main$
|
|
26
|
+
const _hoisted_1$c = ["data-error"];
|
|
27
|
+
const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
27
28
|
__name: "FormHelp",
|
|
28
29
|
props: {
|
|
29
30
|
error: { type: Boolean },
|
|
@@ -38,12 +39,12 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
38
39
|
vue.renderSlot(_ctx.$slots, "default", {}, () => [
|
|
39
40
|
vue.createTextVNode(vue.toDisplayString(__props.text ?? ""), 1)
|
|
40
41
|
])
|
|
41
|
-
], 8, _hoisted_1$
|
|
42
|
+
], 8, _hoisted_1$c);
|
|
42
43
|
};
|
|
43
44
|
}
|
|
44
45
|
});
|
|
45
|
-
const _hoisted_1$
|
|
46
|
-
const _sfc_main$
|
|
46
|
+
const _hoisted_1$b = ["id", "disabled", "name", "placeholder", "type"];
|
|
47
|
+
const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
47
48
|
__name: "FormInput",
|
|
48
49
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
49
50
|
type: { default: "text" },
|
|
@@ -69,21 +70,21 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
69
70
|
placeholder: __props.placeholder,
|
|
70
71
|
type: __props.type,
|
|
71
72
|
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"
|
|
72
|
-
}, _ctx.$attrs), null, 16, _hoisted_1$
|
|
73
|
+
}, _ctx.$attrs), null, 16, _hoisted_1$b)), [
|
|
73
74
|
[vue.vModelDynamic, modelValue.value]
|
|
74
75
|
]);
|
|
75
76
|
};
|
|
76
77
|
}
|
|
77
78
|
});
|
|
78
|
-
const _hoisted_1$
|
|
79
|
-
const _hoisted_2$
|
|
80
|
-
const _hoisted_3$
|
|
81
|
-
const _hoisted_4$
|
|
79
|
+
const _hoisted_1$a = { class: "relative" };
|
|
80
|
+
const _hoisted_2$9 = ["id", "disabled"];
|
|
81
|
+
const _hoisted_3$8 = { class: "flex-1 truncate" };
|
|
82
|
+
const _hoisted_4$6 = {
|
|
82
83
|
key: 0,
|
|
83
84
|
class: "sticky top-0 border-b border-gray-200 bg-white p-2 dark:border-gray-700 dark:bg-gray-800"
|
|
84
85
|
};
|
|
85
|
-
const _hoisted_5$
|
|
86
|
-
const _hoisted_6$
|
|
86
|
+
const _hoisted_5$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" };
|
|
87
|
+
const _hoisted_6$5 = {
|
|
87
88
|
key: 1,
|
|
88
89
|
class: "px-4 py-3 text-sm text-gray-500 dark:text-gray-400"
|
|
89
90
|
};
|
|
@@ -94,7 +95,7 @@ const _hoisted_9$2 = {
|
|
|
94
95
|
class: "size-4 shrink-0"
|
|
95
96
|
};
|
|
96
97
|
const _hoisted_10$2 = { class: "flex-1" };
|
|
97
|
-
const _sfc_main$
|
|
98
|
+
const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
98
99
|
__name: "FormSelect",
|
|
99
100
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
100
101
|
options: {},
|
|
@@ -185,9 +186,9 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
185
186
|
const handleKeydown = (event) => {
|
|
186
187
|
baseHandleKeydown(event, {
|
|
187
188
|
itemCount: filteredOptions.value.length,
|
|
188
|
-
onSelect: (
|
|
189
|
-
if (filteredOptions.value[
|
|
190
|
-
selectOption(filteredOptions.value[
|
|
189
|
+
onSelect: (index2) => {
|
|
190
|
+
if (filteredOptions.value[index2]) {
|
|
191
|
+
selectOption(filteredOptions.value[index2]);
|
|
191
192
|
}
|
|
192
193
|
},
|
|
193
194
|
onOpen: open,
|
|
@@ -207,7 +208,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
207
208
|
return [base, state, text, props.triggerClass];
|
|
208
209
|
});
|
|
209
210
|
return (_ctx, _cache) => {
|
|
210
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
211
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
|
|
211
212
|
vue.createElementVNode("button", {
|
|
212
213
|
id: __props.id ?? __props.name ?? void 0,
|
|
213
214
|
ref_key: "triggerRef",
|
|
@@ -222,13 +223,13 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
222
223
|
option: selectedOption.value,
|
|
223
224
|
placeholder: __props.placeholder
|
|
224
225
|
}, () => [
|
|
225
|
-
vue.createElementVNode("span", _hoisted_3$
|
|
226
|
+
vue.createElementVNode("span", _hoisted_3$8, vue.toDisplayString(displayValue.value), 1)
|
|
226
227
|
]),
|
|
227
228
|
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
228
229
|
icon: "lucide:chevron-down",
|
|
229
230
|
class: vue.normalizeClass(["size-4 shrink-0 text-gray-400 transition-transform", vue.unref(isOpen) && "rotate-180"])
|
|
230
231
|
}, null, 8, ["class"])
|
|
231
|
-
], 42, _hoisted_2$
|
|
232
|
+
], 42, _hoisted_2$9),
|
|
232
233
|
(vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
233
234
|
to: "body",
|
|
234
235
|
disabled: !__props.teleport
|
|
@@ -252,8 +253,8 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
252
253
|
!__props.teleport && "absolute mt-1 w-full"
|
|
253
254
|
])
|
|
254
255
|
}, [
|
|
255
|
-
__props.searchable ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$
|
|
256
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
256
|
+
__props.searchable ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$6, [
|
|
257
|
+
vue.createElementVNode("div", _hoisted_5$5, [
|
|
257
258
|
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
258
259
|
icon: "lucide:search",
|
|
259
260
|
class: "size-4 text-gray-400"
|
|
@@ -271,26 +272,26 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
271
272
|
])
|
|
272
273
|
])
|
|
273
274
|
])) : vue.createCommentVNode("", true),
|
|
274
|
-
filteredOptions.value.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$
|
|
275
|
+
filteredOptions.value.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$5, vue.toDisplayString(__props.noResultsText), 1)) : vue.createCommentVNode("", true),
|
|
275
276
|
vue.createElementVNode("div", _hoisted_7$4, [
|
|
276
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filteredOptions.value, (option,
|
|
277
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filteredOptions.value, (option, index2) => {
|
|
277
278
|
return vue.openBlock(), vue.createElementBlock("button", {
|
|
278
279
|
key: String(option.value),
|
|
279
280
|
type: "button",
|
|
280
|
-
"data-index":
|
|
281
|
+
"data-index": index2,
|
|
281
282
|
class: vue.normalizeClass([
|
|
282
283
|
"flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors",
|
|
283
|
-
vue.unref(highlightedIndex) ===
|
|
284
|
+
vue.unref(highlightedIndex) === index2 && "bg-gray-100 dark:bg-gray-700",
|
|
284
285
|
modelValue.value === option.value && "bg-primary/10 text-primary",
|
|
285
286
|
modelValue.value !== option.value && "text-gray-700 dark:text-gray-200"
|
|
286
287
|
]),
|
|
287
288
|
onClick: ($event) => selectOption(option),
|
|
288
|
-
onMouseenter: ($event) => highlightedIndex.value =
|
|
289
|
+
onMouseenter: ($event) => highlightedIndex.value = index2
|
|
289
290
|
}, [
|
|
290
291
|
vue.renderSlot(_ctx.$slots, "option", {
|
|
291
292
|
option,
|
|
292
293
|
selected: modelValue.value === option.value,
|
|
293
|
-
index
|
|
294
|
+
index: index2
|
|
294
295
|
}, () => [
|
|
295
296
|
modelValue.value === option.value ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
296
297
|
key: 0,
|
|
@@ -311,8 +312,8 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
311
312
|
};
|
|
312
313
|
}
|
|
313
314
|
});
|
|
314
|
-
const _hoisted_1$
|
|
315
|
-
const _sfc_main$
|
|
315
|
+
const _hoisted_1$9 = ["hidden"];
|
|
316
|
+
const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
316
317
|
__name: "FormGroup",
|
|
317
318
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
318
319
|
label: {},
|
|
@@ -345,7 +346,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
345
346
|
}, [
|
|
346
347
|
vue.renderSlot(_ctx.$slots, "default", {}, () => [
|
|
347
348
|
vue.renderSlot(_ctx.$slots, "label", {}, () => [
|
|
348
|
-
__props.label ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
349
|
+
__props.label ? (vue.openBlock(), vue.createBlock(_sfc_main$d, {
|
|
349
350
|
key: 0,
|
|
350
351
|
"html-for": __props.id ?? __props.name,
|
|
351
352
|
error: __props.error
|
|
@@ -357,17 +358,17 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
357
358
|
}, 8, ["html-for", "error"])) : vue.createCommentVNode("", true)
|
|
358
359
|
]),
|
|
359
360
|
vue.renderSlot(_ctx.$slots, "input", {}, () => [
|
|
360
|
-
isSelect.value ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
361
|
+
isSelect.value ? (vue.openBlock(), vue.createBlock(_sfc_main$a, vue.mergeProps({
|
|
361
362
|
key: 0,
|
|
362
363
|
modelValue: modelValue.value,
|
|
363
364
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)
|
|
364
|
-
}, { ..._ctx.$attrs, ..._ctx.$props }), null, 16, ["modelValue"])) : (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
365
|
+
}, { ..._ctx.$attrs, ..._ctx.$props }), null, 16, ["modelValue"])) : (vue.openBlock(), vue.createBlock(_sfc_main$b, vue.mergeProps({
|
|
365
366
|
key: 1,
|
|
366
367
|
modelValue: modelValue.value,
|
|
367
368
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => modelValue.value = $event)
|
|
368
369
|
}, { ..._ctx.$attrs, ..._ctx.$props }), null, 16, ["modelValue"]))
|
|
369
370
|
]),
|
|
370
|
-
__props.error && typeof __props.error === "string" ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
371
|
+
__props.error && typeof __props.error === "string" ? (vue.openBlock(), vue.createBlock(_sfc_main$c, {
|
|
371
372
|
key: 0,
|
|
372
373
|
error: true
|
|
373
374
|
}, {
|
|
@@ -377,13 +378,13 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
377
378
|
_: 1
|
|
378
379
|
})) : vue.createCommentVNode("", true)
|
|
379
380
|
])
|
|
380
|
-
], 12, _hoisted_1$
|
|
381
|
+
], 12, _hoisted_1$9);
|
|
381
382
|
};
|
|
382
383
|
}
|
|
383
384
|
});
|
|
384
|
-
const _hoisted_1$
|
|
385
|
-
const _hoisted_2$
|
|
386
|
-
const _sfc_main$
|
|
385
|
+
const _hoisted_1$8 = { class: "relative" };
|
|
386
|
+
const _hoisted_2$8 = ["disabled", "placeholder", "value"];
|
|
387
|
+
const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
387
388
|
__name: "SearchInput",
|
|
388
389
|
props: {
|
|
389
390
|
modelValue: {},
|
|
@@ -399,7 +400,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
399
400
|
emit("update:modelValue", target.value);
|
|
400
401
|
};
|
|
401
402
|
return (_ctx, _cache) => {
|
|
402
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
403
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$8, [
|
|
403
404
|
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
404
405
|
icon: __props.icon,
|
|
405
406
|
class: "absolute top-1/2 left-3 h-5 w-5 -translate-y-1/2 text-gray-400"
|
|
@@ -411,25 +412,25 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
411
412
|
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",
|
|
412
413
|
type: "text",
|
|
413
414
|
onInput: handleInput
|
|
414
|
-
}, null, 40, _hoisted_2$
|
|
415
|
+
}, null, 40, _hoisted_2$8)
|
|
415
416
|
]);
|
|
416
417
|
};
|
|
417
418
|
}
|
|
418
419
|
});
|
|
419
|
-
const _hoisted_1$
|
|
420
|
-
const _hoisted_2$
|
|
420
|
+
const _hoisted_1$7 = ["aria-checked", "disabled"];
|
|
421
|
+
const _hoisted_2$7 = {
|
|
421
422
|
key: 0,
|
|
422
423
|
class: "flex flex-col"
|
|
423
424
|
};
|
|
424
|
-
const _hoisted_3$
|
|
425
|
+
const _hoisted_3$7 = {
|
|
425
426
|
key: 0,
|
|
426
427
|
class: "text-sm font-medium text-gray-900 dark:text-white"
|
|
427
428
|
};
|
|
428
|
-
const _hoisted_4$
|
|
429
|
+
const _hoisted_4$5 = {
|
|
429
430
|
key: 1,
|
|
430
431
|
class: "text-sm text-gray-500 dark:text-gray-400"
|
|
431
432
|
};
|
|
432
|
-
const _sfc_main$
|
|
433
|
+
const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
433
434
|
__name: "Switch",
|
|
434
435
|
props: {
|
|
435
436
|
modelValue: { type: Boolean, default: false },
|
|
@@ -484,27 +485,27 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
484
485
|
__props.modelValue ? translateSizes[__props.size] : "translate-x-1"
|
|
485
486
|
])
|
|
486
487
|
}, null, 2)
|
|
487
|
-
], 10, _hoisted_1$
|
|
488
|
-
__props.label || __props.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
489
|
-
__props.label ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$
|
|
490
|
-
__props.description ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$
|
|
488
|
+
], 10, _hoisted_1$7),
|
|
489
|
+
__props.label || __props.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$7, [
|
|
490
|
+
__props.label ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$7, vue.toDisplayString(__props.label), 1)) : vue.createCommentVNode("", true),
|
|
491
|
+
__props.description ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$5, vue.toDisplayString(__props.description), 1)) : vue.createCommentVNode("", true)
|
|
491
492
|
])) : vue.createCommentVNode("", true)
|
|
492
493
|
], 2);
|
|
493
494
|
};
|
|
494
495
|
}
|
|
495
496
|
});
|
|
496
|
-
const _hoisted_1$
|
|
497
|
-
const _hoisted_2$
|
|
497
|
+
const _hoisted_1$6 = { class: "w-full" };
|
|
498
|
+
const _hoisted_2$6 = {
|
|
498
499
|
key: 0,
|
|
499
500
|
class: "mb-2 flex justify-between text-sm"
|
|
500
501
|
};
|
|
501
|
-
const _hoisted_3$
|
|
502
|
-
const _hoisted_4$
|
|
503
|
-
const _hoisted_5$
|
|
504
|
-
const _hoisted_6$
|
|
502
|
+
const _hoisted_3$6 = { class: "text-gray-600 dark:text-gray-400" };
|
|
503
|
+
const _hoisted_4$4 = { class: "font-medium text-gray-900 dark:text-white" };
|
|
504
|
+
const _hoisted_5$4 = { class: "text-gray-600 dark:text-gray-400" };
|
|
505
|
+
const _hoisted_6$4 = { class: "relative" };
|
|
505
506
|
const _hoisted_7$3 = ["value", "min", "max", "step", "disabled"];
|
|
506
507
|
const _hoisted_8$3 = { class: "pointer-events-none absolute inset-y-0 left-0 flex items-center" };
|
|
507
|
-
const _sfc_main$
|
|
508
|
+
const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
508
509
|
__name: "Slider",
|
|
509
510
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
510
511
|
min: { default: 0 },
|
|
@@ -535,13 +536,13 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
535
536
|
modelValue.value = Number(target.value);
|
|
536
537
|
};
|
|
537
538
|
return (_ctx, _cache) => {
|
|
538
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
539
|
-
__props.showValue ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
540
|
-
vue.createElementVNode("span", _hoisted_3$
|
|
541
|
-
vue.createElementVNode("span", _hoisted_4$
|
|
542
|
-
vue.createElementVNode("span", _hoisted_5$
|
|
539
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$6, [
|
|
540
|
+
__props.showValue ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$6, [
|
|
541
|
+
vue.createElementVNode("span", _hoisted_3$6, vue.toDisplayString(__props.min), 1),
|
|
542
|
+
vue.createElementVNode("span", _hoisted_4$4, vue.toDisplayString(displayValue.value), 1),
|
|
543
|
+
vue.createElementVNode("span", _hoisted_5$4, vue.toDisplayString(__props.max), 1)
|
|
543
544
|
])) : vue.createCommentVNode("", true),
|
|
544
|
-
vue.createElementVNode("div", _hoisted_6$
|
|
545
|
+
vue.createElementVNode("div", _hoisted_6$4, [
|
|
545
546
|
vue.createElementVNode("input", {
|
|
546
547
|
type: "range",
|
|
547
548
|
value: modelValue.value,
|
|
@@ -563,18 +564,18 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
563
564
|
};
|
|
564
565
|
}
|
|
565
566
|
});
|
|
566
|
-
const Slider = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main$
|
|
567
|
-
const _hoisted_1$
|
|
568
|
-
const _hoisted_2$
|
|
569
|
-
const _hoisted_3$
|
|
570
|
-
const _hoisted_4$
|
|
571
|
-
const _hoisted_5$
|
|
572
|
-
const _hoisted_6$
|
|
567
|
+
const Slider = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main$6, [["__scopeId", "data-v-a411f1b4"]]);
|
|
568
|
+
const _hoisted_1$5 = { class: "relative" };
|
|
569
|
+
const _hoisted_2$5 = ["disabled"];
|
|
570
|
+
const _hoisted_3$5 = { class: "flex-1 truncate" };
|
|
571
|
+
const _hoisted_4$3 = { class: "flex items-center gap-1" };
|
|
572
|
+
const _hoisted_5$3 = { class: "mb-4 flex items-center justify-between" };
|
|
573
|
+
const _hoisted_6$3 = { class: "font-medium text-gray-900 dark:text-white" };
|
|
573
574
|
const _hoisted_7$2 = { class: "mb-2 grid grid-cols-7 gap-1" };
|
|
574
575
|
const _hoisted_8$2 = { class: "grid grid-cols-7 gap-1" };
|
|
575
576
|
const _hoisted_9$1 = ["disabled", "onClick"];
|
|
576
577
|
const _hoisted_10$1 = { class: "mt-4 border-t border-gray-200 pt-3 dark:border-gray-700" };
|
|
577
|
-
const _sfc_main$
|
|
578
|
+
const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
578
579
|
__name: "DatePicker",
|
|
579
580
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
580
581
|
placeholder: { default: "Select date" },
|
|
@@ -684,7 +685,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
684
685
|
modelValue.value = null;
|
|
685
686
|
};
|
|
686
687
|
return (_ctx, _cache) => {
|
|
687
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
688
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
|
|
688
689
|
vue.createElementVNode("button", {
|
|
689
690
|
ref_key: "triggerRef",
|
|
690
691
|
ref: triggerRef,
|
|
@@ -698,8 +699,8 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
698
699
|
onClick: _cache[0] || (_cache[0] = //@ts-ignore
|
|
699
700
|
(...args) => vue.unref(toggle) && vue.unref(toggle)(...args))
|
|
700
701
|
}, [
|
|
701
|
-
vue.createElementVNode("span", _hoisted_3$
|
|
702
|
-
vue.createElementVNode("div", _hoisted_4$
|
|
702
|
+
vue.createElementVNode("span", _hoisted_3$5, vue.toDisplayString(displayValue.value || __props.placeholder), 1),
|
|
703
|
+
vue.createElementVNode("div", _hoisted_4$3, [
|
|
703
704
|
modelValue.value ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
704
705
|
key: 0,
|
|
705
706
|
type: "button",
|
|
@@ -716,7 +717,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
716
717
|
class: "size-4 text-gray-400"
|
|
717
718
|
})
|
|
718
719
|
])
|
|
719
|
-
], 10, _hoisted_2$
|
|
720
|
+
], 10, _hoisted_2$5),
|
|
720
721
|
(vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
721
722
|
to: "body",
|
|
722
723
|
disabled: !__props.teleport
|
|
@@ -737,7 +738,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
737
738
|
style: vue.normalizeStyle(vue.unref(dropdownStyle)),
|
|
738
739
|
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"
|
|
739
740
|
}, [
|
|
740
|
-
vue.createElementVNode("div", _hoisted_5$
|
|
741
|
+
vue.createElementVNode("div", _hoisted_5$3, [
|
|
741
742
|
vue.createElementVNode("button", {
|
|
742
743
|
type: "button",
|
|
743
744
|
class: "rounded p-1 hover:bg-gray-100 dark:hover:bg-gray-700",
|
|
@@ -748,7 +749,7 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
748
749
|
class: "size-5 text-gray-600 dark:text-gray-400"
|
|
749
750
|
})
|
|
750
751
|
]),
|
|
751
|
-
vue.createElementVNode("span", _hoisted_6$
|
|
752
|
+
vue.createElementVNode("span", _hoisted_6$3, vue.toDisplayString(monthYear.value), 1),
|
|
752
753
|
vue.createElementVNode("button", {
|
|
753
754
|
type: "button",
|
|
754
755
|
class: "rounded p-1 hover:bg-gray-100 dark:hover:bg-gray-700",
|
|
@@ -769,9 +770,9 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
769
770
|
}), 128))
|
|
770
771
|
]),
|
|
771
772
|
vue.createElementVNode("div", _hoisted_8$2, [
|
|
772
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(calendarDays.value, (day,
|
|
773
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(calendarDays.value, (day, index2) => {
|
|
773
774
|
return vue.openBlock(), vue.createElementBlock("button", {
|
|
774
|
-
key:
|
|
775
|
+
key: index2,
|
|
775
776
|
type: "button",
|
|
776
777
|
disabled: day.isDisabled,
|
|
777
778
|
class: vue.normalizeClass([
|
|
@@ -802,15 +803,15 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
802
803
|
};
|
|
803
804
|
}
|
|
804
805
|
});
|
|
805
|
-
const _hoisted_1$
|
|
806
|
-
const _hoisted_2$
|
|
807
|
-
const _hoisted_3$
|
|
808
|
-
const _hoisted_4$
|
|
809
|
-
const _hoisted_5$
|
|
806
|
+
const _hoisted_1$4 = { class: "space-y-4" };
|
|
807
|
+
const _hoisted_2$4 = ["accept", "multiple", "disabled"];
|
|
808
|
+
const _hoisted_3$4 = { class: "space-y-2" };
|
|
809
|
+
const _hoisted_4$2 = { class: "text-sm font-medium text-gray-700 dark:text-gray-300" };
|
|
810
|
+
const _hoisted_5$2 = {
|
|
810
811
|
key: 0,
|
|
811
812
|
class: "text-xs text-gray-500 dark:text-gray-400"
|
|
812
813
|
};
|
|
813
|
-
const _hoisted_6$
|
|
814
|
+
const _hoisted_6$2 = {
|
|
814
815
|
key: 1,
|
|
815
816
|
class: "text-xs text-gray-500 dark:text-gray-400"
|
|
816
817
|
};
|
|
@@ -822,7 +823,7 @@ const _hoisted_8$1 = { class: "flex-1 min-w-0" };
|
|
|
822
823
|
const _hoisted_9 = { class: "text-sm font-medium text-gray-700 dark:text-gray-300 truncate" };
|
|
823
824
|
const _hoisted_10 = { class: "text-xs text-gray-500 dark:text-gray-400" };
|
|
824
825
|
const _hoisted_11 = ["onClick"];
|
|
825
|
-
const _sfc_main$
|
|
826
|
+
const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
826
827
|
__name: "FileUpload",
|
|
827
828
|
props: {
|
|
828
829
|
accept: {},
|
|
@@ -897,9 +898,9 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
897
898
|
}
|
|
898
899
|
};
|
|
899
900
|
const removeFile = (id) => {
|
|
900
|
-
const
|
|
901
|
-
if (
|
|
902
|
-
const removed = files.value.splice(
|
|
901
|
+
const index2 = files.value.findIndex((f) => f.id === id);
|
|
902
|
+
if (index2 > -1) {
|
|
903
|
+
const removed = files.value.splice(index2, 1)[0];
|
|
903
904
|
emit("file-removed", removed.file);
|
|
904
905
|
}
|
|
905
906
|
};
|
|
@@ -950,7 +951,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
950
951
|
return "heroicons:document";
|
|
951
952
|
};
|
|
952
953
|
return (_ctx, _cache) => {
|
|
953
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
954
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$4, [
|
|
954
955
|
vue.createElementVNode("div", {
|
|
955
956
|
class: vue.normalizeClass(dropzoneClasses.value),
|
|
956
957
|
onDrop: vue.withModifiers(handleDrop, ["prevent"]),
|
|
@@ -967,15 +968,15 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
967
968
|
multiple: __props.multiple,
|
|
968
969
|
disabled: __props.disabled,
|
|
969
970
|
onChange: handleInputChange
|
|
970
|
-
}, null, 40, _hoisted_2$
|
|
971
|
-
vue.createElementVNode("div", _hoisted_3$
|
|
971
|
+
}, null, 40, _hoisted_2$4),
|
|
972
|
+
vue.createElementVNode("div", _hoisted_3$4, [
|
|
972
973
|
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
973
974
|
icon: "heroicons:cloud-arrow-up",
|
|
974
975
|
class: vue.normalizeClass(["w-12 h-12 mx-auto text-gray-400", { "text-primary-500": isDragging.value }])
|
|
975
976
|
}, null, 8, ["class"]),
|
|
976
|
-
vue.createElementVNode("p", _hoisted_4$
|
|
977
|
-
__props.description ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_5$
|
|
978
|
-
__props.maxSize ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_6$
|
|
977
|
+
vue.createElementVNode("p", _hoisted_4$2, vue.toDisplayString(__props.label), 1),
|
|
978
|
+
__props.description ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_5$2, vue.toDisplayString(__props.description), 1)) : vue.createCommentVNode("", true),
|
|
979
|
+
__props.maxSize ? (vue.openBlock(), vue.createElementBlock("p", _hoisted_6$2, " Max size: " + vue.toDisplayString(formatSize(__props.maxSize)), 1)) : vue.createCommentVNode("", true)
|
|
979
980
|
])
|
|
980
981
|
], 34),
|
|
981
982
|
files.value.length > 0 ? (vue.openBlock(), vue.createElementBlock("ul", _hoisted_7$1, [
|
|
@@ -1009,13 +1010,13 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1009
1010
|
};
|
|
1010
1011
|
}
|
|
1011
1012
|
});
|
|
1012
|
-
const _hoisted_1$
|
|
1013
|
-
const _hoisted_2$
|
|
1014
|
-
const _hoisted_3$
|
|
1013
|
+
const _hoisted_1$3 = { class: "flex items-center gap-1" };
|
|
1014
|
+
const _hoisted_2$3 = ["disabled", "onClick", "onMousemove"];
|
|
1015
|
+
const _hoisted_3$3 = {
|
|
1015
1016
|
key: 0,
|
|
1016
1017
|
class: "ml-2 text-sm font-medium text-gray-700 dark:text-gray-300"
|
|
1017
1018
|
};
|
|
1018
|
-
const _sfc_main$
|
|
1019
|
+
const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
1019
1020
|
__name: "Rating",
|
|
1020
1021
|
props: {
|
|
1021
1022
|
modelValue: { default: 0 },
|
|
@@ -1048,29 +1049,29 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1048
1049
|
return "w-6 h-6";
|
|
1049
1050
|
}
|
|
1050
1051
|
});
|
|
1051
|
-
const getStarState = (
|
|
1052
|
+
const getStarState = (index2) => {
|
|
1052
1053
|
const value = displayValue.value;
|
|
1053
|
-
if (value >=
|
|
1054
|
-
if (props.allowHalf && value >=
|
|
1054
|
+
if (value >= index2) return "full";
|
|
1055
|
+
if (props.allowHalf && value >= index2 - 0.5) return "half";
|
|
1055
1056
|
return "empty";
|
|
1056
1057
|
};
|
|
1057
|
-
const handleClick = (
|
|
1058
|
+
const handleClick = (index2, event) => {
|
|
1058
1059
|
if (props.readonly || props.disabled) return;
|
|
1059
|
-
let value =
|
|
1060
|
+
let value = index2;
|
|
1060
1061
|
if (props.allowHalf) {
|
|
1061
1062
|
const rect = event.target.getBoundingClientRect();
|
|
1062
1063
|
const isLeftHalf = event.clientX - rect.left < rect.width / 2;
|
|
1063
|
-
value = isLeftHalf ?
|
|
1064
|
+
value = isLeftHalf ? index2 - 0.5 : index2;
|
|
1064
1065
|
}
|
|
1065
1066
|
emit("update:modelValue", value);
|
|
1066
1067
|
};
|
|
1067
|
-
const handleMouseMove = (
|
|
1068
|
+
const handleMouseMove = (index2, event) => {
|
|
1068
1069
|
if (props.readonly || props.disabled) return;
|
|
1069
|
-
let value =
|
|
1070
|
+
let value = index2;
|
|
1070
1071
|
if (props.allowHalf) {
|
|
1071
1072
|
const rect = event.target.getBoundingClientRect();
|
|
1072
1073
|
const isLeftHalf = event.clientX - rect.left < rect.width / 2;
|
|
1073
|
-
value = isLeftHalf ?
|
|
1074
|
+
value = isLeftHalf ? index2 - 0.5 : index2;
|
|
1074
1075
|
}
|
|
1075
1076
|
hoverValue.value = value;
|
|
1076
1077
|
};
|
|
@@ -1078,22 +1079,22 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1078
1079
|
hoverValue.value = null;
|
|
1079
1080
|
};
|
|
1080
1081
|
return (_ctx, _cache) => {
|
|
1081
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1082
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
|
|
1082
1083
|
vue.createElementVNode("div", {
|
|
1083
1084
|
class: "flex items-center",
|
|
1084
1085
|
onMouseleave: handleMouseLeave
|
|
1085
1086
|
}, [
|
|
1086
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.max, (
|
|
1087
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.max, (index2) => {
|
|
1087
1088
|
return vue.openBlock(), vue.createElementBlock("button", {
|
|
1088
|
-
key:
|
|
1089
|
+
key: index2,
|
|
1089
1090
|
type: "button",
|
|
1090
1091
|
class: vue.normalizeClass(["relative focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-1 rounded", [
|
|
1091
1092
|
__props.readonly || __props.disabled ? "cursor-default" : "cursor-pointer",
|
|
1092
1093
|
__props.disabled && "opacity-50"
|
|
1093
1094
|
]]),
|
|
1094
1095
|
disabled: __props.readonly || __props.disabled,
|
|
1095
|
-
onClick: ($event) => handleClick(
|
|
1096
|
-
onMousemove: ($event) => handleMouseMove(
|
|
1096
|
+
onClick: ($event) => handleClick(index2, $event),
|
|
1097
|
+
onMousemove: ($event) => handleMouseMove(index2, $event)
|
|
1097
1098
|
}, [
|
|
1098
1099
|
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
1099
1100
|
icon: __props.emptyIcon,
|
|
@@ -1102,7 +1103,7 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1102
1103
|
vue.createElementVNode("div", {
|
|
1103
1104
|
class: "absolute inset-0 overflow-hidden",
|
|
1104
1105
|
style: vue.normalizeStyle({
|
|
1105
|
-
width: getStarState(
|
|
1106
|
+
width: getStarState(index2) === "full" ? "100%" : getStarState(index2) === "half" ? "50%" : "0%"
|
|
1106
1107
|
})
|
|
1107
1108
|
}, [
|
|
1108
1109
|
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
@@ -1110,29 +1111,29 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1110
1111
|
class: vue.normalizeClass([sizeClasses.value, __props.color])
|
|
1111
1112
|
}, null, 8, ["icon", "class"])
|
|
1112
1113
|
], 4)
|
|
1113
|
-
], 42, _hoisted_2$
|
|
1114
|
+
], 42, _hoisted_2$3);
|
|
1114
1115
|
}), 128))
|
|
1115
1116
|
], 32),
|
|
1116
|
-
__props.showValue ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$
|
|
1117
|
+
__props.showValue ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$3, vue.toDisplayString(__props.modelValue.toFixed(__props.allowHalf ? 1 : 0)), 1)) : vue.createCommentVNode("", true)
|
|
1117
1118
|
]);
|
|
1118
1119
|
};
|
|
1119
1120
|
}
|
|
1120
1121
|
});
|
|
1121
|
-
const _hoisted_1$
|
|
1122
|
-
const _hoisted_2$
|
|
1122
|
+
const _hoisted_1$2 = { class: "relative inline-block" };
|
|
1123
|
+
const _hoisted_2$2 = {
|
|
1123
1124
|
key: 0,
|
|
1124
1125
|
class: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"
|
|
1125
1126
|
};
|
|
1126
|
-
const _hoisted_3$
|
|
1127
|
-
const _hoisted_4 = { class: "text-sm font-mono text-gray-700 dark:text-gray-300" };
|
|
1128
|
-
const _hoisted_5 = { class: "grid grid-cols-5 gap-2 mb-3" };
|
|
1129
|
-
const _hoisted_6 = ["title", "onClick"];
|
|
1127
|
+
const _hoisted_3$2 = ["disabled"];
|
|
1128
|
+
const _hoisted_4$1 = { class: "text-sm font-mono text-gray-700 dark:text-gray-300" };
|
|
1129
|
+
const _hoisted_5$1 = { class: "grid grid-cols-5 gap-2 mb-3" };
|
|
1130
|
+
const _hoisted_6$1 = ["title", "onClick"];
|
|
1130
1131
|
const _hoisted_7 = {
|
|
1131
1132
|
key: 0,
|
|
1132
1133
|
class: "flex items-center gap-2 pt-3 border-t border-gray-200 dark:border-gray-700"
|
|
1133
1134
|
};
|
|
1134
1135
|
const _hoisted_8 = ["value"];
|
|
1135
|
-
const _sfc_main$
|
|
1136
|
+
const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
1136
1137
|
__name: "ColorPicker",
|
|
1137
1138
|
props: {
|
|
1138
1139
|
modelValue: { default: "#3b82f6" },
|
|
@@ -1160,11 +1161,14 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1160
1161
|
] },
|
|
1161
1162
|
showInput: { type: Boolean, default: true },
|
|
1162
1163
|
disabled: { type: Boolean, default: false },
|
|
1163
|
-
label: {}
|
|
1164
|
+
label: {},
|
|
1165
|
+
teleport: { type: [String, Boolean], default: false }
|
|
1164
1166
|
},
|
|
1165
1167
|
emits: ["update:modelValue"],
|
|
1166
1168
|
setup(__props, { emit: __emit }) {
|
|
1167
1169
|
const props = __props;
|
|
1170
|
+
const teleportDisabled = vue.computed(() => props.teleport === false);
|
|
1171
|
+
const teleportTarget = vue.computed(() => props.teleport === false ? "body" : props.teleport);
|
|
1168
1172
|
const emit = __emit;
|
|
1169
1173
|
const isOpen = vue.ref(false);
|
|
1170
1174
|
const inputValue = vue.ref(props.modelValue);
|
|
@@ -1198,8 +1202,8 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1198
1202
|
isOpen.value = false;
|
|
1199
1203
|
};
|
|
1200
1204
|
return (_ctx, _cache) => {
|
|
1201
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1202
|
-
__props.label ? (vue.openBlock(), vue.createElementBlock("label", _hoisted_2$
|
|
1205
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$2, [
|
|
1206
|
+
__props.label ? (vue.openBlock(), vue.createElementBlock("label", _hoisted_2$2, vue.toDisplayString(__props.label), 1)) : vue.createCommentVNode("", true),
|
|
1203
1207
|
vue.createElementVNode("button", {
|
|
1204
1208
|
type: "button",
|
|
1205
1209
|
class: vue.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 }]),
|
|
@@ -1210,90 +1214,95 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1210
1214
|
class: "w-6 h-6 rounded border border-gray-200 dark:border-gray-600",
|
|
1211
1215
|
style: vue.normalizeStyle({ backgroundColor: __props.modelValue })
|
|
1212
1216
|
}, null, 4),
|
|
1213
|
-
vue.createElementVNode("span", _hoisted_4, vue.toDisplayString(__props.modelValue), 1),
|
|
1217
|
+
vue.createElementVNode("span", _hoisted_4$1, vue.toDisplayString(__props.modelValue), 1),
|
|
1214
1218
|
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
1215
1219
|
icon: "heroicons:chevron-down",
|
|
1216
1220
|
class: vue.normalizeClass(["w-4 h-4 text-gray-400", { "rotate-180": isOpen.value }])
|
|
1217
1221
|
}, null, 8, ["class"])
|
|
1218
|
-
], 10, _hoisted_3$
|
|
1219
|
-
vue.
|
|
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
|
-
|
|
1272
|
-
|
|
1222
|
+
], 10, _hoisted_3$2),
|
|
1223
|
+
(vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
1224
|
+
to: teleportTarget.value,
|
|
1225
|
+
disabled: teleportDisabled.value
|
|
1226
|
+
}, [
|
|
1227
|
+
vue.createVNode(vue.Transition, {
|
|
1228
|
+
"enter-active-class": "transition duration-100 ease-out",
|
|
1229
|
+
"enter-from-class": "opacity-0 scale-95",
|
|
1230
|
+
"enter-to-class": "opacity-100 scale-100",
|
|
1231
|
+
"leave-active-class": "transition duration-75 ease-in",
|
|
1232
|
+
"leave-from-class": "opacity-100 scale-100",
|
|
1233
|
+
"leave-to-class": "opacity-0 scale-95"
|
|
1234
|
+
}, {
|
|
1235
|
+
default: vue.withCtx(() => [
|
|
1236
|
+
isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
1237
|
+
key: 0,
|
|
1238
|
+
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",
|
|
1239
|
+
onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => {
|
|
1240
|
+
}, ["stop"]))
|
|
1241
|
+
}, [
|
|
1242
|
+
vue.createElementVNode("div", _hoisted_5$1, [
|
|
1243
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.swatches, (color) => {
|
|
1244
|
+
return vue.openBlock(), vue.createElementBlock("button", {
|
|
1245
|
+
key: color,
|
|
1246
|
+
type: "button",
|
|
1247
|
+
class: vue.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", [
|
|
1248
|
+
__props.modelValue === color ? "border-primary-500 ring-2 ring-primary-500 ring-offset-1" : "border-transparent"
|
|
1249
|
+
]]),
|
|
1250
|
+
style: vue.normalizeStyle({ backgroundColor: color }),
|
|
1251
|
+
title: color,
|
|
1252
|
+
onClick: ($event) => selectColor(color)
|
|
1253
|
+
}, [
|
|
1254
|
+
__props.modelValue === color ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1255
|
+
key: 0,
|
|
1256
|
+
icon: "heroicons:check",
|
|
1257
|
+
class: vue.normalizeClass(["w-4 h-4 mx-auto", [
|
|
1258
|
+
["#ffffff", "#f9fafb", "#f3f4f6", "#e5e7eb", "#eab308", "#f59e0b"].includes(color) ? "text-gray-800" : "text-white"
|
|
1259
|
+
]])
|
|
1260
|
+
}, null, 8, ["class"])) : vue.createCommentVNode("", true)
|
|
1261
|
+
], 14, _hoisted_6$1);
|
|
1262
|
+
}), 128))
|
|
1263
|
+
]),
|
|
1264
|
+
__props.showInput ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_7, [
|
|
1265
|
+
vue.createElementVNode("input", {
|
|
1266
|
+
type: "color",
|
|
1267
|
+
value: __props.modelValue,
|
|
1268
|
+
class: "w-8 h-8 rounded cursor-pointer border-0 p-0",
|
|
1269
|
+
onInput: handleNativeInput
|
|
1270
|
+
}, null, 40, _hoisted_8),
|
|
1271
|
+
vue.withDirectives(vue.createElementVNode("input", {
|
|
1272
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => inputValue.value = $event),
|
|
1273
|
+
type: "text",
|
|
1274
|
+
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",
|
|
1275
|
+
placeholder: "#000000",
|
|
1276
|
+
onChange: handleInputChange,
|
|
1277
|
+
onKeyup: vue.withKeys(handleInputChange, ["enter"])
|
|
1278
|
+
}, null, 544), [
|
|
1279
|
+
[vue.vModelText, inputValue.value]
|
|
1280
|
+
])
|
|
1281
|
+
])) : vue.createCommentVNode("", true)
|
|
1273
1282
|
])) : vue.createCommentVNode("", true)
|
|
1274
|
-
])
|
|
1275
|
-
|
|
1276
|
-
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
+
]),
|
|
1284
|
+
_: 1
|
|
1285
|
+
}),
|
|
1286
|
+
isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
1287
|
+
key: 0,
|
|
1288
|
+
class: "fixed inset-0 z-40",
|
|
1289
|
+
onClick: closePicker
|
|
1290
|
+
})) : vue.createCommentVNode("", true)
|
|
1291
|
+
], 8, ["to", "disabled"]))
|
|
1283
1292
|
]);
|
|
1284
1293
|
};
|
|
1285
1294
|
}
|
|
1286
1295
|
});
|
|
1287
|
-
const _hoisted_1 = { class: "space-y-2" };
|
|
1288
|
-
const _hoisted_2 = {
|
|
1296
|
+
const _hoisted_1$1 = { class: "space-y-2" };
|
|
1297
|
+
const _hoisted_2$1 = {
|
|
1289
1298
|
key: 0,
|
|
1290
1299
|
class: "flex justify-between text-sm font-medium text-gray-700 dark:text-gray-300"
|
|
1291
1300
|
};
|
|
1292
|
-
const _hoisted_3 = {
|
|
1301
|
+
const _hoisted_3$1 = {
|
|
1293
1302
|
key: 1,
|
|
1294
1303
|
class: "flex justify-between text-xs text-gray-500 dark:text-gray-400"
|
|
1295
1304
|
};
|
|
1296
|
-
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
1305
|
+
const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
1297
1306
|
__name: "RangeSlider",
|
|
1298
1307
|
props: {
|
|
1299
1308
|
modelValue: { default: () => [25, 75] },
|
|
@@ -1371,8 +1380,8 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
1371
1380
|
}
|
|
1372
1381
|
};
|
|
1373
1382
|
return (_ctx, _cache) => {
|
|
1374
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
1375
|
-
__props.showLabels ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2, [
|
|
1383
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
|
|
1384
|
+
__props.showLabels ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$1, [
|
|
1376
1385
|
vue.createElementVNode("span", null, vue.toDisplayString(__props.formatLabel(minValue.value)), 1),
|
|
1377
1386
|
vue.createElementVNode("span", null, vue.toDisplayString(__props.formatLabel(maxValue.value)), 1)
|
|
1378
1387
|
])) : vue.createCommentVNode("", true),
|
|
@@ -1405,7 +1414,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
1405
1414
|
onMousedown: _cache[1] || (_cache[1] = ($event) => handleMouseDown("max"))
|
|
1406
1415
|
}, null, 38)
|
|
1407
1416
|
], 2),
|
|
1408
|
-
__props.showMinMax ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
|
|
1417
|
+
__props.showMinMax ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3$1, [
|
|
1409
1418
|
vue.createElementVNode("span", null, vue.toDisplayString(__props.formatLabel(__props.min)), 1),
|
|
1410
1419
|
vue.createElementVNode("span", null, vue.toDisplayString(__props.formatLabel(__props.max)), 1)
|
|
1411
1420
|
])) : vue.createCommentVNode("", true)
|
|
@@ -1413,17 +1422,231 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
1413
1422
|
};
|
|
1414
1423
|
}
|
|
1415
1424
|
});
|
|
1425
|
+
const _hoisted_1 = ["id", "name", "placeholder", "disabled"];
|
|
1426
|
+
const _hoisted_2 = { class: "flex items-center gap-1" };
|
|
1427
|
+
const _hoisted_3 = {
|
|
1428
|
+
key: 0,
|
|
1429
|
+
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"
|
|
1430
|
+
};
|
|
1431
|
+
const _hoisted_4 = ["disabled", "onClick"];
|
|
1432
|
+
const _hoisted_5 = { class: "flex-1" };
|
|
1433
|
+
const _hoisted_6 = {
|
|
1434
|
+
key: 1,
|
|
1435
|
+
class: "px-3 py-2 text-center text-sm text-gray-500 dark:text-gray-400"
|
|
1436
|
+
};
|
|
1437
|
+
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
1438
|
+
__name: "Combobox",
|
|
1439
|
+
props: {
|
|
1440
|
+
modelValue: {},
|
|
1441
|
+
options: {},
|
|
1442
|
+
placeholder: { default: "Select..." },
|
|
1443
|
+
searchPlaceholder: { default: "Search..." },
|
|
1444
|
+
multiple: { type: Boolean, default: false },
|
|
1445
|
+
disabled: { type: Boolean, default: false },
|
|
1446
|
+
clearable: { type: Boolean, default: false },
|
|
1447
|
+
noResultsText: { default: "No results found" },
|
|
1448
|
+
name: {},
|
|
1449
|
+
id: {},
|
|
1450
|
+
teleport: { type: [String, Boolean], default: false }
|
|
1451
|
+
},
|
|
1452
|
+
emits: ["update:modelValue"],
|
|
1453
|
+
setup(__props, { emit: __emit }) {
|
|
1454
|
+
const props = __props;
|
|
1455
|
+
const teleportDisabled = vue.computed(() => props.teleport === false);
|
|
1456
|
+
const teleportTarget = vue.computed(() => props.teleport === false ? "body" : props.teleport);
|
|
1457
|
+
const emit = __emit;
|
|
1458
|
+
const containerRef = vue.ref();
|
|
1459
|
+
const inputRef = vue.ref();
|
|
1460
|
+
const isOpen = vue.ref(false);
|
|
1461
|
+
const search = vue.ref("");
|
|
1462
|
+
index.onClickOutside(containerRef, () => {
|
|
1463
|
+
isOpen.value = false;
|
|
1464
|
+
});
|
|
1465
|
+
const filteredOptions = vue.computed(() => {
|
|
1466
|
+
if (!search.value) return props.options;
|
|
1467
|
+
const query = search.value.toLowerCase();
|
|
1468
|
+
return props.options.filter(
|
|
1469
|
+
(opt) => opt.label.toLowerCase().includes(query)
|
|
1470
|
+
);
|
|
1471
|
+
});
|
|
1472
|
+
const selectedOptions = vue.computed(() => {
|
|
1473
|
+
if (props.modelValue === null || props.modelValue === void 0) return [];
|
|
1474
|
+
const values = Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue];
|
|
1475
|
+
return props.options.filter((opt) => values.includes(opt.value));
|
|
1476
|
+
});
|
|
1477
|
+
const displayValue = vue.computed(() => {
|
|
1478
|
+
var _a;
|
|
1479
|
+
if (selectedOptions.value.length === 0) return "";
|
|
1480
|
+
if (props.multiple) {
|
|
1481
|
+
return selectedOptions.value.map((o) => o.label).join(", ");
|
|
1482
|
+
}
|
|
1483
|
+
return ((_a = selectedOptions.value[0]) == null ? void 0 : _a.label) || "";
|
|
1484
|
+
});
|
|
1485
|
+
const isSelected = (option) => {
|
|
1486
|
+
if (props.modelValue === null || props.modelValue === void 0) return false;
|
|
1487
|
+
if (Array.isArray(props.modelValue)) {
|
|
1488
|
+
return props.modelValue.includes(option.value);
|
|
1489
|
+
}
|
|
1490
|
+
return props.modelValue === option.value;
|
|
1491
|
+
};
|
|
1492
|
+
const toggleOption = (option) => {
|
|
1493
|
+
if (option.disabled) return;
|
|
1494
|
+
if (props.multiple) {
|
|
1495
|
+
const currentValues = Array.isArray(props.modelValue) ? [...props.modelValue] : [];
|
|
1496
|
+
const index2 = currentValues.indexOf(option.value);
|
|
1497
|
+
if (index2 === -1) {
|
|
1498
|
+
currentValues.push(option.value);
|
|
1499
|
+
} else {
|
|
1500
|
+
currentValues.splice(index2, 1);
|
|
1501
|
+
}
|
|
1502
|
+
emit("update:modelValue", currentValues);
|
|
1503
|
+
} else {
|
|
1504
|
+
emit("update:modelValue", option.value);
|
|
1505
|
+
isOpen.value = false;
|
|
1506
|
+
search.value = "";
|
|
1507
|
+
}
|
|
1508
|
+
};
|
|
1509
|
+
const clear = () => {
|
|
1510
|
+
emit("update:modelValue", props.multiple ? [] : null);
|
|
1511
|
+
search.value = "";
|
|
1512
|
+
};
|
|
1513
|
+
const openDropdown = () => {
|
|
1514
|
+
if (props.disabled) return;
|
|
1515
|
+
isOpen.value = true;
|
|
1516
|
+
vue.nextTick(() => {
|
|
1517
|
+
var _a;
|
|
1518
|
+
(_a = inputRef.value) == null ? void 0 : _a.focus();
|
|
1519
|
+
});
|
|
1520
|
+
};
|
|
1521
|
+
vue.watch(isOpen, (open) => {
|
|
1522
|
+
if (!open) {
|
|
1523
|
+
search.value = "";
|
|
1524
|
+
}
|
|
1525
|
+
});
|
|
1526
|
+
return (_ctx, _cache) => {
|
|
1527
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
1528
|
+
ref_key: "containerRef",
|
|
1529
|
+
ref: containerRef,
|
|
1530
|
+
class: "relative"
|
|
1531
|
+
}, [
|
|
1532
|
+
vue.createElementVNode("div", {
|
|
1533
|
+
class: vue.normalizeClass([
|
|
1534
|
+
"flex min-h-[42px] w-full cursor-pointer items-center rounded-lg border bg-white px-3 py-2 transition-colors",
|
|
1535
|
+
"dark:bg-gray-900",
|
|
1536
|
+
__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"
|
|
1537
|
+
]),
|
|
1538
|
+
onClick: openDropdown
|
|
1539
|
+
}, [
|
|
1540
|
+
!isOpen.value ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
1541
|
+
key: 0,
|
|
1542
|
+
class: vue.normalizeClass([
|
|
1543
|
+
"flex-1 truncate text-sm",
|
|
1544
|
+
selectedOptions.value.length ? "text-gray-900 dark:text-gray-100" : "text-gray-400 dark:text-gray-500"
|
|
1545
|
+
])
|
|
1546
|
+
}, vue.toDisplayString(displayValue.value || __props.placeholder), 3)) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
|
|
1547
|
+
key: 1,
|
|
1548
|
+
id: __props.id,
|
|
1549
|
+
ref_key: "inputRef",
|
|
1550
|
+
ref: inputRef,
|
|
1551
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => search.value = $event),
|
|
1552
|
+
type: "text",
|
|
1553
|
+
name: __props.name,
|
|
1554
|
+
placeholder: __props.searchPlaceholder,
|
|
1555
|
+
disabled: __props.disabled,
|
|
1556
|
+
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",
|
|
1557
|
+
onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => {
|
|
1558
|
+
}, ["stop"]))
|
|
1559
|
+
}, null, 8, _hoisted_1)), [
|
|
1560
|
+
[vue.vModelText, search.value]
|
|
1561
|
+
]),
|
|
1562
|
+
vue.createElementVNode("div", _hoisted_2, [
|
|
1563
|
+
__props.clearable && selectedOptions.value.length > 0 && !__props.disabled ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
1564
|
+
key: 0,
|
|
1565
|
+
type: "button",
|
|
1566
|
+
class: "rounded p-0.5 text-gray-400 hover:text-gray-600 dark:hover:text-gray-300",
|
|
1567
|
+
onClick: vue.withModifiers(clear, ["stop"])
|
|
1568
|
+
}, [
|
|
1569
|
+
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
1570
|
+
icon: "lucide:x",
|
|
1571
|
+
class: "h-4 w-4"
|
|
1572
|
+
})
|
|
1573
|
+
])) : vue.createCommentVNode("", true),
|
|
1574
|
+
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
1575
|
+
icon: "lucide:chevron-down",
|
|
1576
|
+
class: vue.normalizeClass([
|
|
1577
|
+
"h-4 w-4 text-gray-400 transition-transform",
|
|
1578
|
+
isOpen.value && "rotate-180"
|
|
1579
|
+
])
|
|
1580
|
+
}, null, 8, ["class"])
|
|
1581
|
+
])
|
|
1582
|
+
], 2),
|
|
1583
|
+
(vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
1584
|
+
to: teleportTarget.value,
|
|
1585
|
+
disabled: teleportDisabled.value
|
|
1586
|
+
}, [
|
|
1587
|
+
vue.createVNode(vue.Transition, {
|
|
1588
|
+
"enter-active-class": "transition duration-100 ease-out",
|
|
1589
|
+
"enter-from-class": "transform scale-95 opacity-0",
|
|
1590
|
+
"enter-to-class": "transform scale-100 opacity-100",
|
|
1591
|
+
"leave-active-class": "transition duration-75 ease-in",
|
|
1592
|
+
"leave-from-class": "transform scale-100 opacity-100",
|
|
1593
|
+
"leave-to-class": "transform scale-95 opacity-0"
|
|
1594
|
+
}, {
|
|
1595
|
+
default: vue.withCtx(() => [
|
|
1596
|
+
isOpen.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_3, [
|
|
1597
|
+
filteredOptions.value.length ? (vue.openBlock(true), vue.createElementBlock(vue.Fragment, { key: 0 }, vue.renderList(filteredOptions.value, (option) => {
|
|
1598
|
+
return vue.openBlock(), vue.createElementBlock("button", {
|
|
1599
|
+
key: option.value,
|
|
1600
|
+
type: "button",
|
|
1601
|
+
disabled: option.disabled,
|
|
1602
|
+
class: vue.normalizeClass([
|
|
1603
|
+
"flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors",
|
|
1604
|
+
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"
|
|
1605
|
+
]),
|
|
1606
|
+
onClick: ($event) => toggleOption(option)
|
|
1607
|
+
}, [
|
|
1608
|
+
__props.multiple ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
1609
|
+
key: 0,
|
|
1610
|
+
class: vue.normalizeClass([
|
|
1611
|
+
"flex h-4 w-4 items-center justify-center rounded border",
|
|
1612
|
+
isSelected(option) ? "border-primary bg-primary text-white" : "border-gray-300 dark:border-gray-600"
|
|
1613
|
+
])
|
|
1614
|
+
}, [
|
|
1615
|
+
isSelected(option) ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1616
|
+
key: 0,
|
|
1617
|
+
icon: "lucide:check",
|
|
1618
|
+
class: "h-3 w-3"
|
|
1619
|
+
})) : vue.createCommentVNode("", true)
|
|
1620
|
+
], 2)) : vue.createCommentVNode("", true),
|
|
1621
|
+
vue.createElementVNode("span", _hoisted_5, vue.toDisplayString(option.label), 1),
|
|
1622
|
+
!__props.multiple && isSelected(option) ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1623
|
+
key: 1,
|
|
1624
|
+
icon: "lucide:check",
|
|
1625
|
+
class: "h-4 w-4 text-primary"
|
|
1626
|
+
})) : vue.createCommentVNode("", true)
|
|
1627
|
+
], 10, _hoisted_4);
|
|
1628
|
+
}), 128)) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_6, vue.toDisplayString(__props.noResultsText), 1))
|
|
1629
|
+
])) : vue.createCommentVNode("", true)
|
|
1630
|
+
]),
|
|
1631
|
+
_: 1
|
|
1632
|
+
})
|
|
1633
|
+
], 8, ["to", "disabled"]))
|
|
1634
|
+
], 512);
|
|
1635
|
+
};
|
|
1636
|
+
}
|
|
1637
|
+
});
|
|
1416
1638
|
exports.Slider = Slider;
|
|
1417
|
-
exports._sfc_main = _sfc_main$
|
|
1418
|
-
exports._sfc_main$1 = _sfc_main$
|
|
1419
|
-
exports._sfc_main$10 = _sfc_main$
|
|
1420
|
-
exports._sfc_main$11 = _sfc_main;
|
|
1421
|
-
exports._sfc_main$
|
|
1422
|
-
exports._sfc_main$
|
|
1423
|
-
exports._sfc_main$
|
|
1424
|
-
exports._sfc_main$
|
|
1425
|
-
exports._sfc_main$
|
|
1426
|
-
exports._sfc_main$
|
|
1427
|
-
exports._sfc_main$
|
|
1428
|
-
exports._sfc_main$
|
|
1429
|
-
|
|
1639
|
+
exports._sfc_main = _sfc_main$d;
|
|
1640
|
+
exports._sfc_main$1 = _sfc_main$c;
|
|
1641
|
+
exports._sfc_main$10 = _sfc_main$2;
|
|
1642
|
+
exports._sfc_main$11 = _sfc_main$1;
|
|
1643
|
+
exports._sfc_main$12 = _sfc_main;
|
|
1644
|
+
exports._sfc_main$2 = _sfc_main$b;
|
|
1645
|
+
exports._sfc_main$3 = _sfc_main$a;
|
|
1646
|
+
exports._sfc_main$4 = _sfc_main$9;
|
|
1647
|
+
exports._sfc_main$5 = _sfc_main$8;
|
|
1648
|
+
exports._sfc_main$6 = _sfc_main$7;
|
|
1649
|
+
exports._sfc_main$7 = _sfc_main$5;
|
|
1650
|
+
exports._sfc_main$8 = _sfc_main$4;
|
|
1651
|
+
exports._sfc_main$9 = _sfc_main$3;
|
|
1652
|
+
//# sourceMappingURL=Combobox.vue_vue_type_script_setup_true_lang-FdUrjmSG.cjs.map
|