cisse-vue-ui 0.7.0 → 0.7.1
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/{TagsInput-C4wBPfrj.js → TagsInput-CFAC_MSw.js} +357 -295
- package/dist/TagsInput-CFAC_MSw.js.map +1 -0
- package/dist/{TagsInput-ClqgyR9O.cjs → TagsInput-DVebLEH2.cjs} +356 -294
- package/dist/TagsInput-DVebLEH2.cjs.map +1 -0
- package/dist/cisse-vue-ui.css +4 -4
- package/dist/components/form/EmailInput.vue.d.ts +1 -1
- package/dist/components/form/MoneyInput.vue.d.ts +1 -1
- package/dist/components/form/NumberInput.vue.d.ts +1 -1
- package/dist/components/form/OTPInput.vue.d.ts +1 -1
- package/dist/components/form/PasswordInput.vue.d.ts +1 -1
- package/dist/components/form/PercentInput.vue.d.ts +1 -1
- package/dist/components/form/PhoneInput.vue.d.ts +14 -1
- package/dist/components/form/QuantityInput.vue.d.ts +1 -1
- package/dist/components/form/SearchInput.vue.d.ts +18 -4
- package/dist/components/form/TagsInput.vue.d.ts +1 -1
- package/dist/components/form/URLInput.vue.d.ts +1 -1
- package/dist/components/form/index.cjs +1 -1
- package/dist/components/form/index.js +1 -1
- package/dist/components/index.cjs +1 -1
- package/dist/components/index.js +1 -1
- package/dist/{index-CRoTVc47.cjs → index-Bl5eyNdr.cjs} +2 -2
- package/dist/{index-CRoTVc47.cjs.map → index-Bl5eyNdr.cjs.map} +1 -1
- package/dist/{index-D49k0PP0.js → index-Cke8qLRH.js} +2 -2
- package/dist/index-Cke8qLRH.js.map +1 -0
- package/dist/index.cjs +2 -2
- package/dist/index.js +2 -2
- package/package.json +1 -1
- package/dist/TagsInput-C4wBPfrj.js.map +0 -1
- package/dist/TagsInput-ClqgyR9O.cjs.map +0 -1
- package/dist/index-D49k0PP0.js.map +0 -1
|
@@ -51,12 +51,80 @@ const _sfc_main$q = /* @__PURE__ */ vue.defineComponent({
|
|
|
51
51
|
});
|
|
52
52
|
const _hoisted_1$p = {
|
|
53
53
|
key: 0,
|
|
54
|
-
class: "
|
|
54
|
+
class: "absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none text-gray-400"
|
|
55
|
+
};
|
|
56
|
+
const _hoisted_2$h = {
|
|
57
|
+
key: 1,
|
|
58
|
+
class: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-1"
|
|
55
59
|
};
|
|
56
|
-
const _hoisted_2$j = ["id", "disabled", "name", "placeholder", "type", "required", "aria-invalid", "aria-required", "aria-describedby"];
|
|
57
|
-
const _hoisted_3$g = ["id", "disabled", "name", "placeholder", "type", "required", "aria-invalid", "aria-required", "aria-describedby"];
|
|
58
|
-
const baseInputClass = "block w-full rounded-xl border border-gray-200 bg-gray-50 text-sm text-gray-900 placeholder-gray-400 transition-all focus:border-primary-500 focus:ring-2 focus:ring-primary-500 focus:bg-white focus:outline-hidden disabled:border-gray-200 disabled:bg-gray-100 disabled:text-gray-500 disabled:cursor-not-allowed dark:border-slate-600 dark:bg-slate-700 dark:text-white dark:placeholder-gray-500 dark:focus:border-primary-500 dark:focus:ring-primary-500 dark:focus:bg-slate-600 dark:disabled:bg-slate-800 dark:disabled:text-gray-500";
|
|
59
60
|
const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
|
|
61
|
+
__name: "InputWrapper",
|
|
62
|
+
props: {
|
|
63
|
+
icon: {},
|
|
64
|
+
iconRight: {},
|
|
65
|
+
size: { default: "md" },
|
|
66
|
+
invalid: { type: Boolean },
|
|
67
|
+
disabled: { type: Boolean },
|
|
68
|
+
wrapperClass: {}
|
|
69
|
+
},
|
|
70
|
+
setup(__props, { expose: __expose }) {
|
|
71
|
+
const props = __props;
|
|
72
|
+
const slots = vue.useSlots();
|
|
73
|
+
const hasLeftIcon = vue.computed(() => props.icon || slots.icon);
|
|
74
|
+
const hasRightContent = vue.computed(() => props.iconRight || slots.actions);
|
|
75
|
+
const inputClass = vue.computed(() => [
|
|
76
|
+
// Base styles
|
|
77
|
+
"block w-full rounded-xl border text-sm transition-all",
|
|
78
|
+
"border-gray-200 bg-gray-50 text-gray-900 placeholder-gray-400",
|
|
79
|
+
"focus:border-primary-500 focus:ring-2 focus:ring-primary-500 focus:bg-white focus:outline-hidden",
|
|
80
|
+
"disabled:border-gray-200 disabled:bg-gray-100 disabled:text-gray-500 disabled:cursor-not-allowed",
|
|
81
|
+
// Dark mode
|
|
82
|
+
"dark:border-slate-600 dark:bg-slate-700 dark:text-white dark:placeholder-gray-500",
|
|
83
|
+
"dark:focus:border-primary-500 dark:focus:ring-primary-500 dark:focus:bg-slate-600",
|
|
84
|
+
"dark:disabled:bg-slate-800 dark:disabled:text-gray-500",
|
|
85
|
+
// Padding based on icons/actions
|
|
86
|
+
hasLeftIcon.value ? "pl-10" : "pl-4",
|
|
87
|
+
hasRightContent.value ? "pr-10" : "pr-4",
|
|
88
|
+
// Size
|
|
89
|
+
props.size === "sm" && "py-2 text-xs",
|
|
90
|
+
props.size === "md" && "py-3 text-sm",
|
|
91
|
+
props.size === "lg" && "py-4 text-base",
|
|
92
|
+
// Invalid state
|
|
93
|
+
props.invalid && "border-red-500 focus:border-red-500 focus:ring-red-500 dark:border-red-500"
|
|
94
|
+
]);
|
|
95
|
+
__expose({ inputClass });
|
|
96
|
+
return (_ctx, _cache) => {
|
|
97
|
+
return vue.openBlock(), vue.createElementBlock("div", {
|
|
98
|
+
class: vue.normalizeClass(["relative", __props.wrapperClass])
|
|
99
|
+
}, [
|
|
100
|
+
hasLeftIcon.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [
|
|
101
|
+
vue.renderSlot(_ctx.$slots, "icon", {}, () => [
|
|
102
|
+
__props.icon ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
103
|
+
key: 0,
|
|
104
|
+
icon: __props.icon,
|
|
105
|
+
class: "size-5"
|
|
106
|
+
}, null, 8, ["icon"])) : vue.createCommentVNode("", true)
|
|
107
|
+
])
|
|
108
|
+
])) : vue.createCommentVNode("", true),
|
|
109
|
+
vue.renderSlot(_ctx.$slots, "default", { inputClass: inputClass.value }),
|
|
110
|
+
hasRightContent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$h, [
|
|
111
|
+
vue.renderSlot(_ctx.$slots, "actions", {}, () => [
|
|
112
|
+
__props.iconRight ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
113
|
+
key: 0,
|
|
114
|
+
icon: __props.iconRight,
|
|
115
|
+
class: "size-5 text-gray-400 pointer-events-none"
|
|
116
|
+
}, null, 8, ["icon"])) : vue.createCommentVNode("", true)
|
|
117
|
+
])
|
|
118
|
+
])) : vue.createCommentVNode("", true)
|
|
119
|
+
], 2);
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
});
|
|
123
|
+
const _hoisted_1$o = ["id", "disabled", "name", "placeholder", "type", "required", "aria-invalid", "aria-required", "aria-describedby"];
|
|
124
|
+
const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
125
|
+
...{
|
|
126
|
+
inheritAttrs: false
|
|
127
|
+
},
|
|
60
128
|
__name: "FormInput",
|
|
61
129
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
62
130
|
type: { default: "text" },
|
|
@@ -79,58 +147,36 @@ const _sfc_main$p = /* @__PURE__ */ vue.defineComponent({
|
|
|
79
147
|
const props = __props;
|
|
80
148
|
const modelValue = vue.useModel(__props, "modelValue");
|
|
81
149
|
return (_ctx, _cache) => {
|
|
82
|
-
return
|
|
83
|
-
props.icon
|
|
84
|
-
|
|
85
|
-
icon: props.icon,
|
|
86
|
-
class: "absolute left-3 top-1/2 -translate-y-1/2 size-5 text-gray-400 pointer-events-none"
|
|
87
|
-
}, null, 8, ["icon"])) : vue.createCommentVNode("", true),
|
|
88
|
-
vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
|
|
89
|
-
id: props.id ?? props.name ?? "",
|
|
90
|
-
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
|
|
91
|
-
disabled: props.disabled,
|
|
92
|
-
name: props.name ?? "",
|
|
93
|
-
placeholder: props.placeholder,
|
|
94
|
-
type: props.type,
|
|
95
|
-
required: props.required,
|
|
96
|
-
"aria-invalid": props.invalid || void 0,
|
|
97
|
-
"aria-required": props.required || void 0,
|
|
98
|
-
"aria-describedby": props.describedBy || void 0,
|
|
99
|
-
class: [
|
|
100
|
-
baseInputClass,
|
|
101
|
-
"py-3",
|
|
102
|
-
props.icon ? "pl-10" : "pl-4",
|
|
103
|
-
props.iconRight ? "pr-10" : "pr-4"
|
|
104
|
-
]
|
|
105
|
-
}, _ctx.$attrs), null, 16, _hoisted_2$j), [
|
|
106
|
-
[vue.vModelDynamic, modelValue.value]
|
|
107
|
-
]),
|
|
108
|
-
props.iconRight ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
109
|
-
key: 1,
|
|
110
|
-
icon: props.iconRight,
|
|
111
|
-
class: "absolute right-3 top-1/2 -translate-y-1/2 size-5 text-gray-400 pointer-events-none"
|
|
112
|
-
}, null, 8, ["icon"])) : vue.createCommentVNode("", true)
|
|
113
|
-
])) : vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", vue.mergeProps({
|
|
114
|
-
key: 1,
|
|
115
|
-
id: props.id ?? props.name ?? "",
|
|
116
|
-
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => modelValue.value = $event),
|
|
150
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$p, {
|
|
151
|
+
icon: props.icon,
|
|
152
|
+
"icon-right": props.iconRight,
|
|
117
153
|
disabled: props.disabled,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
154
|
+
invalid: props.invalid
|
|
155
|
+
}, {
|
|
156
|
+
default: vue.withCtx(({ inputClass }) => [
|
|
157
|
+
vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
|
|
158
|
+
id: props.id ?? props.name ?? "",
|
|
159
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
|
|
160
|
+
disabled: props.disabled,
|
|
161
|
+
name: props.name ?? "",
|
|
162
|
+
placeholder: props.placeholder,
|
|
163
|
+
type: props.type,
|
|
164
|
+
required: props.required,
|
|
165
|
+
"aria-invalid": props.invalid || void 0,
|
|
166
|
+
"aria-required": props.required || void 0,
|
|
167
|
+
"aria-describedby": props.describedBy || void 0,
|
|
168
|
+
class: inputClass
|
|
169
|
+
}, _ctx.$attrs), null, 16, _hoisted_1$o), [
|
|
170
|
+
[vue.vModelDynamic, modelValue.value]
|
|
171
|
+
])
|
|
172
|
+
]),
|
|
173
|
+
_: 1
|
|
174
|
+
}, 8, ["icon", "icon-right", "disabled", "invalid"]);
|
|
129
175
|
};
|
|
130
176
|
}
|
|
131
177
|
});
|
|
132
|
-
const _hoisted_1$
|
|
133
|
-
const _hoisted_2$
|
|
178
|
+
const _hoisted_1$n = { class: "relative" };
|
|
179
|
+
const _hoisted_2$g = ["id", "disabled", "aria-expanded", "aria-controls", "aria-invalid", "aria-describedby"];
|
|
134
180
|
const _hoisted_3$f = { class: "flex-1 truncate" };
|
|
135
181
|
const _hoisted_4$b = ["id", "aria-label"];
|
|
136
182
|
const _hoisted_5$8 = {
|
|
@@ -151,7 +197,7 @@ const _hoisted_10$4 = {
|
|
|
151
197
|
"aria-hidden": "true"
|
|
152
198
|
};
|
|
153
199
|
const _hoisted_11$4 = { class: "flex-1" };
|
|
154
|
-
const _sfc_main$
|
|
200
|
+
const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
155
201
|
__name: "FormSelect",
|
|
156
202
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
157
203
|
options: {},
|
|
@@ -271,7 +317,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
271
317
|
return [base, state, text, props.triggerClass];
|
|
272
318
|
});
|
|
273
319
|
return (_ctx, _cache) => {
|
|
274
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
320
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$n, [
|
|
275
321
|
vue.createElementVNode("button", {
|
|
276
322
|
id: triggerId.value,
|
|
277
323
|
ref_key: "triggerRef",
|
|
@@ -298,7 +344,7 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
298
344
|
class: vue.normalizeClass(["size-4 shrink-0 text-gray-400 transition-transform", vue.unref(isOpen) && "rotate-180"]),
|
|
299
345
|
"aria-hidden": "true"
|
|
300
346
|
}, null, 8, ["class"])
|
|
301
|
-
], 42, _hoisted_2$
|
|
347
|
+
], 42, _hoisted_2$g),
|
|
302
348
|
(vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
303
349
|
to: "body",
|
|
304
350
|
disabled: !__props.teleport
|
|
@@ -389,8 +435,8 @@ const _sfc_main$o = /* @__PURE__ */ vue.defineComponent({
|
|
|
389
435
|
};
|
|
390
436
|
}
|
|
391
437
|
});
|
|
392
|
-
const _hoisted_1$
|
|
393
|
-
const _sfc_main$
|
|
438
|
+
const _hoisted_1$m = ["hidden"];
|
|
439
|
+
const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
|
|
394
440
|
__name: "FormGroup",
|
|
395
441
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
396
442
|
label: {},
|
|
@@ -443,7 +489,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
443
489
|
}, 8, ["html-for", "error"])) : vue.createCommentVNode("", true)
|
|
444
490
|
]),
|
|
445
491
|
vue.renderSlot(_ctx.$slots, "input", {}, () => [
|
|
446
|
-
isSelect.value ? (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
492
|
+
isSelect.value ? (vue.openBlock(), vue.createBlock(_sfc_main$n, vue.mergeProps({
|
|
447
493
|
key: 0,
|
|
448
494
|
modelValue: modelValue.value,
|
|
449
495
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event)
|
|
@@ -451,7 +497,7 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
451
497
|
id: inputId.value,
|
|
452
498
|
invalid: Boolean(__props.error),
|
|
453
499
|
"described-by": hasError.value ? helpId.value : void 0
|
|
454
|
-
}), null, 16, ["modelValue", "id", "invalid", "described-by"])) : (vue.openBlock(), vue.createBlock(_sfc_main$
|
|
500
|
+
}), null, 16, ["modelValue", "id", "invalid", "described-by"])) : (vue.openBlock(), vue.createBlock(_sfc_main$o, vue.mergeProps({
|
|
455
501
|
key: 1,
|
|
456
502
|
modelValue: modelValue.value,
|
|
457
503
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => modelValue.value = $event)
|
|
@@ -472,53 +518,61 @@ const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
|
|
|
472
518
|
_: 1
|
|
473
519
|
}, 8, ["id"])) : vue.createCommentVNode("", true)
|
|
474
520
|
])
|
|
475
|
-
], 12, _hoisted_1$
|
|
521
|
+
], 12, _hoisted_1$m);
|
|
476
522
|
};
|
|
477
523
|
}
|
|
478
524
|
});
|
|
479
|
-
const _hoisted_1$
|
|
480
|
-
const
|
|
481
|
-
|
|
525
|
+
const _hoisted_1$l = ["name", "placeholder", "disabled"];
|
|
526
|
+
const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
527
|
+
...{
|
|
528
|
+
inheritAttrs: false
|
|
529
|
+
},
|
|
482
530
|
__name: "SearchInput",
|
|
483
|
-
props: {
|
|
484
|
-
modelValue: {},
|
|
531
|
+
props: /* @__PURE__ */ vue.mergeModels({
|
|
485
532
|
placeholder: { default: "Search..." },
|
|
486
533
|
icon: { default: "lucide:search" },
|
|
487
|
-
disabled: { type: Boolean
|
|
488
|
-
|
|
534
|
+
disabled: { type: Boolean },
|
|
535
|
+
size: { default: "md" },
|
|
536
|
+
name: {}
|
|
537
|
+
}, {
|
|
538
|
+
"modelValue": { default: "" },
|
|
539
|
+
"modelModifiers": {}
|
|
540
|
+
}),
|
|
489
541
|
emits: ["update:modelValue"],
|
|
490
|
-
setup(__props
|
|
491
|
-
const
|
|
492
|
-
const
|
|
493
|
-
const target = event.target;
|
|
494
|
-
emit("update:modelValue", target.value);
|
|
495
|
-
};
|
|
542
|
+
setup(__props) {
|
|
543
|
+
const props = __props;
|
|
544
|
+
const modelValue = vue.useModel(__props, "modelValue");
|
|
496
545
|
return (_ctx, _cache) => {
|
|
497
|
-
return vue.openBlock(), vue.
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
vue.
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
546
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$p, {
|
|
547
|
+
icon: props.icon,
|
|
548
|
+
size: props.size,
|
|
549
|
+
disabled: props.disabled
|
|
550
|
+
}, {
|
|
551
|
+
default: vue.withCtx(({ inputClass }) => [
|
|
552
|
+
vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
|
|
553
|
+
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
|
|
554
|
+
type: "text",
|
|
555
|
+
name: props.name,
|
|
556
|
+
placeholder: props.placeholder,
|
|
557
|
+
disabled: props.disabled,
|
|
558
|
+
class: inputClass
|
|
559
|
+
}, _ctx.$attrs), null, 16, _hoisted_1$l), [
|
|
560
|
+
[vue.vModelText, modelValue.value]
|
|
561
|
+
])
|
|
562
|
+
]),
|
|
563
|
+
_: 1
|
|
564
|
+
}, 8, ["icon", "size", "disabled"]);
|
|
511
565
|
};
|
|
512
566
|
}
|
|
513
567
|
});
|
|
514
|
-
const _hoisted_1$
|
|
515
|
-
const _hoisted_2$
|
|
568
|
+
const _hoisted_1$k = ["id", "aria-checked", "aria-labelledby", "aria-describedby", "disabled"];
|
|
569
|
+
const _hoisted_2$f = {
|
|
516
570
|
key: 0,
|
|
517
571
|
class: "flex flex-col"
|
|
518
572
|
};
|
|
519
573
|
const _hoisted_3$e = ["id"];
|
|
520
574
|
const _hoisted_4$a = ["id"];
|
|
521
|
-
const _sfc_main$
|
|
575
|
+
const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
522
576
|
__name: "Switch",
|
|
523
577
|
props: {
|
|
524
578
|
modelValue: { type: Boolean, default: false },
|
|
@@ -582,8 +636,8 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
|
582
636
|
]),
|
|
583
637
|
"aria-hidden": "true"
|
|
584
638
|
}, null, 2)
|
|
585
|
-
], 10, _hoisted_1$
|
|
586
|
-
__props.label || __props.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
639
|
+
], 10, _hoisted_1$k),
|
|
640
|
+
__props.label || __props.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$f, [
|
|
587
641
|
__props.label ? (vue.openBlock(), vue.createElementBlock("span", {
|
|
588
642
|
key: 0,
|
|
589
643
|
id: labelId.value,
|
|
@@ -599,8 +653,8 @@ const _sfc_main$l = /* @__PURE__ */ vue.defineComponent({
|
|
|
599
653
|
};
|
|
600
654
|
}
|
|
601
655
|
});
|
|
602
|
-
const _hoisted_1$
|
|
603
|
-
const _hoisted_2$
|
|
656
|
+
const _hoisted_1$j = { class: "w-full" };
|
|
657
|
+
const _hoisted_2$e = {
|
|
604
658
|
key: 0,
|
|
605
659
|
class: "mb-2 flex justify-between text-sm"
|
|
606
660
|
};
|
|
@@ -610,7 +664,7 @@ const _hoisted_5$7 = { class: "text-gray-600 dark:text-gray-400" };
|
|
|
610
664
|
const _hoisted_6$7 = { class: "relative" };
|
|
611
665
|
const _hoisted_7$6 = ["value", "min", "max", "step", "disabled"];
|
|
612
666
|
const _hoisted_8$5 = { class: "pointer-events-none absolute inset-y-0 left-0 flex items-center" };
|
|
613
|
-
const _sfc_main$
|
|
667
|
+
const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
614
668
|
__name: "Slider",
|
|
615
669
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
616
670
|
min: { default: 0 },
|
|
@@ -641,8 +695,8 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
641
695
|
modelValue.value = Number(target.value);
|
|
642
696
|
};
|
|
643
697
|
return (_ctx, _cache) => {
|
|
644
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
645
|
-
__props.showValue ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
698
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$j, [
|
|
699
|
+
__props.showValue ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$e, [
|
|
646
700
|
vue.createElementVNode("span", _hoisted_3$d, vue.toDisplayString(__props.min), 1),
|
|
647
701
|
vue.createElementVNode("span", _hoisted_4$9, vue.toDisplayString(displayValue.value), 1),
|
|
648
702
|
vue.createElementVNode("span", _hoisted_5$7, vue.toDisplayString(__props.max), 1)
|
|
@@ -669,9 +723,9 @@ const _sfc_main$k = /* @__PURE__ */ vue.defineComponent({
|
|
|
669
723
|
};
|
|
670
724
|
}
|
|
671
725
|
});
|
|
672
|
-
const Slider = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main$
|
|
673
|
-
const _hoisted_1$
|
|
674
|
-
const _hoisted_2$
|
|
726
|
+
const Slider = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main$j, [["__scopeId", "data-v-c25e2c2a"]]);
|
|
727
|
+
const _hoisted_1$i = { class: "relative" };
|
|
728
|
+
const _hoisted_2$d = ["id", "disabled", "aria-expanded", "aria-controls"];
|
|
675
729
|
const _hoisted_3$c = { class: "flex-1 truncate" };
|
|
676
730
|
const _hoisted_4$8 = { class: "flex items-center gap-1" };
|
|
677
731
|
const _hoisted_5$6 = ["id", "aria-label"];
|
|
@@ -689,7 +743,7 @@ const _hoisted_9$3 = ["abbr"];
|
|
|
689
743
|
const _hoisted_10$3 = ["id", "aria-label"];
|
|
690
744
|
const _hoisted_11$3 = ["aria-label", "aria-selected", "aria-disabled", "disabled", "onClick"];
|
|
691
745
|
const _hoisted_12$2 = { class: "mt-4 border-t border-gray-200 pt-3 dark:border-gray-700" };
|
|
692
|
-
const _sfc_main$
|
|
746
|
+
const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
693
747
|
__name: "DatePicker",
|
|
694
748
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
695
749
|
placeholder: { default: "Select date" },
|
|
@@ -813,7 +867,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
813
867
|
return formatter.format(date);
|
|
814
868
|
};
|
|
815
869
|
return (_ctx, _cache) => {
|
|
816
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
870
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$i, [
|
|
817
871
|
vue.createElementVNode("button", {
|
|
818
872
|
id: triggerId.value,
|
|
819
873
|
ref_key: "triggerRef",
|
|
@@ -852,7 +906,7 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
852
906
|
"aria-hidden": "true"
|
|
853
907
|
})
|
|
854
908
|
])
|
|
855
|
-
], 10, _hoisted_2$
|
|
909
|
+
], 10, _hoisted_2$d),
|
|
856
910
|
(vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
857
911
|
to: "body",
|
|
858
912
|
disabled: !__props.teleport
|
|
@@ -957,8 +1011,8 @@ const _sfc_main$j = /* @__PURE__ */ vue.defineComponent({
|
|
|
957
1011
|
};
|
|
958
1012
|
}
|
|
959
1013
|
});
|
|
960
|
-
const _hoisted_1$
|
|
961
|
-
const _hoisted_2$
|
|
1014
|
+
const _hoisted_1$h = { class: "space-y-4" };
|
|
1015
|
+
const _hoisted_2$c = ["accept", "multiple", "disabled"];
|
|
962
1016
|
const _hoisted_3$b = { class: "space-y-2" };
|
|
963
1017
|
const _hoisted_4$7 = { class: "text-sm font-medium text-gray-700 dark:text-gray-300" };
|
|
964
1018
|
const _hoisted_5$5 = {
|
|
@@ -977,7 +1031,7 @@ const _hoisted_8$3 = { class: "flex-1 min-w-0" };
|
|
|
977
1031
|
const _hoisted_9$2 = { class: "text-sm font-medium text-gray-700 dark:text-gray-300 truncate" };
|
|
978
1032
|
const _hoisted_10$2 = { class: "text-xs text-gray-500 dark:text-gray-400" };
|
|
979
1033
|
const _hoisted_11$2 = ["onClick"];
|
|
980
|
-
const _sfc_main$
|
|
1034
|
+
const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
981
1035
|
__name: "FileUpload",
|
|
982
1036
|
props: {
|
|
983
1037
|
accept: {},
|
|
@@ -1105,7 +1159,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
1105
1159
|
return "heroicons:document";
|
|
1106
1160
|
};
|
|
1107
1161
|
return (_ctx, _cache) => {
|
|
1108
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1162
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$h, [
|
|
1109
1163
|
vue.createElementVNode("div", {
|
|
1110
1164
|
class: vue.normalizeClass(dropzoneClasses.value),
|
|
1111
1165
|
onDrop: vue.withModifiers(handleDrop, ["prevent"]),
|
|
@@ -1122,7 +1176,7 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
1122
1176
|
multiple: __props.multiple,
|
|
1123
1177
|
disabled: __props.disabled,
|
|
1124
1178
|
onChange: handleInputChange
|
|
1125
|
-
}, null, 40, _hoisted_2$
|
|
1179
|
+
}, null, 40, _hoisted_2$c),
|
|
1126
1180
|
vue.createElementVNode("div", _hoisted_3$b, [
|
|
1127
1181
|
vue.createVNode(vue.unref(vue$1.Icon), {
|
|
1128
1182
|
icon: "heroicons:cloud-arrow-up",
|
|
@@ -1164,13 +1218,13 @@ const _sfc_main$i = /* @__PURE__ */ vue.defineComponent({
|
|
|
1164
1218
|
};
|
|
1165
1219
|
}
|
|
1166
1220
|
});
|
|
1167
|
-
const _hoisted_1$
|
|
1168
|
-
const _hoisted_2$
|
|
1221
|
+
const _hoisted_1$g = { class: "flex items-center gap-1" };
|
|
1222
|
+
const _hoisted_2$b = ["disabled", "onClick", "onMousemove"];
|
|
1169
1223
|
const _hoisted_3$a = {
|
|
1170
1224
|
key: 0,
|
|
1171
1225
|
class: "ml-2 text-sm font-medium text-gray-700 dark:text-gray-300"
|
|
1172
1226
|
};
|
|
1173
|
-
const _sfc_main$
|
|
1227
|
+
const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
1174
1228
|
__name: "Rating",
|
|
1175
1229
|
props: {
|
|
1176
1230
|
modelValue: { default: 0 },
|
|
@@ -1233,7 +1287,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
1233
1287
|
hoverValue.value = null;
|
|
1234
1288
|
};
|
|
1235
1289
|
return (_ctx, _cache) => {
|
|
1236
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1290
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$g, [
|
|
1237
1291
|
vue.createElementVNode("div", {
|
|
1238
1292
|
class: "flex items-center",
|
|
1239
1293
|
onMouseleave: handleMouseLeave
|
|
@@ -1265,7 +1319,7 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
1265
1319
|
class: vue.normalizeClass([sizeClasses.value, __props.color])
|
|
1266
1320
|
}, null, 8, ["icon", "class"])
|
|
1267
1321
|
], 4)
|
|
1268
|
-
], 42, _hoisted_2$
|
|
1322
|
+
], 42, _hoisted_2$b);
|
|
1269
1323
|
}), 128))
|
|
1270
1324
|
], 32),
|
|
1271
1325
|
__props.showValue ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$a, vue.toDisplayString(__props.modelValue.toFixed(__props.allowHalf ? 1 : 0)), 1)) : vue.createCommentVNode("", true)
|
|
@@ -1273,8 +1327,8 @@ const _sfc_main$h = /* @__PURE__ */ vue.defineComponent({
|
|
|
1273
1327
|
};
|
|
1274
1328
|
}
|
|
1275
1329
|
});
|
|
1276
|
-
const _hoisted_1$
|
|
1277
|
-
const _hoisted_2$
|
|
1330
|
+
const _hoisted_1$f = { class: "relative inline-block" };
|
|
1331
|
+
const _hoisted_2$a = {
|
|
1278
1332
|
key: 0,
|
|
1279
1333
|
class: "block text-sm font-medium text-gray-700 dark:text-gray-300 mb-1"
|
|
1280
1334
|
};
|
|
@@ -1287,7 +1341,7 @@ const _hoisted_7$3 = {
|
|
|
1287
1341
|
class: "flex items-center gap-2 pt-3 border-t border-gray-200 dark:border-gray-700"
|
|
1288
1342
|
};
|
|
1289
1343
|
const _hoisted_8$2 = ["value"];
|
|
1290
|
-
const _sfc_main$
|
|
1344
|
+
const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
1291
1345
|
__name: "ColorPicker",
|
|
1292
1346
|
props: {
|
|
1293
1347
|
modelValue: { default: "#3b82f6" },
|
|
@@ -1356,8 +1410,8 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
1356
1410
|
isOpen.value = false;
|
|
1357
1411
|
};
|
|
1358
1412
|
return (_ctx, _cache) => {
|
|
1359
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1360
|
-
__props.label ? (vue.openBlock(), vue.createElementBlock("label", _hoisted_2$
|
|
1413
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$f, [
|
|
1414
|
+
__props.label ? (vue.openBlock(), vue.createElementBlock("label", _hoisted_2$a, vue.toDisplayString(__props.label), 1)) : vue.createCommentVNode("", true),
|
|
1361
1415
|
vue.createElementVNode("button", {
|
|
1362
1416
|
type: "button",
|
|
1363
1417
|
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 }]),
|
|
@@ -1447,8 +1501,8 @@ const _sfc_main$g = /* @__PURE__ */ vue.defineComponent({
|
|
|
1447
1501
|
};
|
|
1448
1502
|
}
|
|
1449
1503
|
});
|
|
1450
|
-
const _hoisted_1$
|
|
1451
|
-
const _hoisted_2$
|
|
1504
|
+
const _hoisted_1$e = { class: "space-y-2" };
|
|
1505
|
+
const _hoisted_2$9 = {
|
|
1452
1506
|
key: 0,
|
|
1453
1507
|
class: "flex justify-between text-sm font-medium text-gray-700 dark:text-gray-300"
|
|
1454
1508
|
};
|
|
@@ -1456,7 +1510,7 @@ const _hoisted_3$8 = {
|
|
|
1456
1510
|
key: 1,
|
|
1457
1511
|
class: "flex justify-between text-xs text-gray-500 dark:text-gray-400"
|
|
1458
1512
|
};
|
|
1459
|
-
const _sfc_main$
|
|
1513
|
+
const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
1460
1514
|
__name: "RangeSlider",
|
|
1461
1515
|
props: {
|
|
1462
1516
|
modelValue: { default: () => [25, 75] },
|
|
@@ -1534,8 +1588,8 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
1534
1588
|
}
|
|
1535
1589
|
};
|
|
1536
1590
|
return (_ctx, _cache) => {
|
|
1537
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
1538
|
-
__props.showLabels ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$
|
|
1591
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$e, [
|
|
1592
|
+
__props.showLabels ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$9, [
|
|
1539
1593
|
vue.createElementVNode("span", null, vue.toDisplayString(__props.formatLabel(minValue.value)), 1),
|
|
1540
1594
|
vue.createElementVNode("span", null, vue.toDisplayString(__props.formatLabel(maxValue.value)), 1)
|
|
1541
1595
|
])) : vue.createCommentVNode("", true),
|
|
@@ -1576,8 +1630,8 @@ const _sfc_main$f = /* @__PURE__ */ vue.defineComponent({
|
|
|
1576
1630
|
};
|
|
1577
1631
|
}
|
|
1578
1632
|
});
|
|
1579
|
-
const _hoisted_1$
|
|
1580
|
-
const _hoisted_2$
|
|
1633
|
+
const _hoisted_1$d = ["aria-expanded", "aria-controls"];
|
|
1634
|
+
const _hoisted_2$8 = ["id", "name", "placeholder", "disabled", "aria-controls"];
|
|
1581
1635
|
const _hoisted_3$7 = { class: "flex items-center gap-1" };
|
|
1582
1636
|
const _hoisted_4$5 = ["id", "aria-label", "aria-multiselectable"];
|
|
1583
1637
|
const _hoisted_5$3 = ["aria-selected", "aria-disabled", "disabled", "onClick"];
|
|
@@ -1587,7 +1641,7 @@ const _hoisted_7$2 = {
|
|
|
1587
1641
|
class: "px-3 py-2 text-center text-sm text-gray-500 dark:text-gray-400",
|
|
1588
1642
|
role: "status"
|
|
1589
1643
|
};
|
|
1590
|
-
const _sfc_main$
|
|
1644
|
+
const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
1591
1645
|
__name: "Combobox",
|
|
1592
1646
|
props: {
|
|
1593
1647
|
modelValue: {},
|
|
@@ -1718,7 +1772,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
1718
1772
|
class: "flex-1 border-none bg-transparent text-sm text-gray-900 outline-hidden placeholder:text-gray-400 dark:text-gray-100 dark:placeholder:text-gray-500",
|
|
1719
1773
|
onClick: _cache[1] || (_cache[1] = vue.withModifiers(() => {
|
|
1720
1774
|
}, ["stop"]))
|
|
1721
|
-
}, null, 8, _hoisted_2$
|
|
1775
|
+
}, null, 8, _hoisted_2$8)), [
|
|
1722
1776
|
[vue.vModelText, search.value]
|
|
1723
1777
|
]),
|
|
1724
1778
|
vue.createElementVNode("div", _hoisted_3$7, [
|
|
@@ -1744,7 +1798,7 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
1744
1798
|
"aria-hidden": "true"
|
|
1745
1799
|
}, null, 8, ["class"])
|
|
1746
1800
|
])
|
|
1747
|
-
], 10, _hoisted_1$
|
|
1801
|
+
], 10, _hoisted_1$d),
|
|
1748
1802
|
(vue.openBlock(), vue.createBlock(vue.Teleport, {
|
|
1749
1803
|
to: teleportTarget.value,
|
|
1750
1804
|
disabled: teleportDisabled.value
|
|
@@ -1812,8 +1866,8 @@ const _sfc_main$e = /* @__PURE__ */ vue.defineComponent({
|
|
|
1812
1866
|
};
|
|
1813
1867
|
}
|
|
1814
1868
|
});
|
|
1815
|
-
const _hoisted_1$
|
|
1816
|
-
const _hoisted_2$
|
|
1869
|
+
const _hoisted_1$c = { class: "relative" };
|
|
1870
|
+
const _hoisted_2$7 = {
|
|
1817
1871
|
key: 0,
|
|
1818
1872
|
class: "text-red-500 ml-0.5"
|
|
1819
1873
|
};
|
|
@@ -1846,7 +1900,7 @@ const _hoisted_13 = {
|
|
|
1846
1900
|
const _hoisted_14 = ["title", "onClick"];
|
|
1847
1901
|
const _hoisted_15 = { class: "mt-4 flex items-center justify-between border-t border-gray-200 pt-4 dark:border-gray-700" };
|
|
1848
1902
|
const _hoisted_16 = { class: "text-xs text-gray-500" };
|
|
1849
|
-
const _sfc_main$
|
|
1903
|
+
const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
1850
1904
|
__name: "IconPicker",
|
|
1851
1905
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
1852
1906
|
label: {},
|
|
@@ -1970,7 +2024,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
1970
2024
|
searchQuery.value = "";
|
|
1971
2025
|
}
|
|
1972
2026
|
return (_ctx, _cache) => {
|
|
1973
|
-
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$
|
|
2027
|
+
return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$c, [
|
|
1974
2028
|
__props.label ? (vue.openBlock(), vue.createBlock(_sfc_main$r, {
|
|
1975
2029
|
key: 0,
|
|
1976
2030
|
"html-for": inputId.value,
|
|
@@ -1978,7 +2032,7 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
1978
2032
|
}, {
|
|
1979
2033
|
default: vue.withCtx(() => [
|
|
1980
2034
|
vue.createTextVNode(vue.toDisplayString(__props.label) + " ", 1),
|
|
1981
|
-
__props.required ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$
|
|
2035
|
+
__props.required ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_2$7, "*")) : vue.createCommentVNode("", true)
|
|
1982
2036
|
]),
|
|
1983
2037
|
_: 1
|
|
1984
2038
|
}, 8, ["html-for", "error"])) : vue.createCommentVNode("", true),
|
|
@@ -2105,8 +2159,8 @@ const _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
|
|
|
2105
2159
|
};
|
|
2106
2160
|
}
|
|
2107
2161
|
});
|
|
2108
|
-
const _hoisted_1$
|
|
2109
|
-
const _hoisted_2$
|
|
2162
|
+
const _hoisted_1$b = { class: "flex items-center justify-between" };
|
|
2163
|
+
const _hoisted_2$6 = { class: "flex items-center gap-3" };
|
|
2110
2164
|
const _hoisted_3$5 = { class: "text-lg font-semibold text-gray-900 dark:text-white" };
|
|
2111
2165
|
const _hoisted_4$3 = {
|
|
2112
2166
|
key: 0,
|
|
@@ -2117,7 +2171,7 @@ const _hoisted_6$1 = {
|
|
|
2117
2171
|
key: 0,
|
|
2118
2172
|
class: "px-5 py-4 bg-gray-50 dark:bg-slate-800/50 border-t border-gray-100 dark:border-slate-700"
|
|
2119
2173
|
};
|
|
2120
|
-
const _sfc_main$
|
|
2174
|
+
const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
2121
2175
|
__name: "FormSection",
|
|
2122
2176
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
2123
2177
|
title: {},
|
|
@@ -2151,8 +2205,8 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
2151
2205
|
]),
|
|
2152
2206
|
onClick: _cache[0] || (_cache[0] = ($event) => __props.collapsible && toggleCollapse())
|
|
2153
2207
|
}, [
|
|
2154
|
-
vue.createElementVNode("div", _hoisted_1$
|
|
2155
|
-
vue.createElementVNode("div", _hoisted_2$
|
|
2208
|
+
vue.createElementVNode("div", _hoisted_1$b, [
|
|
2209
|
+
vue.createElementVNode("div", _hoisted_2$6, [
|
|
2156
2210
|
__props.icon ? (vue.openBlock(), vue.createElementBlock("div", {
|
|
2157
2211
|
key: 0,
|
|
2158
2212
|
class: vue.normalizeClass([
|
|
@@ -2220,8 +2274,8 @@ const _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
|
|
|
2220
2274
|
};
|
|
2221
2275
|
}
|
|
2222
2276
|
});
|
|
2223
|
-
const _hoisted_1$
|
|
2224
|
-
const _sfc_main$
|
|
2277
|
+
const _hoisted_1$a = { key: 1 };
|
|
2278
|
+
const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
2225
2279
|
__name: "FormActions",
|
|
2226
2280
|
props: {
|
|
2227
2281
|
submitLabel: { default: "Enregistrer" },
|
|
@@ -2288,7 +2342,7 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
2288
2342
|
class: "w-5 h-5"
|
|
2289
2343
|
}, null, 8, ["icon"])) : vue.createCommentVNode("", true),
|
|
2290
2344
|
vue.createTextVNode(" " + vue.toDisplayString(__props.submitLabel), 1)
|
|
2291
|
-
], 64)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$
|
|
2345
|
+
], 64)) : (vue.openBlock(), vue.createElementBlock("span", _hoisted_1$a, vue.toDisplayString(__props.loadingLabel || __props.submitLabel + "..."), 1))
|
|
2292
2346
|
]),
|
|
2293
2347
|
_: 1
|
|
2294
2348
|
}, 8, ["variant", "disabled", "loading", "class"]),
|
|
@@ -2297,79 +2351,11 @@ const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
|
|
|
2297
2351
|
};
|
|
2298
2352
|
}
|
|
2299
2353
|
});
|
|
2300
|
-
const _hoisted_1$a = {
|
|
2301
|
-
key: 0,
|
|
2302
|
-
class: "absolute left-3 top-1/2 -translate-y-1/2 pointer-events-none text-gray-400"
|
|
2303
|
-
};
|
|
2304
|
-
const _hoisted_2$6 = {
|
|
2305
|
-
key: 1,
|
|
2306
|
-
class: "absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-1"
|
|
2307
|
-
};
|
|
2308
|
-
const _sfc_main$a = /* @__PURE__ */ vue.defineComponent({
|
|
2309
|
-
__name: "InputWrapper",
|
|
2310
|
-
props: {
|
|
2311
|
-
icon: {},
|
|
2312
|
-
iconRight: {},
|
|
2313
|
-
size: { default: "md" },
|
|
2314
|
-
invalid: { type: Boolean },
|
|
2315
|
-
disabled: { type: Boolean },
|
|
2316
|
-
wrapperClass: {}
|
|
2317
|
-
},
|
|
2318
|
-
setup(__props, { expose: __expose }) {
|
|
2319
|
-
const props = __props;
|
|
2320
|
-
const slots = vue.useSlots();
|
|
2321
|
-
const hasLeftIcon = vue.computed(() => props.icon || slots.icon);
|
|
2322
|
-
const hasRightContent = vue.computed(() => props.iconRight || slots.actions);
|
|
2323
|
-
const inputClass = vue.computed(() => [
|
|
2324
|
-
// Base styles
|
|
2325
|
-
"block w-full rounded-xl border text-sm transition-all",
|
|
2326
|
-
"border-gray-200 bg-gray-50 text-gray-900 placeholder-gray-400",
|
|
2327
|
-
"focus:border-primary-500 focus:ring-2 focus:ring-primary-500 focus:bg-white focus:outline-hidden",
|
|
2328
|
-
"disabled:border-gray-200 disabled:bg-gray-100 disabled:text-gray-500 disabled:cursor-not-allowed",
|
|
2329
|
-
// Dark mode
|
|
2330
|
-
"dark:border-slate-600 dark:bg-slate-700 dark:text-white dark:placeholder-gray-500",
|
|
2331
|
-
"dark:focus:border-primary-500 dark:focus:ring-primary-500 dark:focus:bg-slate-600",
|
|
2332
|
-
"dark:disabled:bg-slate-800 dark:disabled:text-gray-500",
|
|
2333
|
-
// Padding based on icons/actions
|
|
2334
|
-
hasLeftIcon.value ? "pl-10" : "pl-4",
|
|
2335
|
-
hasRightContent.value ? "pr-10" : "pr-4",
|
|
2336
|
-
// Size
|
|
2337
|
-
props.size === "sm" && "py-2 text-xs",
|
|
2338
|
-
props.size === "md" && "py-3 text-sm",
|
|
2339
|
-
props.size === "lg" && "py-4 text-base",
|
|
2340
|
-
// Invalid state
|
|
2341
|
-
props.invalid && "border-red-500 focus:border-red-500 focus:ring-red-500 dark:border-red-500"
|
|
2342
|
-
]);
|
|
2343
|
-
__expose({ inputClass });
|
|
2344
|
-
return (_ctx, _cache) => {
|
|
2345
|
-
return vue.openBlock(), vue.createElementBlock("div", {
|
|
2346
|
-
class: vue.normalizeClass(["relative", __props.wrapperClass])
|
|
2347
|
-
}, [
|
|
2348
|
-
hasLeftIcon.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$a, [
|
|
2349
|
-
vue.renderSlot(_ctx.$slots, "icon", {}, () => [
|
|
2350
|
-
__props.icon ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
2351
|
-
key: 0,
|
|
2352
|
-
icon: __props.icon,
|
|
2353
|
-
class: "size-5"
|
|
2354
|
-
}, null, 8, ["icon"])) : vue.createCommentVNode("", true)
|
|
2355
|
-
])
|
|
2356
|
-
])) : vue.createCommentVNode("", true),
|
|
2357
|
-
vue.renderSlot(_ctx.$slots, "default", { inputClass: inputClass.value }),
|
|
2358
|
-
hasRightContent.value ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$6, [
|
|
2359
|
-
vue.renderSlot(_ctx.$slots, "actions", {}, () => [
|
|
2360
|
-
__props.iconRight ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
|
|
2361
|
-
key: 0,
|
|
2362
|
-
icon: __props.iconRight,
|
|
2363
|
-
class: "size-5 text-gray-400 pointer-events-none"
|
|
2364
|
-
}, null, 8, ["icon"])) : vue.createCommentVNode("", true)
|
|
2365
|
-
])
|
|
2366
|
-
])) : vue.createCommentVNode("", true)
|
|
2367
|
-
], 2);
|
|
2368
|
-
};
|
|
2369
|
-
}
|
|
2370
|
-
});
|
|
2371
2354
|
const _hoisted_1$9 = ["id", "name", "placeholder", "disabled", "required", "aria-invalid", "aria-required", "aria-describedby"];
|
|
2372
2355
|
const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
2356
|
+
...{
|
|
2357
|
+
inheritAttrs: false
|
|
2358
|
+
},
|
|
2373
2359
|
__name: "EmailInput",
|
|
2374
2360
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
2375
2361
|
placeholder: { default: "Enter email address..." },
|
|
@@ -2401,14 +2387,14 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2401
2387
|
isTouched.value = true;
|
|
2402
2388
|
}
|
|
2403
2389
|
return (_ctx, _cache) => {
|
|
2404
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
2390
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$p, {
|
|
2405
2391
|
icon: "lucide:mail",
|
|
2406
2392
|
size: __props.size,
|
|
2407
2393
|
disabled: __props.disabled,
|
|
2408
2394
|
invalid: showStatus.value && isValid.value === false
|
|
2409
2395
|
}, {
|
|
2410
2396
|
default: vue.withCtx(({ inputClass }) => [
|
|
2411
|
-
vue.withDirectives(vue.createElementVNode("input", {
|
|
2397
|
+
vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
|
|
2412
2398
|
id: __props.id ?? __props.name,
|
|
2413
2399
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
|
|
2414
2400
|
type: "email",
|
|
@@ -2419,9 +2405,8 @@ const _sfc_main$9 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2419
2405
|
"aria-invalid": showStatus.value && isValid.value === false || void 0,
|
|
2420
2406
|
"aria-required": __props.required || void 0,
|
|
2421
2407
|
"aria-describedby": __props.describedBy,
|
|
2422
|
-
class:
|
|
2423
|
-
|
|
2424
|
-
}, null, 42, _hoisted_1$9), [
|
|
2408
|
+
class: inputClass
|
|
2409
|
+
}, _ctx.$attrs, { onBlur: handleBlur }), null, 16, _hoisted_1$9), [
|
|
2425
2410
|
[vue.vModelText, modelValue.value]
|
|
2426
2411
|
])
|
|
2427
2412
|
]),
|
|
@@ -2449,6 +2434,9 @@ const _hoisted_3$4 = {
|
|
|
2449
2434
|
};
|
|
2450
2435
|
const _hoisted_4$2 = { class: "h-1.5 w-full rounded-full bg-gray-200 dark:bg-slate-700 overflow-hidden" };
|
|
2451
2436
|
const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
2437
|
+
...{
|
|
2438
|
+
inheritAttrs: false
|
|
2439
|
+
},
|
|
2452
2440
|
__name: "PasswordInput",
|
|
2453
2441
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
2454
2442
|
placeholder: { default: "Enter password..." },
|
|
@@ -2499,13 +2487,13 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2499
2487
|
return (_ctx, _cache) => {
|
|
2500
2488
|
var _a, _b;
|
|
2501
2489
|
return vue.openBlock(), vue.createElementBlock("div", null, [
|
|
2502
|
-
vue.createVNode(_sfc_main$
|
|
2490
|
+
vue.createVNode(_sfc_main$p, {
|
|
2503
2491
|
icon: "lucide:lock",
|
|
2504
2492
|
size: __props.size,
|
|
2505
2493
|
disabled: __props.disabled
|
|
2506
2494
|
}, {
|
|
2507
2495
|
default: vue.withCtx(({ inputClass }) => [
|
|
2508
|
-
vue.withDirectives(vue.createElementVNode("input", {
|
|
2496
|
+
vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
|
|
2509
2497
|
id: __props.id ?? __props.name,
|
|
2510
2498
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
|
|
2511
2499
|
type: showPassword.value ? "text" : "password",
|
|
@@ -2515,9 +2503,8 @@ const _sfc_main$8 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2515
2503
|
required: __props.required,
|
|
2516
2504
|
"aria-required": __props.required || void 0,
|
|
2517
2505
|
"aria-describedby": __props.describedBy,
|
|
2518
|
-
class:
|
|
2519
|
-
|
|
2520
|
-
}, null, 10, _hoisted_1$8), [
|
|
2506
|
+
class: inputClass
|
|
2507
|
+
}, _ctx.$attrs, { autocomplete: "new-password" }), null, 16, _hoisted_1$8), [
|
|
2521
2508
|
[vue.vModelDynamic, modelValue.value]
|
|
2522
2509
|
])
|
|
2523
2510
|
]),
|
|
@@ -2580,29 +2567,52 @@ const _hoisted_12 = {
|
|
|
2580
2567
|
class: "px-3 py-4 text-center text-sm text-gray-500"
|
|
2581
2568
|
};
|
|
2582
2569
|
const defaultCountries = [
|
|
2583
|
-
{ code: "FR", name: "France", dialCode: "+33", flag: "🇫🇷" },
|
|
2584
|
-
{ code: "US", name: "United States", dialCode: "+1", flag: "🇺🇸" },
|
|
2585
|
-
{ code: "GB", name: "United Kingdom", dialCode: "+44", flag: "🇬🇧" },
|
|
2586
|
-
{ code: "DE", name: "Germany", dialCode: "+49", flag: "🇩🇪" },
|
|
2587
|
-
{ code: "ES", name: "Spain", dialCode: "+34", flag: "🇪🇸" },
|
|
2588
|
-
{ code: "IT", name: "Italy", dialCode: "+39", flag: "🇮🇹" },
|
|
2589
|
-
{ code: "BE", name: "Belgium", dialCode: "+32", flag: "🇧🇪" },
|
|
2590
|
-
{ code: "CH", name: "Switzerland", dialCode: "+41", flag: "🇨🇭" },
|
|
2591
|
-
{ code: "CA", name: "Canada", dialCode: "+1", flag: "🇨🇦" },
|
|
2592
|
-
{ code: "AU", name: "Australia", dialCode: "+61", flag: "🇦🇺" },
|
|
2593
|
-
{ code: "ML", name: "Mali", dialCode: "+223", flag: "🇲🇱" },
|
|
2594
|
-
{ code: "SN", name: "Senegal", dialCode: "+221", flag: "🇸🇳" },
|
|
2595
|
-
{ code: "CI", name: "Côte d'Ivoire", dialCode: "+225", flag: "🇨🇮" },
|
|
2596
|
-
{ code: "MA", name: "Morocco", dialCode: "+212", flag: "🇲🇦" },
|
|
2597
|
-
{ code: "TN", name: "Tunisia", dialCode: "+216", flag: "🇹🇳" },
|
|
2598
|
-
{ code: "DZ", name: "Algeria", dialCode: "+213", flag: "🇩🇿" }
|
|
2570
|
+
{ code: "FR", name: "France", dialCode: "+33", flag: "🇫🇷", format: "# ## ## ## ##" },
|
|
2571
|
+
{ code: "US", name: "United States", dialCode: "+1", flag: "🇺🇸", format: "(###) ###-####" },
|
|
2572
|
+
{ code: "GB", name: "United Kingdom", dialCode: "+44", flag: "🇬🇧", format: "#### ######" },
|
|
2573
|
+
{ code: "DE", name: "Germany", dialCode: "+49", flag: "🇩🇪", format: "### #######" },
|
|
2574
|
+
{ code: "ES", name: "Spain", dialCode: "+34", flag: "🇪🇸", format: "### ### ###" },
|
|
2575
|
+
{ code: "IT", name: "Italy", dialCode: "+39", flag: "🇮🇹", format: "### ### ####" },
|
|
2576
|
+
{ code: "BE", name: "Belgium", dialCode: "+32", flag: "🇧🇪", format: "### ## ## ##" },
|
|
2577
|
+
{ code: "CH", name: "Switzerland", dialCode: "+41", flag: "🇨🇭", format: "## ### ## ##" },
|
|
2578
|
+
{ code: "CA", name: "Canada", dialCode: "+1", flag: "🇨🇦", format: "(###) ###-####" },
|
|
2579
|
+
{ code: "AU", name: "Australia", dialCode: "+61", flag: "🇦🇺", format: "### ### ###" },
|
|
2580
|
+
{ code: "ML", name: "Mali", dialCode: "+223", flag: "🇲🇱", format: "## ## ## ##" },
|
|
2581
|
+
{ code: "SN", name: "Senegal", dialCode: "+221", flag: "🇸🇳", format: "## ### ## ##" },
|
|
2582
|
+
{ code: "CI", name: "Côte d'Ivoire", dialCode: "+225", flag: "🇨🇮", format: "## ## ## ## ##" },
|
|
2583
|
+
{ code: "MA", name: "Morocco", dialCode: "+212", flag: "🇲🇦", format: "## ## ## ## ##" },
|
|
2584
|
+
{ code: "TN", name: "Tunisia", dialCode: "+216", flag: "🇹🇳", format: "## ### ###" },
|
|
2585
|
+
{ code: "DZ", name: "Algeria", dialCode: "+213", flag: "🇩🇿", format: "### ## ## ##" }
|
|
2599
2586
|
];
|
|
2587
|
+
function formatPhoneWithPattern(value, pattern) {
|
|
2588
|
+
if (!pattern) return value;
|
|
2589
|
+
const digits = value.replace(/\D/g, "");
|
|
2590
|
+
let result = "";
|
|
2591
|
+
let digitIndex = 0;
|
|
2592
|
+
for (const char of pattern) {
|
|
2593
|
+
if (digitIndex >= digits.length) break;
|
|
2594
|
+
if (char === "#") {
|
|
2595
|
+
result += digits[digitIndex];
|
|
2596
|
+
digitIndex++;
|
|
2597
|
+
} else {
|
|
2598
|
+
result += char;
|
|
2599
|
+
}
|
|
2600
|
+
}
|
|
2601
|
+
return result;
|
|
2602
|
+
}
|
|
2603
|
+
function getPhoneDigits(value) {
|
|
2604
|
+
return value.replace(/\D/g, "");
|
|
2605
|
+
}
|
|
2600
2606
|
const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
2607
|
+
...{
|
|
2608
|
+
inheritAttrs: false
|
|
2609
|
+
},
|
|
2601
2610
|
__name: "PhoneInput",
|
|
2602
2611
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
2603
2612
|
placeholder: { default: "Phone number" },
|
|
2604
2613
|
size: { default: "md" },
|
|
2605
2614
|
disabled: { type: Boolean },
|
|
2615
|
+
showDialCode: { type: Boolean, default: false },
|
|
2606
2616
|
name: {},
|
|
2607
2617
|
id: {},
|
|
2608
2618
|
required: { type: Boolean },
|
|
@@ -2634,19 +2644,50 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2634
2644
|
if (!modelValue.value) return "";
|
|
2635
2645
|
return `${selectedCountry.value.dialCode}${modelValue.value}`;
|
|
2636
2646
|
});
|
|
2647
|
+
const displayValue = vue.computed(() => {
|
|
2648
|
+
const formatted = formatPhoneWithPattern(modelValue.value, selectedCountry.value.format);
|
|
2649
|
+
if (props.showDialCode && modelValue.value) {
|
|
2650
|
+
return `${selectedCountry.value.dialCode} ${formatted}`;
|
|
2651
|
+
}
|
|
2652
|
+
return formatted;
|
|
2653
|
+
});
|
|
2637
2654
|
function selectCountry(country) {
|
|
2638
2655
|
selectedCountry.value = country;
|
|
2639
2656
|
showDropdown.value = false;
|
|
2640
2657
|
searchQuery.value = "";
|
|
2641
2658
|
}
|
|
2642
|
-
function
|
|
2643
|
-
const cleaned = value.replace(/\
|
|
2644
|
-
|
|
2659
|
+
function parsePhoneWithDialCode(value) {
|
|
2660
|
+
const cleaned = value.replace(/\s/g, "");
|
|
2661
|
+
if (cleaned.startsWith("+") || cleaned.startsWith("00")) {
|
|
2662
|
+
const withPlus = cleaned.startsWith("00") ? "+" + cleaned.slice(2) : cleaned;
|
|
2663
|
+
for (const country of props.countries) {
|
|
2664
|
+
if (withPlus.startsWith(country.dialCode)) {
|
|
2665
|
+
const digits = withPlus.slice(country.dialCode.length).replace(/\D/g, "");
|
|
2666
|
+
return { digits, country };
|
|
2667
|
+
}
|
|
2668
|
+
}
|
|
2669
|
+
}
|
|
2670
|
+
return { digits: getPhoneDigits(value) };
|
|
2645
2671
|
}
|
|
2646
2672
|
function handleInput(event) {
|
|
2647
2673
|
const target = event.target;
|
|
2648
|
-
const
|
|
2649
|
-
|
|
2674
|
+
const inputValue = target.value;
|
|
2675
|
+
const { digits, country } = parsePhoneWithDialCode(inputValue);
|
|
2676
|
+
if (country) {
|
|
2677
|
+
selectedCountry.value = country;
|
|
2678
|
+
}
|
|
2679
|
+
modelValue.value = digits;
|
|
2680
|
+
}
|
|
2681
|
+
function handlePaste(event) {
|
|
2682
|
+
var _a;
|
|
2683
|
+
const pastedData = (_a = event.clipboardData) == null ? void 0 : _a.getData("text");
|
|
2684
|
+
if (!pastedData) return;
|
|
2685
|
+
const { digits, country } = parsePhoneWithDialCode(pastedData);
|
|
2686
|
+
if (country) {
|
|
2687
|
+
event.preventDefault();
|
|
2688
|
+
selectedCountry.value = country;
|
|
2689
|
+
modelValue.value = digits;
|
|
2690
|
+
}
|
|
2650
2691
|
}
|
|
2651
2692
|
function handleClickOutside(event) {
|
|
2652
2693
|
if (dropdownRef.value && !dropdownRef.value.contains(event.target)) {
|
|
@@ -2668,7 +2709,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2668
2709
|
ref_key: "dropdownRef",
|
|
2669
2710
|
ref: dropdownRef
|
|
2670
2711
|
}, [
|
|
2671
|
-
vue.createVNode(_sfc_main$
|
|
2712
|
+
vue.createVNode(_sfc_main$p, {
|
|
2672
2713
|
size: __props.size,
|
|
2673
2714
|
disabled: __props.disabled
|
|
2674
2715
|
}, {
|
|
@@ -2690,9 +2731,9 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2690
2731
|
], 8, _hoisted_1$7)
|
|
2691
2732
|
]),
|
|
2692
2733
|
default: vue.withCtx(({ inputClass }) => [
|
|
2693
|
-
vue.createElementVNode("input", {
|
|
2734
|
+
vue.createElementVNode("input", vue.mergeProps({
|
|
2694
2735
|
id: __props.id ?? __props.name,
|
|
2695
|
-
value:
|
|
2736
|
+
value: displayValue.value,
|
|
2696
2737
|
type: "tel",
|
|
2697
2738
|
name: __props.name,
|
|
2698
2739
|
placeholder: __props.placeholder,
|
|
@@ -2700,9 +2741,11 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2700
2741
|
required: __props.required,
|
|
2701
2742
|
"aria-required": __props.required || void 0,
|
|
2702
2743
|
"aria-describedby": __props.describedBy,
|
|
2703
|
-
class:
|
|
2704
|
-
|
|
2705
|
-
|
|
2744
|
+
class: [inputClass, "pl-20"]
|
|
2745
|
+
}, _ctx.$attrs, {
|
|
2746
|
+
onInput: handleInput,
|
|
2747
|
+
onPaste: handlePaste
|
|
2748
|
+
}), null, 16, _hoisted_3$3)
|
|
2706
2749
|
]),
|
|
2707
2750
|
actions: vue.withCtx(() => [
|
|
2708
2751
|
vue.createElementVNode("span", _hoisted_4$1, vue.toDisplayString(selectedCountry.value.dialCode), 1)
|
|
@@ -2755,6 +2798,9 @@ const _hoisted_1$6 = ["disabled"];
|
|
|
2755
2798
|
const _hoisted_2$3 = ["id", "value", "name", "placeholder", "disabled", "required", "min", "max", "step", "aria-required", "aria-describedby"];
|
|
2756
2799
|
const _hoisted_3$2 = ["disabled"];
|
|
2757
2800
|
const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
2801
|
+
...{
|
|
2802
|
+
inheritAttrs: false
|
|
2803
|
+
},
|
|
2758
2804
|
__name: "NumberInput",
|
|
2759
2805
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
2760
2806
|
placeholder: { default: "0" },
|
|
@@ -2813,12 +2859,12 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2813
2859
|
}
|
|
2814
2860
|
}
|
|
2815
2861
|
return (_ctx, _cache) => {
|
|
2816
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
2862
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$p, {
|
|
2817
2863
|
size: __props.size,
|
|
2818
2864
|
disabled: __props.disabled
|
|
2819
2865
|
}, vue.createSlots({
|
|
2820
2866
|
default: vue.withCtx(({ inputClass }) => [
|
|
2821
|
-
vue.createElementVNode("input", {
|
|
2867
|
+
vue.createElementVNode("input", vue.mergeProps({
|
|
2822
2868
|
id: __props.id ?? __props.name,
|
|
2823
2869
|
value: modelValue.value,
|
|
2824
2870
|
type: "number",
|
|
@@ -2831,9 +2877,8 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2831
2877
|
step: __props.step,
|
|
2832
2878
|
"aria-required": __props.required || void 0,
|
|
2833
2879
|
"aria-describedby": __props.describedBy,
|
|
2834
|
-
class:
|
|
2835
|
-
|
|
2836
|
-
}, null, 42, _hoisted_2$3)
|
|
2880
|
+
class: [inputClass, "text-center", __props.showStepper && "pl-12 pr-12"]
|
|
2881
|
+
}, _ctx.$attrs, { onInput: handleInput }), null, 16, _hoisted_2$3)
|
|
2837
2882
|
]),
|
|
2838
2883
|
_: 2
|
|
2839
2884
|
}, [
|
|
@@ -2879,6 +2924,9 @@ const _hoisted_1$5 = { class: "text-sm font-medium text-gray-500 dark:text-gray-
|
|
|
2879
2924
|
const _hoisted_2$2 = ["id", "value", "name", "placeholder", "disabled", "required", "aria-required", "aria-describedby"];
|
|
2880
2925
|
const _hoisted_3$1 = { class: "text-sm font-medium text-gray-500 dark:text-gray-400" };
|
|
2881
2926
|
const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
2927
|
+
...{
|
|
2928
|
+
inheritAttrs: false
|
|
2929
|
+
},
|
|
2882
2930
|
__name: "MoneyInput",
|
|
2883
2931
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
2884
2932
|
placeholder: { default: "0.00" },
|
|
@@ -2949,12 +2997,12 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2949
2997
|
}
|
|
2950
2998
|
}
|
|
2951
2999
|
return (_ctx, _cache) => {
|
|
2952
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
3000
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$p, {
|
|
2953
3001
|
size: __props.size,
|
|
2954
3002
|
disabled: __props.disabled
|
|
2955
3003
|
}, vue.createSlots({
|
|
2956
3004
|
default: vue.withCtx(({ inputClass }) => [
|
|
2957
|
-
vue.createElementVNode("input", {
|
|
3005
|
+
vue.createElementVNode("input", vue.mergeProps({
|
|
2958
3006
|
id: __props.id ?? __props.name,
|
|
2959
3007
|
value: displayValue.value,
|
|
2960
3008
|
type: "text",
|
|
@@ -2965,10 +3013,11 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2965
3013
|
required: __props.required,
|
|
2966
3014
|
"aria-required": __props.required || void 0,
|
|
2967
3015
|
"aria-describedby": __props.describedBy,
|
|
2968
|
-
class:
|
|
3016
|
+
class: [inputClass, "text-right"]
|
|
3017
|
+
}, _ctx.$attrs, {
|
|
2969
3018
|
onInput: handleInput,
|
|
2970
3019
|
onBlur: handleBlur
|
|
2971
|
-
}, null,
|
|
3020
|
+
}), null, 16, _hoisted_2$2)
|
|
2972
3021
|
]),
|
|
2973
3022
|
_: 2
|
|
2974
3023
|
}, [
|
|
@@ -2992,6 +3041,9 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
|
|
|
2992
3041
|
});
|
|
2993
3042
|
const _hoisted_1$4 = ["id", "value", "name", "placeholder", "disabled", "required", "min", "max", "step", "aria-required", "aria-describedby"];
|
|
2994
3043
|
const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
3044
|
+
...{
|
|
3045
|
+
inheritAttrs: false
|
|
3046
|
+
},
|
|
2995
3047
|
__name: "PercentInput",
|
|
2996
3048
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
2997
3049
|
placeholder: { default: "0" },
|
|
@@ -3033,12 +3085,12 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3033
3085
|
displayValue.value = target.value;
|
|
3034
3086
|
}
|
|
3035
3087
|
return (_ctx, _cache) => {
|
|
3036
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
3088
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$p, {
|
|
3037
3089
|
size: __props.size,
|
|
3038
3090
|
disabled: __props.disabled
|
|
3039
3091
|
}, {
|
|
3040
3092
|
default: vue.withCtx(({ inputClass }) => [
|
|
3041
|
-
vue.createElementVNode("input", {
|
|
3093
|
+
vue.createElementVNode("input", vue.mergeProps({
|
|
3042
3094
|
id: __props.id ?? __props.name,
|
|
3043
3095
|
value: displayValue.value,
|
|
3044
3096
|
type: "number",
|
|
@@ -3052,9 +3104,8 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3052
3104
|
step: __props.decimals > 0 ? Math.pow(10, -__props.decimals) : 1,
|
|
3053
3105
|
"aria-required": __props.required || void 0,
|
|
3054
3106
|
"aria-describedby": __props.describedBy,
|
|
3055
|
-
class:
|
|
3056
|
-
|
|
3057
|
-
}, null, 42, _hoisted_1$4)
|
|
3107
|
+
class: [inputClass, "text-right pr-10"]
|
|
3108
|
+
}, _ctx.$attrs, { onInput: handleInput }), null, 16, _hoisted_1$4)
|
|
3058
3109
|
]),
|
|
3059
3110
|
actions: vue.withCtx(() => [..._cache[0] || (_cache[0] = [
|
|
3060
3111
|
vue.createElementVNode("span", { class: "text-sm font-medium text-gray-500 dark:text-gray-400" }, "%", -1)
|
|
@@ -3069,6 +3120,9 @@ const _hoisted_2$1 = ["disabled"];
|
|
|
3069
3120
|
const _hoisted_3 = ["id", "value", "name", "disabled", "required", "min", "max"];
|
|
3070
3121
|
const _hoisted_4 = ["disabled"];
|
|
3071
3122
|
const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
3123
|
+
...{
|
|
3124
|
+
inheritAttrs: false
|
|
3125
|
+
},
|
|
3072
3126
|
__name: "QuantityInput",
|
|
3073
3127
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
3074
3128
|
size: { default: "md" },
|
|
@@ -3153,7 +3207,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3153
3207
|
class: vue.normalizeClass(["text-gray-600 dark:text-gray-300", sizeClasses.value.icon])
|
|
3154
3208
|
}, null, 8, ["class"])
|
|
3155
3209
|
], 10, _hoisted_2$1),
|
|
3156
|
-
vue.createElementVNode("input", {
|
|
3210
|
+
vue.createElementVNode("input", vue.mergeProps({
|
|
3157
3211
|
id: __props.id ?? __props.name,
|
|
3158
3212
|
value: modelValue.value,
|
|
3159
3213
|
type: "number",
|
|
@@ -3162,15 +3216,14 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3162
3216
|
required: __props.required,
|
|
3163
3217
|
min: __props.min,
|
|
3164
3218
|
max: __props.max,
|
|
3165
|
-
class:
|
|
3219
|
+
class: [
|
|
3166
3220
|
"bg-transparent text-center font-semibold text-gray-900 dark:text-white",
|
|
3167
3221
|
"focus:outline-none appearance-none",
|
|
3168
3222
|
"[&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
|
|
3169
3223
|
"disabled:opacity-50",
|
|
3170
3224
|
sizeClasses.value.input
|
|
3171
|
-
]
|
|
3172
|
-
|
|
3173
|
-
}, null, 42, _hoisted_3),
|
|
3225
|
+
]
|
|
3226
|
+
}, _ctx.$attrs, { onInput: handleInput }), null, 16, _hoisted_3),
|
|
3174
3227
|
vue.createElementVNode("button", {
|
|
3175
3228
|
type: "button",
|
|
3176
3229
|
disabled: !canIncrement.value,
|
|
@@ -3194,6 +3247,9 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3194
3247
|
});
|
|
3195
3248
|
const _hoisted_1$2 = ["id", "name", "placeholder", "disabled", "required", "aria-invalid", "aria-required", "aria-describedby"];
|
|
3196
3249
|
const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
3250
|
+
...{
|
|
3251
|
+
inheritAttrs: false
|
|
3252
|
+
},
|
|
3197
3253
|
__name: "URLInput",
|
|
3198
3254
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
3199
3255
|
placeholder: { default: "https://example.com" },
|
|
@@ -3231,14 +3287,14 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3231
3287
|
}
|
|
3232
3288
|
}
|
|
3233
3289
|
return (_ctx, _cache) => {
|
|
3234
|
-
return vue.openBlock(), vue.createBlock(_sfc_main$
|
|
3290
|
+
return vue.openBlock(), vue.createBlock(_sfc_main$p, {
|
|
3235
3291
|
icon: "lucide:link",
|
|
3236
3292
|
size: __props.size,
|
|
3237
3293
|
disabled: __props.disabled,
|
|
3238
3294
|
invalid: showStatus.value && isValid.value === false
|
|
3239
3295
|
}, {
|
|
3240
3296
|
default: vue.withCtx(({ inputClass }) => [
|
|
3241
|
-
vue.withDirectives(vue.createElementVNode("input", {
|
|
3297
|
+
vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
|
|
3242
3298
|
id: __props.id ?? __props.name,
|
|
3243
3299
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
|
|
3244
3300
|
type: "url",
|
|
@@ -3249,9 +3305,8 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3249
3305
|
"aria-invalid": showStatus.value && isValid.value === false || void 0,
|
|
3250
3306
|
"aria-required": __props.required || void 0,
|
|
3251
3307
|
"aria-describedby": __props.describedBy,
|
|
3252
|
-
class:
|
|
3253
|
-
|
|
3254
|
-
}, null, 42, _hoisted_1$2), [
|
|
3308
|
+
class: inputClass
|
|
3309
|
+
}, _ctx.$attrs, { onBlur: handleBlur }), null, 16, _hoisted_1$2), [
|
|
3255
3310
|
[vue.vModelText, modelValue.value]
|
|
3256
3311
|
])
|
|
3257
3312
|
]),
|
|
@@ -3280,6 +3335,9 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3280
3335
|
});
|
|
3281
3336
|
const _hoisted_1$1 = ["value", "type", "name", "disabled", "onInput", "onKeydown"];
|
|
3282
3337
|
const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
3338
|
+
...{
|
|
3339
|
+
inheritAttrs: false
|
|
3340
|
+
},
|
|
3283
3341
|
__name: "OTPInput",
|
|
3284
3342
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
3285
3343
|
length: { default: 6 },
|
|
@@ -3430,6 +3488,9 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
|
|
|
3430
3488
|
const _hoisted_1 = ["onClick"];
|
|
3431
3489
|
const _hoisted_2 = ["id", "name", "placeholder", "disabled", "required"];
|
|
3432
3490
|
const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
3491
|
+
...{
|
|
3492
|
+
inheritAttrs: false
|
|
3493
|
+
},
|
|
3433
3494
|
__name: "TagsInput",
|
|
3434
3495
|
props: /* @__PURE__ */ vue.mergeModels({
|
|
3435
3496
|
placeholder: { default: "Add tag..." },
|
|
@@ -3550,7 +3611,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
3550
3611
|
]),
|
|
3551
3612
|
_: 1
|
|
3552
3613
|
}),
|
|
3553
|
-
canAddMore.value ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
|
|
3614
|
+
canAddMore.value ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", vue.mergeProps({
|
|
3554
3615
|
key: 0,
|
|
3555
3616
|
id: __props.id ?? __props.name,
|
|
3556
3617
|
ref_key: "inputRef",
|
|
@@ -3561,47 +3622,48 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
3561
3622
|
placeholder: modelValue.value.length === 0 ? __props.placeholder : "",
|
|
3562
3623
|
disabled: __props.disabled,
|
|
3563
3624
|
required: __props.required && modelValue.value.length === 0,
|
|
3564
|
-
class:
|
|
3625
|
+
class: [
|
|
3565
3626
|
"flex-1 min-w-20 bg-transparent border-none focus:outline-none",
|
|
3566
3627
|
"text-gray-900 dark:text-white placeholder-gray-400",
|
|
3567
3628
|
sizeClasses.value.input
|
|
3568
|
-
]
|
|
3629
|
+
]
|
|
3630
|
+
}, _ctx.$attrs, {
|
|
3569
3631
|
onKeydown: handleKeydown,
|
|
3570
3632
|
onBlur: handleBlur
|
|
3571
|
-
}, null,
|
|
3633
|
+
}), null, 16, _hoisted_2)), [
|
|
3572
3634
|
[vue.vModelText, inputValue.value]
|
|
3573
3635
|
]) : vue.createCommentVNode("", true)
|
|
3574
3636
|
], 2);
|
|
3575
3637
|
};
|
|
3576
3638
|
}
|
|
3577
3639
|
});
|
|
3578
|
-
const TagsInput = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
3640
|
+
const TagsInput = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-fcace07c"]]);
|
|
3579
3641
|
exports.Slider = Slider;
|
|
3580
3642
|
exports.TagsInput = TagsInput;
|
|
3581
3643
|
exports._sfc_main = _sfc_main$r;
|
|
3582
3644
|
exports._sfc_main$1 = _sfc_main$q;
|
|
3583
|
-
exports._sfc_main$10 = _sfc_main$
|
|
3584
|
-
exports._sfc_main$11 = _sfc_main$
|
|
3585
|
-
exports._sfc_main$12 = _sfc_main$
|
|
3586
|
-
exports._sfc_main$13 = _sfc_main$
|
|
3587
|
-
exports._sfc_main$14 = _sfc_main$
|
|
3588
|
-
exports._sfc_main$15 = _sfc_main$
|
|
3589
|
-
exports._sfc_main$16 = _sfc_main$
|
|
3645
|
+
exports._sfc_main$10 = _sfc_main$f;
|
|
3646
|
+
exports._sfc_main$11 = _sfc_main$e;
|
|
3647
|
+
exports._sfc_main$12 = _sfc_main$d;
|
|
3648
|
+
exports._sfc_main$13 = _sfc_main$c;
|
|
3649
|
+
exports._sfc_main$14 = _sfc_main$b;
|
|
3650
|
+
exports._sfc_main$15 = _sfc_main$a;
|
|
3651
|
+
exports._sfc_main$16 = _sfc_main$p;
|
|
3590
3652
|
exports._sfc_main$17 = _sfc_main$9;
|
|
3591
3653
|
exports._sfc_main$18 = _sfc_main$8;
|
|
3592
3654
|
exports._sfc_main$19 = _sfc_main$7;
|
|
3593
|
-
exports._sfc_main$2 = _sfc_main$
|
|
3655
|
+
exports._sfc_main$2 = _sfc_main$o;
|
|
3594
3656
|
exports._sfc_main$20 = _sfc_main$6;
|
|
3595
3657
|
exports._sfc_main$21 = _sfc_main$5;
|
|
3596
3658
|
exports._sfc_main$22 = _sfc_main$4;
|
|
3597
3659
|
exports._sfc_main$23 = _sfc_main$3;
|
|
3598
3660
|
exports._sfc_main$24 = _sfc_main$2;
|
|
3599
3661
|
exports._sfc_main$25 = _sfc_main$1;
|
|
3600
|
-
exports._sfc_main$3 = _sfc_main$
|
|
3601
|
-
exports._sfc_main$4 = _sfc_main$
|
|
3602
|
-
exports._sfc_main$5 = _sfc_main$
|
|
3603
|
-
exports._sfc_main$6 = _sfc_main$
|
|
3604
|
-
exports._sfc_main$7 = _sfc_main$
|
|
3605
|
-
exports._sfc_main$8 = _sfc_main$
|
|
3606
|
-
exports._sfc_main$9 = _sfc_main$
|
|
3607
|
-
//# sourceMappingURL=TagsInput-
|
|
3662
|
+
exports._sfc_main$3 = _sfc_main$n;
|
|
3663
|
+
exports._sfc_main$4 = _sfc_main$m;
|
|
3664
|
+
exports._sfc_main$5 = _sfc_main$l;
|
|
3665
|
+
exports._sfc_main$6 = _sfc_main$k;
|
|
3666
|
+
exports._sfc_main$7 = _sfc_main$i;
|
|
3667
|
+
exports._sfc_main$8 = _sfc_main$h;
|
|
3668
|
+
exports._sfc_main$9 = _sfc_main$g;
|
|
3669
|
+
//# sourceMappingURL=TagsInput-DVebLEH2.cjs.map
|