@enos5/enos-vue-default 1.0.0 → 1.2.0

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/index.js CHANGED
@@ -1,129 +1,141 @@
1
- import { ref, computed, watch, openBlock, createElementBlock, createElementVNode, Fragment, renderList, normalizeClass, normalizeStyle, toDisplayString, createBlock, createCommentVNode, renderSlot, createVNode, Transition, withCtx, mergeProps, useSlots, unref, withDirectives, vShow, useAttrs, vModelCheckbox, onMounted, nextTick, onBeforeUnmount, Teleport, withModifiers, onUnmounted, defineComponent, resolveDynamicComponent, createTextVNode, normalizeProps, vModelText } from "vue";
2
- import { LockClosedIcon, ChevronDownIcon, PhotoIcon, ExclamationCircleIcon, ExclamationTriangleIcon, Cog6ToothIcon, ArrowRightOnRectangleIcon, ChevronUpDownIcon, ChevronUpIcon, MagnifyingGlassIcon, CheckIcon, PencilSquareIcon } from "@heroicons/vue/24/outline";
1
+ import { ref, computed, watch, openBlock, createElementBlock, createElementVNode, Fragment, renderList, normalizeClass, normalizeStyle, toDisplayString, createBlock, createCommentVNode, renderSlot, createVNode, Transition, withCtx, mergeProps, useSlots, unref, withDirectives, vShow, useAttrs, vModelCheckbox, onMounted, nextTick, onBeforeUnmount, Teleport, withModifiers, onUnmounted, inject, provide, defineComponent, isVNode, cloneVNode, resolveDynamicComponent, createTextVNode, h, vModelText } from "vue";
2
+ import { LockClosedIcon, ChevronDownIcon, PhotoIcon, ExclamationCircleIcon, ExclamationTriangleIcon, ChevronUpIcon, MagnifyingGlassIcon, CheckIcon, PencilSquareIcon } from "@heroicons/vue/24/outline";
3
3
  import Editor from "@tinymce/tinymce-vue";
4
4
  import { Link } from "@inertiajs/vue3";
5
5
  const components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
6
6
  __proto__: null,
7
7
  get ActionCard() {
8
- return _sfc_main$G;
8
+ return _sfc_main$K;
9
9
  },
10
10
  get ActionMessage() {
11
- return _sfc_main$F;
11
+ return _sfc_main$J;
12
12
  },
13
13
  get ActionSection() {
14
- return _sfc_main$D;
14
+ return _sfc_main$H;
15
15
  },
16
16
  get Badge() {
17
- return _sfc_main$C;
17
+ return _sfc_main$G;
18
18
  },
19
19
  get Button() {
20
- return _sfc_main$B;
20
+ return _sfc_main$F;
21
21
  },
22
22
  get Card() {
23
- return _sfc_main$I;
23
+ return _sfc_main$M;
24
24
  },
25
25
  get CardTabs() {
26
- return _sfc_main$J;
26
+ return _sfc_main$N;
27
27
  },
28
28
  get Checkbox() {
29
- return _sfc_main$A;
29
+ return _sfc_main$E;
30
30
  },
31
31
  get CheckboxInput() {
32
- return _sfc_main$z;
32
+ return _sfc_main$D;
33
33
  },
34
34
  get CheckboxMultipleInput() {
35
- return _sfc_main$n;
35
+ return _sfc_main$r;
36
36
  },
37
37
  get ConfirmationModal() {
38
- return _sfc_main$l;
38
+ return _sfc_main$p;
39
39
  },
40
40
  get CustomSelect() {
41
- return _sfc_main$w;
41
+ return _sfc_main$A;
42
42
  },
43
43
  get DateInput() {
44
- return _sfc_main$u;
44
+ return _sfc_main$y;
45
45
  },
46
46
  get DialogModal() {
47
- return _sfc_main$k;
47
+ return _sfc_main$o;
48
48
  },
49
49
  get Divider() {
50
- return _sfc_main$H;
50
+ return _sfc_main$L;
51
51
  },
52
52
  get Dropdown() {
53
- return _sfc_main$j;
53
+ return _sfc_main$n;
54
54
  },
55
55
  get DropdownLink() {
56
- return _sfc_main$i;
56
+ return _sfc_main$m;
57
57
  },
58
58
  get EnosVueDefault() {
59
59
  return plugin;
60
60
  },
61
61
  get FormSection() {
62
- return _sfc_main$h;
62
+ return _sfc_main$l;
63
63
  },
64
64
  get ImageInput() {
65
- return _sfc_main$t;
65
+ return _sfc_main$x;
66
66
  },
67
67
  get InputError() {
68
- return _sfc_main$g;
68
+ return _sfc_main$k;
69
69
  },
70
70
  get InputGroup() {
71
- return _sfc_main$o;
71
+ return _sfc_main$s;
72
72
  },
73
73
  get InputLabel() {
74
- return _sfc_main$f;
74
+ return _sfc_main$j;
75
75
  },
76
76
  get LinkButton() {
77
- return _sfc_main$e;
77
+ return _sfc_main$i;
78
78
  },
79
79
  get Modal() {
80
- return _sfc_main$m;
80
+ return _sfc_main$q;
81
81
  },
82
82
  get NotationInput() {
83
- return _sfc_main$s;
83
+ return _sfc_main$w;
84
84
  },
85
85
  get RadioInput() {
86
- return _sfc_main$r;
86
+ return _sfc_main$v;
87
87
  },
88
88
  get RadioMultipleInput() {
89
- return _sfc_main$q;
89
+ return _sfc_main$u;
90
90
  },
91
91
  get SectionBorder() {
92
- return _sfc_main$d;
92
+ return _sfc_main$h;
93
93
  },
94
94
  get SectionTitle() {
95
95
  return SectionTitle;
96
96
  },
97
97
  get SelectInput() {
98
- return _sfc_main$v;
98
+ return _sfc_main$z;
99
99
  },
