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
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const vue = require("vue");
|
|
3
|
-
const
|
|
4
|
-
const
|
|
3
|
+
const index = require("./index-D7HVSFi2.cjs");
|
|
4
|
+
const Button_vue_vue_type_script_setup_true_lang = require("./Button.vue_vue_type_script_setup_true_lang-DrGM65ny.cjs");
|
|
5
5
|
const BadgeType_vue_vue_type_script_setup_true_lang = require("./BadgeType.vue_vue_type_script_setup_true_lang-CJb63H1I.cjs");
|
|
6
6
|
const vue$1 = require("@iconify/vue");
|
|
7
7
|
const useDropdown = require("./useDropdown-DHFnd259.cjs");
|
|
8
|
-
const
|
|
8
|
+
const useDarkMode = require("./useDarkMode-DLZcJEUQ.cjs");
|
|
9
|
+
const _hoisted_1$d = {
|
|
9
10
|
key: 1,
|
|
10
11
|
class: "flex flex-col overflow-hidden rounded-lg bg-white shadow-md dark:bg-slate-950"
|
|
11
12
|
};
|
|
12
|
-
const _hoisted_2$
|
|
13
|
+
const _hoisted_2$a = { class: "flex flex-col gap-0.5" };
|
|
13
14
|
const _hoisted_3$7 = {
|
|
14
15
|
key: 1,
|
|
15
16
|
class: "text-sm font-normal text-gray-600 dark:text-gray-400"
|
|
@@ -36,12 +37,12 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
36
37
|
() => props.dividerClass || "border-gray-200 dark:border-gray-700"
|
|
37
38
|
);
|
|
38
39
|
return (_ctx, _cache) => {
|
|
39
|
-
return __props.loading ? (vue.openBlock(), vue.createBlock(
|
|
40
|
+
return __props.loading ? (vue.openBlock(), vue.createBlock(Button_vue_vue_type_script_setup_true_lang._sfc_main$2, {
|
|
40
41
|
key: 0,
|
|
41
42
|
lines: __props.loadingLines,
|
|
42
43
|
"show-avatar": __props.loadingAvatar,
|
|
43
44
|
"show-actions": __props.loadingActions
|
|
44
|
-
}, null, 8, ["lines", "show-avatar", "show-actions"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
45
|
+
}, null, 8, ["lines", "show-avatar", "show-actions"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$d, [
|
|
45
46
|
_ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
46
47
|
key: 0,
|
|
47
48
|
class: vue.normalizeClass(["border-b", dividerClasses.value])
|
|
@@ -51,7 +52,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
51
52
|
key: 1,
|
|
52
53
|
class: vue.normalizeClass(["flex items-center justify-between border-b px-5 py-3", dividerClasses.value])
|
|
53
54
|
}, [
|
|
54
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
55
|
+
vue.createElementVNode("div", _hoisted_2$a, [
|
|
55
56
|
__props.title || _ctx.$slots.title ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
56
57
|
key: 0,
|
|
57
58
|
class: vue.normalizeClass(["text-md font-semibold", titleClasses.value])
|
|
@@ -75,8 +76,8 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
75
76
|
};
|
|
76
77
|
}
|
|
77
78
|
});
|
|
78
|
-
const _hoisted_1$
|
|
79
|
-
const _hoisted_2$
|
|
79
|
+
const _hoisted_1$c = { class: "overflow-hidden" };
|
|
80
|
+
const _hoisted_2$9 = {
|
|
80
81
|
key: 1,
|
|
81
82
|
class: "overflow-x-auto"
|
|
82
83
|
};
|
|
@@ -210,17 +211,17 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
210
211
|
return props.sortBy === property.name;
|
|
211
212
|
};
|
|
212
213
|
return (_ctx, _cache) => {
|
|
213
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
214
|
-
__props.loading ? (vue.openBlock(), vue.createBlock(
|
|
214
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
|
|
215
|
+
__props.loading ? (vue.openBlock(), vue.createBlock(Button_vue_vue_type_script_setup_true_lang._sfc_main$1, {
|
|
215
216
|
key: 0,
|
|
216
217
|
rows: __props.loadingRows,
|
|
217
218
|
columns: visibleProperties.value.length
|
|
218
|
-
}, null, 8, ["rows", "columns"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
219
|
+
}, null, 8, ["rows", "columns"])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$9, [
|
|
219
220
|
vue.createElementVNode("table", _hoisted_3$6, [
|
|
220
221
|
vue.createElementVNode("thead", _hoisted_4$5, [
|
|
221
222
|
vue.createElementVNode("tr", null, [
|
|
222
223
|
__props.selectable ? (vue.openBlock(), vue.createElementBlock("th", _hoisted_5$3, [
|
|
223
|
-
vue.createVNode(
|
|
224
|
+
vue.createVNode(index._sfc_main, {
|
|
224
225
|
"model-value": allSelected.value,
|
|
225
226
|
indeterminate: someSelected.value,
|
|
226
227
|
disabled: selectableItems.value.length === 0,
|
|
@@ -279,7 +280,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
279
280
|
class: vue.normalizeClass(["hover:bg-black/5 dark:hover:bg-white/5 transition-colors", { "bg-primary/5 dark:bg-primary/10": isSelected(item) }])
|
|
280
281
|
}, [
|
|
281
282
|
__props.selectable ? (vue.openBlock(), vue.createElementBlock("td", _hoisted_11$1, [
|
|
282
|
-
isSelectable(item) ? (vue.openBlock(), vue.createBlock(
|
|
283
|
+
isSelectable(item) ? (vue.openBlock(), vue.createBlock(index._sfc_main, {
|
|
283
284
|
key: 0,
|
|
284
285
|
"model-value": isSelected(item),
|
|
285
286
|
"onUpdate:modelValue": ($event) => handleSelect(item)
|
|
@@ -321,8 +322,8 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
321
322
|
};
|
|
322
323
|
}
|
|
323
324
|
});
|
|
324
|
-
const _hoisted_1$
|
|
325
|
-
const _hoisted_2$
|
|
325
|
+
const _hoisted_1$b = { class: "space-y-3" };
|
|
326
|
+
const _hoisted_2$8 = { class: "flex items-center gap-3 p-3" };
|
|
326
327
|
const _hoisted_3$5 = { class: "text-sm text-gray-600 dark:text-gray-400" };
|
|
327
328
|
const _hoisted_4$4 = {
|
|
328
329
|
key: 0,
|
|
@@ -389,10 +390,10 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
389
390
|
};
|
|
390
391
|
const hasEmptySlot = vue.computed(() => !!slots.empty);
|
|
391
392
|
return (_ctx, _cache) => {
|
|
392
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
393
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$b, [
|
|
393
394
|
__props.loading ? (vue.openBlock(), vue.createBlock(_sfc_main$i, { key: 0 }, {
|
|
394
395
|
default: vue.withCtx(() => [
|
|
395
|
-
vue.createVNode(
|
|
396
|
+
vue.createVNode(Button_vue_vue_type_script_setup_true_lang._sfc_main$3, {
|
|
396
397
|
items: __props.loadingItems,
|
|
397
398
|
"show-avatar": "",
|
|
398
399
|
"show-secondary": "",
|
|
@@ -403,8 +404,8 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
403
404
|
})) : (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 1 }, [
|
|
404
405
|
__props.selectable && selectableItems.value.length > 0 ? (vue.openBlock(), vue.createBlock(_sfc_main$i, { key: 0 }, {
|
|
405
406
|
default: vue.withCtx(() => [
|
|
406
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
407
|
-
vue.createVNode(
|
|
407
|
+
vue.createElementVNode("div", _hoisted_2$8, [
|
|
408
|
+
vue.createVNode(index._sfc_main, {
|
|
408
409
|
"model-value": allSelected.value,
|
|
409
410
|
indeterminate: someSelected.value,
|
|
410
411
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("selectAll"))
|
|
@@ -425,7 +426,7 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
425
426
|
default: vue.withCtx(() => [
|
|
426
427
|
vue.createElementVNode("div", _hoisted_5$2, [
|
|
427
428
|
__props.selectable ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_6$2, [
|
|
428
|
-
isSelectable(item) ? (vue.openBlock(), vue.createBlock(
|
|
429
|
+
isSelectable(item) ? (vue.openBlock(), vue.createBlock(index._sfc_main, {
|
|
429
430
|
key: 0,
|
|
430
431
|
"model-value": isSelected(item),
|
|
431
432
|
"onUpdate:modelValue": ($event) => handleSelect(item)
|
|
@@ -451,207 +452,6 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
451
452
|
};
|
|
452
453
|
}
|
|
453
454
|
});
|
|
454
|
-
const localProvidedStateMap = /* @__PURE__ */ new WeakMap();
|
|
455
|
-
const injectLocal = /* @__NO_SIDE_EFFECTS__ */ (...args) => {
|
|
456
|
-
var _getCurrentInstance;
|
|
457
|
-
const key = args[0];
|
|
458
|
-
const instance = (_getCurrentInstance = vue.getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy;
|
|
459
|
-
const owner = instance !== null && instance !== void 0 ? instance : vue.getCurrentScope();
|
|
460
|
-
if (owner == null && !vue.hasInjectionContext()) throw new Error("injectLocal must be called in setup");
|
|
461
|
-
if (owner && localProvidedStateMap.has(owner) && key in localProvidedStateMap.get(owner)) return localProvidedStateMap.get(owner)[key];
|
|
462
|
-
return vue.inject(...args);
|
|
463
|
-
};
|
|
464
|
-
const isClient = typeof window !== "undefined" && typeof document !== "undefined";
|
|
465
|
-
typeof WorkerGlobalScope !== "undefined" && globalThis instanceof WorkerGlobalScope;
|
|
466
|
-
const toString = Object.prototype.toString;
|
|
467
|
-
const isObject = (val) => toString.call(val) === "[object Object]";
|
|
468
|
-
function increaseWithUnit(target, delta) {
|
|
469
|
-
var _target$match;
|
|
470
|
-
if (typeof target === "number") return target + delta;
|
|
471
|
-
const value = ((_target$match = target.match(/^-?\d+\.?\d*/)) === null || _target$match === void 0 ? void 0 : _target$match[0]) || "";
|
|
472
|
-
const unit = target.slice(value.length);
|
|
473
|
-
const result = Number.parseFloat(value) + delta;
|
|
474
|
-
if (Number.isNaN(result)) return target;
|
|
475
|
-
return result + unit;
|
|
476
|
-
}
|
|
477
|
-
function pxValue(px) {
|
|
478
|
-
return px.endsWith("rem") ? Number.parseFloat(px) * 16 : Number.parseFloat(px);
|
|
479
|
-
}
|
|
480
|
-
function toArray(value) {
|
|
481
|
-
return Array.isArray(value) ? value : [value];
|
|
482
|
-
}
|
|
483
|
-
function getLifeCycleTarget(target) {
|
|
484
|
-
return vue.getCurrentInstance();
|
|
485
|
-
}
|
|
486
|
-
function tryOnMounted(fn, sync = true, target) {
|
|
487
|
-
if (getLifeCycleTarget()) vue.onMounted(fn, target);
|
|
488
|
-
else if (sync) fn();
|
|
489
|
-
else vue.nextTick(fn);
|
|
490
|
-
}
|
|
491
|
-
function watchImmediate(source, cb, options) {
|
|
492
|
-
return vue.watch(source, cb, {
|
|
493
|
-
...options,
|
|
494
|
-
immediate: true
|
|
495
|
-
});
|
|
496
|
-
}
|
|
497
|
-
const defaultWindow = isClient ? window : void 0;
|
|
498
|
-
function unrefElement(elRef) {
|
|
499
|
-
var _$el;
|
|
500
|
-
const plain = vue.toValue(elRef);
|
|
501
|
-
return (_$el = plain === null || plain === void 0 ? void 0 : plain.$el) !== null && _$el !== void 0 ? _$el : plain;
|
|
502
|
-
}
|
|
503
|
-
function useEventListener(...args) {
|
|
504
|
-
const register = (el, event, listener, options) => {
|
|
505
|
-
el.addEventListener(event, listener, options);
|
|
506
|
-
return () => el.removeEventListener(event, listener, options);
|
|
507
|
-
};
|
|
508
|
-
const firstParamTargets = vue.computed(() => {
|
|
509
|
-
const test = toArray(vue.toValue(args[0])).filter((e) => e != null);
|
|
510
|
-
return test.every((e) => typeof e !== "string") ? test : void 0;
|
|
511
|
-
});
|
|
512
|
-
return watchImmediate(() => {
|
|
513
|
-
var _firstParamTargets$va, _firstParamTargets$va2;
|
|
514
|
-
return [
|
|
515
|
-
(_firstParamTargets$va = (_firstParamTargets$va2 = firstParamTargets.value) === null || _firstParamTargets$va2 === void 0 ? void 0 : _firstParamTargets$va2.map((e) => unrefElement(e))) !== null && _firstParamTargets$va !== void 0 ? _firstParamTargets$va : [defaultWindow].filter((e) => e != null),
|
|
516
|
-
toArray(vue.toValue(firstParamTargets.value ? args[1] : args[0])),
|
|
517
|
-
toArray(vue.unref(firstParamTargets.value ? args[2] : args[1])),
|
|
518
|
-
vue.toValue(firstParamTargets.value ? args[3] : args[2])
|
|
519
|
-
];
|
|
520
|
-
}, ([raw_targets, raw_events, raw_listeners, raw_options], _, onCleanup) => {
|
|
521
|
-
if (!(raw_targets === null || raw_targets === void 0 ? void 0 : raw_targets.length) || !(raw_events === null || raw_events === void 0 ? void 0 : raw_events.length) || !(raw_listeners === null || raw_listeners === void 0 ? void 0 : raw_listeners.length)) return;
|
|
522
|
-
const optionsClone = isObject(raw_options) ? { ...raw_options } : raw_options;
|
|
523
|
-
const cleanups = raw_targets.flatMap((el) => raw_events.flatMap((event) => raw_listeners.map((listener) => register(el, event, listener, optionsClone))));
|
|
524
|
-
onCleanup(() => {
|
|
525
|
-
cleanups.forEach((fn) => fn());
|
|
526
|
-
});
|
|
527
|
-
}, { flush: "post" });
|
|
528
|
-
}
|
|
529
|
-
// @__NO_SIDE_EFFECTS__
|
|
530
|
-
function useMounted() {
|
|
531
|
-
const isMounted = vue.shallowRef(false);
|
|
532
|
-
const instance = vue.getCurrentInstance();
|
|
533
|
-
if (instance) vue.onMounted(() => {
|
|
534
|
-
isMounted.value = true;
|
|
535
|
-
}, instance);
|
|
536
|
-
return isMounted;
|
|
537
|
-
}
|
|
538
|
-
// @__NO_SIDE_EFFECTS__
|
|
539
|
-
function useSupported(callback) {
|
|
540
|
-
const isMounted = /* @__PURE__ */ useMounted();
|
|
541
|
-
return vue.computed(() => {
|
|
542
|
-
isMounted.value;
|
|
543
|
-
return Boolean(callback());
|
|
544
|
-
});
|
|
545
|
-
}
|
|
546
|
-
const ssrWidthSymbol = Symbol("vueuse-ssr-width");
|
|
547
|
-
// @__NO_SIDE_EFFECTS__
|
|
548
|
-
function useSSRWidth() {
|
|
549
|
-
const ssrWidth = vue.hasInjectionContext() ? /* @__PURE__ */ injectLocal(ssrWidthSymbol, null) : null;
|
|
550
|
-
return typeof ssrWidth === "number" ? ssrWidth : void 0;
|
|
551
|
-
}
|
|
552
|
-
function useMediaQuery(query, options = {}) {
|
|
553
|
-
const { window: window$1 = defaultWindow, ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;
|
|
554
|
-
const isSupported = /* @__PURE__ */ useSupported(() => window$1 && "matchMedia" in window$1 && typeof window$1.matchMedia === "function");
|
|
555
|
-
const ssrSupport = vue.shallowRef(typeof ssrWidth === "number");
|
|
556
|
-
const mediaQuery = vue.shallowRef();
|
|
557
|
-
const matches = vue.shallowRef(false);
|
|
558
|
-
const handler = (event) => {
|
|
559
|
-
matches.value = event.matches;
|
|
560
|
-
};
|
|
561
|
-
vue.watchEffect(() => {
|
|
562
|
-
if (ssrSupport.value) {
|
|
563
|
-
ssrSupport.value = !isSupported.value;
|
|
564
|
-
matches.value = vue.toValue(query).split(",").some((queryString) => {
|
|
565
|
-
const not = queryString.includes("not all");
|
|
566
|
-
const minWidth = queryString.match(/\(\s*min-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);
|
|
567
|
-
const maxWidth = queryString.match(/\(\s*max-width:\s*(-?\d+(?:\.\d*)?[a-z]+\s*)\)/);
|
|
568
|
-
let res = Boolean(minWidth || maxWidth);
|
|
569
|
-
if (minWidth && res) res = ssrWidth >= pxValue(minWidth[1]);
|
|
570
|
-
if (maxWidth && res) res = ssrWidth <= pxValue(maxWidth[1]);
|
|
571
|
-
return not ? !res : res;
|
|
572
|
-
});
|
|
573
|
-
return;
|
|
574
|
-
}
|
|
575
|
-
if (!isSupported.value) return;
|
|
576
|
-
mediaQuery.value = window$1.matchMedia(vue.toValue(query));
|
|
577
|
-
matches.value = mediaQuery.value.matches;
|
|
578
|
-
});
|
|
579
|
-
useEventListener(mediaQuery, "change", handler, { passive: true });
|
|
580
|
-
return vue.computed(() => matches.value);
|
|
581
|
-
}
|
|
582
|
-
// @__NO_SIDE_EFFECTS__
|
|
583
|
-
function useBreakpoints(breakpoints, options = {}) {
|
|
584
|
-
function getValue$1(k, delta) {
|
|
585
|
-
let v = vue.toValue(breakpoints[vue.toValue(k)]);
|
|
586
|
-
if (delta != null) v = increaseWithUnit(v, delta);
|
|
587
|
-
if (typeof v === "number") v = `${v}px`;
|
|
588
|
-
return v;
|
|
589
|
-
}
|
|
590
|
-
const { window: window$1 = defaultWindow, strategy = "min-width", ssrWidth = /* @__PURE__ */ useSSRWidth() } = options;
|
|
591
|
-
const ssrSupport = typeof ssrWidth === "number";
|
|
592
|
-
const mounted = ssrSupport ? vue.shallowRef(false) : { value: true };
|
|
593
|
-
if (ssrSupport) tryOnMounted(() => mounted.value = !!window$1);
|
|
594
|
-
function match(query, size) {
|
|
595
|
-
if (!mounted.value && ssrSupport) return query === "min" ? ssrWidth >= pxValue(size) : ssrWidth <= pxValue(size);
|
|
596
|
-
if (!window$1) return false;
|
|
597
|
-
return window$1.matchMedia(`(${query}-width: ${size})`).matches;
|
|
598
|
-
}
|
|
599
|
-
const greaterOrEqual = (k) => {
|
|
600
|
-
return useMediaQuery(() => `(min-width: ${getValue$1(k)})`, options);
|
|
601
|
-
};
|
|
602
|
-
const smallerOrEqual = (k) => {
|
|
603
|
-
return useMediaQuery(() => `(max-width: ${getValue$1(k)})`, options);
|
|
604
|
-
};
|
|
605
|
-
const shortcutMethods = Object.keys(breakpoints).reduce((shortcuts, k) => {
|
|
606
|
-
Object.defineProperty(shortcuts, k, {
|
|
607
|
-
get: () => strategy === "min-width" ? greaterOrEqual(k) : smallerOrEqual(k),
|
|
608
|
-
enumerable: true,
|
|
609
|
-
configurable: true
|
|
610
|
-
});
|
|
611
|
-
return shortcuts;
|
|
612
|
-
}, {});
|
|
613
|
-
function current() {
|
|
614
|
-
const points = Object.keys(breakpoints).map((k) => [
|
|
615
|
-
k,
|
|
616
|
-
shortcutMethods[k],
|
|
617
|
-
pxValue(getValue$1(k))
|
|
618
|
-
]).sort((a, b) => a[2] - b[2]);
|
|
619
|
-
return vue.computed(() => points.filter(([, v]) => v.value).map(([k]) => k));
|
|
620
|
-
}
|
|
621
|
-
return Object.assign(shortcutMethods, {
|
|
622
|
-
greaterOrEqual,
|
|
623
|
-
smallerOrEqual,
|
|
624
|
-
greater(k) {
|
|
625
|
-
return useMediaQuery(() => `(min-width: ${getValue$1(k, 0.1)})`, options);
|
|
626
|
-
},
|
|
627
|
-
smaller(k) {
|
|
628
|
-
return useMediaQuery(() => `(max-width: ${getValue$1(k, -0.1)})`, options);
|
|
629
|
-
},
|
|
630
|
-
between(a, b) {
|
|
631
|
-
return useMediaQuery(() => `(min-width: ${getValue$1(a)}) and (max-width: ${getValue$1(b, -0.1)})`, options);
|
|
632
|
-
},
|
|
633
|
-
isGreater(k) {
|
|
634
|
-
return match("min", getValue$1(k, 0.1));
|
|
635
|
-
},
|
|
636
|
-
isGreaterOrEqual(k) {
|
|
637
|
-
return match("min", getValue$1(k));
|
|
638
|
-
},
|
|
639
|
-
isSmaller(k) {
|
|
640
|
-
return match("max", getValue$1(k, -0.1));
|
|
641
|
-
},
|
|
642
|
-
isSmallerOrEqual(k) {
|
|
643
|
-
return match("max", getValue$1(k));
|
|
644
|
-
},
|
|
645
|
-
isInBetween(a, b) {
|
|
646
|
-
return match("min", getValue$1(a)) && match("max", getValue$1(b, -0.1));
|
|
647
|
-
},
|
|
648
|
-
current,
|
|
649
|
-
active() {
|
|
650
|
-
const bps = current();
|
|
651
|
-
return vue.computed(() => bps.value.length === 0 ? "" : bps.value.at(strategy === "min-width" ? -1 : 0));
|
|
652
|
-
}
|
|
653
|
-
});
|
|
654
|
-
}
|
|
655
455
|
const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
656
456
|
__name: "ResponsiveList",
|
|
657
457
|
props: {
|
|
@@ -701,7 +501,7 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
701
501
|
return !!slots[`cell-${key}`];
|
|
702
502
|
};
|
|
703
503
|
const hasActionsSlot = vue.computed(() => !!slots.actions);
|
|
704
|
-
const breakpoints =
|
|
504
|
+
const breakpoints = index.useBreakpoints({
|
|
705
505
|
sm: 640,
|
|
706
506
|
md: 768,
|
|
707
507
|
lg: 1024,
|
|
@@ -789,11 +589,11 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
789
589
|
};
|
|
790
590
|
}
|
|
791
591
|
});
|
|
792
|
-
const _hoisted_1$
|
|
592
|
+
const _hoisted_1$a = {
|
|
793
593
|
key: 0,
|
|
794
594
|
class: "mb-2 block text-sm font-medium text-gray-700 dark:text-gray-300"
|
|
795
595
|
};
|
|
796
|
-
const _hoisted_2$
|
|
596
|
+
const _hoisted_2$7 = { class: "relative" };
|
|
797
597
|
const _hoisted_3$4 = ["disabled", "placeholder"];
|
|
798
598
|
const _hoisted_4$3 = ["disabled"];
|
|
799
599
|
const _hoisted_5$1 = {
|
|
@@ -893,9 +693,9 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
893
693
|
const handleKeydown = (event) => {
|
|
894
694
|
baseHandleKeydown(event, {
|
|
895
695
|
itemCount: filteredOptions.value.length,
|
|
896
|
-
onSelect: (
|
|
897
|
-
if (filteredOptions.value[
|
|
898
|
-
selectOption(filteredOptions.value[
|
|
696
|
+
onSelect: (index2) => {
|
|
697
|
+
if (filteredOptions.value[index2]) {
|
|
698
|
+
selectOption(filteredOptions.value[index2]);
|
|
899
699
|
}
|
|
900
700
|
}
|
|
901
701
|
});
|
|
@@ -909,8 +709,8 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
909
709
|
ref: containerRef,
|
|
910
710
|
class: "autocomplete-container"
|
|
911
711
|
}, [
|
|
912
|
-
__props.label ? (vue.openBlock(), vue.createElementBlock("label", _hoisted_1$
|
|
913
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
712
|
+
__props.label ? (vue.openBlock(), vue.createElementBlock("label", _hoisted_1$a, vue.toDisplayString(__props.label), 1)) : vue.createCommentVNode("", true),
|
|
713
|
+
vue.createElementVNode("div", _hoisted_2$7, [
|
|
914
714
|
vue.createElementVNode("div", {
|
|
915
715
|
ref_key: "inputWrapperRef",
|
|
916
716
|
ref: inputWrapperRef,
|
|
@@ -985,14 +785,14 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
985
785
|
])
|
|
986
786
|
}, [
|
|
987
787
|
filteredOptions.value.length === 0 ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$1, vue.toDisplayString(__props.noResultsText || "No results found"), 1)) : vue.createCommentVNode("", true),
|
|
988
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filteredOptions.value, (option,
|
|
788
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(filteredOptions.value, (option, index2) => {
|
|
989
789
|
return vue.openBlock(), vue.createElementBlock("button", {
|
|
990
790
|
key: option.value,
|
|
991
791
|
class: vue.normalizeClass([{
|
|
992
|
-
"bg-gray-100 dark:bg-gray-700": vue.unref(highlightedIndex) ===
|
|
792
|
+
"bg-gray-100 dark:bg-gray-700": vue.unref(highlightedIndex) === index2,
|
|
993
793
|
"bg-primary/10": __props.modelValue === option.value
|
|
994
794
|
}, "flex w-full items-center gap-2 px-4 py-2 text-left text-sm transition hover:bg-gray-100 dark:hover:bg-gray-700"]),
|
|
995
|
-
"data-index":
|
|
795
|
+
"data-index": index2,
|
|
996
796
|
type: "button",
|
|
997
797
|
onClick: ($event) => selectOption(option)
|
|
998
798
|
}, [
|
|
@@ -1085,103 +885,10 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
1085
885
|
};
|
|
1086
886
|
}
|
|
1087
887
|
});
|
|
1088
|
-
const
|
|
1089
|
-
|
|
1090
|
-
props: {
|
|
1091
|
-
variant: { default: "primary" },
|
|
1092
|
-
size: { default: "md" },
|
|
1093
|
-
icon: {},
|
|
1094
|
-
iconRight: {},
|
|
1095
|
-
loading: { type: Boolean },
|
|
1096
|
-
disabled: { type: Boolean },
|
|
1097
|
-
block: { type: Boolean },
|
|
1098
|
-
href: {},
|
|
1099
|
-
to: {},
|
|
1100
|
-
type: { default: "button" }
|
|
1101
|
-
},
|
|
1102
|
-
emits: ["click"],
|
|
1103
|
-
setup(__props, { emit: __emit }) {
|
|
1104
|
-
const props = __props;
|
|
1105
|
-
const emit = __emit;
|
|
1106
|
-
const variantClasses = {
|
|
1107
|
-
primary: "bg-primary text-primary-foreground hover:bg-primary/90 focus:ring-primary",
|
|
1108
|
-
secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/90 focus:ring-secondary",
|
|
1109
|
-
outline: "border border-gray-300 bg-transparent text-gray-700 hover:bg-gray-50 focus:ring-primary dark:border-gray-600 dark:text-gray-300 dark:hover:bg-gray-800",
|
|
1110
|
-
ghost: "bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-primary dark:text-gray-300 dark:hover:bg-gray-800",
|
|
1111
|
-
danger: "bg-red-500 text-white hover:bg-red-600 focus:ring-red-500",
|
|
1112
|
-
success: "bg-green-500 text-white hover:bg-green-600 focus:ring-green-500"
|
|
1113
|
-
};
|
|
1114
|
-
const sizeClasses = {
|
|
1115
|
-
xs: "px-2 py-1 text-xs gap-1",
|
|
1116
|
-
sm: "px-3 py-1.5 text-sm gap-1.5",
|
|
1117
|
-
md: "px-4 py-2 text-sm gap-2",
|
|
1118
|
-
lg: "px-5 py-2.5 text-base gap-2",
|
|
1119
|
-
xl: "px-6 py-3 text-lg gap-2.5"
|
|
1120
|
-
};
|
|
1121
|
-
const iconSizeClasses = {
|
|
1122
|
-
xs: "size-3",
|
|
1123
|
-
sm: "size-4",
|
|
1124
|
-
md: "size-4",
|
|
1125
|
-
lg: "size-5",
|
|
1126
|
-
xl: "size-6"
|
|
1127
|
-
};
|
|
1128
|
-
const classes = vue.computed(() => [
|
|
1129
|
-
"inline-flex items-center justify-center font-medium rounded-lg transition-colors focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed",
|
|
1130
|
-
variantClasses[props.variant],
|
|
1131
|
-
sizeClasses[props.size],
|
|
1132
|
-
props.block && "w-full"
|
|
1133
|
-
]);
|
|
1134
|
-
const component = vue.computed(() => {
|
|
1135
|
-
if (props.to) {
|
|
1136
|
-
try {
|
|
1137
|
-
const RouterLink = vue.resolveComponent("RouterLink");
|
|
1138
|
-
if (typeof RouterLink !== "string") return RouterLink;
|
|
1139
|
-
} catch {
|
|
1140
|
-
}
|
|
1141
|
-
}
|
|
1142
|
-
if (props.href) return "a";
|
|
1143
|
-
return "button";
|
|
1144
|
-
});
|
|
1145
|
-
const componentProps = vue.computed(() => {
|
|
1146
|
-
if (props.to) return { to: props.to };
|
|
1147
|
-
if (props.href) return { href: props.href };
|
|
1148
|
-
return { type: props.type, disabled: props.disabled || props.loading };
|
|
1149
|
-
});
|
|
1150
|
-
const handleClick = (event) => {
|
|
1151
|
-
if (props.disabled || props.loading) return;
|
|
1152
|
-
emit("click", event);
|
|
1153
|
-
};
|
|
1154
|
-
return (_ctx, _cache) => {
|
|
1155
|
-
return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(component.value), vue.mergeProps(componentProps.value, {
|
|
1156
|
-
class: classes.value,
|
|
1157
|
-
onClick: handleClick
|
|
1158
|
-
}), {
|
|
1159
|
-
default: vue.withCtx(() => [
|
|
1160
|
-
__props.loading ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1161
|
-
key: 0,
|
|
1162
|
-
icon: "lucide:loader-2",
|
|
1163
|
-
class: vue.normalizeClass([iconSizeClasses[__props.size], "animate-spin"])
|
|
1164
|
-
}, null, 8, ["class"])) : __props.icon ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1165
|
-
key: 1,
|
|
1166
|
-
icon: __props.icon,
|
|
1167
|
-
class: vue.normalizeClass(iconSizeClasses[__props.size])
|
|
1168
|
-
}, null, 8, ["icon", "class"])) : vue.createCommentVNode("", true),
|
|
1169
|
-
vue.renderSlot(_ctx.$slots, "default"),
|
|
1170
|
-
__props.iconRight && !__props.loading ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1171
|
-
key: 2,
|
|
1172
|
-
icon: __props.iconRight,
|
|
1173
|
-
class: vue.normalizeClass(iconSizeClasses[__props.size])
|
|
1174
|
-
}, null, 8, ["icon", "class"])) : vue.createCommentVNode("", true)
|
|
1175
|
-
]),
|
|
1176
|
-
_: 3
|
|
1177
|
-
}, 16, ["class"]);
|
|
1178
|
-
};
|
|
1179
|
-
}
|
|
1180
|
-
});
|
|
1181
|
-
const _hoisted_1$8 = { class: "relative inline-block" };
|
|
1182
|
-
const _hoisted_2$5 = ["src", "alt"];
|
|
888
|
+
const _hoisted_1$9 = { class: "relative inline-block" };
|
|
889
|
+
const _hoisted_2$6 = ["src", "alt"];
|
|
1183
890
|
const _hoisted_3$3 = { key: 1 };
|
|
1184
|
-
const _sfc_main$
|
|
891
|
+
const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
1185
892
|
__name: "Avatar",
|
|
1186
893
|
props: {
|
|
1187
894
|
src: {},
|
|
@@ -1227,7 +934,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
1227
934
|
});
|
|
1228
935
|
const showImage = vue.computed(() => props.src && !imageError.value);
|
|
1229
936
|
return (_ctx, _cache) => {
|
|
1230
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
937
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$9, [
|
|
1231
938
|
vue.createElementVNode("div", {
|
|
1232
939
|
class: vue.normalizeClass([
|
|
1233
940
|
"flex items-center justify-center overflow-hidden bg-gray-200 font-medium text-gray-600 dark:bg-gray-700 dark:text-gray-300",
|
|
@@ -1241,7 +948,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
1241
948
|
alt: __props.alt || __props.name,
|
|
1242
949
|
class: "size-full object-cover",
|
|
1243
950
|
onError: _cache[0] || (_cache[0] = ($event) => imageError.value = true)
|
|
1244
|
-
}, null, 40, _hoisted_2$
|
|
951
|
+
}, null, 40, _hoisted_2$6)) : initials.value ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$3, vue.toDisplayString(initials.value), 1)) : (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1245
952
|
key: 2,
|
|
1246
953
|
icon: "lucide:user",
|
|
1247
954
|
class: "size-1/2"
|
|
@@ -1259,9 +966,9 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
1259
966
|
};
|
|
1260
967
|
}
|
|
1261
968
|
});
|
|
1262
|
-
const _hoisted_1$
|
|
1263
|
-
const _hoisted_2$
|
|
1264
|
-
const _sfc_main$
|
|
969
|
+
const _hoisted_1$8 = ["aria-selected", "disabled", "onClick"];
|
|
970
|
+
const _hoisted_2$5 = { class: "mt-4" };
|
|
971
|
+
const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
1265
972
|
__name: "Tabs",
|
|
1266
973
|
props: {
|
|
1267
974
|
tabs: {},
|
|
@@ -1326,18 +1033,18 @@ const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
|
1326
1033
|
activeTab.value === tab.key ? variantClasses[__props.variant].active : variantClasses[__props.variant].inactive
|
|
1327
1034
|
]),
|
|
1328
1035
|
onClick: ($event) => selectTab(tab)
|
|
1329
|
-
}, vue.toDisplayString(tab.label), 11, _hoisted_1$
|
|
1036
|
+
}, vue.toDisplayString(tab.label), 11, _hoisted_1$8);
|
|
1330
1037
|
}), 128))
|
|
1331
1038
|
], 2),
|
|
1332
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
1039
|
+
vue.createElementVNode("div", _hoisted_2$5, [
|
|
1333
1040
|
vue.renderSlot(_ctx.$slots, "default", { activeTab: activeTab.value })
|
|
1334
1041
|
])
|
|
1335
1042
|
]);
|
|
1336
1043
|
};
|
|
1337
1044
|
}
|
|
1338
1045
|
});
|
|
1339
|
-
const _hoisted_1$
|
|
1340
|
-
const _sfc_main$
|
|
1046
|
+
const _hoisted_1$7 = { role: "tabpanel" };
|
|
1047
|
+
const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
1341
1048
|
__name: "TabPanel",
|
|
1342
1049
|
props: {
|
|
1343
1050
|
value: {}
|
|
@@ -1347,7 +1054,7 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1347
1054
|
const activeTab = vue.inject("activeTab");
|
|
1348
1055
|
const isActive = vue.computed(() => (activeTab == null ? void 0 : activeTab.value) === props.value);
|
|
1349
1056
|
return (_ctx, _cache) => {
|
|
1350
|
-
return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1057
|
+
return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", _hoisted_1$7, [
|
|
1351
1058
|
vue.renderSlot(_ctx.$slots, "default")
|
|
1352
1059
|
], 512)), [
|
|
1353
1060
|
[vue.vShow, isActive.value]
|
|
@@ -1355,11 +1062,11 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1355
1062
|
};
|
|
1356
1063
|
}
|
|
1357
1064
|
});
|
|
1358
|
-
const _hoisted_1$
|
|
1065
|
+
const _hoisted_1$6 = {
|
|
1359
1066
|
key: 2,
|
|
1360
1067
|
class: "text-sm font-semibold"
|
|
1361
1068
|
};
|
|
1362
|
-
const _sfc_main$
|
|
1069
|
+
const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
1363
1070
|
__name: "Stepper",
|
|
1364
1071
|
props: {
|
|
1365
1072
|
steps: {},
|
|
@@ -1371,12 +1078,12 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1371
1078
|
const props = __props;
|
|
1372
1079
|
const getCurrentStepIndex = () => {
|
|
1373
1080
|
if (props.modelValue === void 0) return 0;
|
|
1374
|
-
const
|
|
1375
|
-
return
|
|
1081
|
+
const index2 = props.steps.findIndex((s) => s.key === props.modelValue);
|
|
1082
|
+
return index2 >= 0 ? index2 : 0;
|
|
1376
1083
|
};
|
|
1377
|
-
const isStepComplete = (
|
|
1378
|
-
const isStepActive = (
|
|
1379
|
-
const isStepPending = (
|
|
1084
|
+
const isStepComplete = (index2) => index2 < getCurrentStepIndex();
|
|
1085
|
+
const isStepActive = (index2) => index2 === getCurrentStepIndex();
|
|
1086
|
+
const isStepPending = (index2) => index2 > getCurrentStepIndex();
|
|
1380
1087
|
return (_ctx, _cache) => {
|
|
1381
1088
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
1382
1089
|
class: vue.normalizeClass([
|
|
@@ -1402,7 +1109,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1402
1109
|
"aria-hidden": "true"
|
|
1403
1110
|
}, null, 4)
|
|
1404
1111
|
], 64)) : vue.createCommentVNode("", true),
|
|
1405
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.steps, (step,
|
|
1112
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.steps, (step, index2) => {
|
|
1406
1113
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
1407
1114
|
key: step.key,
|
|
1408
1115
|
class: vue.normalizeClass([
|
|
@@ -1410,17 +1117,17 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1410
1117
|
__props.orientation === "horizontal" ? "flex flex-1 flex-col items-center" : "flex items-start gap-4"
|
|
1411
1118
|
])
|
|
1412
1119
|
}, [
|
|
1413
|
-
__props.orientation === "vertical" &&
|
|
1120
|
+
__props.orientation === "vertical" && index2 < __props.steps.length - 1 ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
1414
1121
|
key: 0,
|
|
1415
|
-
class: vue.normalizeClass(["absolute left-6 top-12 h-full w-0.5 -translate-x-1/2", isStepComplete(
|
|
1122
|
+
class: vue.normalizeClass(["absolute left-6 top-12 h-full w-0.5 -translate-x-1/2", isStepComplete(index2) ? "bg-primary" : "bg-gray-200 dark:bg-gray-700"])
|
|
1416
1123
|
}, null, 2)) : vue.createCommentVNode("", true),
|
|
1417
1124
|
vue.createElementVNode("div", {
|
|
1418
1125
|
class: vue.normalizeClass(["relative z-10 flex size-12 shrink-0 items-center justify-center rounded-full border-2 transition-all duration-300", {
|
|
1419
|
-
"border-primary bg-primary text-white shadow-lg": isStepActive(
|
|
1420
|
-
"border-gray-300 bg-white text-gray-400 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-500": isStepPending(
|
|
1126
|
+
"border-primary bg-primary text-white shadow-lg": isStepActive(index2) || isStepComplete(index2),
|
|
1127
|
+
"border-gray-300 bg-white text-gray-400 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-500": isStepPending(index2)
|
|
1421
1128
|
}])
|
|
1422
1129
|
}, [
|
|
1423
|
-
isStepComplete(
|
|
1130
|
+
isStepComplete(index2) ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1424
1131
|
key: 0,
|
|
1425
1132
|
icon: "lucide:check",
|
|
1426
1133
|
class: "size-6"
|
|
@@ -1428,7 +1135,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1428
1135
|
key: 1,
|
|
1429
1136
|
icon: step.icon,
|
|
1430
1137
|
class: "size-6"
|
|
1431
|
-
}, null, 8, ["icon"])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$
|
|
1138
|
+
}, null, 8, ["icon"])) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$6, vue.toDisplayString(index2 + 1), 1))
|
|
1432
1139
|
], 2),
|
|
1433
1140
|
vue.createElementVNode("div", {
|
|
1434
1141
|
class: vue.normalizeClass([
|
|
@@ -1437,15 +1144,15 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1437
1144
|
}, [
|
|
1438
1145
|
vue.createElementVNode("p", {
|
|
1439
1146
|
class: vue.normalizeClass(["text-sm font-semibold transition-colors", {
|
|
1440
|
-
"text-primary dark:text-primary": isStepActive(
|
|
1441
|
-
"text-gray-500 dark:text-gray-400": isStepPending(
|
|
1147
|
+
"text-primary dark:text-primary": isStepActive(index2) || isStepComplete(index2),
|
|
1148
|
+
"text-gray-500 dark:text-gray-400": isStepPending(index2)
|
|
1442
1149
|
}])
|
|
1443
1150
|
}, vue.toDisplayString(step.title), 3),
|
|
1444
1151
|
step.description ? (vue.openBlock(), vue.createElementBlock("p", {
|
|
1445
1152
|
key: 0,
|
|
1446
1153
|
class: vue.normalizeClass(["mt-1 text-xs", {
|
|
1447
|
-
"text-gray-600 dark:text-gray-300": isStepActive(
|
|
1448
|
-
"text-gray-500 dark:text-gray-400": !isStepActive(
|
|
1154
|
+
"text-gray-600 dark:text-gray-300": isStepActive(index2),
|
|
1155
|
+
"text-gray-500 dark:text-gray-400": !isStepActive(index2)
|
|
1449
1156
|
}])
|
|
1450
1157
|
}, vue.toDisplayString(step.description), 3)) : vue.createCommentVNode("", true)
|
|
1451
1158
|
], 2)
|
|
@@ -1456,7 +1163,7 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1456
1163
|
};
|
|
1457
1164
|
}
|
|
1458
1165
|
});
|
|
1459
|
-
const _sfc_main$
|
|
1166
|
+
const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
1460
1167
|
__name: "CollapsibleCard",
|
|
1461
1168
|
props: {
|
|
1462
1169
|
title: {},
|
|
@@ -1552,7 +1259,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1552
1259
|
};
|
|
1553
1260
|
}
|
|
1554
1261
|
});
|
|
1555
|
-
const _sfc_main$
|
|
1262
|
+
const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
1556
1263
|
__name: "Tooltip",
|
|
1557
1264
|
props: {
|
|
1558
1265
|
content: {},
|
|
@@ -1627,7 +1334,7 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1627
1334
|
};
|
|
1628
1335
|
}
|
|
1629
1336
|
});
|
|
1630
|
-
const _sfc_main$
|
|
1337
|
+
const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
1631
1338
|
__name: "Popover",
|
|
1632
1339
|
props: {
|
|
1633
1340
|
position: { default: "bottom" },
|
|
@@ -1710,17 +1417,17 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1710
1417
|
};
|
|
1711
1418
|
}
|
|
1712
1419
|
});
|
|
1713
|
-
const _hoisted_1$
|
|
1420
|
+
const _hoisted_1$5 = {
|
|
1714
1421
|
key: 0,
|
|
1715
1422
|
class: "flex items-center justify-between px-4 py-3 border-b border-gray-200 dark:border-gray-700"
|
|
1716
1423
|
};
|
|
1717
|
-
const _hoisted_2$
|
|
1424
|
+
const _hoisted_2$4 = { class: "text-lg font-semibold text-gray-900 dark:text-white" };
|
|
1718
1425
|
const _hoisted_3$2 = { class: "flex-1 overflow-y-auto p-4" };
|
|
1719
1426
|
const _hoisted_4$2 = {
|
|
1720
1427
|
key: 1,
|
|
1721
1428
|
class: "px-4 py-3 border-t border-gray-200 dark:border-gray-700"
|
|
1722
1429
|
};
|
|
1723
|
-
const _sfc_main$
|
|
1430
|
+
const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
1724
1431
|
__name: "Drawer",
|
|
1725
1432
|
props: {
|
|
1726
1433
|
modelValue: { type: Boolean },
|
|
@@ -1839,9 +1546,9 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1839
1546
|
role: "dialog",
|
|
1840
1547
|
"aria-modal": "true"
|
|
1841
1548
|
}, [
|
|
1842
|
-
__props.title || __props.showClose || _ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1549
|
+
__props.title || __props.showClose || _ctx.$slots.header ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$5, [
|
|
1843
1550
|
vue.renderSlot(_ctx.$slots, "header", {}, () => [
|
|
1844
|
-
vue.createElementVNode("h2", _hoisted_2$
|
|
1551
|
+
vue.createElementVNode("h2", _hoisted_2$4, vue.toDisplayString(__props.title), 1)
|
|
1845
1552
|
]),
|
|
1846
1553
|
__props.showClose ? (vue.openBlock(), vue.createElementBlock("button", {
|
|
1847
1554
|
key: 0,
|
|
@@ -1869,9 +1576,9 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1869
1576
|
};
|
|
1870
1577
|
}
|
|
1871
1578
|
});
|
|
1872
|
-
const _hoisted_1$
|
|
1873
|
-
const _hoisted_2$
|
|
1874
|
-
const _sfc_main$
|
|
1579
|
+
const _hoisted_1$4 = { "aria-label": "Breadcrumb" };
|
|
1580
|
+
const _hoisted_2$3 = { class: "flex items-center flex-wrap gap-1 text-sm" };
|
|
1581
|
+
const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
1875
1582
|
__name: "Breadcrumb",
|
|
1876
1583
|
props: {
|
|
1877
1584
|
items: {},
|
|
@@ -1882,14 +1589,14 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1882
1589
|
emits: ["click"],
|
|
1883
1590
|
setup(__props) {
|
|
1884
1591
|
return (_ctx, _cache) => {
|
|
1885
|
-
return vue.openBlock(), vue.createElementBlock("nav", _hoisted_1$
|
|
1886
|
-
vue.createElementVNode("ol", _hoisted_2$
|
|
1887
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item,
|
|
1592
|
+
return vue.openBlock(), vue.createElementBlock("nav", _hoisted_1$4, [
|
|
1593
|
+
vue.createElementVNode("ol", _hoisted_2$3, [
|
|
1594
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item, index2) => {
|
|
1888
1595
|
return vue.openBlock(), vue.createElementBlock("li", {
|
|
1889
|
-
key:
|
|
1596
|
+
key: index2,
|
|
1890
1597
|
class: "flex items-center"
|
|
1891
1598
|
}, [
|
|
1892
|
-
|
|
1599
|
+
index2 > 0 ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1893
1600
|
key: 0,
|
|
1894
1601
|
icon: __props.separator,
|
|
1895
1602
|
class: "w-4 h-4 mx-2 text-gray-400 dark:text-gray-500 flex-shrink-0"
|
|
@@ -1899,13 +1606,13 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1899
1606
|
href: item.href,
|
|
1900
1607
|
class: vue.normalizeClass([
|
|
1901
1608
|
"flex items-center gap-1.5 transition-colors",
|
|
1902
|
-
|
|
1609
|
+
index2 === __props.items.length - 1 ? "text-gray-900 dark:text-white font-medium cursor-default" : "text-gray-500 dark:text-gray-400 hover:text-primary-600 dark:hover:text-primary-400"
|
|
1903
1610
|
]),
|
|
1904
|
-
"aria-current":
|
|
1905
|
-
onClick: ($event) => _ctx.$emit("click", item,
|
|
1611
|
+
"aria-current": index2 === __props.items.length - 1 ? "page" : void 0,
|
|
1612
|
+
onClick: ($event) => _ctx.$emit("click", item, index2)
|
|
1906
1613
|
}, {
|
|
1907
1614
|
default: vue.withCtx(() => [
|
|
1908
|
-
|
|
1615
|
+
index2 === 0 && __props.showHomeIcon ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1909
1616
|
key: 0,
|
|
1910
1617
|
icon: item.icon || __props.homeIcon,
|
|
1911
1618
|
class: "w-4 h-4"
|
|
@@ -1925,8 +1632,8 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1925
1632
|
};
|
|
1926
1633
|
}
|
|
1927
1634
|
});
|
|
1928
|
-
const _hoisted_1$
|
|
1929
|
-
const _sfc_main$
|
|
1635
|
+
const _hoisted_1$3 = { class: "divide-y divide-gray-200 dark:divide-gray-700 border border-gray-200 dark:border-gray-700 rounded-lg overflow-hidden" };
|
|
1636
|
+
const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
1930
1637
|
__name: "Accordion",
|
|
1931
1638
|
props: {
|
|
1932
1639
|
mode: { default: "single" },
|
|
@@ -1952,17 +1659,17 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1952
1659
|
isOpen
|
|
1953
1660
|
});
|
|
1954
1661
|
return (_ctx, _cache) => {
|
|
1955
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1662
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$3, [
|
|
1956
1663
|
vue.renderSlot(_ctx.$slots, "default")
|
|
1957
1664
|
]);
|
|
1958
1665
|
};
|
|
1959
1666
|
}
|
|
1960
1667
|
});
|
|
1961
|
-
const _hoisted_1$
|
|
1962
|
-
const _hoisted_2$
|
|
1668
|
+
const _hoisted_1$2 = ["disabled", "aria-expanded"];
|
|
1669
|
+
const _hoisted_2$2 = { class: "flex items-center gap-2 font-medium" };
|
|
1963
1670
|
const _hoisted_3$1 = { class: "overflow-hidden" };
|
|
1964
1671
|
const _hoisted_4$1 = { class: "px-4 py-3 bg-gray-50 dark:bg-gray-900 text-gray-700 dark:text-gray-300" };
|
|
1965
|
-
const _sfc_main$
|
|
1672
|
+
const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
1966
1673
|
__name: "AccordionItem",
|
|
1967
1674
|
props: {
|
|
1968
1675
|
itemKey: {},
|
|
@@ -1990,7 +1697,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
1990
1697
|
"aria-expanded": isOpen.value,
|
|
1991
1698
|
onClick: toggle
|
|
1992
1699
|
}, [
|
|
1993
|
-
vue.createElementVNode("span", _hoisted_2$
|
|
1700
|
+
vue.createElementVNode("span", _hoisted_2$2, [
|
|
1994
1701
|
__props.icon ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
1995
1702
|
key: 0,
|
|
1996
1703
|
icon: __props.icon,
|
|
@@ -2002,7 +1709,7 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2002
1709
|
icon: "heroicons:chevron-down",
|
|
2003
1710
|
class: vue.normalizeClass(["w-5 h-5 transition-transform duration-200", { "rotate-180": isOpen.value }])
|
|
2004
1711
|
}, null, 8, ["class"])
|
|
2005
|
-
], 10, _hoisted_1$
|
|
1712
|
+
], 10, _hoisted_1$2),
|
|
2006
1713
|
vue.createVNode(vue.Transition, {
|
|
2007
1714
|
"enter-active-class": "transition-all duration-200 ease-out",
|
|
2008
1715
|
"enter-from-class": "opacity-0 max-h-0",
|
|
@@ -2026,11 +1733,11 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2026
1733
|
};
|
|
2027
1734
|
}
|
|
2028
1735
|
});
|
|
2029
|
-
const _hoisted_1 = {
|
|
1736
|
+
const _hoisted_1$1 = {
|
|
2030
1737
|
key: 0,
|
|
2031
1738
|
class: "relative"
|
|
2032
1739
|
};
|
|
2033
|
-
const _hoisted_2 = { class: "flex items-start gap-4" };
|
|
1740
|
+
const _hoisted_2$1 = { class: "flex items-start gap-4" };
|
|
2034
1741
|
const _hoisted_3 = { class: "flex-1 min-w-0 pt-0.5" };
|
|
2035
1742
|
const _hoisted_4 = { class: "flex items-center justify-between gap-2" };
|
|
2036
1743
|
const _hoisted_5 = { class: "text-sm font-medium text-gray-900 dark:text-white" };
|
|
@@ -2053,7 +1760,7 @@ const _hoisted_12 = {
|
|
|
2053
1760
|
key: 0,
|
|
2054
1761
|
class: "text-xs text-gray-500 dark:text-gray-400"
|
|
2055
1762
|
};
|
|
2056
|
-
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
1763
|
+
const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
2057
1764
|
__name: "Timeline",
|
|
2058
1765
|
props: {
|
|
2059
1766
|
items: {},
|
|
@@ -2099,17 +1806,17 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
2099
1806
|
}
|
|
2100
1807
|
};
|
|
2101
1808
|
return (_ctx, _cache) => {
|
|
2102
|
-
return __props.orientation === "vertical" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1, [
|
|
2103
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item,
|
|
1809
|
+
return __props.orientation === "vertical" ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$1, [
|
|
1810
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item, index2) => {
|
|
2104
1811
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
2105
1812
|
key: item.key,
|
|
2106
1813
|
class: "relative pb-8 last:pb-0"
|
|
2107
1814
|
}, [
|
|
2108
|
-
|
|
1815
|
+
index2 < __props.items.length - 1 ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
2109
1816
|
key: 0,
|
|
2110
1817
|
class: vue.normalizeClass(["absolute left-4 top-8 w-0.5 h-full -ml-px", getStatusClasses(item.status).line])
|
|
2111
1818
|
}, null, 2)) : vue.createCommentVNode("", true),
|
|
2112
|
-
vue.createElementVNode("div", _hoisted_2, [
|
|
1819
|
+
vue.createElementVNode("div", _hoisted_2$1, [
|
|
2113
1820
|
vue.createElementVNode("div", {
|
|
2114
1821
|
class: vue.normalizeClass(["relative z-10 flex items-center justify-center w-8 h-8 rounded-full flex-shrink-0", getStatusClasses(item.status).dot])
|
|
2115
1822
|
}, [
|
|
@@ -2131,10 +1838,10 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
2131
1838
|
]);
|
|
2132
1839
|
}), 128))
|
|
2133
1840
|
])) : (vue.openBlock(), vue.createElementBlock("div", _hoisted_8, [
|
|
2134
|
-
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item,
|
|
1841
|
+
(vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(__props.items, (item, index2) => {
|
|
2135
1842
|
return vue.openBlock(), vue.createElementBlock("div", {
|
|
2136
1843
|
key: item.key,
|
|
2137
|
-
class: vue.normalizeClass(["flex flex-col items-center flex-shrink-0", { "flex-1":
|
|
1844
|
+
class: vue.normalizeClass(["flex flex-col items-center flex-shrink-0", { "flex-1": index2 < __props.items.length - 1 }])
|
|
2138
1845
|
}, [
|
|
2139
1846
|
vue.createElementVNode("div", _hoisted_9, [
|
|
2140
1847
|
vue.createElementVNode("div", {
|
|
@@ -2146,7 +1853,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
2146
1853
|
class: vue.normalizeClass(["w-4 h-4", getStatusClasses(item.status).icon])
|
|
2147
1854
|
}, null, 8, ["icon", "class"])) : vue.createCommentVNode("", true)
|
|
2148
1855
|
], 2),
|
|
2149
|
-
|
|
1856
|
+
index2 < __props.items.length - 1 ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
2150
1857
|
key: 0,
|
|
2151
1858
|
class: vue.normalizeClass(["flex-1 h-0.5 mx-2", getStatusClasses(item.status).line])
|
|
2152
1859
|
}, null, 2)) : vue.createCommentVNode("", true)
|
|
@@ -2161,6 +1868,51 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
2161
1868
|
};
|
|
2162
1869
|
}
|
|
2163
1870
|
});
|
|
1871
|
+
const _hoisted_1 = ["aria-label"];
|
|
1872
|
+
const _hoisted_2 = {
|
|
1873
|
+
key: 0,
|
|
1874
|
+
class: "text-sm font-medium"
|
|
1875
|
+
};
|
|
1876
|
+
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
1877
|
+
__name: "DarkModeToggle",
|
|
1878
|
+
props: {
|
|
1879
|
+
size: { default: "md" },
|
|
1880
|
+
lightIcon: { default: "lucide:sun" },
|
|
1881
|
+
darkIcon: { default: "lucide:moon" },
|
|
1882
|
+
showLabel: { type: Boolean, default: false },
|
|
1883
|
+
storageKey: { default: "dark-mode" }
|
|
1884
|
+
},
|
|
1885
|
+
setup(__props) {
|
|
1886
|
+
const props = __props;
|
|
1887
|
+
const { isDark, toggle } = useDarkMode.useDarkMode({ storageKey: props.storageKey });
|
|
1888
|
+
const sizeClasses = {
|
|
1889
|
+
sm: { button: "p-1.5", icon: "h-4 w-4" },
|
|
1890
|
+
md: { button: "p-2", icon: "h-5 w-5" },
|
|
1891
|
+
lg: { button: "p-2.5", icon: "h-6 w-6" }
|
|
1892
|
+
};
|
|
1893
|
+
return (_ctx, _cache) => {
|
|
1894
|
+
return vue.openBlock(), vue.createElementBlock("button", {
|
|
1895
|
+
type: "button",
|
|
1896
|
+
class: vue.normalizeClass([
|
|
1897
|
+
sizeClasses[__props.size].button,
|
|
1898
|
+
"inline-flex items-center gap-2 rounded-lg transition-colors",
|
|
1899
|
+
"text-gray-600 hover:bg-gray-100 hover:text-gray-900",
|
|
1900
|
+
"dark:text-gray-400 dark:hover:bg-gray-800 dark:hover:text-gray-100",
|
|
1901
|
+
"focus:outline-none focus:ring-2 focus:ring-primary focus:ring-offset-2"
|
|
1902
|
+
]),
|
|
1903
|
+
"aria-label": vue.unref(isDark) ? "Switch to light mode" : "Switch to dark mode",
|
|
1904
|
+
onClick: _cache[0] || (_cache[0] = //@ts-ignore
|
|
1905
|
+
(...args) => vue.unref(toggle) && vue.unref(toggle)(...args))
|
|
1906
|
+
}, [
|
|
1907
|
+
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
1908
|
+
icon: vue.unref(isDark) ? __props.darkIcon : __props.lightIcon,
|
|
1909
|
+
class: vue.normalizeClass(sizeClasses[__props.size].icon)
|
|
1910
|
+
}, null, 8, ["icon", "class"]),
|
|
1911
|
+
__props.showLabel ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2, vue.toDisplayString(vue.unref(isDark) ? "Dark" : "Light"), 1)) : vue.createCommentVNode("", true)
|
|
1912
|
+
], 10, _hoisted_1);
|
|
1913
|
+
};
|
|
1914
|
+
}
|
|
1915
|
+
});
|
|
2164
1916
|
exports._sfc_main = _sfc_main$i;
|
|
2165
1917
|
exports._sfc_main$1 = _sfc_main$h;
|
|
2166
1918
|
exports._sfc_main$10 = _sfc_main$8;
|
|
@@ -2180,4 +1932,4 @@ exports._sfc_main$6 = _sfc_main$c;
|
|
|
2180
1932
|
exports._sfc_main$7 = _sfc_main$b;
|
|
2181
1933
|
exports._sfc_main$8 = _sfc_main$a;
|
|
2182
1934
|
exports._sfc_main$9 = _sfc_main$9;
|
|
2183
|
-
//# sourceMappingURL=
|
|
1935
|
+
//# sourceMappingURL=DarkModeToggle.vue_vue_type_script_setup_true_lang-BoB48313.cjs.map
|