cisse-vue-ui 0.7.0 → 0.7.2

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.
Files changed (30) hide show
  1. package/dist/{TagsInput-ClqgyR9O.cjs → TagsInput-BF3zRMcU.cjs} +369 -294
  2. package/dist/TagsInput-BF3zRMcU.cjs.map +1 -0
  3. package/dist/{TagsInput-C4wBPfrj.js → TagsInput-D0O6z6le.js} +370 -295
  4. package/dist/TagsInput-D0O6z6le.js.map +1 -0
  5. package/dist/cisse-vue-ui.css +4 -4
  6. package/dist/components/form/EmailInput.vue.d.ts +1 -1
  7. package/dist/components/form/MoneyInput.vue.d.ts +1 -1
  8. package/dist/components/form/NumberInput.vue.d.ts +1 -1
  9. package/dist/components/form/OTPInput.vue.d.ts +1 -1
  10. package/dist/components/form/PasswordInput.vue.d.ts +1 -1
  11. package/dist/components/form/PercentInput.vue.d.ts +1 -1
  12. package/dist/components/form/PhoneInput.vue.d.ts +14 -1
  13. package/dist/components/form/QuantityInput.vue.d.ts +1 -1
  14. package/dist/components/form/SearchInput.vue.d.ts +18 -4
  15. package/dist/components/form/TagsInput.vue.d.ts +1 -1
  16. package/dist/components/form/URLInput.vue.d.ts +1 -1
  17. package/dist/components/form/index.cjs +1 -1
  18. package/dist/components/form/index.js +1 -1
  19. package/dist/components/index.cjs +1 -1
  20. package/dist/components/index.js +1 -1
  21. package/dist/{index-D49k0PP0.js → index-D9_zMCpN.js} +2 -2
  22. package/dist/index-D9_zMCpN.js.map +1 -0
  23. package/dist/{index-CRoTVc47.cjs → index-PehFvNFG.cjs} +2 -2
  24. package/dist/{index-CRoTVc47.cjs.map → index-PehFvNFG.cjs.map} +1 -1
  25. package/dist/index.cjs +2 -2
  26. package/dist/index.js +2 -2
  27. package/package.json +1 -1
  28. package/dist/TagsInput-C4wBPfrj.js.map +0 -1
  29. package/dist/TagsInput-ClqgyR9O.cjs.map +0 -1
  30. 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: "relative"
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 props.icon || props.iconRight ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_1$p, [
83
- props.icon ? (vue.openBlock(), vue.createBlock(vue.unref(vue$1.Icon), {
84
- key: 0,
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
- name: props.name ?? "",
119
- placeholder: props.placeholder,
120
- type: props.type,
121
- required: props.required,
122
- "aria-invalid": props.invalid || void 0,
123
- "aria-required": props.required || void 0,
124
- "aria-describedby": props.describedBy || void 0,
125
- class: [baseInputClass, "px-4 py-3"]
126
- }, _ctx.$attrs), null, 16, _hoisted_3$g)), [
127
- [vue.vModelDynamic, modelValue.value]
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$o = { class: "relative" };
133
- const _hoisted_2$i = ["id", "disabled", "aria-expanded", "aria-controls", "aria-invalid", "aria-describedby"];
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$o = /* @__PURE__ */ vue.defineComponent({
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$o, [
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$i),
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$n = ["hidden"];
393
- const _sfc_main$n = /* @__PURE__ */ vue.defineComponent({
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$o, vue.mergeProps({
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$p, vue.mergeProps({
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$n);
521
+ ], 12, _hoisted_1$m);
476
522
  };
477
523
  }
478
524
  });
479
- const _hoisted_1$m = { class: "relative" };
480
- const _hoisted_2$h = ["disabled", "placeholder", "value"];
481
- const _sfc_main$m = /* @__PURE__ */ vue.defineComponent({
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, default: false }
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, { emit: __emit }) {
491
- const emit = __emit;
492
- const handleInput = (event) => {
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.createElementBlock("div", _hoisted_1$m, [
498
- vue.createVNode(vue.unref(vue$1.Icon), {
499
- icon: __props.icon,
500
- class: "absolute top-1/2 left-3 size-5 -translate-y-1/2 text-gray-400"
501
- }, null, 8, ["icon"]),
502
- vue.createElementVNode("input", {
503
- disabled: __props.disabled,
504
- placeholder: __props.placeholder,
505
- value: __props.modelValue,
506
- class: "focus:border-primary focus:ring-primary w-full rounded-lg border border-gray-300 bg-white py-2 pr-4 pl-10 text-gray-900 placeholder-gray-400 transition-colors disabled:cursor-not-allowed disabled:opacity-50 dark:border-gray-600 dark:bg-gray-800 dark:text-gray-100 dark:placeholder-gray-500",
507
- type: "text",
508
- onInput: handleInput
509
- }, null, 40, _hoisted_2$h)
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$l = ["id", "aria-checked", "aria-labelledby", "aria-describedby", "disabled"];
515
- const _hoisted_2$g = {
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$l = /* @__PURE__ */ vue.defineComponent({
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$l),
586
- __props.label || __props.description ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$g, [
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$k = { class: "w-full" };
603
- const _hoisted_2$f = {
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$k = /* @__PURE__ */ vue.defineComponent({
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$k, [
645
- __props.showValue ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$f, [
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$k, [["__scopeId", "data-v-c25e2c2a"]]);
673
- const _hoisted_1$j = { class: "relative" };
674
- const _hoisted_2$e = ["id", "disabled", "aria-expanded", "aria-controls"];
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$j = /* @__PURE__ */ vue.defineComponent({
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$j, [
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$e),
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$i = { class: "space-y-4" };
961
- const _hoisted_2$d = ["accept", "multiple", "disabled"];
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$i = /* @__PURE__ */ vue.defineComponent({
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$i, [
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$d),
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$h = { class: "flex items-center gap-1" };
1168
- const _hoisted_2$c = ["disabled", "onClick", "onMousemove"];
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$h = /* @__PURE__ */ vue.defineComponent({
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$h, [
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$c);
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$g = { class: "relative inline-block" };
1277
- const _hoisted_2$b = {
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$g = /* @__PURE__ */ vue.defineComponent({
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$g, [
1360
- __props.label ? (vue.openBlock(), vue.createElementBlock("label", _hoisted_2$b, vue.toDisplayString(__props.label), 1)) : vue.createCommentVNode("", true),
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$f = { class: "space-y-2" };
1451
- const _hoisted_2$a = {
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$f = /* @__PURE__ */ vue.defineComponent({
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$f, [
1538
- __props.showLabels ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_2$a, [
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$e = ["aria-expanded", "aria-controls"];
1580
- const _hoisted_2$9 = ["id", "name", "placeholder", "disabled", "aria-controls"];
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$e = /* @__PURE__ */ vue.defineComponent({
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$9)), [
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$e),
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$d = { class: "relative" };
1816
- const _hoisted_2$8 = {
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$d = /* @__PURE__ */ vue.defineComponent({
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$d, [
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$8, "*")) : vue.createCommentVNode("", true)
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$c = { class: "flex items-center justify-between" };
2109
- const _hoisted_2$7 = { class: "flex items-center gap-3" };
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$c = /* @__PURE__ */ vue.defineComponent({
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$c, [
2155
- vue.createElementVNode("div", _hoisted_2$7, [
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$b = { key: 1 };
2224
- const _sfc_main$b = /* @__PURE__ */ vue.defineComponent({
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$b, vue.toDisplayString(__props.loadingLabel || __props.submitLabel + "..."), 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$a, {
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: vue.normalizeClass(inputClass),
2423
- onBlur: handleBlur
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$a, {
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: vue.normalizeClass(inputClass),
2519
- autocomplete: "new-password"
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 },
@@ -2623,6 +2633,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
2623
2633
  const showDropdown = vue.ref(false);
2624
2634
  const searchQuery = vue.ref("");
2625
2635
  const dropdownRef = vue.ref(null);
2636
+ const rawDialCodeInput = vue.ref("");
2626
2637
  const filteredCountries = vue.computed(() => {
2627
2638
  if (!searchQuery.value) return props.countries;
2628
2639
  const query = searchQuery.value.toLowerCase();
@@ -2634,19 +2645,62 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
2634
2645
  if (!modelValue.value) return "";
2635
2646
  return `${selectedCountry.value.dialCode}${modelValue.value}`;
2636
2647
  });
2648
+ const displayValue = vue.computed(() => {
2649
+ if (rawDialCodeInput.value) {
2650
+ return rawDialCodeInput.value;
2651
+ }
2652
+ const formatted = formatPhoneWithPattern(modelValue.value, selectedCountry.value.format);
2653
+ if (props.showDialCode && modelValue.value) {
2654
+ return `${selectedCountry.value.dialCode} ${formatted}`;
2655
+ }
2656
+ return formatted;
2657
+ });
2637
2658
  function selectCountry(country) {
2638
2659
  selectedCountry.value = country;
2639
2660
  showDropdown.value = false;
2640
2661
  searchQuery.value = "";
2641
2662
  }
2642
- function formatPhoneNumber(value) {
2643
- const cleaned = value.replace(/\D/g, "");
2644
- return cleaned;
2663
+ function parsePhoneWithDialCode(value) {
2664
+ const cleaned = value.replace(/\s/g, "");
2665
+ if (cleaned.startsWith("+") || cleaned.startsWith("00")) {
2666
+ const withPlus = cleaned.startsWith("00") ? "+" + cleaned.slice(2) : cleaned;
2667
+ for (const country of props.countries) {
2668
+ if (withPlus.startsWith(country.dialCode)) {
2669
+ const digits = withPlus.slice(country.dialCode.length).replace(/\D/g, "");
2670
+ return { digits, country };
2671
+ }
2672
+ }
2673
+ }
2674
+ return { digits: getPhoneDigits(value) };
2645
2675
  }
2646
2676
  function handleInput(event) {
2647
2677
  const target = event.target;
2648
- const formatted = formatPhoneNumber(target.value);
2649
- modelValue.value = formatted;
2678
+ const inputValue = target.value;
2679
+ if (inputValue.startsWith("+") || inputValue.startsWith("00")) {
2680
+ const { digits, country } = parsePhoneWithDialCode(inputValue);
2681
+ if (country) {
2682
+ selectedCountry.value = country;
2683
+ modelValue.value = digits;
2684
+ rawDialCodeInput.value = "";
2685
+ } else {
2686
+ rawDialCodeInput.value = inputValue;
2687
+ modelValue.value = "";
2688
+ }
2689
+ } else {
2690
+ rawDialCodeInput.value = "";
2691
+ modelValue.value = getPhoneDigits(inputValue);
2692
+ }
2693
+ }
2694
+ function handlePaste(event) {
2695
+ var _a;
2696
+ const pastedData = (_a = event.clipboardData) == null ? void 0 : _a.getData("text");
2697
+ if (!pastedData) return;
2698
+ const { digits, country } = parsePhoneWithDialCode(pastedData);
2699
+ if (country) {
2700
+ event.preventDefault();
2701
+ selectedCountry.value = country;
2702
+ modelValue.value = digits;
2703
+ }
2650
2704
  }
2651
2705
  function handleClickOutside(event) {
2652
2706
  if (dropdownRef.value && !dropdownRef.value.contains(event.target)) {
@@ -2668,7 +2722,7 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
2668
2722
  ref_key: "dropdownRef",
2669
2723
  ref: dropdownRef
2670
2724
  }, [
2671
- vue.createVNode(_sfc_main$a, {
2725
+ vue.createVNode(_sfc_main$p, {
2672
2726
  size: __props.size,
2673
2727
  disabled: __props.disabled
2674
2728
  }, {
@@ -2690,9 +2744,9 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
2690
2744
  ], 8, _hoisted_1$7)
2691
2745
  ]),
2692
2746
  default: vue.withCtx(({ inputClass }) => [
2693
- vue.createElementVNode("input", {
2747
+ vue.createElementVNode("input", vue.mergeProps({
2694
2748
  id: __props.id ?? __props.name,
2695
- value: modelValue.value,
2749
+ value: displayValue.value,
2696
2750
  type: "tel",
2697
2751
  name: __props.name,
2698
2752
  placeholder: __props.placeholder,
@@ -2700,9 +2754,11 @@ const _sfc_main$7 = /* @__PURE__ */ vue.defineComponent({
2700
2754
  required: __props.required,
2701
2755
  "aria-required": __props.required || void 0,
2702
2756
  "aria-describedby": __props.describedBy,
2703
- class: vue.normalizeClass([inputClass, "pl-20"]),
2704
- onInput: handleInput
2705
- }, null, 42, _hoisted_3$3)
2757
+ class: [inputClass, "pl-20"]
2758
+ }, _ctx.$attrs, {
2759
+ onInput: handleInput,
2760
+ onPaste: handlePaste
2761
+ }), null, 16, _hoisted_3$3)
2706
2762
  ]),
2707
2763
  actions: vue.withCtx(() => [
2708
2764
  vue.createElementVNode("span", _hoisted_4$1, vue.toDisplayString(selectedCountry.value.dialCode), 1)
@@ -2755,6 +2811,9 @@ const _hoisted_1$6 = ["disabled"];
2755
2811
  const _hoisted_2$3 = ["id", "value", "name", "placeholder", "disabled", "required", "min", "max", "step", "aria-required", "aria-describedby"];
2756
2812
  const _hoisted_3$2 = ["disabled"];
2757
2813
  const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
2814
+ ...{
2815
+ inheritAttrs: false
2816
+ },
2758
2817
  __name: "NumberInput",
2759
2818
  props: /* @__PURE__ */ vue.mergeModels({
2760
2819
  placeholder: { default: "0" },
@@ -2813,12 +2872,12 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
2813
2872
  }
2814
2873
  }
2815
2874
  return (_ctx, _cache) => {
2816
- return vue.openBlock(), vue.createBlock(_sfc_main$a, {
2875
+ return vue.openBlock(), vue.createBlock(_sfc_main$p, {
2817
2876
  size: __props.size,
2818
2877
  disabled: __props.disabled
2819
2878
  }, vue.createSlots({
2820
2879
  default: vue.withCtx(({ inputClass }) => [
2821
- vue.createElementVNode("input", {
2880
+ vue.createElementVNode("input", vue.mergeProps({
2822
2881
  id: __props.id ?? __props.name,
2823
2882
  value: modelValue.value,
2824
2883
  type: "number",
@@ -2831,9 +2890,8 @@ const _sfc_main$6 = /* @__PURE__ */ vue.defineComponent({
2831
2890
  step: __props.step,
2832
2891
  "aria-required": __props.required || void 0,
2833
2892
  "aria-describedby": __props.describedBy,
2834
- class: vue.normalizeClass([inputClass, "text-center", __props.showStepper && "pl-12 pr-12"]),
2835
- onInput: handleInput
2836
- }, null, 42, _hoisted_2$3)
2893
+ class: [inputClass, "text-center", __props.showStepper && "pl-12 pr-12"]
2894
+ }, _ctx.$attrs, { onInput: handleInput }), null, 16, _hoisted_2$3)
2837
2895
  ]),
2838
2896
  _: 2
2839
2897
  }, [
@@ -2879,6 +2937,9 @@ const _hoisted_1$5 = { class: "text-sm font-medium text-gray-500 dark:text-gray-
2879
2937
  const _hoisted_2$2 = ["id", "value", "name", "placeholder", "disabled", "required", "aria-required", "aria-describedby"];
2880
2938
  const _hoisted_3$1 = { class: "text-sm font-medium text-gray-500 dark:text-gray-400" };
2881
2939
  const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
2940
+ ...{
2941
+ inheritAttrs: false
2942
+ },
2882
2943
  __name: "MoneyInput",
2883
2944
  props: /* @__PURE__ */ vue.mergeModels({
2884
2945
  placeholder: { default: "0.00" },
@@ -2949,12 +3010,12 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
2949
3010
  }
2950
3011
  }
2951
3012
  return (_ctx, _cache) => {
2952
- return vue.openBlock(), vue.createBlock(_sfc_main$a, {
3013
+ return vue.openBlock(), vue.createBlock(_sfc_main$p, {
2953
3014
  size: __props.size,
2954
3015
  disabled: __props.disabled
2955
3016
  }, vue.createSlots({
2956
3017
  default: vue.withCtx(({ inputClass }) => [
2957
- vue.createElementVNode("input", {
3018
+ vue.createElementVNode("input", vue.mergeProps({
2958
3019
  id: __props.id ?? __props.name,
2959
3020
  value: displayValue.value,
2960
3021
  type: "text",
@@ -2965,10 +3026,11 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
2965
3026
  required: __props.required,
2966
3027
  "aria-required": __props.required || void 0,
2967
3028
  "aria-describedby": __props.describedBy,
2968
- class: vue.normalizeClass([inputClass, "text-right"]),
3029
+ class: [inputClass, "text-right"]
3030
+ }, _ctx.$attrs, {
2969
3031
  onInput: handleInput,
2970
3032
  onBlur: handleBlur
2971
- }, null, 42, _hoisted_2$2)
3033
+ }), null, 16, _hoisted_2$2)
2972
3034
  ]),
2973
3035
  _: 2
2974
3036
  }, [
@@ -2992,6 +3054,9 @@ const _sfc_main$5 = /* @__PURE__ */ vue.defineComponent({
2992
3054
  });
2993
3055
  const _hoisted_1$4 = ["id", "value", "name", "placeholder", "disabled", "required", "min", "max", "step", "aria-required", "aria-describedby"];
2994
3056
  const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
3057
+ ...{
3058
+ inheritAttrs: false
3059
+ },
2995
3060
  __name: "PercentInput",
2996
3061
  props: /* @__PURE__ */ vue.mergeModels({
2997
3062
  placeholder: { default: "0" },
@@ -3033,12 +3098,12 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
3033
3098
  displayValue.value = target.value;
3034
3099
  }
3035
3100
  return (_ctx, _cache) => {
3036
- return vue.openBlock(), vue.createBlock(_sfc_main$a, {
3101
+ return vue.openBlock(), vue.createBlock(_sfc_main$p, {
3037
3102
  size: __props.size,
3038
3103
  disabled: __props.disabled
3039
3104
  }, {
3040
3105
  default: vue.withCtx(({ inputClass }) => [
3041
- vue.createElementVNode("input", {
3106
+ vue.createElementVNode("input", vue.mergeProps({
3042
3107
  id: __props.id ?? __props.name,
3043
3108
  value: displayValue.value,
3044
3109
  type: "number",
@@ -3052,9 +3117,8 @@ const _sfc_main$4 = /* @__PURE__ */ vue.defineComponent({
3052
3117
  step: __props.decimals > 0 ? Math.pow(10, -__props.decimals) : 1,
3053
3118
  "aria-required": __props.required || void 0,
3054
3119
  "aria-describedby": __props.describedBy,
3055
- class: vue.normalizeClass([inputClass, "text-right pr-10"]),
3056
- onInput: handleInput
3057
- }, null, 42, _hoisted_1$4)
3120
+ class: [inputClass, "text-right pr-10"]
3121
+ }, _ctx.$attrs, { onInput: handleInput }), null, 16, _hoisted_1$4)
3058
3122
  ]),
3059
3123
  actions: vue.withCtx(() => [..._cache[0] || (_cache[0] = [
3060
3124
  vue.createElementVNode("span", { class: "text-sm font-medium text-gray-500 dark:text-gray-400" }, "%", -1)
@@ -3069,6 +3133,9 @@ const _hoisted_2$1 = ["disabled"];
3069
3133
  const _hoisted_3 = ["id", "value", "name", "disabled", "required", "min", "max"];
3070
3134
  const _hoisted_4 = ["disabled"];
3071
3135
  const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
3136
+ ...{
3137
+ inheritAttrs: false
3138
+ },
3072
3139
  __name: "QuantityInput",
3073
3140
  props: /* @__PURE__ */ vue.mergeModels({
3074
3141
  size: { default: "md" },
@@ -3153,7 +3220,7 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
3153
3220
  class: vue.normalizeClass(["text-gray-600 dark:text-gray-300", sizeClasses.value.icon])
3154
3221
  }, null, 8, ["class"])
3155
3222
  ], 10, _hoisted_2$1),
3156
- vue.createElementVNode("input", {
3223
+ vue.createElementVNode("input", vue.mergeProps({
3157
3224
  id: __props.id ?? __props.name,
3158
3225
  value: modelValue.value,
3159
3226
  type: "number",
@@ -3162,15 +3229,14 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
3162
3229
  required: __props.required,
3163
3230
  min: __props.min,
3164
3231
  max: __props.max,
3165
- class: vue.normalizeClass([
3232
+ class: [
3166
3233
  "bg-transparent text-center font-semibold text-gray-900 dark:text-white",
3167
3234
  "focus:outline-none appearance-none",
3168
3235
  "[&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none",
3169
3236
  "disabled:opacity-50",
3170
3237
  sizeClasses.value.input
3171
- ]),
3172
- onInput: handleInput
3173
- }, null, 42, _hoisted_3),
3238
+ ]
3239
+ }, _ctx.$attrs, { onInput: handleInput }), null, 16, _hoisted_3),
3174
3240
  vue.createElementVNode("button", {
3175
3241
  type: "button",
3176
3242
  disabled: !canIncrement.value,
@@ -3194,6 +3260,9 @@ const _sfc_main$3 = /* @__PURE__ */ vue.defineComponent({
3194
3260
  });
3195
3261
  const _hoisted_1$2 = ["id", "name", "placeholder", "disabled", "required", "aria-invalid", "aria-required", "aria-describedby"];
3196
3262
  const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
3263
+ ...{
3264
+ inheritAttrs: false
3265
+ },
3197
3266
  __name: "URLInput",
3198
3267
  props: /* @__PURE__ */ vue.mergeModels({
3199
3268
  placeholder: { default: "https://example.com" },
@@ -3231,14 +3300,14 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
3231
3300
  }
3232
3301
  }
3233
3302
  return (_ctx, _cache) => {
3234
- return vue.openBlock(), vue.createBlock(_sfc_main$a, {
3303
+ return vue.openBlock(), vue.createBlock(_sfc_main$p, {
3235
3304
  icon: "lucide:link",
3236
3305
  size: __props.size,
3237
3306
  disabled: __props.disabled,
3238
3307
  invalid: showStatus.value && isValid.value === false
3239
3308
  }, {
3240
3309
  default: vue.withCtx(({ inputClass }) => [
3241
- vue.withDirectives(vue.createElementVNode("input", {
3310
+ vue.withDirectives(vue.createElementVNode("input", vue.mergeProps({
3242
3311
  id: __props.id ?? __props.name,
3243
3312
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
3244
3313
  type: "url",
@@ -3249,9 +3318,8 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
3249
3318
  "aria-invalid": showStatus.value && isValid.value === false || void 0,
3250
3319
  "aria-required": __props.required || void 0,
3251
3320
  "aria-describedby": __props.describedBy,
3252
- class: vue.normalizeClass(inputClass),
3253
- onBlur: handleBlur
3254
- }, null, 42, _hoisted_1$2), [
3321
+ class: inputClass
3322
+ }, _ctx.$attrs, { onBlur: handleBlur }), null, 16, _hoisted_1$2), [
3255
3323
  [vue.vModelText, modelValue.value]
3256
3324
  ])
3257
3325
  ]),
@@ -3280,6 +3348,9 @@ const _sfc_main$2 = /* @__PURE__ */ vue.defineComponent({
3280
3348
  });
3281
3349
  const _hoisted_1$1 = ["value", "type", "name", "disabled", "onInput", "onKeydown"];
3282
3350
  const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
3351
+ ...{
3352
+ inheritAttrs: false
3353
+ },
3283
3354
  __name: "OTPInput",
3284
3355
  props: /* @__PURE__ */ vue.mergeModels({
3285
3356
  length: { default: 6 },
@@ -3430,6 +3501,9 @@ const _sfc_main$1 = /* @__PURE__ */ vue.defineComponent({
3430
3501
  const _hoisted_1 = ["onClick"];
3431
3502
  const _hoisted_2 = ["id", "name", "placeholder", "disabled", "required"];
3432
3503
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
3504
+ ...{
3505
+ inheritAttrs: false
3506
+ },
3433
3507
  __name: "TagsInput",
3434
3508
  props: /* @__PURE__ */ vue.mergeModels({
3435
3509
  placeholder: { default: "Add tag..." },
@@ -3550,7 +3624,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
3550
3624
  ]),
3551
3625
  _: 1
3552
3626
  }),
3553
- canAddMore.value ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", {
3627
+ canAddMore.value ? vue.withDirectives((vue.openBlock(), vue.createElementBlock("input", vue.mergeProps({
3554
3628
  key: 0,
3555
3629
  id: __props.id ?? __props.name,
3556
3630
  ref_key: "inputRef",
@@ -3561,47 +3635,48 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
3561
3635
  placeholder: modelValue.value.length === 0 ? __props.placeholder : "",
3562
3636
  disabled: __props.disabled,
3563
3637
  required: __props.required && modelValue.value.length === 0,
3564
- class: vue.normalizeClass([
3638
+ class: [
3565
3639
  "flex-1 min-w-20 bg-transparent border-none focus:outline-none",
3566
3640
  "text-gray-900 dark:text-white placeholder-gray-400",
3567
3641
  sizeClasses.value.input
3568
- ]),
3642
+ ]
3643
+ }, _ctx.$attrs, {
3569
3644
  onKeydown: handleKeydown,
3570
3645
  onBlur: handleBlur
3571
- }, null, 42, _hoisted_2)), [
3646
+ }), null, 16, _hoisted_2)), [
3572
3647
  [vue.vModelText, inputValue.value]
3573
3648
  ]) : vue.createCommentVNode("", true)
3574
3649
  ], 2);
3575
3650
  };
3576
3651
  }
3577
3652
  });
3578
- const TagsInput = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-7949bfa4"]]);
3653
+ const TagsInput = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__scopeId", "data-v-fcace07c"]]);
3579
3654
  exports.Slider = Slider;
3580
3655
  exports.TagsInput = TagsInput;
3581
3656
  exports._sfc_main = _sfc_main$r;
3582
3657
  exports._sfc_main$1 = _sfc_main$q;
3583
- exports._sfc_main$10 = _sfc_main$g;
3584
- exports._sfc_main$11 = _sfc_main$f;
3585
- exports._sfc_main$12 = _sfc_main$e;
3586
- exports._sfc_main$13 = _sfc_main$d;
3587
- exports._sfc_main$14 = _sfc_main$c;
3588
- exports._sfc_main$15 = _sfc_main$b;
3589
- exports._sfc_main$16 = _sfc_main$a;
3658
+ exports._sfc_main$10 = _sfc_main$f;
3659
+ exports._sfc_main$11 = _sfc_main$e;
3660
+ exports._sfc_main$12 = _sfc_main$d;
3661
+ exports._sfc_main$13 = _sfc_main$c;
3662
+ exports._sfc_main$14 = _sfc_main$b;
3663
+ exports._sfc_main$15 = _sfc_main$a;
3664
+ exports._sfc_main$16 = _sfc_main$p;
3590
3665
  exports._sfc_main$17 = _sfc_main$9;
3591
3666
  exports._sfc_main$18 = _sfc_main$8;
3592
3667
  exports._sfc_main$19 = _sfc_main$7;
3593
- exports._sfc_main$2 = _sfc_main$p;
3668
+ exports._sfc_main$2 = _sfc_main$o;
3594
3669
  exports._sfc_main$20 = _sfc_main$6;
3595
3670
  exports._sfc_main$21 = _sfc_main$5;
3596
3671
  exports._sfc_main$22 = _sfc_main$4;
3597
3672
  exports._sfc_main$23 = _sfc_main$3;
3598
3673
  exports._sfc_main$24 = _sfc_main$2;
3599
3674
  exports._sfc_main$25 = _sfc_main$1;
3600
- exports._sfc_main$3 = _sfc_main$o;
3601
- exports._sfc_main$4 = _sfc_main$n;
3602
- exports._sfc_main$5 = _sfc_main$m;
3603
- exports._sfc_main$6 = _sfc_main$l;
3604
- exports._sfc_main$7 = _sfc_main$j;
3605
- exports._sfc_main$8 = _sfc_main$i;
3606
- exports._sfc_main$9 = _sfc_main$h;
3607
- //# sourceMappingURL=TagsInput-ClqgyR9O.cjs.map
3675
+ exports._sfc_main$3 = _sfc_main$n;
3676
+ exports._sfc_main$4 = _sfc_main$m;
3677
+ exports._sfc_main$5 = _sfc_main$l;
3678
+ exports._sfc_main$6 = _sfc_main$k;
3679
+ exports._sfc_main$7 = _sfc_main$i;
3680
+ exports._sfc_main$8 = _sfc_main$h;
3681
+ exports._sfc_main$9 = _sfc_main$g;
3682
+ //# sourceMappingURL=TagsInput-BF3zRMcU.cjs.map