100
- get SideMenu() {
101
- return _sfc_main$4;
100
+ get Sidebar() {
101
+ return _sfc_main$g;
102
+ },
103
+ get SidebarContent() {
104
+ return _sfc_main$f;
105
+ },
106
+ get SidebarFooter() {
107
+ return _sfc_main$e;
102
108
  },
103
- get SideMenuBrand() {
109
+ get SidebarGroup() {
110
+ return _sfc_main$d;
111
+ },
112
+ get SidebarGroupContent() {
104
113
  return _sfc_main$c;
105
114
  },
106
- get SideMenuButton() {
115
+ get SidebarGroupLabel() {
107
116
  return _sfc_main$b;
108
117
  },
109
- get SideMenuList() {
118
+ get SidebarHeader() {
110
119
  return _sfc_main$a;
111
120
  },
112
- get SideMenuNavFooter() {
121
+ get SidebarInset() {
113
122
  return _sfc_main$9;
114
123
  },
115
- get SideMenuNavMain() {
124
+ get SidebarMenu() {
116
125
  return _sfc_main$8;
117
126
  },
118
- get SideMenuNavUser() {
119
- return _sfc_main$5;
120
- },
121
- get SideMenuUserInfo() {
127
+ get SidebarMenuButton() {
122
128
  return _sfc_main$7;
123
129
  },
124
- get SideMenuUserMenuContent() {
130
+ get SidebarMenuItem() {
125
131
  return _sfc_main$6;
126
132
  },
133
+ get SidebarProvider() {
134
+ return _sfc_main$5;
135
+ },
136
+ get SidebarTrigger() {
137
+ return _sfc_main$4;
138
+ },
127
139
  get SortControls() {
128
140
  return _sfc_main$3;
129
141
  },
@@ -134,25 +146,25 @@ const components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
134
146
  return _sfc_main;
135
147
  },
136
148
  get TextArea() {
137
- return _sfc_main$x;
149
+ return _sfc_main$B;
138
150
  },
139
151
  get TextInput() {
140
- return _sfc_main$y;
152
+ return _sfc_main$C;
141
153
  },
142
154
  get ThSortable() {
143
155
  return _sfc_main$2;
144
156
  },
145
157
  get TinyEditor() {
146
- return _sfc_main$p;
158
+ return _sfc_main$t;
147
159
  }
148
160
  }, Symbol.toStringTag, { value: "Module" }));
149
- const _hoisted_1$F = { class: "border-b border-neutral-200 bg-neutral-50/80 p-2 dark:border-neutral-800 dark:bg-neutral-900/80" };
150
- const _hoisted_2$m = {
161
+ const _hoisted_1$y = { class: "border-b border-neutral-200 bg-neutral-50/80 p-2 dark:border-neutral-800 dark:bg-neutral-900/80" };
162
+ const _hoisted_2$i = {
151
163
  role: "tablist",
152
164
  class: "flex overflow-hidden rounded-lg bg-white shadow-sm ring-1 ring-neutral-200 dark:bg-neutral-950 dark:ring-neutral-800"
153
165
  };
154
- const _hoisted_3$e = ["aria-selected", "tabindex", "onClick", "onKeydown"];
155
- const _sfc_main$J = {
166
+ const _hoisted_3$c = ["aria-selected", "tabindex", "onClick", "onKeydown"];
167
+ const _sfc_main$N = {
156
168
  __name: "CardTabs",
157
169
  props: {
158
170
  tabs: {
@@ -221,8 +233,8 @@ const _sfc_main$J = {
221
233
  focusTabAtIndex(targetIndex);
222
234
  };
223
235
  return (_ctx, _cache) => {
224
- return openBlock(), createElementBlock("div", _hoisted_1$F, [
225
- createElementVNode("div", _hoisted_2$m, [
236
+ return openBlock(), createElementBlock("div", _hoisted_1$y, [
237
+ createElementVNode("div", _hoisted_2$i, [
226
238
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (tab, index) => {
227
239
  return openBlock(), createElementBlock("button", {
228
240
  key: tab.value,
@@ -242,22 +254,22 @@ const _sfc_main$J = {
242
254
  ]),
243
255
  onClick: ($event) => activateTab(tab.value),
244
256
  onKeydown: ($event) => onTabKeydown($event, index)
245
- }, toDisplayString(tab.label), 47, _hoisted_3$e);
257
+ }, toDisplayString(tab.label), 47, _hoisted_3$c);
246
258
  }), 128))
247
259
  ])
248
260
  ]);
249
261
  };
250
262
  }
251
263
  };
252
- const _hoisted_1$E = {
264
+ const _hoisted_1$x = {
253
265
  key: 0,
254
266
  class: "mb-4"
255
267
  };
256
- const _hoisted_2$l = {
268
+ const _hoisted_2$h = {
257
269
  key: 1,
258
270
  class: "mb-4 text-xl font-semibold tracking-tight text-neutral-950 dark:text-neutral-50"
259
271
  };
260
- const _sfc_main$I = {
272
+ const _sfc_main$M = {
261
273
  __name: "Card",
262
274
  props: {
263
275
  title: {
@@ -318,7 +330,7 @@ const _sfc_main$I = {
318
330
  return openBlock(), createElementBlock("div", {
319
331
  class: normalizeClass(["rounded-2xl border border-neutral-200 bg-white text-neutral-950 shadow-sm dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50", __props.overflowClass, { "sticky top-6 self-start": __props.sticky }, __props.cardClass])
320
332
  }, [
321
- __props.tabs.length > 0 ? (openBlock(), createBlock(_sfc_main$J, {
333
+ __props.tabs.length > 0 ? (openBlock(), createBlock(_sfc_main$N, {
322
334
  key: 0,
323
335
  tabs: __props.tabs,
324
336
  "active-tab": __props.activeTab,
@@ -328,9 +340,9 @@ const _sfc_main$I = {
328
340
  createElementVNode("div", {
329
341
  class: normalizeClass(__props.paddingClass)
330
342
  }, [
331
- _ctx.$slots.customTitle ? (openBlock(), createElementBlock("div", _hoisted_1$E, [
343
+ _ctx.$slots.customTitle ? (openBlock(), createElementBlock("div", _hoisted_1$x, [
332
344
  renderSlot(_ctx.$slots, "customTitle")
333
- ])) : __props.title ? (openBlock(), createElementBlock("h3", _hoisted_2$l, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
345
+ ])) : __props.title ? (openBlock(), createElementBlock("h3", _hoisted_2$h, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
334
346
  createElementVNode("div", {
335
347
  class: normalizeClass(["relative", __props.tabs.length > 0 ? "overflow-hidden" : "overflow-visible"])
336
348
  }, [
@@ -363,7 +375,7 @@ const _sfc_main$I = {
363
375
  };
364
376
  }
365
377
  };
366
- const _sfc_main$H = /* @__PURE__ */ Object.assign({
378
+ const _sfc_main$L = /* @__PURE__ */ Object.assign({
367
379
  inheritAttrs: false
368
380
  }, {
369
381
  __name: "Divider",
@@ -375,7 +387,7 @@ const _sfc_main$H = /* @__PURE__ */ Object.assign({
375
387
  };
376
388
  }
377
389
  });
378
- const _sfc_main$G = {
390
+ const _sfc_main$K = {
379
391
  __name: "ActionCard",
380
392
  props: {
381
393
  title: {
@@ -390,13 +402,13 @@ const _sfc_main$G = {
390
402
  setup(__props) {
391
403
  const slots = useSlots();
392
404
  return (_ctx, _cache) => {
393
- return openBlock(), createBlock(_sfc_main$I, {
405
+ return openBlock(), createBlock(_sfc_main$M, {
394
406
  title: __props.title,
395
407
  "content-class": __props.actionsClass
396
408
  }, {
397
409
  default: withCtx(() => [
398
410
  renderSlot(_ctx.$slots, "default"),
399
- unref(slots).danger ? (openBlock(), createBlock(_sfc_main$H, {
411
+ unref(slots).danger ? (openBlock(), createBlock(_sfc_main$L, {
400
412
  key: 0,
401
413
  class: "mt-6 pt-4"
402
414
  }, {
@@ -411,8 +423,8 @@ const _sfc_main$G = {
411
423
  };
412
424
  }
413
425
  };
414
- const _hoisted_1$D = { class: "text-sm text-gray-600" };
415
- const _sfc_main$F = {
426
+ const _hoisted_1$w = { class: "text-sm text-gray-600" };
427
+ const _sfc_main$J = {
416
428
  __name: "ActionMessage",
417
429
  props: {
418
430
  on: Boolean
@@ -426,7 +438,7 @@ const _sfc_main$F = {
426
438
  "leave-to-class": "opacity-0"
427
439
  }, {
428
440
  default: withCtx(() => [
429
- withDirectives(createElementVNode("div", _hoisted_1$D, [
441
+ withDirectives(createElementVNode("div", _hoisted_1$w, [
430
442
  renderSlot(_ctx.$slots, "default")
431
443
  ], 512), [
432
444
  [vShow, __props.on]
@@ -445,36 +457,36 @@ const _export_sfc = (sfc, props) => {
445
457
  }
446
458
  return target;
447
459
  };
448
- const _sfc_main$E = {};
449
- const _hoisted_1$C = { class: "md:col-span-1 flex justify-between" };
450
- const _hoisted_2$k = { class: "px-4 sm:px-0" };
451
- const _hoisted_3$d = { class: "text-xl font-semibold tracking-tight text-neutral-950 dark:text-neutral-50" };
452
- const _hoisted_4$a = { class: "mt-1 max-w-2xl text-sm text-neutral-600 dark:text-neutral-200" };
453
- const _hoisted_5$8 = { class: "px-4 sm:px-0" };
460
+ const _sfc_main$I = {};
461
+ const _hoisted_1$v = { class: "md:col-span-1 flex justify-between" };
462
+ const _hoisted_2$g = { class: "px-4 sm:px-0" };
463
+ const _hoisted_3$b = { class: "text-xl font-semibold tracking-tight text-neutral-950 dark:text-neutral-50" };
464
+ const _hoisted_4$8 = { class: "mt-1 max-w-2xl text-sm text-neutral-600 dark:text-neutral-200" };
465
+ const _hoisted_5$6 = { class: "px-4 sm:px-0" };
454
466
  function _sfc_render(_ctx, _cache) {
455
- return openBlock(), createElementBlock("div", _hoisted_1$C, [
456
- createElementVNode("div", _hoisted_2$k, [
457
- createElementVNode("h3", _hoisted_3$d, [
467
+ return openBlock(), createElementBlock("div", _hoisted_1$v, [
468
+ createElementVNode("div", _hoisted_2$g, [
469
+ createElementVNode("h3", _hoisted_3$b, [
458
470
  renderSlot(_ctx.$slots, "title")
459
471
  ]),
460
- createElementVNode("p", _hoisted_4$a, [
472
+ createElementVNode("p", _hoisted_4$8, [
461
473
  renderSlot(_ctx.$slots, "description")
462
474
  ])
463
475
  ]),
464
- createElementVNode("div", _hoisted_5$8, [
476
+ createElementVNode("div", _hoisted_5$6, [
465
477
  renderSlot(_ctx.$slots, "aside")
466
478
  ])
467
479
  ]);
468
480
  }
469
- const SectionTitle = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["render", _sfc_render]]);
470
- const _hoisted_1$B = { class: "md:grid md:grid-cols-3 md:gap-6" };
471
- const _hoisted_2$j = { class: "mt-5 md:mt-0 md:col-span-2" };
472
- const _hoisted_3$c = { class: "rounded-lg border border-neutral-200 bg-white px-4 py-5 shadow-sm dark:border-neutral-800 dark:bg-neutral-950 sm:p-6" };
473
- const _sfc_main$D = {
481
+ const SectionTitle = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["render", _sfc_render]]);
482
+ const _hoisted_1$u = { class: "md:grid md:grid-cols-3 md:gap-6" };
483
+ const _hoisted_2$f = { class: "mt-5 md:mt-0 md:col-span-2" };
484
+ const _hoisted_3$a = { class: "rounded-lg border border-neutral-200 bg-white px-4 py-5 shadow-sm dark:border-neutral-800 dark:bg-neutral-950 sm:p-6" };
485
+ const _sfc_main$H = {
474
486
  __name: "ActionSection",
475
487
  setup(__props) {
476
488
  return (_ctx, _cache) => {
477
- return openBlock(), createElementBlock("div", _hoisted_1$B, [
489
+ return openBlock(), createElementBlock("div", _hoisted_1$u, [
478
490
  createVNode(SectionTitle, null, {
479
491
  title: withCtx(() => [
480
492
  renderSlot(_ctx.$slots, "title")
@@ -484,8 +496,8 @@ const _sfc_main$D = {
484
496
  ]),
485
497
  _: 3
486
498
  }),
487
- createElementVNode("div", _hoisted_2$j, [
488
- createElementVNode("div", _hoisted_3$c, [
499
+ createElementVNode("div", _hoisted_2$f, [
500
+ createElementVNode("div", _hoisted_3$a, [
489
501
  renderSlot(_ctx.$slots, "content")
490
502
  ])
491
503
  ])
@@ -493,8 +505,8 @@ const _sfc_main$D = {
493
505
  };
494
506
  }
495
507
  };
496
- const _hoisted_1$A = { class: "sr-only" };
497
- const _sfc_main$C = {
508
+ const _hoisted_1$t = { class: "sr-only" };
509
+ const _sfc_main$G = {
498
510
  __name: "Badge",
499
511
  props: {
500
512
  type: {
@@ -559,7 +571,7 @@ const _sfc_main$C = {
559
571
  createElementVNode("span", {
560
572
  class: normalizeClass(["w-2 h-2 rounded-full", colorClasses[__props.color].dot])
561
573
  }, null, 2),
562
- createElementVNode("span", _hoisted_1$A, [
574
+ createElementVNode("span", _hoisted_1$t, [
563
575
  renderSlot(_ctx.$slots, "default")
564
576
  ])
565
577
  ], 2)) : (openBlock(), createElementBlock("span", {
@@ -576,8 +588,8 @@ const _sfc_main$C = {
576
588
  };
577
589
  }
578
590
  };
579
- const _hoisted_1$z = ["type", "disabled"];
580
- const _sfc_main$B = /* @__PURE__ */ Object.assign({
591
+ const _hoisted_1$s = ["type", "disabled"];
592
+ const _sfc_main$F = /* @__PURE__ */ Object.assign({
581
593
  inheritAttrs: false
582
594
  }, {
583
595
  __name: "Button",
@@ -644,12 +656,12 @@ const _sfc_main$B = /* @__PURE__ */ Object.assign({
644
656
  class: buttonClasses.value
645
657
  }), [
646
658
  renderSlot(_ctx.$slots, "default")
647
- ], 16, _hoisted_1$z);
659
+ ], 16, _hoisted_1$s);
648
660
  };
649
661
  }
650
662
  });
651
- const _hoisted_1$y = ["value"];
652
- const _sfc_main$A = {
663
+ const _hoisted_1$r = ["value"];
664
+ const _sfc_main$E = {
653
665
  __name: "Checkbox",
654
666
  props: {
655
667
  checked: {
@@ -679,14 +691,14 @@ const _sfc_main$A = {
679
691
  type: "checkbox",
680
692
  value: __props.value,
681
693
  class: "rounded border-neutral-300 text-neutral-900 shadow-sm focus:ring-neutral-900 dark:border-neutral-700 dark:bg-neutral-950 dark:text-neutral-100 dark:focus:ring-neutral-100"
682
- }, null, 8, _hoisted_1$y)), [
694
+ }, null, 8, _hoisted_1$r)), [
683
695
  [vModelCheckbox, proxyChecked.value]
684
696
  ]);
685
697
  };
686
698
  }
687
699
  };
688
- const _hoisted_1$x = ["checked", "disabled"];
689
- const _sfc_main$z = {
700
+ const _hoisted_1$q = ["name", "checked", "disabled"];
701
+ const _sfc_main$D = {
690
702
  __name: "CheckboxInput",
691
703
  props: {
692
704
  modelValue: {
@@ -705,6 +717,10 @@ const _sfc_main$z = {
705
717
  type: String,
706
718
  default: ""
707
719
  },
720
+ name: {
721
+ type: String,
722
+ default: void 0
723
+ },
708
724
  disabled: {
709
725
  type: Boolean,
710
726
  default: false
@@ -736,12 +752,13 @@ const _sfc_main$z = {
736
752
  createElementVNode("input", {
737
753
  type: "checkbox",
738
754
  class: "sr-only",
755
+ name: __props.name,
739
756
  checked: isChecked.value,
740
757
  disabled: __props.disabled,
741
758
  onChange,
742
759
  onFocus: handleFocus,
743
760
  onBlur: handleBlur
744
- }, null, 40, _hoisted_1$x),
761
+ }, null, 40, _hoisted_1$q),
745
762
  createElementVNode("span", {
746
763
  class: normalizeClass(["inline-flex h-4 w-4 items-center justify-center border text-[10px] font-bold leading-none", [
747
764
  isChecked.value ? "border-current bg-white/15 text-current dark:bg-neutral-900/15" : "border-current/70 text-transparent",
@@ -753,21 +770,21 @@ const _sfc_main$z = {
753
770
  };
754
771
  }
755
772
  };
756
- const _hoisted_1$w = { class: "relative flex items-center" };
757
- const _hoisted_2$i = {
773
+ const _hoisted_1$p = { class: "relative flex items-center" };
774
+ const _hoisted_2$e = {
758
775
  key: 0,
759
776
  class: "absolute inset-y-0 left-0 flex items-center pointer-events-none pl-3"
760
777
  };
761
- const _hoisted_3$b = ["type", "value", "disabled"];
762
- const _hoisted_4$9 = ["aria-label"];
763
- const _hoisted_5$7 = {
778
+ const _hoisted_3$9 = ["type", "value", "disabled"];
779
+ const _hoisted_4$7 = ["aria-label"];
780
+ const _hoisted_5$5 = {
764
781
  key: 0,
765
782
  class: "h-5 w-5",
766
783
  fill: "none",
767
784
  stroke: "currentColor",
768
785
  viewBox: "0 0 24 24"
769
786
  };
770
- const _hoisted_6$7 = {
787
+ const _hoisted_6$5 = {
771
788
  key: 1,
772
789
  class: "h-5 w-5",
773
790
  fill: "none",
@@ -775,7 +792,7 @@ const _hoisted_6$7 = {
775
792
  viewBox: "0 0 24 24"
776
793
  };
777
794
  const DEFAULT_MAX_LENGTH$1 = 254;
778
- const _sfc_main$y = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
795
+ const _sfc_main$C = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
779
796
  __name: "TextInput",
780
797
  props: {
781
798
  modelValue: {
@@ -834,8 +851,8 @@ const _sfc_main$y = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
834
851
  });
835
852
  __expose({ focus: () => input.value?.focus() });
836
853
  return (_ctx, _cache) => {
837
- return openBlock(), createElementBlock("div", _hoisted_1$w, [
838
- isPasswordField.value ? (openBlock(), createElementBlock("div", _hoisted_2$i, [
854
+ return openBlock(), createElementBlock("div", _hoisted_1$p, [
855
+ isPasswordField.value ? (openBlock(), createElementBlock("div", _hoisted_2$e, [
839
856
  createVNode(unref(LockClosedIcon), { class: "h-5 w-5 text-neutral-400 dark:text-neutral-200" })
840
857
  ])) : createCommentVNode("", true),
841
858
  createElementVNode("input", mergeProps({
@@ -849,7 +866,7 @@ const _sfc_main$y = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
849
866
  onInput: _cache[0] || (_cache[0] = ($event) => emit("update:modelValue", $event.target.value)),
850
867
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur", $event)),
851
868
  onWheel: handleWheel
852
- }), null, 16, _hoisted_3$b),
869
+ }), null, 16, _hoisted_3$9),
853
870
  isPasswordField.value ? (openBlock(), createElementBlock("button", {
854
871
  key: 1,
855
872
  type: "button",
@@ -857,14 +874,14 @@ const _sfc_main$y = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
857
874
  "aria-label": revealed.value ? "Hide password" : "Show password",
858
875
  onClick: toggleVisibility
859
876
  }, [
860
- revealed.value ? (openBlock(), createElementBlock("svg", _hoisted_5$7, [..._cache[2] || (_cache[2] = [
877
+ revealed.value ? (openBlock(), createElementBlock("svg", _hoisted_5$5, [..._cache[2] || (_cache[2] = [
861
878
  createElementVNode("path", {
862
879
  "stroke-linecap": "round",
863
880
  "stroke-linejoin": "round",
864
881
  "stroke-width": "2",
865
882
  d: "M13.875 18.825A10.05 10.05 0 0112 19c-5 0-9.27-3.11-11-7 1.01-2.27 2.78-4.1 5-5.32m3.08-1.3A9.96 9.96 0 0112 5c5 0 9.27 3.11 11 7a11.03 11.03 0 01-4.16 4.91M15 12a3 3 0 00-3-3m0 0a3 3 0 00-2.94 3.59M3 3l18 18"
866
883
  }, null, -1)
867
- ])])) : (openBlock(), createElementBlock("svg", _hoisted_6$7, [..._cache[3] || (_cache[3] = [
884
+ ])])) : (openBlock(), createElementBlock("svg", _hoisted_6$5, [..._cache[3] || (_cache[3] = [
868
885
  createElementVNode("path", {
869
886
  "stroke-linecap": "round",
870
887
  "stroke-linejoin": "round",
@@ -878,14 +895,14 @@ const _sfc_main$y = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
878
895
  d: "M2.458 12C3.732 7.943 7.523 5 12 5s8.268 2.943 9.542 7c-1.274 4.057-5.065 7-9.542 7S3.732 16.057 2.458 12z"
879
896
  }, null, -1)
880
897
  ])]))
881
- ], 8, _hoisted_4$9)) : createCommentVNode("", true)
898
+ ], 8, _hoisted_4$7)) : createCommentVNode("", true)
882
899
  ]);
883
900
  };
884
901
  }
885
902
  });
886
- const _hoisted_1$v = ["value", "disabled"];
903
+ const _hoisted_1$o = ["value", "disabled"];
887
904
  const DEFAULT_MAX_LENGTH = 1e3;
888
- const _sfc_main$x = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
905
+ const _sfc_main$B = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
889
906
  __name: "TextArea",
890
907
  props: {
891
908
  modelValue: String,
@@ -955,13 +972,13 @@ const _sfc_main$x = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
955
972
  value: props.modelValue,
956
973
  disabled: props.disabled,
957
974
  onInput: updateValue
958
- }), null, 16, _hoisted_1$v)
975
+ }), null, 16, _hoisted_1$o)
959
976
  ]);
960
977
  };
961
978
  }
962
979
  });
963
- const _hoisted_1$u = ["onClick"];
964
- const _sfc_main$w = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
980
+ const _hoisted_1$n = ["onClick"];
981
+ const _sfc_main$A = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
965
982
  __name: "CustomSelect",
966
983
  props: {
967
984
  modelValue: {
@@ -1241,7 +1258,7 @@ const _sfc_main$w = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1241
1258
  }
1242
1259
  ]),
1243
1260
  onClick: withModifiers(($event) => selectOption(option), ["stop"])
1244
- }, toDisplayString(optionText(option)), 11, _hoisted_1$u);
1261
+ }, toDisplayString(optionText(option)), 11, _hoisted_1$n);
1245
1262
  }), 128))
1246
1263
  ], 6)) : createCommentVNode("", true)
1247
1264
  ]))
@@ -1252,7 +1269,7 @@ const _sfc_main$w = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1252
1269
  };
1253
1270
  }
1254
1271
  });
1255
- const _sfc_main$v = {
1272
+ const _sfc_main$z = {
1256
1273
  __name: "SelectInput",
1257
1274
  props: {
1258
1275
  modelValue: {
@@ -1340,7 +1357,7 @@ const _sfc_main$v = {
1340
1357
  setup(__props, { emit: __emit }) {
1341
1358
  const emit = __emit;
1342
1359
  return (_ctx, _cache) => {
1343
- return openBlock(), createBlock(_sfc_main$w, mergeProps({
1360
+ return openBlock(), createBlock(_sfc_main$A, mergeProps({
1344
1361
  "model-value": __props.modelValue,
1345
1362
  "model-modifiers": __props.modelModifiers,
1346
1363
  options: __props.options,
@@ -1366,8 +1383,8 @@ const _sfc_main$v = {
1366
1383
  };
1367
1384
  }
1368
1385
  };
1369
- const _hoisted_1$t = ["type", "max", "value", "disabled"];
1370
- const _sfc_main$u = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1386
+ const _hoisted_1$m = ["type", "max", "value", "disabled"];
1387
+ const _sfc_main$y = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1371
1388
  __name: "DateInput",
1372
1389
  props: {
1373
1390
  modelValue: {
@@ -1447,22 +1464,22 @@ const _sfc_main$u = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1447
1464
  disabled: props.disabled,
1448
1465
  onInput: handleDateInput,
1449
1466
  onChange: handleDateInput
1450
- }), null, 16, _hoisted_1$t);
1467
+ }), null, 16, _hoisted_1$m);
1451
1468
  };
1452
1469
  }
1453
1470
  });
1454
- const _hoisted_1$s = { class: "relative" };
1455
- const _hoisted_2$h = { class: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none" };
1456
- const _hoisted_3$a = ["accept"];
1457
- const _hoisted_4$8 = {
1471
+ const _hoisted_1$l = { class: "relative" };
1472
+ const _hoisted_2$d = { class: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none" };
1473
+ const _hoisted_3$8 = ["accept"];
1474
+ const _hoisted_4$6 = {
1458
1475
  key: 0,
1459
1476
  class: "mt-4 rounded-lg border border-neutral-200 bg-neutral-50 p-4 dark:border-neutral-800 dark:bg-neutral-900/50"
1460
1477
  };
1461
- const _hoisted_5$6 = { class: "flex items-center space-x-4" };
1462
- const _hoisted_6$6 = ["src"];
1463
- const _hoisted_7$6 = { class: "text-sm font-medium text-neutral-900 dark:text-neutral-50" };
1464
- const _hoisted_8$3 = { class: "text-xs text-neutral-500 dark:text-neutral-200" };
1465
- const _sfc_main$t = {
1478
+ const _hoisted_5$4 = { class: "flex items-center space-x-4" };
1479
+ const _hoisted_6$4 = ["src"];
1480
+ const _hoisted_7$4 = { class: "text-sm font-medium text-neutral-900 dark:text-neutral-50" };
1481
+ const _hoisted_8$2 = { class: "text-xs text-neutral-500 dark:text-neutral-200" };
1482
+ const _sfc_main$x = {
1466
1483
  __name: "ImageInput",
1467
1484
  props: {
1468
1485
  currentImageUrl: {
@@ -1496,8 +1513,8 @@ const _sfc_main$t = {
1496
1513
  };
1497
1514
  return (_ctx, _cache) => {
1498
1515
  return openBlock(), createElementBlock("div", null, [
1499
- createElementVNode("div", _hoisted_1$s, [
1500
- createElementVNode("div", _hoisted_2$h, [
1516
+ createElementVNode("div", _hoisted_1$l, [
1517
+ createElementVNode("div", _hoisted_2$d, [
1501
1518
  createVNode(unref(PhotoIcon), { class: "size-5 text-neutral-400 dark:text-neutral-200" })
1502
1519
  ]),
1503
1520
  createElementVNode("input", mergeProps(__props.attrs, {
@@ -1505,18 +1522,18 @@ const _sfc_main$t = {
1505
1522
  accept: __props.accept,
1506
1523
  class: "block w-full cursor-pointer rounded-lg border border-neutral-200 bg-white py-3 pl-10 pr-4 text-sm text-neutral-700 shadow-sm transition-all duration-200 file:mr-4 file:rounded-md file:border-0 file:bg-neutral-900 file:px-4 file:py-2 file:text-sm file:font-medium file:text-neutral-50 hover:file:bg-neutral-800 focus:border-neutral-900 focus:outline-none focus:ring-2 focus:ring-neutral-950/10 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-100 dark:file:bg-neutral-800 dark:file:text-neutral-50 dark:hover:file:bg-neutral-700 dark:focus:border-neutral-100 dark:focus:ring-neutral-100/10",
1507
1524
  onChange: handleFileChange
1508
- }), null, 16, _hoisted_3$a)
1525
+ }), null, 16, _hoisted_3$8)
1509
1526
  ]),
1510
- props.currentImageUrl ? (openBlock(), createElementBlock("div", _hoisted_4$8, [
1511
- createElementVNode("div", _hoisted_5$6, [
1527
+ props.currentImageUrl ? (openBlock(), createElementBlock("div", _hoisted_4$6, [
1528
+ createElementVNode("div", _hoisted_5$4, [
1512
1529
  createElementVNode("img", {
1513
1530
  src: props.currentImageUrl,
1514
1531
  alt: "Current logo",
1515
1532
  class: "h-16 w-auto max-w-24 object-contain rounded-lg shadow-sm"
1516
- }, null, 8, _hoisted_6$6),
1533
+ }, null, 8, _hoisted_6$4),
1517
1534
  createElementVNode("div", null, [
1518
- createElementVNode("p", _hoisted_7$6, toDisplayString(props.currentLabel), 1),
1519
- createElementVNode("p", _hoisted_8$3, toDisplayString(props.currentSubtext), 1)
1535
+ createElementVNode("p", _hoisted_7$4, toDisplayString(props.currentLabel), 1),
1536
+ createElementVNode("p", _hoisted_8$2, toDisplayString(props.currentSubtext), 1)
1520
1537
  ])
1521
1538
  ])
1522
1539
  ])) : createCommentVNode("", true)
@@ -1524,9 +1541,9 @@ const _sfc_main$t = {
1524
1541
  };
1525
1542
  }
1526
1543
  };
1527
- const _hoisted_1$r = { class: "flex h-12 overflow-hidden rounded-lg border border-neutral-200 bg-white text-sm dark:border-neutral-800 dark:bg-neutral-950" };
1528
- const _hoisted_2$g = ["disabled", "onClick"];
1529
- const _sfc_main$s = {
1544
+ const _hoisted_1$k = { class: "flex h-12 overflow-hidden rounded-lg border border-neutral-200 bg-white text-sm dark:border-neutral-800 dark:bg-neutral-950" };
1545
+ const _hoisted_2$c = ["disabled", "onClick"];
1546
+ const _sfc_main$w = {
1530
1547
  __name: "NotationInput",
1531
1548
  props: {
1532
1549
  modelValue: {
@@ -1552,7 +1569,7 @@ const _sfc_main$s = {
1552
1569
  const isSelected = (option) => String(option) === String(props.modelValue ?? "");
1553
1570
  const selectOption = (option) => emit("update:modelValue", option);
1554
1571
  return (_ctx, _cache) => {
1555
- return openBlock(), createElementBlock("div", _hoisted_1$r, [
1572
+ return openBlock(), createElementBlock("div", _hoisted_1$k, [
1556
1573
  (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedOptions.value, (option, idx) => {
1557
1574
  return openBlock(), createElementBlock("button", {
1558
1575
  key: `notation-${idx}-${option}`,
@@ -1565,14 +1582,14 @@ const _sfc_main$s = {
1565
1582
  ]]),
1566
1583
  disabled: __props.disabled,
1567
1584
  onClick: ($event) => selectOption(option)
1568
- }, toDisplayString(option), 11, _hoisted_2$g);
1585
+ }, toDisplayString(option), 11, _hoisted_2$c);
1569
1586
  }), 128))
1570
1587
  ]);
1571
1588
  };
1572
1589
  }
1573
1590
  };
1574
- const _hoisted_1$q = ["name", "value", "checked", "disabled"];
1575
- const _sfc_main$r = {
1591
+ const _hoisted_1$j = ["name", "value", "checked", "disabled"];
1592
+ const _sfc_main$v = {
1576
1593
  __name: "RadioInput",
1577
1594
  props: {
1578
1595
  modelValue: {
@@ -1627,14 +1644,14 @@ const _sfc_main$r = {
1627
1644
  onChange,
1628
1645
  onFocus: handleFocus,
1629
1646
  onBlur: handleBlur
1630
- }, null, 40, _hoisted_1$q),
1647
+ }, null, 40, _hoisted_1$j),
1631
1648
  createElementVNode("span", null, toDisplayString(isChecked.value ? "✓" : "○") + " " + toDisplayString(__props.label), 1)
1632
1649
  ], 2);
1633
1650
  };
1634
1651
  }
1635
1652
  };
1636
- const _hoisted_1$p = { class: "flex flex-wrap gap-3" };
1637
- const _sfc_main$q = {
1653
+ const _hoisted_1$i = { class: "flex flex-wrap gap-3" };
1654
+ const _sfc_main$u = {
1638
1655
  __name: "RadioMultipleInput",
1639
1656
  props: {
1640
1657
  modelValue: {
@@ -1663,9 +1680,9 @@ const _sfc_main$q = {
1663
1680
  });
1664
1681
  const selectOption = (option) => emit("update:modelValue", option);
1665
1682
  return (_ctx, _cache) => {
1666
- return openBlock(), createElementBlock("div", _hoisted_1$p, [
1683
+ return openBlock(), createElementBlock("div", _hoisted_1$i, [
1667
1684
  (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedOptions.value, (option) => {
1668
- return openBlock(), createBlock(_sfc_main$o, {
1685
+ return openBlock(), createBlock(_sfc_main$s, {
1669
1686
  key: `radio-${__props.name ?? "group"}-${option}`,
1670
1687
  type: "radio-input",
1671
1688
  "model-value": props.modelValue,
@@ -1680,11 +1697,11 @@ const _sfc_main$q = {
1680
1697
  };
1681
1698
  }
1682
1699
  };
1683
- const _hoisted_1$o = {
1700
+ const _hoisted_1$h = {
1684
1701
  key: 0,
1685
1702
  class: "min-h-[12rem] w-full rounded-lg border border-slate-300 bg-slate-50"
1686
1703
  };
1687
- const _sfc_main$p = {
1704
+ const _sfc_main$t = {
1688
1705
  __name: "TinyEditor",
1689
1706
  props: {
1690
1707
  modelValue: {
@@ -1789,7 +1806,7 @@ const _sfc_main$p = {
1789
1806
  };
1790
1807
  return (_ctx, _cache) => {
1791
1808
  return openBlock(), createElementBlock("div", { key: editorKey.value }, [
1792
- !isEditorReady.value ? (openBlock(), createElementBlock("div", _hoisted_1$o)) : (openBlock(), createBlock(unref(Editor), {
1809
+ !isEditorReady.value ? (openBlock(), createElementBlock("div", _hoisted_1$h)) : (openBlock(), createBlock(unref(Editor), {
1793
1810
  key: 1,
1794
1811
  "initial-value": content.value,
1795
1812
  "license-key": __props.licenseKey,
@@ -1803,17 +1820,17 @@ const _sfc_main$p = {
1803
1820
  };
1804
1821
  }
1805
1822
  };
1806
- const _hoisted_1$n = ["for"];
1807
- const _hoisted_2$f = {
1823
+ const _hoisted_1$g = ["for"];
1824
+ const _hoisted_2$b = {
1808
1825
  key: 1,
1809
1826
  class: "text-xs text-gray-500 mb-1 block break-all"
1810
1827
  };
1811
- const _hoisted_3$9 = {
1828
+ const _hoisted_3$7 = {
1812
1829
  key: 15,
1813
1830
  class: "flex items-center mt-2 text-sm text-red-600"
1814
1831
  };
1815
1832
  const defaultFieldClass = "block w-full rounded-lg border border-neutral-200 bg-white px-4 py-3 text-sm text-neutral-950 placeholder:text-neutral-400 shadow-sm transition-all duration-200 focus:border-neutral-900 focus:outline-none focus:ring-2 focus:ring-neutral-950/10 dark:border-neutral-800 dark:bg-neutral-950 dark:text-neutral-50 dark:placeholder:text-neutral-500 dark:focus:border-neutral-100 dark:focus:ring-neutral-100/10";
1816
- const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1833
+ const _sfc_main$s = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1817
1834
  __name: "InputGroup",
1818
1835
  props: {
1819
1836
  type: {
@@ -1999,6 +2016,7 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1999
2016
  ...attrs,
2000
2017
  class: [defaultFieldClass, attrs.class],
2001
2018
  type: props.type,
2019
+ name: props.name,
2002
2020
  modelValue: props.modelValue,
2003
2021
  disabled: props.disabled,
2004
2022
  disabledClass: props.disabledClass
@@ -2006,6 +2024,7 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2006
2024
  const textAreaBindings = computed(() => ({
2007
2025
  ...attrs,
2008
2026
  class: [defaultFieldClass, attrs.class],
2027
+ name: props.name,
2009
2028
  modelValue: props.modelValue,
2010
2029
  disabled: props.disabled,
2011
2030
  disabledClass: props.disabledClass
@@ -2013,6 +2032,7 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2013
2032
  const dateBindings = computed(() => ({
2014
2033
  ...attrs,
2015
2034
  class: [defaultFieldClass, attrs.class],
2035
+ name: props.name,
2016
2036
  modelValue: props.modelValue,
2017
2037
  withTimestamp: props.type === "datetime-local" || props.withTimestamp,
2018
2038
  disabled: props.disabled,
@@ -2022,6 +2042,7 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2022
2042
  const inputProps = {
2023
2043
  ...attrs,
2024
2044
  class: [defaultFieldClass, attrs.class],
2045
+ name: props.name,
2025
2046
  modelValue: props.modelValue,
2026
2047
  modelModifiers: props.modelModifiers,
2027
2048
  options: props.options,
@@ -2044,12 +2065,14 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2044
2065
  });
2045
2066
  const notationBindings = computed(() => ({
2046
2067
  ...attrs,
2068
+ name: props.name,
2047
2069
  modelValue: props.modelValue,
2048
2070
  options: props.options,
2049
2071
  disabled: props.disabled
2050
2072
  }));
2051
2073
  const checkboxBindings = computed(() => ({
2052
2074
  ...attrs,
2075
+ name: props.name,
2053
2076
  modelValue: props.modelValue,
2054
2077
  options: props.options,
2055
2078
  disabled: props.disabled
@@ -2063,6 +2086,7 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2063
2086
  }));
2064
2087
  const checkboxSingleBindings = computed(() => ({
2065
2088
  ...attrs,
2089
+ name: props.name,
2066
2090
  modelValue: props.modelValue,
2067
2091
  label: props.label || attrs.label || "",
2068
2092
  disabled: props.disabled
@@ -2105,39 +2129,39 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2105
2129
  key: 0,
2106
2130
  for: fieldId.value,
2107
2131
  class: "text-base font-semibold text-gray-900 dark:text-gray-50 mb-1 block"
2108
- }, toDisplayString(__props.label), 9, _hoisted_1$n)) : createCommentVNode("", true),
2109
- __props.helperText && !showsInlineChoiceControl.value ? (openBlock(), createElementBlock("span", _hoisted_2$f, toDisplayString(__props.helperText), 1)) : createCommentVNode("", true),
2110
- isTextareaType.value ? (openBlock(), createBlock(_sfc_main$x, mergeProps({ key: 2 }, textAreaBindings.value, {
2132
+ }, toDisplayString(__props.label), 9, _hoisted_1$g)) : createCommentVNode("", true),
2133
+ __props.helperText && !showsInlineChoiceControl.value ? (openBlock(), createElementBlock("span", _hoisted_2$b, toDisplayString(__props.helperText), 1)) : createCommentVNode("", true),
2134
+ isTextareaType.value ? (openBlock(), createBlock(_sfc_main$B, mergeProps({ key: 2 }, textAreaBindings.value, {
2111
2135
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("update:modelValue", $event)),
2112
2136
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur", $event))
2113
- }), null, 16)) : isTinyEditorType.value ? (openBlock(), createBlock(_sfc_main$p, mergeProps({ key: 3 }, tinyEditorBindings.value, {
2137
+ }), null, 16)) : isTinyEditorType.value ? (openBlock(), createBlock(_sfc_main$t, mergeProps({ key: 3 }, tinyEditorBindings.value, {
2114
2138
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => emit("update:modelValue", $event)),
2115
2139
  onBlur: _cache[3] || (_cache[3] = ($event) => emit("blur", $event))
2116
- }), null, 16)) : isSelectType.value ? (openBlock(), createBlock(_sfc_main$v, mergeProps({ key: 4 }, selectBindings.value, {
2140
+ }), null, 16)) : isSelectType.value ? (openBlock(), createBlock(_sfc_main$z, mergeProps({ key: 4 }, selectBindings.value, {
2117
2141
  "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => emit("update:modelValue", $event)),
2118
2142
  onBlur: _cache[5] || (_cache[5] = ($event) => emit("blur", $event))
2119
- }), null, 16)) : isDateType.value ? (openBlock(), createBlock(_sfc_main$u, mergeProps({ key: 5 }, dateBindings.value, {
2143
+ }), null, 16)) : isDateType.value ? (openBlock(), createBlock(_sfc_main$y, mergeProps({ key: 5 }, dateBindings.value, {
2120
2144
  "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => emit("update:modelValue", $event)),
2121
2145
  onBlur: _cache[7] || (_cache[7] = ($event) => emit("blur", $event))
2122
- }), null, 16)) : isTextLikeType.value ? (openBlock(), createBlock(_sfc_main$y, mergeProps({ key: 6 }, textInputBindings.value, {
2146
+ }), null, 16)) : isTextLikeType.value ? (openBlock(), createBlock(_sfc_main$C, mergeProps({ key: 6 }, textInputBindings.value, {
2123
2147
  "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => emit("update:modelValue", $event)),
2124
2148
  onBlur: _cache[9] || (_cache[9] = ($event) => emit("blur", $event))
2125
- }), null, 16)) : isImageType.value ? (openBlock(), createBlock(_sfc_main$t, mergeProps({ key: 7 }, imageBindings.value, {
2149
+ }), null, 16)) : isImageType.value ? (openBlock(), createBlock(_sfc_main$x, mergeProps({ key: 7 }, imageBindings.value, {
2126
2150
  "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => emit("update:modelValue", $event)),
2127
2151
  onBlur: _cache[11] || (_cache[11] = ($event) => emit("blur", $event))
2128
- }), null, 16)) : isCheckboxSingleType.value ? (openBlock(), createBlock(_sfc_main$z, mergeProps({ key: 8 }, checkboxSingleBindings.value, {
2152
+ }), null, 16)) : isCheckboxSingleType.value ? (openBlock(), createBlock(_sfc_main$D, mergeProps({ key: 8 }, checkboxSingleBindings.value, {
2129
2153
  "onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => emit("update:modelValue", $event)),
2130
2154
  onBlur: _cache[13] || (_cache[13] = ($event) => emit("blur", $event))
2131
- }), null, 16)) : isRadioSingleType.value ? (openBlock(), createBlock(_sfc_main$r, mergeProps({ key: 9 }, radioSingleBindings.value, {
2155
+ }), null, 16)) : isRadioSingleType.value ? (openBlock(), createBlock(_sfc_main$v, mergeProps({ key: 9 }, radioSingleBindings.value, {
2132
2156
  "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => emit("update:modelValue", $event)),
2133
2157
  onBlur: _cache[15] || (_cache[15] = ($event) => emit("blur", $event))
2134
- }), null, 16)) : isNotationType.value ? (openBlock(), createBlock(_sfc_main$s, mergeProps({ key: 10 }, notationBindings.value, {
2158
+ }), null, 16)) : isNotationType.value ? (openBlock(), createBlock(_sfc_main$w, mergeProps({ key: 10 }, notationBindings.value, {
2135
2159
  "onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => emit("update:modelValue", $event)),
2136
2160
  onBlur: _cache[17] || (_cache[17] = ($event) => emit("blur", $event))
2137
- }), null, 16)) : isCheckboxType.value ? (openBlock(), createBlock(_sfc_main$n, mergeProps({ key: 11 }, checkboxBindings.value, {
2161
+ }), null, 16)) : isCheckboxType.value ? (openBlock(), createBlock(_sfc_main$r, mergeProps({ key: 11 }, checkboxBindings.value, {
2138
2162
  "onUpdate:modelValue": _cache[18] || (_cache[18] = ($event) => emit("update:modelValue", $event)),
2139
2163
  onBlur: _cache[19] || (_cache[19] = ($event) => emit("blur", $event))
2140
- }), null, 16)) : isRadioType.value ? (openBlock(), createBlock(_sfc_main$q, mergeProps({ key: 12 }, radioBindings.value, {
2164
+ }), null, 16)) : isRadioType.value ? (openBlock(), createBlock(_sfc_main$u, mergeProps({ key: 12 }, radioBindings.value, {
2141
2165
  "onUpdate:modelValue": _cache[20] || (_cache[20] = ($event) => emit("update:modelValue", $event)),
2142
2166
  onBlur: _cache[21] || (_cache[21] = ($event) => emit("blur", $event))
2143
2167
  }), null, 16)) : isNoComponentType.value ? renderSlot(_ctx.$slots, "unsupported-type", {
@@ -2153,7 +2177,7 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2153
2177
  updateValue,
2154
2178
  attrs: unref(attrs)
2155
2179
  }),
2156
- hasError.value ? (openBlock(), createElementBlock("div", _hoisted_3$9, [
2180
+ hasError.value ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
2157
2181
  createVNode(unref(ExclamationCircleIcon), { class: "mr-1 h-4 w-4 flex-shrink-0" }),
2158
2182
  createElementVNode("span", null, toDisplayString(__props.errorMessage), 1)
2159
2183
  ])) : createCommentVNode("", true)
@@ -2161,8 +2185,8 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2161
2185
  };
2162
2186
  }
2163
2187
  });
2164
- const _hoisted_1$m = { class: "flex flex-wrap gap-3" };
2165
- const _sfc_main$n = {
2188
+ const _hoisted_1$f = { class: "flex flex-wrap gap-3" };
2189
+ const _sfc_main$r = {
2166
2190
  __name: "CheckboxMultipleInput",
2167
2191
  props: {
2168
2192
  modelValue: {
@@ -2173,6 +2197,10 @@ const _sfc_main$n = {
2173
2197
  type: Array,
2174
2198
  default: () => []
2175
2199
  },
2200
+ name: {
2201
+ type: String,
2202
+ default: void 0
2203
+ },
2176
2204
  disabled: {
2177
2205
  type: Boolean,
2178
2206
  default: false
@@ -2199,24 +2227,25 @@ const _sfc_main$n = {
2199
2227
  emit("update:modelValue", nextSelection);
2200
2228
  };
2201
2229
  return (_ctx, _cache) => {
2202
- return openBlock(), createElementBlock("div", _hoisted_1$m, [
2230
+ return openBlock(), createElementBlock("div", _hoisted_1$f, [
2203
2231
  (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedOptions.value, (option) => {
2204
- return openBlock(), createBlock(_sfc_main$o, {
2232
+ return openBlock(), createBlock(_sfc_main$s, {
2205
2233
  key: `checkbox-${option}`,
2206
2234
  type: "checkbox-input",
2235
+ name: __props.name,
2207
2236
  "model-value": isChecked(option),
2208
2237
  value: true,
2209
2238
  "unchecked-value": false,
2210
2239
  label: option,
2211
2240
  disabled: __props.disabled,
2212
2241
  "onUpdate:modelValue": (checked) => updateSelection(option, checked)
2213
- }, null, 8, ["model-value", "label", "disabled", "onUpdate:modelValue"]);
2242
+ }, null, 8, ["name", "model-value", "label", "disabled", "onUpdate:modelValue"]);
2214
2243
  }), 128))
2215
2244
  ]);
2216
2245
  };
2217
2246
  }
2218
2247
  };
2219
- const _sfc_main$m = {
2248
+ const _sfc_main$q = {
2220
2249
  __name: "Modal",
2221
2250
  props: {
2222
2251
  show: {
@@ -2357,14 +2386,14 @@ const _sfc_main$m = {
2357
2386
  };
2358
2387
  }
2359
2388
  };
2360
- const _hoisted_1$l = { class: "bg-white px-4 pb-4 pt-5 dark:bg-neutral-950 sm:p-6 sm:pb-4" };
2361
- const _hoisted_2$e = { class: "sm:flex sm:items-start" };
2362
- const _hoisted_3$8 = { class: "mx-auto flex size-12 shrink-0 items-center justify-center rounded-full bg-red-100 dark:bg-red-950/60 sm:mx-0 sm:size-10" };
2363
- const _hoisted_4$7 = { class: "mt-3 text-center sm:mt-0 sm:ms-4 sm:text-start" };
2364
- const _hoisted_5$5 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
2365
- const _hoisted_6$5 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
2366
- const _hoisted_7$5 = { class: "flex flex-col-reverse gap-4 border-t border-neutral-200 bg-neutral-50 px-6 py-4 text-end dark:border-neutral-800 dark:bg-neutral-900/60 lg:flex-row lg:justify-end lg:gap-0" };
2367
- const _sfc_main$l = {
2389
+ const _hoisted_1$e = { class: "bg-white px-4 pb-4 pt-5 dark:bg-neutral-950 sm:p-6 sm:pb-4" };
2390
+ const _hoisted_2$a = { class: "sm:flex sm:items-start" };
2391
+ const _hoisted_3$6 = { class: "mx-auto flex size-12 shrink-0 items-center justify-center rounded-full bg-red-100 dark:bg-red-950/60 sm:mx-0 sm:size-10" };
2392
+ const _hoisted_4$5 = { class: "mt-3 text-center sm:mt-0 sm:ms-4 sm:text-start" };
2393
+ const _hoisted_5$3 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
2394
+ const _hoisted_6$3 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
2395
+ const _hoisted_7$3 = { class: "flex flex-col-reverse gap-4 border-t border-neutral-200 bg-neutral-50 px-6 py-4 text-end dark:border-neutral-800 dark:bg-neutral-900/60 lg:flex-row lg:justify-end lg:gap-0" };
2396
+ const _sfc_main$p = {
2368
2397
  __name: "ConfirmationModal",
2369
2398
  props: {
2370
2399
  show: {
@@ -2392,7 +2421,7 @@ const _sfc_main$l = {
2392
2421
  emit("close");
2393
2422
  };
2394
2423
  return (_ctx, _cache) => {
2395
- return openBlock(), createBlock(_sfc_main$m, {
2424
+ return openBlock(), createBlock(_sfc_main$q, {
2396
2425
  show: __props.show,
2397
2426
  "max-width": __props.maxWidth,
2398
2427
  closeable: __props.closeable,
@@ -2400,22 +2429,22 @@ const _sfc_main$l = {
2400
2429
  onClose: close
2401
2430
  }, {
2402
2431
  default: withCtx(() => [
2403
- createElementVNode("div", _hoisted_1$l, [
2404
- createElementVNode("div", _hoisted_2$e, [
2405
- createElementVNode("div", _hoisted_3$8, [
2432
+ createElementVNode("div", _hoisted_1$e, [
2433
+ createElementVNode("div", _hoisted_2$a, [
2434
+ createElementVNode("div", _hoisted_3$6, [
2406
2435
  createVNode(unref(ExclamationTriangleIcon), { class: "size-6 text-red-600 dark:text-neutral-100" })
2407
2436
  ]),
2408
- createElementVNode("div", _hoisted_4$7, [
2409
- createElementVNode("h3", _hoisted_5$5, [
2437
+ createElementVNode("div", _hoisted_4$5, [
2438
+ createElementVNode("h3", _hoisted_5$3, [
2410
2439
  renderSlot(_ctx.$slots, "title")
2411
2440
  ]),
2412
- createElementVNode("div", _hoisted_6$5, [
2441
+ createElementVNode("div", _hoisted_6$3, [
2413
2442
  renderSlot(_ctx.$slots, "content")
2414
2443
  ])
2415
2444
  ])
2416
2445
  ])
2417
2446
  ]),
2418
- createElementVNode("div", _hoisted_7$5, [
2447
+ createElementVNode("div", _hoisted_7$3, [
2419
2448
  renderSlot(_ctx.$slots, "footer")
2420
2449
  ])
2421
2450
  ]),
@@ -2424,11 +2453,11 @@ const _sfc_main$l = {
2424
2453
  };
2425
2454
  }
2426
2455
  };
2427
- const _hoisted_1$k = { class: "px-6 py-4" };
2428
- const _hoisted_2$d = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
2429
- const _hoisted_3$7 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
2430
- const _hoisted_4$6 = { class: "flex flex-row justify-end border-t border-neutral-200 bg-neutral-50 px-6 py-4 text-end dark:border-neutral-800 dark:bg-neutral-900/60" };
2431
- const _sfc_main$k = {
2456
+ const _hoisted_1$d = { class: "px-6 py-4" };
2457
+ const _hoisted_2$9 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
2458
+ const _hoisted_3$5 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
2459
+ const _hoisted_4$4 = { class: "flex flex-row justify-end border-t border-neutral-200 bg-neutral-50 px-6 py-4 text-end dark:border-neutral-800 dark:bg-neutral-900/60" };
2460
+ const _sfc_main$o = {
2432
2461
  __name: "DialogModal",
2433
2462
  props: {
2434
2463
  show: {
@@ -2451,22 +2480,22 @@ const _sfc_main$k = {
2451
2480
  emit("close");
2452
2481
  };
2453
2482
  return (_ctx, _cache) => {
2454
- return openBlock(), createBlock(_sfc_main$m, {
2483
+ return openBlock(), createBlock(_sfc_main$q, {
2455
2484
  show: __props.show,
2456
2485
  "max-width": __props.maxWidth,
2457
2486
  closeable: __props.closeable,
2458
2487
  onClose: close
2459
2488
  }, {
2460
2489
  default: withCtx(() => [
2461
- createElementVNode("div", _hoisted_1$k, [
2462
- createElementVNode("div", _hoisted_2$d, [
2490
+ createElementVNode("div", _hoisted_1$d, [
2491
+ createElementVNode("div", _hoisted_2$9, [
2463
2492
  renderSlot(_ctx.$slots, "title")
2464
2493
  ]),
2465
- createElementVNode("div", _hoisted_3$7, [
2494
+ createElementVNode("div", _hoisted_3$5, [
2466
2495
  renderSlot(_ctx.$slots, "content")
2467
2496
  ])
2468
2497
  ]),
2469
- createElementVNode("div", _hoisted_4$6, [
2498
+ createElementVNode("div", _hoisted_4$4, [
2470
2499
  renderSlot(_ctx.$slots, "footer")
2471
2500
  ])
2472
2501
  ]),
@@ -2475,8 +2504,8 @@ const _sfc_main$k = {
2475
2504
  };
2476
2505
  }
2477
2506
  };
2478
- const _hoisted_1$j = { class: "relative inline-block w-fit" };
2479
- const _sfc_main$j = {
2507
+ const _hoisted_1$c = { class: "relative inline-block w-fit" };
2508
+ const _sfc_main$n = {
2480
2509
  __name: "Dropdown",
2481
2510
  props: {
2482
2511
  align: {
@@ -2617,7 +2646,7 @@ const _sfc_main$j = {
2617
2646
  window.removeEventListener("scroll", handleViewportChange, true);
2618
2647
  });
2619
2648
  return (_ctx, _cache) => {
2620
- return openBlock(), createElementBlock("div", _hoisted_1$j, [
2649
+ return openBlock(), createElementBlock("div", _hoisted_1$c, [
2621
2650
  createElementVNode("div", {
2622
2651
  ref_key: "triggerRef",
2623
2652
  ref: triggerRef,
@@ -2657,13 +2686,13 @@ const _sfc_main$j = {
2657
2686
  };
2658
2687
  }
2659
2688
  };
2660
- const _hoisted_1$i = {
2689
+ const _hoisted_1$b = {
2661
2690
  key: 0,
2662
2691
  type: "submit",
2663
2692
  class: "block w-full px-4 py-2 text-start text-sm leading-5 text-neutral-700 transition duration-150 ease-in-out hover:bg-neutral-100 focus:bg-neutral-100 focus:outline-none dark:text-neutral-100 dark:hover:bg-neutral-900 dark:focus:bg-neutral-900"
2664
2693
  };
2665
- const _hoisted_2$c = ["href"];
2666
- const _sfc_main$i = {
2694
+ const _hoisted_2$8 = ["href"];
2695
+ const _sfc_main$m = {
2667
2696
  __name: "DropdownLink",
2668
2697
  props: {
2669
2698
  href: String,
@@ -2672,7 +2701,7 @@ const _sfc_main$i = {
2672
2701
  setup(__props) {
2673
2702
  return (_ctx, _cache) => {
2674
2703
  return openBlock(), createElementBlock("div", null, [
2675
- __props.as == "button" ? (openBlock(), createElementBlock("button", _hoisted_1$i, [
2704
+ __props.as == "button" ? (openBlock(), createElementBlock("button", _hoisted_1$b, [
2676
2705
  renderSlot(_ctx.$slots, "default")
2677
2706
  ])) : __props.as == "a" ? (openBlock(), createElementBlock("a", {
2678
2707
  key: 1,
@@ -2680,7 +2709,7 @@ const _sfc_main$i = {
2680
2709
  class: "block px-4 py-2 text-sm leading-5 text-neutral-700 transition duration-150 ease-in-out hover:bg-neutral-100 focus:bg-neutral-100 focus:outline-none dark:text-neutral-100 dark:hover:bg-neutral-900 dark:focus:bg-neutral-900"
2681
2710
  }, [
2682
2711
  renderSlot(_ctx.$slots, "default")
2683
- ], 8, _hoisted_2$c)) : (openBlock(), createBlock(unref(Link), {
2712
+ ], 8, _hoisted_2$8)) : (openBlock(), createBlock(unref(Link), {
2684
2713
  key: 2,
2685
2714
  href: __props.href,
2686
2715
  class: "block px-4 py-2 text-sm leading-5 text-neutral-700 transition duration-150 ease-in-out hover:bg-neutral-100 focus:bg-neutral-100 focus:outline-none dark:text-neutral-100 dark:hover:bg-neutral-900 dark:focus:bg-neutral-900"
@@ -2694,20 +2723,20 @@ const _sfc_main$i = {
2694
2723
  };
2695
2724
  }
2696
2725
  };
2697
- const _hoisted_1$h = { class: "md:grid md:grid-cols-3 md:gap-6" };
2698
- const _hoisted_2$b = { class: "mt-5 md:col-span-2 md:mt-0" };
2699
- const _hoisted_3$6 = { class: "grid grid-cols-6 gap-6" };
2700
- const _hoisted_4$5 = {
2726
+ const _hoisted_1$a = { class: "md:grid md:grid-cols-3 md:gap-6" };
2727
+ const _hoisted_2$7 = { class: "mt-5 md:col-span-2 md:mt-0" };
2728
+ const _hoisted_3$4 = { class: "grid grid-cols-6 gap-6" };
2729
+ const _hoisted_4$3 = {
2701
2730
  key: 0,
2702
2731
  class: "flex items-center justify-start rounded-b-lg border border-t-0 border-neutral-200 bg-neutral-50 px-3 pb-6 text-end dark:border-neutral-800 dark:bg-neutral-900/60 sm:rounded-bl-md sm:rounded-br-md"
2703
2732
  };
2704
- const _sfc_main$h = {
2733
+ const _sfc_main$l = {
2705
2734
  __name: "FormSection",
2706
2735
  emits: ["submitted"],
2707
2736
  setup(__props) {
2708
2737
  const hasActions = computed(() => !!useSlots().actions);
2709
2738
  return (_ctx, _cache) => {
2710
- return openBlock(), createElementBlock("div", _hoisted_1$h, [
2739
+ return openBlock(), createElementBlock("div", _hoisted_1$a, [
2711
2740
  createVNode(SectionTitle, null, {
2712
2741
  title: withCtx(() => [
2713
2742
  renderSlot(_ctx.$slots, "title")
@@ -2717,18 +2746,18 @@ const _sfc_main$h = {
2717
2746
  ]),
2718
2747
  _: 3
2719
2748
  }),
2720
- createElementVNode("div", _hoisted_2$b, [
2749
+ createElementVNode("div", _hoisted_2$7, [
2721
2750
  createElementVNode("form", {
2722
2751
  onSubmit: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.$emit("submitted"), ["prevent"]))
2723
2752
  }, [
2724
2753
  createElementVNode("div", {
2725
2754
  class: normalizeClass(["rounded-lg border border-neutral-200 bg-white px-4 py-5 shadow-sm dark:border-neutral-800 dark:bg-neutral-950 sm:p-6", hasActions.value ? "sm:rounded-tl-md sm:rounded-tr-md" : "sm:rounded-md"])
2726
2755
  }, [
2727
- createElementVNode("div", _hoisted_3$6, [
2756
+ createElementVNode("div", _hoisted_3$4, [
2728
2757
  renderSlot(_ctx.$slots, "form")
2729
2758
  ])
2730
2759
  ], 2),
2731
- hasActions.value ? (openBlock(), createElementBlock("div", _hoisted_4$5, [
2760
+ hasActions.value ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
2732
2761
  renderSlot(_ctx.$slots, "actions")
2733
2762
  ])) : createCommentVNode("", true)
2734
2763
  ], 32)
@@ -2737,8 +2766,8 @@ const _sfc_main$h = {
2737
2766
  };
2738
2767
  }
2739
2768
  };
2740
- const _hoisted_1$g = { class: "text-sm text-red-600 dark:text-neutral-100" };
2741
- const _sfc_main$g = {
2769
+ const _hoisted_1$9 = { class: "text-sm text-red-600 dark:text-neutral-100" };
2770
+ const _sfc_main$k = {
2742
2771
  __name: "InputError",
2743
2772
  props: {
2744
2773
  message: String
@@ -2746,33 +2775,33 @@ const _sfc_main$g = {
2746
2775
  setup(__props) {
2747
2776
  return (_ctx, _cache) => {
2748
2777
  return withDirectives((openBlock(), createElementBlock("div", null, [
2749
- createElementVNode("p", _hoisted_1$g, toDisplayString(__props.message), 1)
2778
+ createElementVNode("p", _hoisted_1$9, toDisplayString(__props.message), 1)
2750
2779
  ], 512)), [
2751
2780
  [vShow, __props.message]
2752
2781
  ]);
2753
2782
  };
2754
2783
  }
2755
2784
  };
2756
- const _hoisted_1$f = { class: "block text-sm font-medium text-neutral-700 dark:text-neutral-100" };
2757
- const _hoisted_2$a = { key: 0 };
2758
- const _hoisted_3$5 = { key: 1 };
2759
- const _sfc_main$f = {
2785
+ const _hoisted_1$8 = { class: "block text-sm font-medium text-neutral-700 dark:text-neutral-100" };
2786
+ const _hoisted_2$6 = { key: 0 };
2787
+ const _hoisted_3$3 = { key: 1 };
2788
+ const _sfc_main$j = {
2760
2789
  __name: "InputLabel",
2761
2790
  props: {
2762
2791
  value: String
2763
2792
  },
2764
2793
  setup(__props) {
2765
2794
  return (_ctx, _cache) => {
2766
- return openBlock(), createElementBlock("label", _hoisted_1$f, [
2767
- __props.value ? (openBlock(), createElementBlock("span", _hoisted_2$a, toDisplayString(__props.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_3$5, [
2795
+ return openBlock(), createElementBlock("label", _hoisted_1$8, [
2796
+ __props.value ? (openBlock(), createElementBlock("span", _hoisted_2$6, toDisplayString(__props.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_3$3, [
2768
2797
  renderSlot(_ctx.$slots, "default")
2769
2798
  ]))
2770
2799
  ]);
2771
2800
  };
2772
2801
  }
2773
2802
  };
2774
- const _hoisted_1$e = ["href", "title", "target", "rel"];
2775
- const _sfc_main$e = /* @__PURE__ */ Object.assign({
2803
+ const _hoisted_1$7 = ["href", "title", "target", "rel"];
2804
+ const _sfc_main$i = /* @__PURE__ */ Object.assign({
2776
2805
  inheritAttrs: false
2777
2806
  }, {
2778
2807
  __name: "LinkButton",
@@ -2841,469 +2870,553 @@ const _sfc_main$e = /* @__PURE__ */ Object.assign({
2841
2870
  class: linkClasses.value
2842
2871
  }), [
2843
2872
  renderSlot(_ctx.$slots, "default")
2844
- ], 16, _hoisted_1$e));
2873
+ ], 16, _hoisted_1$7));
2845
2874
  };
2846
2875
  }
2847
2876
  });
2848
- const _hoisted_1$d = { class: "hidden sm:block" };
2849
- const _hoisted_2$9 = { class: "py-8" };
2850
- const _sfc_main$d = {
2877
+ const _hoisted_1$6 = { class: "hidden sm:block" };
2878
+ const _hoisted_2$5 = { class: "py-8" };
2879
+ const _sfc_main$h = {
2851
2880
  __name: "SectionBorder",
2852
2881
  setup(__props) {
2853
2882
  return (_ctx, _cache) => {
2854
- return openBlock(), createElementBlock("div", _hoisted_1$d, [
2855
- createElementVNode("div", _hoisted_2$9, [
2856
- createVNode(_sfc_main$H)
2883
+ return openBlock(), createElementBlock("div", _hoisted_1$6, [
2884
+ createElementVNode("div", _hoisted_2$5, [
2885
+ createVNode(_sfc_main$L)
2857
2886
  ])
2858
2887
  ]);
2859
2888
  };
2860
2889
  }
2861
2890
  };
2862
- const _hoisted_1$c = { class: "flex size-8 items-center justify-center rounded-md bg-neutral-900 text-sm font-semibold text-white dark:bg-neutral-100 dark:text-neutral-900" };
2863
- const _hoisted_2$8 = { class: "grid flex-1 text-left text-sm text-neutral-900 dark:text-neutral-100" };
2864
- const _hoisted_3$4 = { class: "mb-0.5 truncate leading-tight font-semibold" };
2865
- const _hoisted_4$4 = {
2866
- key: 0,
2867
- class: "truncate text-xs text-neutral-500 dark:text-neutral-400"
2868
- };
2869
- const _hoisted_5$4 = ["href", "target", "rel"];
2870
- const _hoisted_6$4 = { class: "flex size-8 items-center justify-center rounded-md bg-neutral-900 text-sm font-semibold text-white dark:bg-neutral-100 dark:text-neutral-900" };
2871
- const _hoisted_7$4 = { class: "grid flex-1 text-left text-sm text-neutral-900 dark:text-neutral-100" };
2872
- const _hoisted_8$2 = { class: "mb-0.5 truncate leading-tight font-semibold" };
2873
- const _hoisted_9$2 = {
2874
- key: 0,
2875
- class: "truncate text-xs text-neutral-500 dark:text-neutral-400"
2891
+ const SIDEBAR_CONTEXT_KEY = /* @__PURE__ */ Symbol("SidebarContext");
2892
+ const fallbackOpen = ref(true);
2893
+ const fallbackContext = {
2894
+ state: computed(() => fallbackOpen.value ? "expanded" : "collapsed"),
2895
+ open: fallbackOpen,
2896
+ setOpen: (value) => {
2897
+ fallbackOpen.value = value;
2898
+ },
2899
+ toggleSidebar: () => {
2900
+ fallbackOpen.value = !fallbackOpen.value;
2901
+ },
2902
+ expand: () => {
2903
+ fallbackOpen.value = true;
2904
+ },
2905
+ collapse: () => {
2906
+ fallbackOpen.value = false;
2907
+ }
2876
2908
  };
2877
- const _hoisted_10$2 = { class: "flex size-8 items-center justify-center rounded-md bg-neutral-900 text-sm font-semibold text-white dark:bg-neutral-100 dark:text-neutral-900" };
2878
- const _hoisted_11$2 = { class: "grid flex-1 text-left text-sm text-neutral-900 dark:text-neutral-100" };
2879
- const _hoisted_12$2 = { class: "mb-0.5 truncate leading-tight font-semibold" };
2880
- const _hoisted_13$2 = {
2881
- key: 0,
2882
- class: "truncate text-xs text-neutral-500 dark:text-neutral-400"
2909
+ function provideSidebarContext(defaultOpen = true) {
2910
+ const open = ref(defaultOpen);
2911
+ const state = computed(() => open.value ? "expanded" : "collapsed");
2912
+ const context = {
2913
+ state,
2914
+ open,
2915
+ setOpen: (value) => {
2916
+ open.value = value;
2917
+ },
2918
+ toggleSidebar: () => {
2919
+ open.value = !open.value;
2920
+ },
2921
+ expand: () => {
2922
+ open.value = true;
2923
+ },
2924
+ collapse: () => {
2925
+ open.value = false;
2926
+ }
2927
+ };
2928
+ provide(SIDEBAR_CONTEXT_KEY, context);
2929
+ return context;
2930
+ }
2931
+ function useSidebar() {
2932
+ return inject(SIDEBAR_CONTEXT_KEY, fallbackContext);
2933
+ }
2934
+ const _hoisted_1$5 = ["data-state", "data-collapsible", "data-variant", "data-side"];
2935
+ const _hoisted_2$4 = {
2936
+ "data-sidebar": "sidebar",
2937
+ class: "bg-sidebar text-sidebar-foreground flex h-full w-full flex-col group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:shadow-sm"
2883
2938
  };
2884
- const sharedClass = "flex items-center gap-3 rounded-lg px-3 py-2 transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-900";
2885
- const _sfc_main$c = /* @__PURE__ */ defineComponent({
2886
- __name: "SideMenuBrand",
2939
+ const _sfc_main$g = /* @__PURE__ */ defineComponent({
2940
+ ...{ inheritAttrs: false },
2941
+ __name: "Sidebar",
2887
2942
  props: {
2888
- title: {},
2889
- subtitle: { default: "" },
2890
- href: { default: void 0 },
2891
- external: { type: Boolean, default: false },
2892
- target: { default: void 0 },
2893
- rel: { default: void 0 },
2894
- logoText: { default: "" }
2943
+ side: { default: "left" },
2944
+ variant: { default: "sidebar" },
2945
+ collapsible: { default: "offcanvas" },
2946
+ class: { type: [Boolean, null, String, Object, Array], default: void 0 }
2895
2947
  },
2896
2948
  setup(__props) {
2897
2949
  const props = __props;
2898
- const logoFallback = computed(() => {
2899
- if (props.logoText) {
2900
- return props.logoText;
2901
- }
2902
- return props.title.split(" ").filter(Boolean).slice(0, 2).map((part) => part.charAt(0)).join("").toUpperCase();
2903
- });
2950
+ const { state } = useSidebar();
2904
2951
  return (_ctx, _cache) => {
2905
- return __props.href && !__props.external ? (openBlock(), createBlock(unref(Link), {
2952
+ return __props.collapsible === "none" ? (openBlock(), createElementBlock("div", mergeProps({
2906
2953
  key: 0,
2907
- href: __props.href,
2908
- class: normalizeClass(sharedClass)
2909
- }, {
2910
- default: withCtx(() => [
2911
- renderSlot(_ctx.$slots, "logo", {}, () => [
2912
- createElementVNode("div", _hoisted_1$c, toDisplayString(logoFallback.value), 1)
2913
- ]),
2914
- createElementVNode("div", _hoisted_2$8, [
2915
- createElementVNode("span", _hoisted_3$4, toDisplayString(__props.title), 1),
2916
- __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_4$4, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
2917
- ])
2918
- ]),
2919
- _: 3
2920
- }, 8, ["href"])) : __props.href && __props.external ? (openBlock(), createElementBlock("a", {
2954
+ "data-slot": "sidebar",
2955
+ "data-sidebar": "sidebar",
2956
+ class: [
2957
+ "bg-sidebar text-sidebar-foreground flex h-full w-(--sidebar-width) flex-col",
2958
+ props.class
2959
+ ]
2960
+ }, _ctx.$attrs), [
2961
+ renderSlot(_ctx.$slots, "default")
2962
+ ], 16)) : (openBlock(), createElementBlock("div", {
2921
2963
  key: 1,
2922
- href: __props.href,
2923
- target: __props.target,
2924
- rel: __props.rel,
2925
- class: normalizeClass(sharedClass)
2964
+ class: "group peer text-sidebar-foreground hidden md:block",
2965
+ "data-slot": "sidebar",
2966
+ "data-state": unref(state),
2967
+ "data-collapsible": unref(state) === "collapsed" ? __props.collapsible : "",
2968
+ "data-variant": __props.variant,
2969
+ "data-side": __props.side
2926
2970
  }, [
2927
- renderSlot(_ctx.$slots, "logo", {}, () => [
2928
- createElementVNode("div", _hoisted_6$4, toDisplayString(logoFallback.value), 1)
2929
- ]),
2930
- createElementVNode("div", _hoisted_7$4, [
2931
- createElementVNode("span", _hoisted_8$2, toDisplayString(__props.title), 1),
2932
- __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_9$2, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
2933
- ])
2934
- ], 8, _hoisted_5$4)) : (openBlock(), createElementBlock("div", {
2935
- key: 2,
2936
- class: normalizeClass(sharedClass)
2971
+ createElementVNode("div", {
2972
+ class: normalizeClass([
2973
+ "relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear",
2974
+ "group-data-[collapsible=offcanvas]:w-0",
2975
+ "group-data-[side=right]:rotate-180",
2976
+ __props.variant === "floating" || __props.variant === "inset" ? "group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon)"
2977
+ ])
2978
+ }, null, 2),
2979
+ createElementVNode("div", mergeProps({
2980
+ class: [
2981
+ "fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",
2982
+ __props.side === "left" ? "left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]" : "right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",
2983
+ __props.variant === "floating" || __props.variant === "inset" ? "p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]" : "group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",
2984
+ props.class
2985
+ ]
2986
+ }, _ctx.$attrs), [
2987
+ createElementVNode("div", _hoisted_2$4, [
2988
+ renderSlot(_ctx.$slots, "default")
2989
+ ])
2990
+ ], 16)
2991
+ ], 8, _hoisted_1$5));
2992
+ };
2993
+ }
2994
+ });
2995
+ const _sfc_main$f = /* @__PURE__ */ defineComponent({
2996
+ __name: "SidebarContent",
2997
+ props: {
2998
+ class: { type: [Boolean, null, String, Object, Array] }
2999
+ },
3000
+ setup(__props) {
3001
+ const props = __props;
3002
+ return (_ctx, _cache) => {
3003
+ return openBlock(), createElementBlock("div", {
3004
+ "data-slot": "sidebar-content",
3005
+ "data-sidebar": "content",
3006
+ class: normalizeClass(["flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden", props.class])
2937
3007
  }, [
2938
- renderSlot(_ctx.$slots, "logo", {}, () => [
2939
- createElementVNode("div", _hoisted_10$2, toDisplayString(logoFallback.value), 1)
2940
- ]),
2941
- createElementVNode("div", _hoisted_11$2, [
2942
- createElementVNode("span", _hoisted_12$2, toDisplayString(__props.title), 1),
2943
- __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_13$2, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
2944
- ])
2945
- ]));
3008
+ renderSlot(_ctx.$slots, "default")
3009
+ ], 2);
3010
+ };
3011
+ }
3012
+ });
3013
+ const _sfc_main$e = /* @__PURE__ */ defineComponent({
3014
+ __name: "SidebarFooter",
3015
+ props: {
3016
+ class: { type: [Boolean, null, String, Object, Array] }
3017
+ },
3018
+ setup(__props) {
3019
+ const props = __props;
3020
+ return (_ctx, _cache) => {
3021
+ return openBlock(), createElementBlock("div", {
3022
+ "data-slot": "sidebar-footer",
3023
+ "data-sidebar": "footer",
3024
+ class: normalizeClass(["flex flex-col gap-2 p-2", props.class])
3025
+ }, [
3026
+ renderSlot(_ctx.$slots, "default")
3027
+ ], 2);
3028
+ };
3029
+ }
3030
+ });
3031
+ const _sfc_main$d = /* @__PURE__ */ defineComponent({
3032
+ __name: "SidebarGroup",
3033
+ props: {
3034
+ class: { type: [Boolean, null, String, Object, Array] }
3035
+ },
3036
+ setup(__props) {
3037
+ const props = __props;
3038
+ return (_ctx, _cache) => {
3039
+ return openBlock(), createElementBlock("div", {
3040
+ "data-slot": "sidebar-group",
3041
+ "data-sidebar": "group",
3042
+ class: normalizeClass(["relative flex w-full min-w-0 flex-col p-2", props.class])
3043
+ }, [
3044
+ renderSlot(_ctx.$slots, "default")
3045
+ ], 2);
3046
+ };
3047
+ }
3048
+ });
3049
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
3050
+ __name: "SidebarGroupContent",
3051
+ props: {
3052
+ class: { type: [Boolean, null, String, Object, Array] }
3053
+ },
3054
+ setup(__props) {
3055
+ const props = __props;
3056
+ return (_ctx, _cache) => {
3057
+ return openBlock(), createElementBlock("div", {
3058
+ "data-slot": "sidebar-group-content",
3059
+ "data-sidebar": "group-content",
3060
+ class: normalizeClass(["w-full text-sm", props.class])
3061
+ }, [
3062
+ renderSlot(_ctx.$slots, "default")
3063
+ ], 2);
2946
3064
  };
2947
3065
  }
2948
3066
  });
2949
- const _hoisted_1$b = ["href", "aria-current", "target", "rel"];
2950
- const baseClass = "flex w-full items-center gap-2 rounded-md px-3 py-2 text-sm font-medium text-foreground transition-colors hover:bg-muted dark:text-white";
2951
3067
  const _sfc_main$b = /* @__PURE__ */ defineComponent({
2952
- __name: "SideMenuButton",
3068
+ ...{ inheritAttrs: false },
3069
+ __name: "SidebarGroupLabel",
2953
3070
  props: {
2954
- href: {},
2955
- title: { default: "" },
2956
- active: { type: Boolean },
2957
- icon: {},
2958
- external: { type: Boolean, default: false },
2959
- target: { default: void 0 },
2960
- rel: { default: void 0 },
2961
- activeClass: { default: "bg-muted text-foreground dark:text-white" },
2962
- class: { type: [Boolean, null, String, Object, Array], default: void 0 },
2963
- itemClass: { type: [Boolean, null, String, Object, Array], default: "" },
2964
- iconClass: { default: "h-4 w-4" }
3071
+ as: { default: "div" },
3072
+ asChild: { type: Boolean, default: false },
3073
+ class: { type: [Boolean, null, String, Object, Array], default: void 0 }
2965
3074
  },
2966
3075
  setup(__props) {
2967
3076
  const props = __props;
3077
+ const attrs = useAttrs();
3078
+ const slots = useSlots();
3079
+ const baseClass = computed(() => [
3080
+ "text-sidebar-foreground/70 ring-sidebar-ring flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium outline-none transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0",
3081
+ "group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",
3082
+ props.class
3083
+ ]);
3084
+ const childVNode = computed(() => {
3085
+ if (!props.asChild) {
3086
+ return null;
3087
+ }
3088
+ const content = slots.default?.() ?? [];
3089
+ const firstVNode = content.find((entry) => isVNode(entry));
3090
+ if (!firstVNode) {
3091
+ return null;
3092
+ }
3093
+ return cloneVNode(firstVNode, {
3094
+ ...attrs,
3095
+ class: [baseClass.value, firstVNode.props?.class]
3096
+ });
3097
+ });
2968
3098
  return (_ctx, _cache) => {
2969
- return !__props.external ? (openBlock(), createBlock(unref(Link), {
3099
+ return !__props.asChild ? (openBlock(), createBlock(resolveDynamicComponent(__props.as), mergeProps({
2970
3100
  key: 0,
2971
- href: __props.href,
2972
- "aria-current": __props.active ? "page" : void 0,
2973
- class: normalizeClass([baseClass, __props.active ? __props.activeClass : "", __props.itemClass, props.class])
2974
- }, {
3101
+ "data-slot": "sidebar-group-label",
3102
+ "data-sidebar": "group-label",
3103
+ class: baseClass.value
3104
+ }, unref(attrs)), {
2975
3105
  default: withCtx(() => [
2976
- __props.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.icon), {
2977
- key: 0,
2978
- class: normalizeClass(__props.iconClass)
2979
- }, null, 8, ["class"])) : createCommentVNode("", true),
2980
- renderSlot(_ctx.$slots, "default", {}, () => [
2981
- createTextVNode(toDisplayString(__props.title), 1)
2982
- ])
3106
+ renderSlot(_ctx.$slots, "default")
2983
3107
  ]),
2984
3108
  _: 3
2985
- }, 8, ["href", "aria-current", "class"])) : (openBlock(), createElementBlock("a", {
2986
- key: 1,
2987
- href: __props.href,
2988
- "aria-current": __props.active ? "page" : void 0,
2989
- target: __props.target,
2990
- rel: __props.rel,
2991
- class: normalizeClass([baseClass, __props.active ? __props.activeClass : "", __props.itemClass, props.class])
2992
- }, [
2993
- __props.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.icon), {
2994
- key: 0,
2995
- class: normalizeClass(__props.iconClass)
2996
- }, null, 8, ["class"])) : createCommentVNode("", true),
2997
- renderSlot(_ctx.$slots, "default", {}, () => [
2998
- createTextVNode(toDisplayString(__props.title), 1)
2999
- ])
3000
- ], 10, _hoisted_1$b));
3109
+ }, 16, ["class"])) : childVNode.value ? (openBlock(), createBlock(resolveDynamicComponent(childVNode.value), { key: 1 })) : createCommentVNode("", true);
3001
3110
  };
3002
3111
  }
3003
3112
  });
3004
- const _hoisted_1$a = ["aria-label"];
3005
3113
  const _sfc_main$a = /* @__PURE__ */ defineComponent({
3006
- __name: "SideMenuList",
3114
+ __name: "SidebarHeader",
3007
3115
  props: {
3008
- items: {},
3009
- label: { default: "Navigation" },
3010
- activeClass: { default: "bg-muted text-foreground dark:text-white" },
3011
- itemClass: { default: "" },
3012
- iconClass: { default: "h-4 w-4" }
3116
+ class: { type: [Boolean, null, String, Object, Array] }
3013
3117
  },
3014
3118
  setup(__props) {
3119
+ const props = __props;
3015
3120
  return (_ctx, _cache) => {
3016
- return openBlock(), createElementBlock("nav", {
3017
- "aria-label": __props.label,
3018
- class: "flex flex-col space-y-1 space-x-0"
3121
+ return openBlock(), createElementBlock("div", {
3122
+ "data-slot": "sidebar-header",
3123
+ "data-sidebar": "header",
3124
+ class: normalizeClass(["flex flex-col gap-2 p-2", props.class])
3019
3125
  }, [
3020
- (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
3021
- return openBlock(), createBlock(_sfc_main$b, {
3022
- key: item.href,
3023
- href: item.href,
3024
- title: item.title,
3025
- icon: item.icon,
3026
- active: item.active,
3027
- external: item.external,
3028
- target: item.target,
3029
- rel: item.rel,
3030
- "active-class": __props.activeClass,
3031
- "item-class": __props.itemClass,
3032
- "icon-class": __props.iconClass
3033
- }, {
3034
- default: withCtx(() => [
3035
- renderSlot(_ctx.$slots, "item", { item }, () => [
3036
- createTextVNode(toDisplayString(item.title), 1)
3037
- ])
3038
- ]),
3039
- _: 2
3040
- }, 1032, ["href", "title", "icon", "active", "external", "target", "rel", "active-class", "item-class", "icon-class"]);
3041
- }), 128))
3042
- ], 8, _hoisted_1$a);
3126
+ renderSlot(_ctx.$slots, "default")
3127
+ ], 2);
3043
3128
  };
3044
3129
  }
3045
3130
  });
3046
- const _hoisted_1$9 = { class: "px-2 py-0" };
3047
- const _hoisted_2$7 = { class: "px-3 pb-2 text-xs font-semibold uppercase tracking-wide text-neutral-500 dark:text-neutral-400" };
3048
3131
  const _sfc_main$9 = /* @__PURE__ */ defineComponent({
3049
- __name: "SideMenuNavFooter",
3132
+ __name: "SidebarInset",
3050
3133
  props: {
3051
- items: {},
3052
- label: { default: "Footer" }
3134
+ class: { type: [Boolean, null, String, Object, Array] }
3053
3135
  },
3054
3136
  setup(__props) {
3137
+ const props = __props;
3055
3138
  return (_ctx, _cache) => {
3056
- return openBlock(), createElementBlock("section", _hoisted_1$9, [
3057
- createElementVNode("h3", _hoisted_2$7, toDisplayString(__props.label), 1),
3058
- createVNode(_sfc_main$a, {
3059
- items: __props.items,
3060
- label: "Footer navigation",
3061
- "item-class": "text-neutral-600 hover:text-neutral-800 dark:text-neutral-300 dark:hover:text-neutral-100"
3062
- }, null, 8, ["items"])
3063
- ]);
3139
+ return openBlock(), createElementBlock("main", {
3140
+ "data-slot": "sidebar-inset",
3141
+ class: normalizeClass([
3142
+ "bg-background relative flex w-full flex-1 flex-col",
3143
+ "md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2",
3144
+ props.class
3145
+ ])
3146
+ }, [
3147
+ renderSlot(_ctx.$slots, "default")
3148
+ ], 2);
3064
3149
  };
3065
3150
  }
3066
3151
  });
3067
- const _hoisted_1$8 = { class: "px-2 py-0" };
3068
- const _hoisted_2$6 = { class: "px-3 pb-2 text-xs font-semibold uppercase tracking-wide text-neutral-500 dark:text-neutral-400" };
3069
3152
  const _sfc_main$8 = /* @__PURE__ */ defineComponent({
3070
- __name: "SideMenuNavMain",
3153
+ __name: "SidebarMenu",
3071
3154
  props: {
3072
- items: {},
3073
- label: { default: "Plateforme" }
3155
+ class: { type: [Boolean, null, String, Object, Array] }
3074
3156
  },
3075
3157
  setup(__props) {
3158
+ const props = __props;
3076
3159
  return (_ctx, _cache) => {
3077
- return openBlock(), createElementBlock("section", _hoisted_1$8, [
3078
- createElementVNode("h3", _hoisted_2$6, toDisplayString(__props.label), 1),
3079
- createVNode(_sfc_main$a, {
3080
- items: __props.items,
3081
- label: "Main navigation"
3082
- }, null, 8, ["items"])
3083
- ]);
3160
+ return openBlock(), createElementBlock("ul", {
3161
+ "data-slot": "sidebar-menu",
3162
+ "data-sidebar": "menu",
3163
+ class: normalizeClass(["flex w-full min-w-0 flex-col gap-1", props.class])
3164
+ }, [
3165
+ renderSlot(_ctx.$slots, "default")
3166
+ ], 2);
3084
3167
  };
3085
3168
  }
3086
3169
  });
3087
- const _hoisted_1$7 = { class: "flex items-center gap-2" };
3088
- const _hoisted_2$5 = { class: "flex size-8 shrink-0 items-center justify-center overflow-hidden rounded-lg bg-neutral-200 text-xs font-semibold text-neutral-900 dark:bg-neutral-800 dark:text-neutral-100" };
3089
- const _hoisted_3$3 = ["src", "alt"];
3090
- const _hoisted_4$3 = { key: 1 };
3091
- const _hoisted_5$3 = { class: "grid flex-1 text-left text-sm leading-tight text-neutral-900 dark:text-neutral-100" };
3092
- const _hoisted_6$3 = { class: "truncate font-medium" };
3093
- const _hoisted_7$3 = {
3094
- key: 0,
3095
- class: "truncate text-xs text-neutral-500 dark:text-neutral-300"
3096
- };
3170
+ const _hoisted_1$4 = ["href", "target", "rel"];
3097
3171
  const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3098
- __name: "SideMenuUserInfo",
3172
+ ...{ inheritAttrs: false },
3173
+ __name: "SidebarMenuButton",
3099
3174
  props: {
3100
- name: {},
3101
- email: { default: "" },
3102
- avatar: { default: "" },
3103
- showEmail: { type: Boolean, default: false }
3175
+ href: { default: void 0 },
3176
+ title: { default: "" },
3177
+ active: { type: Boolean, default: void 0 },
3178
+ isActive: { type: Boolean, default: void 0 },
3179
+ icon: { default: void 0 },
3180
+ external: { type: Boolean, default: false },
3181
+ target: { default: void 0 },
3182
+ rel: { default: void 0 },
3183
+ variant: { default: "default" },
3184
+ size: { default: "default" },
3185
+ as: { default: void 0 },
3186
+ asChild: { type: Boolean, default: false },
3187
+ tooltip: { default: void 0 },
3188
+ class: { type: [Boolean, null, String, Object, Array], default: void 0 }
3104
3189
  },
3105
3190
  setup(__props) {
3106
3191
  const props = __props;
3107
- const initials = computed(() => {
3108
- return props.name.split(" ").filter(Boolean).slice(0, 2).map((part) => part.charAt(0)).join("").toUpperCase();
3192
+ const attrs = useAttrs();
3193
+ const slots = useSlots();
3194
+ const resolvedActive = computed(() => props.active ?? props.isActive ?? false);
3195
+ const baseClass = computed(() => [
3196
+ "peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",
3197
+ props.variant === "outline" ? "bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]" : "hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",
3198
+ props.size === "sm" ? "h-7 text-xs" : props.size === "lg" ? "h-12 text-sm group-data-[collapsible=icon]:p-0!" : "h-8 text-sm",
3199
+ props.class
3200
+ ]);
3201
+ const sharedAttrs = computed(() => ({
3202
+ ...attrs,
3203
+ title: props.tooltip ?? (props.title || void 0),
3204
+ "data-slot": "sidebar-menu-button",
3205
+ "data-sidebar": "menu-button",
3206
+ "data-size": props.size,
3207
+ "data-active": resolvedActive.value ? "true" : void 0,
3208
+ "aria-current": resolvedActive.value ? "page" : void 0,
3209
+ class: baseClass.value
3210
+ }));
3211
+ const childVNode = computed(() => {
3212
+ if (!props.asChild) {
3213
+ return null;
3214
+ }
3215
+ const content = slots.default?.() ?? [];
3216
+ const firstVNode = content.find((entry) => isVNode(entry));
3217
+ if (!firstVNode) {
3218
+ return null;
3219
+ }
3220
+ return cloneVNode(firstVNode, mergeProps(sharedAttrs.value, firstVNode.props ?? {}));
3109
3221
  });
3110
3222
  return (_ctx, _cache) => {
3111
- return openBlock(), createElementBlock("div", _hoisted_1$7, [
3112
- createElementVNode("div", _hoisted_2$5, [
3113
- __props.avatar ? (openBlock(), createElementBlock("img", {
3114
- key: 0,
3115
- src: __props.avatar,
3116
- alt: __props.name,
3117
- class: "size-full object-cover"
3118
- }, null, 8, _hoisted_3$3)) : (openBlock(), createElementBlock("span", _hoisted_4$3, toDisplayString(initials.value), 1))
3223
+ return __props.asChild && childVNode.value ? (openBlock(), createBlock(resolveDynamicComponent(childVNode.value), { key: 0 })) : (__props.as === "link" || !__props.as) && __props.href && !__props.external ? (openBlock(), createBlock(unref(Link), mergeProps({
3224
+ key: 1,
3225
+ href: __props.href
3226
+ }, sharedAttrs.value), {
3227
+ default: withCtx(() => [
3228
+ __props.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.icon), { key: 0 })) : createCommentVNode("", true),
3229
+ renderSlot(_ctx.$slots, "default", {}, () => [
3230
+ createTextVNode(toDisplayString(__props.title), 1)
3231
+ ])
3119
3232
  ]),
3120
- createElementVNode("div", _hoisted_5$3, [
3121
- createElementVNode("span", _hoisted_6$3, toDisplayString(__props.name), 1),
3122
- __props.showEmail && __props.email ? (openBlock(), createElementBlock("span", _hoisted_7$3, toDisplayString(__props.email), 1)) : createCommentVNode("", true)
3233
+ _: 3
3234
+ }, 16, ["href"])) : __props.href && (__props.external || __props.as === "a") ? (openBlock(), createElementBlock("a", mergeProps({
3235
+ key: 2,
3236
+ href: __props.href,
3237
+ target: __props.target,
3238
+ rel: __props.rel
3239
+ }, sharedAttrs.value), [
3240
+ __props.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.icon), { key: 0 })) : createCommentVNode("", true),
3241
+ renderSlot(_ctx.$slots, "default", {}, () => [
3242
+ createTextVNode(toDisplayString(__props.title), 1)
3123
3243
  ])
3124
- ]);
3244
+ ], 16, _hoisted_1$4)) : (openBlock(), createElementBlock("button", mergeProps({
3245
+ key: 3,
3246
+ type: "button"
3247
+ }, sharedAttrs.value), [
3248
+ __props.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.icon), { key: 0 })) : createCommentVNode("", true),
3249
+ renderSlot(_ctx.$slots, "default", {}, () => [
3250
+ createTextVNode(toDisplayString(__props.title), 1)
3251
+ ])
3252
+ ], 16));
3125
3253
  };
3126
3254
  }
3127
3255
  });
3128
- const _hoisted_1$6 = { class: "p-0 font-normal" };
3129
- const _hoisted_2$4 = { class: "flex items-center gap-2 px-1 py-1.5 text-left text-sm" };
3130
3256
  const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3131
- __name: "SideMenuUserMenuContent",
3257
+ __name: "SidebarMenuItem",
3132
3258
  props: {
3133
- name: {},
3134
- email: { default: "" },
3135
- avatar: { default: "" },
3136
- settingsHref: { default: "" },
3137
- settingsLabel: { default: "Settings" },
3138
- logoutLabel: { default: "Log out" }
3259
+ class: { type: [Boolean, null, String, Object, Array] }
3139
3260
  },
3140
- emits: ["logout"],
3141
- setup(__props, { emit: __emit }) {
3142
- const emit = __emit;
3261
+ setup(__props) {
3262
+ const props = __props;
3143
3263
  return (_ctx, _cache) => {
3144
- return openBlock(), createElementBlock(Fragment, null, [
3145
- createElementVNode("div", _hoisted_1$6, [
3146
- createElementVNode("div", _hoisted_2$4, [
3147
- createVNode(_sfc_main$7, {
3148
- name: __props.name,
3149
- email: __props.email,
3150
- avatar: __props.avatar,
3151
- "show-email": true
3152
- }, null, 8, ["name", "email", "avatar"])
3153
- ])
3154
- ]),
3155
- _cache[1] || (_cache[1] = createElementVNode("div", { class: "my-1 border-t border-neutral-200 dark:border-neutral-800" }, null, -1)),
3156
- __props.settingsHref ? (openBlock(), createBlock(_sfc_main$i, {
3157
- key: 0,
3158
- href: __props.settingsHref
3159
- }, {
3160
- default: withCtx(() => [
3161
- createVNode(unref(Cog6ToothIcon), { class: "mr-2 size-4" }),
3162
- createTextVNode(" " + toDisplayString(__props.settingsLabel), 1)
3163
- ]),
3164
- _: 1
3165
- }, 8, ["href"])) : createCommentVNode("", true),
3166
- createElementVNode("button", {
3167
- type: "button",
3168
- class: "block w-full px-4 py-2 text-start text-sm leading-5 text-neutral-700 transition duration-150 ease-in-out hover:bg-neutral-100 focus:bg-neutral-100 focus:outline-none dark:text-neutral-100 dark:hover:bg-neutral-900 dark:focus:bg-neutral-900",
3169
- onClick: _cache[0] || (_cache[0] = ($event) => emit("logout"))
3170
- }, [
3171
- createVNode(unref(ArrowRightOnRectangleIcon), { class: "mr-2 inline size-4" }),
3172
- createTextVNode(" " + toDisplayString(__props.logoutLabel), 1)
3173
- ])
3174
- ], 64);
3264
+ return openBlock(), createElementBlock("li", {
3265
+ "data-slot": "sidebar-menu-item",
3266
+ "data-sidebar": "menu-item",
3267
+ class: normalizeClass(["group/menu-item relative", props.class])
3268
+ }, [
3269
+ renderSlot(_ctx.$slots, "default")
3270
+ ], 2);
3175
3271
  };
3176
3272
  }
3177
3273
  });
3178
- const _hoisted_1$5 = {
3179
- type: "button",
3180
- class: "flex w-full items-center gap-2 rounded-lg px-3 py-2 text-left text-sm transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-900"
3181
- };
3182
3274
  const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3183
- __name: "SideMenuNavUser",
3275
+ ...{ inheritAttrs: false },
3276
+ __name: "SidebarProvider",
3184
3277
  props: {
3185
- user: {},
3186
- settingsHref: { default: "" },
3187
- settingsLabel: { default: "Settings" },
3188
- logoutLabel: { default: "Log out" }
3278
+ defaultOpen: { type: Boolean, default: true },
3279
+ width: { default: "16rem" },
3280
+ iconWidth: { default: "3rem" },
3281
+ class: { type: [Boolean, null, String, Object, Array], default: void 0 }
3189
3282
  },
3190
- emits: ["logout"],
3191
- setup(__props, { emit: __emit }) {
3192
- const emit = __emit;
3193
- const handleLogout = () => {
3194
- emit("logout");
3195
- };
3283
+ setup(__props) {
3284
+ const props = __props;
3285
+ provideSidebarContext(props.defaultOpen);
3196
3286
  return (_ctx, _cache) => {
3197
- return openBlock(), createBlock(_sfc_main$j, {
3198
- align: "right",
3199
- width: "48",
3200
- "content-classes": ["py-1", "bg-white", "dark:bg-neutral-950"]
3201
- }, {
3202
- trigger: withCtx(() => [
3203
- createElementVNode("button", _hoisted_1$5, [
3204
- createVNode(_sfc_main$7, {
3205
- name: __props.user.name,
3206
- email: __props.user.email,
3207
- avatar: __props.user.avatar
3208
- }, null, 8, ["name", "email", "avatar"]),
3209
- createVNode(unref(ChevronUpDownIcon), { class: "ml-auto size-4" })
3210
- ])
3211
- ]),
3212
- content: withCtx(() => [
3213
- renderSlot(_ctx.$slots, "content", {
3214
- user: __props.user,
3215
- logout: handleLogout
3216
- }, () => [
3217
- createVNode(_sfc_main$6, {
3218
- name: __props.user.name,
3219
- email: __props.user.email,
3220
- avatar: __props.user.avatar,
3221
- "settings-href": __props.settingsHref,
3222
- "settings-label": __props.settingsLabel,
3223
- "logout-label": __props.logoutLabel,
3224
- onLogout: handleLogout
3225
- }, null, 8, ["name", "email", "avatar", "settings-href", "settings-label", "logout-label"])
3226
- ])
3227
- ]),
3228
- _: 3
3229
- });
3287
+ return openBlock(), createElementBlock("div", mergeProps({
3288
+ "data-slot": "sidebar-wrapper",
3289
+ style: {
3290
+ "--sidebar-width": props.width,
3291
+ "--sidebar-width-icon": props.iconWidth
3292
+ },
3293
+ class: [
3294
+ "group/sidebar-wrapper has-data-[variant=inset]:bg-sidebar flex min-h-svh w-full",
3295
+ props.class
3296
+ ]
3297
+ }, _ctx.$attrs), [
3298
+ renderSlot(_ctx.$slots, "default")
3299
+ ], 16);
3230
3300
  };
3231
3301
  }
3232
3302
  });
3233
- const _hoisted_1$4 = { class: "grid gap-4" };
3234
- const rootClass = "flex h-full w-full max-w-xs flex-col border-r border-neutral-200 bg-white/95 shadow-sm dark:border-neutral-800 dark:bg-neutral-950";
3235
- const headerClass = "border-b border-neutral-200 p-4 dark:border-neutral-800";
3236
- const contentClass = "flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto p-2";
3237
- const footerClass = "border-t border-neutral-200 p-2 dark:border-neutral-800";
3303
+ const isEmptyString = (value) => value === "";
3304
+ const mergeClasses = (...classes) => classes.filter((className, index, array) => {
3305
+ return Boolean(className) && className.trim() !== "" && array.indexOf(className) === index;
3306
+ }).join(" ").trim();
3307
+ const toKebabCase = (string) => string.replace(/([a-z0-9])([A-Z])/g, "$1-$2").toLowerCase();
3308
+ const toCamelCase = (string) => string.replace(
3309
+ /^([A-Z])|[\s-_]+(\w)/g,
3310
+ (match, p1, p2) => p2 ? p2.toUpperCase() : p1.toLowerCase()
3311
+ );
3312
+ const toPascalCase = (string) => {
3313
+ const camelCase = toCamelCase(string);
3314
+ return camelCase.charAt(0).toUpperCase() + camelCase.slice(1);
3315
+ };
3316
+ var defaultAttributes = {
3317
+ xmlns: "http://www.w3.org/2000/svg",
3318
+ width: 24,
3319
+ height: 24,
3320
+ viewBox: "0 0 24 24",
3321
+ fill: "none",
3322
+ stroke: "currentColor",
3323
+ "stroke-width": 2,
3324
+ "stroke-linecap": "round",
3325
+ "stroke-linejoin": "round"
3326
+ };
3327
+ const LUCIDE_CONTEXT = /* @__PURE__ */ Symbol("lucide-icons");
3328
+ function useLucideProps() {
3329
+ return inject(LUCIDE_CONTEXT, {});
3330
+ }
3331
+ const Icon = ({
3332
+ name,
3333
+ iconNode,
3334
+ absoluteStrokeWidth,
3335
+ "absolute-stroke-width": absoluteStrokeWidthKebabCase,
3336
+ strokeWidth,
3337
+ "stroke-width": strokeWidthKebabCase,
3338
+ size,
3339
+ color,
3340
+ ...props
3341
+ }, { slots }) => {
3342
+ const {
3343
+ size: contextSize,
3344
+ color: contextColor,
3345
+ strokeWidth: contextStrokeWidth = 2,
3346
+ absoluteStrokeWidth: contextAbsoluteStrokeWidth = false,
3347
+ class: contextClass = ""
3348
+ } = useLucideProps();
3349
+ const calculatedStrokeWidth = computed(() => {
3350
+ const isAbsoluteStrokeWidth = isEmptyString(absoluteStrokeWidth) || isEmptyString(absoluteStrokeWidthKebabCase) || absoluteStrokeWidth === true || absoluteStrokeWidthKebabCase === true || contextAbsoluteStrokeWidth === true;
3351
+ const strokeWidthValue = strokeWidth || strokeWidthKebabCase || contextStrokeWidth || defaultAttributes["stroke-width"];
3352
+ if (isAbsoluteStrokeWidth) {
3353
+ return Number(strokeWidthValue) * 24 / Number(size ?? contextSize ?? defaultAttributes.width);
3354
+ }
3355
+ return strokeWidthValue;
3356
+ });
3357
+ return h(
3358
+ "svg",
3359
+ {
3360
+ ...defaultAttributes,
3361
+ ...props,
3362
+ width: size ?? contextSize ?? defaultAttributes.width,
3363
+ height: size ?? contextSize ?? defaultAttributes.height,
3364
+ stroke: color ?? contextColor ?? defaultAttributes.stroke,
3365
+ "stroke-width": calculatedStrokeWidth.value,
3366
+ class: mergeClasses(
3367
+ "lucide",
3368
+ contextClass,
3369
+ ...name ? [`lucide-${toKebabCase(toPascalCase(name))}-icon`, `lucide-${toKebabCase(name)}`] : ["lucide-icon"]
3370
+ )
3371
+ },
3372
+ [...iconNode.map((child) => h(...child)), ...slots.default ? [slots.default()] : []]
3373
+ );
3374
+ };
3375
+ const createLucideIcon = (iconName, iconNode) => (props, { slots, attrs }) => h(
3376
+ Icon,
3377
+ {
3378
+ ...attrs,
3379
+ ...props,
3380
+ iconNode,
3381
+ name: iconName
3382
+ },
3383
+ slots
3384
+ );
3385
+ const __iconNode$1 = [
3386
+ ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
3387
+ ["path", { d: "M9 3v18", key: "fh3hqa" }],
3388
+ ["path", { d: "m16 15-3-3 3-3", key: "14y99z" }]
3389
+ ];
3390
+ const PanelLeftClose = createLucideIcon("panel-left-close", __iconNode$1);
3391
+ const __iconNode = [
3392
+ ["rect", { width: "18", height: "18", x: "3", y: "3", rx: "2", key: "afitv7" }],
3393
+ ["path", { d: "M9 3v18", key: "fh3hqa" }],
3394
+ ["path", { d: "m14 9 3 3-3 3", key: "8010ee" }]
3395
+ ];
3396
+ const PanelLeftOpen = createLucideIcon("panel-left-open", __iconNode);
3238
3397
  const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3239
- __name: "SideMenu",
3398
+ __name: "SidebarTrigger",
3240
3399
  props: {
3241
- brand: { default: void 0 },
3242
- mainItems: { default: () => [] },
3243
- footerItems: { default: () => [] },
3244
- user: { default: void 0 },
3245
- mainLabel: { default: "Plateforme" },
3246
- footerLabel: { default: "Ressources" },
3247
- settingsHref: { default: "" },
3248
- settingsLabel: { default: "Settings" },
3249
- logoutLabel: { default: "Log out" },
3250
- class: { type: [Boolean, null, String, Object, Array], default: void 0 },
3251
- headerClass: { type: [Boolean, null, String, Object, Array], default: void 0 },
3252
- contentClass: { type: [Boolean, null, String, Object, Array], default: void 0 },
3253
- footerClass: { type: [Boolean, null, String, Object, Array], default: void 0 }
3400
+ class: { type: [Boolean, null, String, Object, Array] }
3254
3401
  },
3255
3402
  setup(__props) {
3256
3403
  const props = __props;
3257
- const slots = useSlots();
3258
- const hasHeader = computed(() => Boolean(slots.header || props.brand));
3259
- const hasContent = computed(() => Boolean(slots.default || props.mainItems.length));
3260
- const hasFooter = computed(() => Boolean(slots.footer || props.footerItems.length || props.user));
3404
+ const { state, toggleSidebar } = useSidebar();
3261
3405
  return (_ctx, _cache) => {
3262
- return openBlock(), createElementBlock("aside", {
3263
- class: normalizeClass([rootClass, props.class])
3264
- }, [
3265
- hasHeader.value ? (openBlock(), createElementBlock("div", {
3266
- key: 0,
3267
- class: normalizeClass([headerClass, props.headerClass])
3268
- }, [
3269
- renderSlot(_ctx.$slots, "header", {}, () => [
3270
- __props.brand ? (openBlock(), createBlock(_sfc_main$c, normalizeProps(mergeProps({ key: 0 }, __props.brand)), null, 16)) : createCommentVNode("", true)
3271
- ])
3272
- ], 2)) : createCommentVNode("", true),
3273
- hasContent.value ? (openBlock(), createElementBlock("div", {
3274
- key: 1,
3275
- class: normalizeClass([contentClass, props.contentClass])
3276
- }, [
3277
- renderSlot(_ctx.$slots, "default", {}, () => [
3278
- __props.mainItems.length ? (openBlock(), createBlock(_sfc_main$8, {
3279
- key: 0,
3280
- items: __props.mainItems,
3281
- label: __props.mainLabel
3282
- }, null, 8, ["items", "label"])) : createCommentVNode("", true)
3283
- ])
3284
- ], 2)) : createCommentVNode("", true),
3285
- hasFooter.value ? (openBlock(), createElementBlock("div", {
3286
- key: 2,
3287
- class: normalizeClass([footerClass, props.footerClass])
3288
- }, [
3289
- renderSlot(_ctx.$slots, "footer", {}, () => [
3290
- createElementVNode("div", _hoisted_1$4, [
3291
- __props.footerItems.length ? (openBlock(), createBlock(_sfc_main$9, {
3292
- key: 0,
3293
- items: __props.footerItems,
3294
- label: __props.footerLabel
3295
- }, null, 8, ["items", "label"])) : createCommentVNode("", true),
3296
- __props.user ? (openBlock(), createBlock(_sfc_main$5, {
3297
- key: 1,
3298
- user: __props.user,
3299
- "settings-href": __props.settingsHref,
3300
- "settings-label": __props.settingsLabel,
3301
- "logout-label": __props.logoutLabel
3302
- }, null, 8, ["user", "settings-href", "settings-label", "logout-label"])) : createCommentVNode("", true)
3303
- ])
3304
- ])
3305
- ], 2)) : createCommentVNode("", true)
3306
- ], 2);
3406
+ return openBlock(), createBlock(_sfc_main$F, {
3407
+ "data-sidebar": "trigger",
3408
+ "data-slot": "sidebar-trigger",
3409
+ variant: "ghost",
3410
+ size: "icon",
3411
+ class: normalizeClass(["h-7 w-7", props.class]),
3412
+ onClick: unref(toggleSidebar)
3413
+ }, {
3414
+ default: withCtx(() => [
3415
+ unref(state) === "collapsed" ? (openBlock(), createBlock(unref(PanelLeftOpen), { key: 0 })) : (openBlock(), createBlock(unref(PanelLeftClose), { key: 1 })),
3416
+ _cache[0] || (_cache[0] = createElementVNode("span", { class: "sr-only" }, "Basculer la barre latérale", -1))
3417
+ ]),
3418
+ _: 1
3419
+ }, 8, ["class", "onClick"]);
3307
3420
  };
3308
3421
  }
3309
3422
  });
@@ -3655,7 +3768,7 @@ const _sfc_main$1 = {
3655
3768
  ]),
3656
3769
  createElementVNode("h3", _hoisted_13$1, toDisplayString(__props.emptyState.title), 1),
3657
3770
  createElementVNode("p", _hoisted_14$1, toDisplayString(__props.emptyState.description), 1),
3658
- __props.emptyState.actionText && __props.emptyState.actionUrl ? (openBlock(), createBlock(_sfc_main$e, {
3771
+ __props.emptyState.actionText && __props.emptyState.actionUrl ? (openBlock(), createBlock(_sfc_main$i, {
3659
3772
  key: 0,
3660
3773
  href: __props.emptyState.actionUrl,
3661
3774
  variant: "primary"
@@ -4148,7 +4261,7 @@ const _sfc_main = {
4148
4261
  isEditingRow(item, index) && column.slot && unref(slots)[getEditSlotName(column)] ? renderSlot(_ctx.$slots, getEditSlotName(column), mergeProps({
4149
4262
  key: 0,
4150
4263
  ref_for: true
4151
- }, getSlotBindings(item, column, index))) : isEditingRow(item, index) && column.input ? (openBlock(), createBlock(_sfc_main$o, {
4264
+ }, getSlotBindings(item, column, index))) : isEditingRow(item, index) && column.input ? (openBlock(), createBlock(_sfc_main$s, {
4152
4265
  key: 1,
4153
4266
  type: getInputType(column),
4154
4267
  class: normalizeClass(getInputClass(column)),
@@ -4181,7 +4294,7 @@ const _sfc_main = {
4181
4294
  key: 0,
4182
4295
  ref_for: true
4183
4296
  }, getSlotBindings(item, null, index))) : createCommentVNode("", true),
4184
- __props.rowEditing && isEditingRow(item, index) ? (openBlock(), createBlock(_sfc_main$B, {
4297
+ __props.rowEditing && isEditingRow(item, index) ? (openBlock(), createBlock(_sfc_main$F, {
4185
4298
  key: 1,
4186
4299
  type: "button",
4187
4300
  variant: "outline",
@@ -4194,7 +4307,7 @@ const _sfc_main = {
4194
4307
  createVNode(unref(CheckIcon), { class: "size-4" })
4195
4308
  ]),
4196
4309
  _: 1
4197
- }, 8, ["title", "aria-label", "onClick"])) : __props.rowEditing ? (openBlock(), createBlock(_sfc_main$B, {
4310
+ }, 8, ["title", "aria-label", "onClick"])) : __props.rowEditing ? (openBlock(), createBlock(_sfc_main$F, {
4198
4311
  key: 2,
4199
4312
  type: "button",
4200
4313
  variant: "secondary",
@@ -4221,7 +4334,7 @@ const _sfc_main = {
4221
4334
  ]),
4222
4335
  createElementVNode("h3", _hoisted_17, toDisplayString(__props.emptyState.title), 1),
4223
4336
  createElementVNode("p", _hoisted_18, toDisplayString(__props.emptyState.description), 1),
4224
- __props.emptyState.actionText && __props.emptyState.actionUrl ? (openBlock(), createBlock(_sfc_main$e, {
4337
+ __props.emptyState.actionText && __props.emptyState.actionUrl ? (openBlock(), createBlock(_sfc_main$i, {
4225
4338
  key: 0,
4226
4339
  href: __props.emptyState.actionUrl,
4227
4340
  variant: "primary"
@@ -4247,52 +4360,56 @@ const plugin = {
4247
4360
  }
4248
4361
  };
4249
4362
  export {
4250
- _sfc_main$G as ActionCard,
4251
- _sfc_main$F as ActionMessage,
4252
- _sfc_main$D as ActionSection,
4253
- _sfc_main$C as Badge,
4254
- _sfc_main$B as Button,
4255
- _sfc_main$I as Card,
4256
- _sfc_main$J as CardTabs,
4257
- _sfc_main$A as Checkbox,
4258
- _sfc_main$z as CheckboxInput,
4259
- _sfc_main$n as CheckboxMultipleInput,
4260
- _sfc_main$l as ConfirmationModal,
4261
- _sfc_main$w as CustomSelect,
4262
- _sfc_main$u as DateInput,
4263
- _sfc_main$k as DialogModal,
4264
- _sfc_main$H as Divider,
4265
- _sfc_main$j as Dropdown,
4266
- _sfc_main$i as DropdownLink,
4363
+ _sfc_main$K as ActionCard,
4364
+ _sfc_main$J as ActionMessage,
4365
+ _sfc_main$H as ActionSection,
4366
+ _sfc_main$G as Badge,
4367
+ _sfc_main$F as Button,
4368
+ _sfc_main$M as Card,
4369
+ _sfc_main$N as CardTabs,
4370
+ _sfc_main$E as Checkbox,
4371
+ _sfc_main$D as CheckboxInput,
4372
+ _sfc_main$r as CheckboxMultipleInput,
4373
+ _sfc_main$p as ConfirmationModal,
4374
+ _sfc_main$A as CustomSelect,
4375
+ _sfc_main$y as DateInput,
4376
+ _sfc_main$o as DialogModal,
4377
+ _sfc_main$L as Divider,
4378
+ _sfc_main$n as Dropdown,
4379
+ _sfc_main$m as DropdownLink,
4267
4380
  plugin as EnosVueDefault,
4268
- _sfc_main$h as FormSection,
4269
- _sfc_main$t as ImageInput,
4270
- _sfc_main$g as InputError,
4271
- _sfc_main$o as InputGroup,
4272
- _sfc_main$f as InputLabel,
4273
- _sfc_main$e as LinkButton,
4274
- _sfc_main$m as Modal,
4275
- _sfc_main$s as NotationInput,
4276
- _sfc_main$r as RadioInput,
4277
- _sfc_main$q as RadioMultipleInput,
4278
- _sfc_main$d as SectionBorder,
4381
+ _sfc_main$l as FormSection,
4382
+ _sfc_main$x as ImageInput,
4383
+ _sfc_main$k as InputError,
4384
+ _sfc_main$s as InputGroup,
4385
+ _sfc_main$j as InputLabel,
4386
+ _sfc_main$i as LinkButton,
4387
+ _sfc_main$q as Modal,
4388
+ _sfc_main$w as NotationInput,
4389
+ _sfc_main$v as RadioInput,
4390
+ _sfc_main$u as RadioMultipleInput,
4391
+ _sfc_main$h as SectionBorder,
4279
4392
  SectionTitle,
4280
- _sfc_main$v as SelectInput,
4281
- _sfc_main$4 as SideMenu,
4282
- _sfc_main$c as SideMenuBrand,
4283
- _sfc_main$b as SideMenuButton,
4284
- _sfc_main$a as SideMenuList,
4285
- _sfc_main$9 as SideMenuNavFooter,
4286
- _sfc_main$8 as SideMenuNavMain,
4287
- _sfc_main$5 as SideMenuNavUser,
4288
- _sfc_main$7 as SideMenuUserInfo,
4289
- _sfc_main$6 as SideMenuUserMenuContent,
4393
+ _sfc_main$z as SelectInput,
4394
+ _sfc_main$g as Sidebar,
4395
+ _sfc_main$f as SidebarContent,
4396
+ _sfc_main$e as SidebarFooter,
4397
+ _sfc_main$d as SidebarGroup,
4398
+ _sfc_main$c as SidebarGroupContent,
4399
+ _sfc_main$b as SidebarGroupLabel,
4400
+ _sfc_main$a as SidebarHeader,
4401
+ _sfc_main$9 as SidebarInset,
4402
+ _sfc_main$8 as SidebarMenu,
4403
+ _sfc_main$7 as SidebarMenuButton,
4404
+ _sfc_main$6 as SidebarMenuItem,
4405
+ _sfc_main$5 as SidebarProvider,
4406
+ _sfc_main$4 as SidebarTrigger,
4290
4407
  _sfc_main$3 as SortControls,
4291
4408
  _sfc_main$1 as TableList,
4292
4409
  _sfc_main as TableListForm,
4293
- _sfc_main$x as TextArea,
4294
- _sfc_main$y as TextInput,
4410
+ _sfc_main$B as TextArea,
4411
+ _sfc_main$C as TextInput,
4295
4412
  _sfc_main$2 as ThSortable,
4296
- _sfc_main$p as TinyEditor
4413
+ _sfc_main$t as TinyEditor
4297
4414
  };
4298
4415
  //# sourceMappingURL=index.js.map