@enos5/enos-vue-default 0.3.1 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,101 +1,128 @@
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, createTextVNode, resolveDynamicComponent, vModelText } from "vue";
2
- import { LockClosedIcon, ChevronDownIcon, PhotoIcon, ExclamationCircleIcon, ExclamationTriangleIcon, 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, 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";
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$x;
8
+ return _sfc_main$G;
9
9
  },
10
10
  get ActionMessage() {
11
- return _sfc_main$w;
11
+ return _sfc_main$F;
12
12
  },
13
13
  get ActionSection() {
14
- return _sfc_main$u;
14
+ return _sfc_main$D;
15
15
  },
16
16
  get Badge() {
17
- return _sfc_main$t;
17
+ return _sfc_main$C;
18
18
  },
19
19
  get Button() {
20
- return _sfc_main$s;
20
+ return _sfc_main$B;
21
21
  },
22
22
  get Card() {
23
- return _sfc_main$z;
23
+ return _sfc_main$I;
24
24
  },
25
25
  get CardTabs() {
26
- return _sfc_main$A;
26
+ return _sfc_main$J;
27
27
  },
28
28
  get Checkbox() {
29
- return _sfc_main$r;
29
+ return _sfc_main$A;
30
30
  },
31
31
  get CheckboxInput() {
32
- return _sfc_main$q;
32
+ return _sfc_main$z;
33
33
  },
34
34
  get CheckboxMultipleInput() {
35
- return _sfc_main$e;
35
+ return _sfc_main$n;
36
36
  },
37
37
  get ConfirmationModal() {
38
- return _sfc_main$c;
38
+ return _sfc_main$l;
39
39
  },
40
40
  get CustomSelect() {
41
- return _sfc_main$n;
41
+ return _sfc_main$w;
42
42
  },
43
43
  get DateInput() {
44
- return _sfc_main$l;
44
+ return _sfc_main$u;
45
45
  },
46
46
  get DialogModal() {
47
- return _sfc_main$b;
47
+ return _sfc_main$k;
48
48
  },
49
49
  get Divider() {
50
- return _sfc_main$y;
50
+ return _sfc_main$H;
51
51
  },
52
52
  get Dropdown() {
53
- return _sfc_main$a;
53
+ return _sfc_main$j;
54
54
  },
55
55
  get DropdownLink() {
56
- return _sfc_main$9;
56
+ return _sfc_main$i;
57
57
  },
58
58
  get EnosVueDefault() {
59
59
  return plugin;
60
60
  },
61
61
  get FormSection() {
62
- return _sfc_main$8;
62
+ return _sfc_main$h;
63
63
  },
64
64
  get ImageInput() {
65
- return _sfc_main$k;
65
+ return _sfc_main$t;
66
66
  },
67
67
  get InputError() {
68
- return _sfc_main$7;
68
+ return _sfc_main$g;
69
69
  },
70
70
  get InputGroup() {
71
- return _sfc_main$f;
71
+ return _sfc_main$o;
72
72
  },
73
73
  get InputLabel() {
74
- return _sfc_main$6;
74
+ return _sfc_main$f;
75
75
  },
76
76
  get LinkButton() {
77
- return _sfc_main$5;
77
+ return _sfc_main$e;
78
78
  },
79
79
  get Modal() {
80
- return _sfc_main$d;
80
+ return _sfc_main$m;
81
81
  },
82
82
  get NotationInput() {
83
- return _sfc_main$j;
83
+ return _sfc_main$s;
84
84
  },
85
85
  get RadioInput() {
86
- return _sfc_main$i;
86
+ return _sfc_main$r;
87
87
  },
88
88
  get RadioMultipleInput() {
89
- return _sfc_main$h;
89
+ return _sfc_main$q;
90
90
  },
91
91
  get SectionBorder() {
92
- return _sfc_main$4;
92
+ return _sfc_main$d;
93
93
  },
94
94
  get SectionTitle() {
95
95
  return SectionTitle;
96
96
  },
97
97
  get SelectInput() {
98
- return _sfc_main$m;
98
+ return _sfc_main$v;
99
+ },
100
+ get SideMenu() {
101
+ return _sfc_main$4;
102
+ },
103
+ get SideMenuBrand() {
104
+ return _sfc_main$c;
105
+ },
106
+ get SideMenuButton() {
107
+ return _sfc_main$b;
108
+ },
109
+ get SideMenuList() {
110
+ return _sfc_main$a;
111
+ },
112
+ get SideMenuNavFooter() {
113
+ return _sfc_main$9;
114
+ },
115
+ get SideMenuNavMain() {
116
+ return _sfc_main$8;
117
+ },
118
+ get SideMenuNavUser() {
119
+ return _sfc_main$5;
120
+ },
121
+ get SideMenuUserInfo() {
122
+ return _sfc_main$7;
123
+ },
124
+ get SideMenuUserMenuContent() {
125
+ return _sfc_main$6;
99
126
  },
100
127
  get SortControls() {
101
128
  return _sfc_main$3;
@@ -107,25 +134,25 @@ const components = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
107
134
  return _sfc_main;
108
135
  },
109
136
  get TextArea() {
110
- return _sfc_main$o;
137
+ return _sfc_main$x;
111
138
  },
112
139
  get TextInput() {
113
- return _sfc_main$p;
140
+ return _sfc_main$y;
114
141
  },
115
142
  get ThSortable() {
116
143
  return _sfc_main$2;
117
144
  },
118
145
  get TinyEditor() {
119
- return _sfc_main$g;
146
+ return _sfc_main$p;
120
147
  }
121
148
  }, Symbol.toStringTag, { value: "Module" }));
122
- const _hoisted_1$w = { class: "border-b border-neutral-200 bg-neutral-50/80 p-2 dark:border-neutral-800 dark:bg-neutral-900/80" };
123
- const _hoisted_2$h = {
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 = {
124
151
  role: "tablist",
125
152
  class: "flex overflow-hidden rounded-lg bg-white shadow-sm ring-1 ring-neutral-200 dark:bg-neutral-950 dark:ring-neutral-800"
126
153
  };
127
- const _hoisted_3$c = ["aria-selected", "tabindex", "onClick", "onKeydown"];
128
- const _sfc_main$A = {
154
+ const _hoisted_3$e = ["aria-selected", "tabindex", "onClick", "onKeydown"];
155
+ const _sfc_main$J = {
129
156
  __name: "CardTabs",
130
157
  props: {
131
158
  tabs: {
@@ -194,8 +221,8 @@ const _sfc_main$A = {
194
221
  focusTabAtIndex(targetIndex);
195
222
  };
196
223
  return (_ctx, _cache) => {
197
- return openBlock(), createElementBlock("div", _hoisted_1$w, [
198
- createElementVNode("div", _hoisted_2$h, [
224
+ return openBlock(), createElementBlock("div", _hoisted_1$F, [
225
+ createElementVNode("div", _hoisted_2$m, [
199
226
  (openBlock(true), createElementBlock(Fragment, null, renderList(__props.tabs, (tab, index) => {
200
227
  return openBlock(), createElementBlock("button", {
201
228
  key: tab.value,
@@ -215,22 +242,22 @@ const _sfc_main$A = {
215
242
  ]),
216
243
  onClick: ($event) => activateTab(tab.value),
217
244
  onKeydown: ($event) => onTabKeydown($event, index)
218
- }, toDisplayString(tab.label), 47, _hoisted_3$c);
245
+ }, toDisplayString(tab.label), 47, _hoisted_3$e);
219
246
  }), 128))
220
247
  ])
221
248
  ]);
222
249
  };
223
250
  }
224
251
  };
225
- const _hoisted_1$v = {
252
+ const _hoisted_1$E = {
226
253
  key: 0,
227
254
  class: "mb-4"
228
255
  };
229
- const _hoisted_2$g = {
256
+ const _hoisted_2$l = {
230
257
  key: 1,
231
258
  class: "mb-4 text-xl font-semibold tracking-tight text-neutral-950 dark:text-neutral-50"
232
259
  };
233
- const _sfc_main$z = {
260
+ const _sfc_main$I = {
234
261
  __name: "Card",
235
262
  props: {
236
263
  title: {
@@ -291,7 +318,7 @@ const _sfc_main$z = {
291
318
  return openBlock(), createElementBlock("div", {
292
319
  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])
293
320
  }, [
294
- __props.tabs.length > 0 ? (openBlock(), createBlock(_sfc_main$A, {
321
+ __props.tabs.length > 0 ? (openBlock(), createBlock(_sfc_main$J, {
295
322
  key: 0,
296
323
  tabs: __props.tabs,
297
324
  "active-tab": __props.activeTab,
@@ -301,9 +328,9 @@ const _sfc_main$z = {
301
328
  createElementVNode("div", {
302
329
  class: normalizeClass(__props.paddingClass)
303
330
  }, [
304
- _ctx.$slots.customTitle ? (openBlock(), createElementBlock("div", _hoisted_1$v, [
331
+ _ctx.$slots.customTitle ? (openBlock(), createElementBlock("div", _hoisted_1$E, [
305
332
  renderSlot(_ctx.$slots, "customTitle")
306
- ])) : __props.title ? (openBlock(), createElementBlock("h3", _hoisted_2$g, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
333
+ ])) : __props.title ? (openBlock(), createElementBlock("h3", _hoisted_2$l, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
307
334
  createElementVNode("div", {
308
335
  class: normalizeClass(["relative", __props.tabs.length > 0 ? "overflow-hidden" : "overflow-visible"])
309
336
  }, [
@@ -336,7 +363,7 @@ const _sfc_main$z = {
336
363
  };
337
364
  }
338
365
  };
339
- const _sfc_main$y = /* @__PURE__ */ Object.assign({
366
+ const _sfc_main$H = /* @__PURE__ */ Object.assign({
340
367
  inheritAttrs: false
341
368
  }, {
342
369
  __name: "Divider",
@@ -348,7 +375,7 @@ const _sfc_main$y = /* @__PURE__ */ Object.assign({
348
375
  };
349
376
  }
350
377
  });
351
- const _sfc_main$x = {
378
+ const _sfc_main$G = {
352
379
  __name: "ActionCard",
353
380
  props: {
354
381
  title: {
@@ -363,13 +390,13 @@ const _sfc_main$x = {
363
390
  setup(__props) {
364
391
  const slots = useSlots();
365
392
  return (_ctx, _cache) => {
366
- return openBlock(), createBlock(_sfc_main$z, {
393
+ return openBlock(), createBlock(_sfc_main$I, {
367
394
  title: __props.title,
368
395
  "content-class": __props.actionsClass
369
396
  }, {
370
397
  default: withCtx(() => [
371
398
  renderSlot(_ctx.$slots, "default"),
372
- unref(slots).danger ? (openBlock(), createBlock(_sfc_main$y, {
399
+ unref(slots).danger ? (openBlock(), createBlock(_sfc_main$H, {
373
400
  key: 0,
374
401
  class: "mt-6 pt-4"
375
402
  }, {
@@ -384,8 +411,8 @@ const _sfc_main$x = {
384
411
  };
385
412
  }
386
413
  };
387
- const _hoisted_1$u = { class: "text-sm text-gray-600" };
388
- const _sfc_main$w = {
414
+ const _hoisted_1$D = { class: "text-sm text-gray-600" };
415
+ const _sfc_main$F = {
389
416
  __name: "ActionMessage",
390
417
  props: {
391
418
  on: Boolean
@@ -399,7 +426,7 @@ const _sfc_main$w = {
399
426
  "leave-to-class": "opacity-0"
400
427
  }, {
401
428
  default: withCtx(() => [
402
- withDirectives(createElementVNode("div", _hoisted_1$u, [
429
+ withDirectives(createElementVNode("div", _hoisted_1$D, [
403
430
  renderSlot(_ctx.$slots, "default")
404
431
  ], 512), [
405
432
  [vShow, __props.on]
@@ -418,36 +445,36 @@ const _export_sfc = (sfc, props) => {
418
445
  }
419
446
  return target;
420
447
  };
421
- const _sfc_main$v = {};
422
- const _hoisted_1$t = { class: "md:col-span-1 flex justify-between" };
423
- const _hoisted_2$f = { class: "px-4 sm:px-0" };
424
- const _hoisted_3$b = { class: "text-xl font-semibold tracking-tight text-neutral-950 dark:text-neutral-50" };
425
- const _hoisted_4$8 = { class: "mt-1 max-w-2xl text-sm text-neutral-600 dark:text-neutral-200" };
426
- const _hoisted_5$6 = { class: "px-4 sm:px-0" };
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" };
427
454
  function _sfc_render(_ctx, _cache) {
428
- return openBlock(), createElementBlock("div", _hoisted_1$t, [
429
- createElementVNode("div", _hoisted_2$f, [
430
- createElementVNode("h3", _hoisted_3$b, [
455
+ return openBlock(), createElementBlock("div", _hoisted_1$C, [
456
+ createElementVNode("div", _hoisted_2$k, [
457
+ createElementVNode("h3", _hoisted_3$d, [
431
458
  renderSlot(_ctx.$slots, "title")
432
459
  ]),
433
- createElementVNode("p", _hoisted_4$8, [
460
+ createElementVNode("p", _hoisted_4$a, [
434
461
  renderSlot(_ctx.$slots, "description")
435
462
  ])
436
463
  ]),
437
- createElementVNode("div", _hoisted_5$6, [
464
+ createElementVNode("div", _hoisted_5$8, [
438
465
  renderSlot(_ctx.$slots, "aside")
439
466
  ])
440
467
  ]);
441
468
  }
442
- const SectionTitle = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["render", _sfc_render]]);
443
- const _hoisted_1$s = { class: "md:grid md:grid-cols-3 md:gap-6" };
444
- const _hoisted_2$e = { class: "mt-5 md:mt-0 md:col-span-2" };
445
- 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" };
446
- const _sfc_main$u = {
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 = {
447
474
  __name: "ActionSection",
448
475
  setup(__props) {
449
476
  return (_ctx, _cache) => {
450
- return openBlock(), createElementBlock("div", _hoisted_1$s, [
477
+ return openBlock(), createElementBlock("div", _hoisted_1$B, [
451
478
  createVNode(SectionTitle, null, {
452
479
  title: withCtx(() => [
453
480
  renderSlot(_ctx.$slots, "title")
@@ -457,8 +484,8 @@ const _sfc_main$u = {
457
484
  ]),
458
485
  _: 3
459
486
  }),
460
- createElementVNode("div", _hoisted_2$e, [
461
- createElementVNode("div", _hoisted_3$a, [
487
+ createElementVNode("div", _hoisted_2$j, [
488
+ createElementVNode("div", _hoisted_3$c, [
462
489
  renderSlot(_ctx.$slots, "content")
463
490
  ])
464
491
  ])
@@ -466,8 +493,8 @@ const _sfc_main$u = {
466
493
  };
467
494
  }
468
495
  };
469
- const _hoisted_1$r = { class: "sr-only" };
470
- const _sfc_main$t = {
496
+ const _hoisted_1$A = { class: "sr-only" };
497
+ const _sfc_main$C = {
471
498
  __name: "Badge",
472
499
  props: {
473
500
  type: {
@@ -532,7 +559,7 @@ const _sfc_main$t = {
532
559
  createElementVNode("span", {
533
560
  class: normalizeClass(["w-2 h-2 rounded-full", colorClasses[__props.color].dot])
534
561
  }, null, 2),
535
- createElementVNode("span", _hoisted_1$r, [
562
+ createElementVNode("span", _hoisted_1$A, [
536
563
  renderSlot(_ctx.$slots, "default")
537
564
  ])
538
565
  ], 2)) : (openBlock(), createElementBlock("span", {
@@ -549,8 +576,8 @@ const _sfc_main$t = {
549
576
  };
550
577
  }
551
578
  };
552
- const _hoisted_1$q = ["type", "disabled"];
553
- const _sfc_main$s = /* @__PURE__ */ Object.assign({
579
+ const _hoisted_1$z = ["type", "disabled"];
580
+ const _sfc_main$B = /* @__PURE__ */ Object.assign({
554
581
  inheritAttrs: false
555
582
  }, {
556
583
  __name: "Button",
@@ -565,28 +592,49 @@ const _sfc_main$s = /* @__PURE__ */ Object.assign({
565
592
  },
566
593
  variant: {
567
594
  type: String,
568
- default: "primary"
595
+ default: "default"
596
+ },
597
+ size: {
598
+ type: String,
599
+ default: "default"
569
600
  }
570
601
  },
571
602
  setup(__props) {
572
603
  const attrs = useAttrs();
573
604
  const props = __props;
574
605
  const variantClasses = {
575
- primary: "bg-neutral-900 text-neutral-50 hover:bg-neutral-900/90 dark:bg-neutral-800 dark:text-neutral-50 dark:hover:bg-neutral-700",
606
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
607
+ destructive: "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
608
+ outline: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
609
+ secondary: "bg-secondary text-secondary-foreground hover:bg-secondary/80",
610
+ ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",
611
+ link: "text-primary underline-offset-4 hover:underline",
612
+ primary: "bg-primary text-primary-foreground hover:bg-primary/90",
576
613
  success: "bg-emerald-600 text-white hover:bg-emerald-600/90 dark:bg-emerald-600 dark:text-white dark:hover:bg-emerald-600/90",
577
- secondary: "bg-gray-300 text-gray-900 hover:bg-gray-300/80 dark:bg-gray-500 dark:text-gray-50 dark:hover:bg-gray-500/80",
578
- tertiary: "border border-neutral-200 bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",
614
+ tertiary: "border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50",
579
615
  warning: "bg-amber-100 text-amber-700 hover:bg-amber-100/90 focus-visible:ring-amber-500/20 dark:bg-amber-600/20 dark:text-neutral-50 dark:hover:bg-amber-600/30 dark:focus-visible:ring-amber-500/40",
580
- danger: "bg-red-100 text-red-700 hover:bg-red-100/90 focus-visible:ring-red-500/20 dark:bg-red-600/20 dark:text-neutral-50 dark:hover:bg-red-600/30 dark:focus-visible:ring-red-500/40",
616
+ danger: "bg-destructive/10 text-destructive hover:bg-destructive/15 focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:text-destructive-foreground dark:hover:bg-destructive/25",
581
617
  "warning-solid": "bg-amber-500 text-white hover:bg-amber-500/90 dark:bg-amber-500 dark:text-white dark:hover:bg-amber-500/90",
582
- "danger-solid": "bg-red-600 text-white hover:bg-red-600/90 focus-visible:ring-red-500/20 dark:bg-red-600/60 dark:text-white dark:hover:bg-red-600/50 dark:focus-visible:ring-red-500/40"
618
+ "danger-solid": "bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60"
619
+ };
620
+ const sizeClasses = {
621
+ default: "h-9 px-4 py-2 has-[>svg]:px-3",
622
+ sm: "h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5",
623
+ lg: "h-10 rounded-md px-6 has-[>svg]:px-4",
624
+ icon: "size-9",
625
+ "icon-sm": "size-8",
626
+ "icon-lg": "size-10"
583
627
  };
584
628
  const resolvedVariant = computed(() => {
585
- return variantClasses[props.variant] ? props.variant : "primary";
629
+ return variantClasses[props.variant] ? props.variant : "default";
630
+ });
631
+ const resolvedSize = computed(() => {
632
+ return sizeClasses[props.size] ? props.size : "default";
586
633
  });
587
634
  const buttonClasses = computed(() => [
588
- "inline-flex h-9 min-w-[40px] shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md px-4 py-2 text-sm font-medium shadow-xs outline-none transition-all disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-red-500 aria-invalid:ring-red-500/20 dark:aria-invalid:ring-red-500/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=size-])]:size-4 focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50",
635
+ "inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*=size-])]:size-4 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",
589
636
  variantClasses[resolvedVariant.value],
637
+ sizeClasses[resolvedSize.value],
590
638
  attrs.class
591
639
  ]);
592
640
  return (_ctx, _cache) => {
@@ -596,12 +644,12 @@ const _sfc_main$s = /* @__PURE__ */ Object.assign({
596
644
  class: buttonClasses.value
597
645
  }), [
598
646
  renderSlot(_ctx.$slots, "default")
599
- ], 16, _hoisted_1$q);
647
+ ], 16, _hoisted_1$z);
600
648
  };
601
649
  }
602
650
  });
603
- const _hoisted_1$p = ["value"];
604
- const _sfc_main$r = {
651
+ const _hoisted_1$y = ["value"];
652
+ const _sfc_main$A = {
605
653
  __name: "Checkbox",
606
654
  props: {
607
655
  checked: {
@@ -631,14 +679,14 @@ const _sfc_main$r = {
631
679
  type: "checkbox",
632
680
  value: __props.value,
633
681
  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"
634
- }, null, 8, _hoisted_1$p)), [
682
+ }, null, 8, _hoisted_1$y)), [
635
683
  [vModelCheckbox, proxyChecked.value]
636
684
  ]);
637
685
  };
638
686
  }
639
687
  };
640
- const _hoisted_1$o = ["checked", "disabled"];
641
- const _sfc_main$q = {
688
+ const _hoisted_1$x = ["name", "checked", "disabled"];
689
+ const _sfc_main$z = {
642
690
  __name: "CheckboxInput",
643
691
  props: {
644
692
  modelValue: {
@@ -657,6 +705,10 @@ const _sfc_main$q = {
657
705
  type: String,
658
706
  default: ""
659
707
  },
708
+ name: {
709
+ type: String,
710
+ default: void 0
711
+ },
660
712
  disabled: {
661
713
  type: Boolean,
662
714
  default: false
@@ -688,12 +740,13 @@ const _sfc_main$q = {
688
740
  createElementVNode("input", {
689
741
  type: "checkbox",
690
742
  class: "sr-only",
743
+ name: __props.name,
691
744
  checked: isChecked.value,
692
745
  disabled: __props.disabled,
693
746
  onChange,
694
747
  onFocus: handleFocus,
695
748
  onBlur: handleBlur
696
- }, null, 40, _hoisted_1$o),
749
+ }, null, 40, _hoisted_1$x),
697
750
  createElementVNode("span", {
698
751
  class: normalizeClass(["inline-flex h-4 w-4 items-center justify-center border text-[10px] font-bold leading-none", [
699
752
  isChecked.value ? "border-current bg-white/15 text-current dark:bg-neutral-900/15" : "border-current/70 text-transparent",
@@ -705,21 +758,21 @@ const _sfc_main$q = {
705
758
  };
706
759
  }
707
760
  };
708
- const _hoisted_1$n = { class: "relative flex items-center" };
709
- const _hoisted_2$d = {
761
+ const _hoisted_1$w = { class: "relative flex items-center" };
762
+ const _hoisted_2$i = {
710
763
  key: 0,
711
764
  class: "absolute inset-y-0 left-0 flex items-center pointer-events-none pl-3"
712
765
  };
713
- const _hoisted_3$9 = ["type", "value", "disabled"];
714
- const _hoisted_4$7 = ["aria-label"];
715
- const _hoisted_5$5 = {
766
+ const _hoisted_3$b = ["type", "value", "disabled"];
767
+ const _hoisted_4$9 = ["aria-label"];
768
+ const _hoisted_5$7 = {
716
769
  key: 0,
717
770
  class: "h-5 w-5",
718
771
  fill: "none",
719
772
  stroke: "currentColor",
720
773
  viewBox: "0 0 24 24"
721
774
  };
722
- const _hoisted_6$5 = {
775
+ const _hoisted_6$7 = {
723
776
  key: 1,
724
777
  class: "h-5 w-5",
725
778
  fill: "none",
@@ -727,7 +780,7 @@ const _hoisted_6$5 = {
727
780
  viewBox: "0 0 24 24"
728
781
  };
729
782
  const DEFAULT_MAX_LENGTH$1 = 254;
730
- const _sfc_main$p = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
783
+ const _sfc_main$y = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
731
784
  __name: "TextInput",
732
785
  props: {
733
786
  modelValue: {
@@ -786,8 +839,8 @@ const _sfc_main$p = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
786
839
  });
787
840
  __expose({ focus: () => input.value?.focus() });
788
841
  return (_ctx, _cache) => {
789
- return openBlock(), createElementBlock("div", _hoisted_1$n, [
790
- isPasswordField.value ? (openBlock(), createElementBlock("div", _hoisted_2$d, [
842
+ return openBlock(), createElementBlock("div", _hoisted_1$w, [
843
+ isPasswordField.value ? (openBlock(), createElementBlock("div", _hoisted_2$i, [
791
844
  createVNode(unref(LockClosedIcon), { class: "h-5 w-5 text-neutral-400 dark:text-neutral-200" })
792
845
  ])) : createCommentVNode("", true),
793
846
  createElementVNode("input", mergeProps({
@@ -801,7 +854,7 @@ const _sfc_main$p = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
801
854
  onInput: _cache[0] || (_cache[0] = ($event) => emit("update:modelValue", $event.target.value)),
802
855
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur", $event)),
803
856
  onWheel: handleWheel
804
- }), null, 16, _hoisted_3$9),
857
+ }), null, 16, _hoisted_3$b),
805
858
  isPasswordField.value ? (openBlock(), createElementBlock("button", {
806
859
  key: 1,
807
860
  type: "button",
@@ -809,14 +862,14 @@ const _sfc_main$p = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
809
862
  "aria-label": revealed.value ? "Hide password" : "Show password",
810
863
  onClick: toggleVisibility
811
864
  }, [
812
- revealed.value ? (openBlock(), createElementBlock("svg", _hoisted_5$5, [..._cache[2] || (_cache[2] = [
865
+ revealed.value ? (openBlock(), createElementBlock("svg", _hoisted_5$7, [..._cache[2] || (_cache[2] = [
813
866
  createElementVNode("path", {
814
867
  "stroke-linecap": "round",
815
868
  "stroke-linejoin": "round",
816
869
  "stroke-width": "2",
817
870
  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"
818
871
  }, null, -1)
819
- ])])) : (openBlock(), createElementBlock("svg", _hoisted_6$5, [..._cache[3] || (_cache[3] = [
872
+ ])])) : (openBlock(), createElementBlock("svg", _hoisted_6$7, [..._cache[3] || (_cache[3] = [
820
873
  createElementVNode("path", {
821
874
  "stroke-linecap": "round",
822
875
  "stroke-linejoin": "round",
@@ -830,14 +883,14 @@ const _sfc_main$p = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
830
883
  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"
831
884
  }, null, -1)
832
885
  ])]))
833
- ], 8, _hoisted_4$7)) : createCommentVNode("", true)
886
+ ], 8, _hoisted_4$9)) : createCommentVNode("", true)
834
887
  ]);
835
888
  };
836
889
  }
837
890
  });
838
- const _hoisted_1$m = ["value", "disabled"];
891
+ const _hoisted_1$v = ["value", "disabled"];
839
892
  const DEFAULT_MAX_LENGTH = 1e3;
840
- const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
893
+ const _sfc_main$x = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
841
894
  __name: "TextArea",
842
895
  props: {
843
896
  modelValue: String,
@@ -907,13 +960,13 @@ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
907
960
  value: props.modelValue,
908
961
  disabled: props.disabled,
909
962
  onInput: updateValue
910
- }), null, 16, _hoisted_1$m)
963
+ }), null, 16, _hoisted_1$v)
911
964
  ]);
912
965
  };
913
966
  }
914
967
  });
915
- const _hoisted_1$l = ["onClick"];
916
- const _sfc_main$n = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
968
+ const _hoisted_1$u = ["onClick"];
969
+ const _sfc_main$w = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
917
970
  __name: "CustomSelect",
918
971
  props: {
919
972
  modelValue: {
@@ -1193,7 +1246,7 @@ const _sfc_main$n = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1193
1246
  }
1194
1247
  ]),
1195
1248
  onClick: withModifiers(($event) => selectOption(option), ["stop"])
1196
- }, toDisplayString(optionText(option)), 11, _hoisted_1$l);
1249
+ }, toDisplayString(optionText(option)), 11, _hoisted_1$u);
1197
1250
  }), 128))
1198
1251
  ], 6)) : createCommentVNode("", true)
1199
1252
  ]))
@@ -1204,7 +1257,7 @@ const _sfc_main$n = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1204
1257
  };
1205
1258
  }
1206
1259
  });
1207
- const _sfc_main$m = {
1260
+ const _sfc_main$v = {
1208
1261
  __name: "SelectInput",
1209
1262
  props: {
1210
1263
  modelValue: {
@@ -1292,7 +1345,7 @@ const _sfc_main$m = {
1292
1345
  setup(__props, { emit: __emit }) {
1293
1346
  const emit = __emit;
1294
1347
  return (_ctx, _cache) => {
1295
- return openBlock(), createBlock(_sfc_main$n, mergeProps({
1348
+ return openBlock(), createBlock(_sfc_main$w, mergeProps({
1296
1349
  "model-value": __props.modelValue,
1297
1350
  "model-modifiers": __props.modelModifiers,
1298
1351
  options: __props.options,
@@ -1318,8 +1371,8 @@ const _sfc_main$m = {
1318
1371
  };
1319
1372
  }
1320
1373
  };
1321
- const _hoisted_1$k = ["type", "max", "value", "disabled"];
1322
- const _sfc_main$l = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1374
+ const _hoisted_1$t = ["type", "max", "value", "disabled"];
1375
+ const _sfc_main$u = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1323
1376
  __name: "DateInput",
1324
1377
  props: {
1325
1378
  modelValue: {
@@ -1399,22 +1452,22 @@ const _sfc_main$l = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1399
1452
  disabled: props.disabled,
1400
1453
  onInput: handleDateInput,
1401
1454
  onChange: handleDateInput
1402
- }), null, 16, _hoisted_1$k);
1455
+ }), null, 16, _hoisted_1$t);
1403
1456
  };
1404
1457
  }
1405
1458
  });
1406
- const _hoisted_1$j = { class: "relative" };
1407
- const _hoisted_2$c = { class: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none" };
1408
- const _hoisted_3$8 = ["accept"];
1409
- const _hoisted_4$6 = {
1459
+ const _hoisted_1$s = { class: "relative" };
1460
+ const _hoisted_2$h = { class: "absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none" };
1461
+ const _hoisted_3$a = ["accept"];
1462
+ const _hoisted_4$8 = {
1410
1463
  key: 0,
1411
1464
  class: "mt-4 rounded-lg border border-neutral-200 bg-neutral-50 p-4 dark:border-neutral-800 dark:bg-neutral-900/50"
1412
1465
  };
1413
- const _hoisted_5$4 = { class: "flex items-center space-x-4" };
1414
- const _hoisted_6$4 = ["src"];
1415
- const _hoisted_7$4 = { class: "text-sm font-medium text-neutral-900 dark:text-neutral-50" };
1416
- const _hoisted_8$2 = { class: "text-xs text-neutral-500 dark:text-neutral-200" };
1417
- const _sfc_main$k = {
1466
+ const _hoisted_5$6 = { class: "flex items-center space-x-4" };
1467
+ const _hoisted_6$6 = ["src"];
1468
+ const _hoisted_7$6 = { class: "text-sm font-medium text-neutral-900 dark:text-neutral-50" };
1469
+ const _hoisted_8$3 = { class: "text-xs text-neutral-500 dark:text-neutral-200" };
1470
+ const _sfc_main$t = {
1418
1471
  __name: "ImageInput",
1419
1472
  props: {
1420
1473
  currentImageUrl: {
@@ -1448,8 +1501,8 @@ const _sfc_main$k = {
1448
1501
  };
1449
1502
  return (_ctx, _cache) => {
1450
1503
  return openBlock(), createElementBlock("div", null, [
1451
- createElementVNode("div", _hoisted_1$j, [
1452
- createElementVNode("div", _hoisted_2$c, [
1504
+ createElementVNode("div", _hoisted_1$s, [
1505
+ createElementVNode("div", _hoisted_2$h, [
1453
1506
  createVNode(unref(PhotoIcon), { class: "size-5 text-neutral-400 dark:text-neutral-200" })
1454
1507
  ]),
1455
1508
  createElementVNode("input", mergeProps(__props.attrs, {
@@ -1457,18 +1510,18 @@ const _sfc_main$k = {
1457
1510
  accept: __props.accept,
1458
1511
  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",
1459
1512
  onChange: handleFileChange
1460
- }), null, 16, _hoisted_3$8)
1513
+ }), null, 16, _hoisted_3$a)
1461
1514
  ]),
1462
- props.currentImageUrl ? (openBlock(), createElementBlock("div", _hoisted_4$6, [
1463
- createElementVNode("div", _hoisted_5$4, [
1515
+ props.currentImageUrl ? (openBlock(), createElementBlock("div", _hoisted_4$8, [
1516
+ createElementVNode("div", _hoisted_5$6, [
1464
1517
  createElementVNode("img", {
1465
1518
  src: props.currentImageUrl,
1466
1519
  alt: "Current logo",
1467
1520
  class: "h-16 w-auto max-w-24 object-contain rounded-lg shadow-sm"
1468
- }, null, 8, _hoisted_6$4),
1521
+ }, null, 8, _hoisted_6$6),
1469
1522
  createElementVNode("div", null, [
1470
- createElementVNode("p", _hoisted_7$4, toDisplayString(props.currentLabel), 1),
1471
- createElementVNode("p", _hoisted_8$2, toDisplayString(props.currentSubtext), 1)
1523
+ createElementVNode("p", _hoisted_7$6, toDisplayString(props.currentLabel), 1),
1524
+ createElementVNode("p", _hoisted_8$3, toDisplayString(props.currentSubtext), 1)
1472
1525
  ])
1473
1526
  ])
1474
1527
  ])) : createCommentVNode("", true)
@@ -1476,9 +1529,9 @@ const _sfc_main$k = {
1476
1529
  };
1477
1530
  }
1478
1531
  };
1479
- const _hoisted_1$i = { class: "flex h-12 overflow-hidden rounded-lg border border-neutral-200 bg-white text-sm dark:border-neutral-800 dark:bg-neutral-950" };
1480
- const _hoisted_2$b = ["disabled", "onClick"];
1481
- const _sfc_main$j = {
1532
+ 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" };
1533
+ const _hoisted_2$g = ["disabled", "onClick"];
1534
+ const _sfc_main$s = {
1482
1535
  __name: "NotationInput",
1483
1536
  props: {
1484
1537
  modelValue: {
@@ -1504,7 +1557,7 @@ const _sfc_main$j = {
1504
1557
  const isSelected = (option) => String(option) === String(props.modelValue ?? "");
1505
1558
  const selectOption = (option) => emit("update:modelValue", option);
1506
1559
  return (_ctx, _cache) => {
1507
- return openBlock(), createElementBlock("div", _hoisted_1$i, [
1560
+ return openBlock(), createElementBlock("div", _hoisted_1$r, [
1508
1561
  (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedOptions.value, (option, idx) => {
1509
1562
  return openBlock(), createElementBlock("button", {
1510
1563
  key: `notation-${idx}-${option}`,
@@ -1517,14 +1570,14 @@ const _sfc_main$j = {
1517
1570
  ]]),
1518
1571
  disabled: __props.disabled,
1519
1572
  onClick: ($event) => selectOption(option)
1520
- }, toDisplayString(option), 11, _hoisted_2$b);
1573
+ }, toDisplayString(option), 11, _hoisted_2$g);
1521
1574
  }), 128))
1522
1575
  ]);
1523
1576
  };
1524
1577
  }
1525
1578
  };
1526
- const _hoisted_1$h = ["name", "value", "checked", "disabled"];
1527
- const _sfc_main$i = {
1579
+ const _hoisted_1$q = ["name", "value", "checked", "disabled"];
1580
+ const _sfc_main$r = {
1528
1581
  __name: "RadioInput",
1529
1582
  props: {
1530
1583
  modelValue: {
@@ -1579,14 +1632,14 @@ const _sfc_main$i = {
1579
1632
  onChange,
1580
1633
  onFocus: handleFocus,
1581
1634
  onBlur: handleBlur
1582
- }, null, 40, _hoisted_1$h),
1635
+ }, null, 40, _hoisted_1$q),
1583
1636
  createElementVNode("span", null, toDisplayString(isChecked.value ? "✓" : "○") + " " + toDisplayString(__props.label), 1)
1584
1637
  ], 2);
1585
1638
  };
1586
1639
  }
1587
1640
  };
1588
- const _hoisted_1$g = { class: "flex flex-wrap gap-3" };
1589
- const _sfc_main$h = {
1641
+ const _hoisted_1$p = { class: "flex flex-wrap gap-3" };
1642
+ const _sfc_main$q = {
1590
1643
  __name: "RadioMultipleInput",
1591
1644
  props: {
1592
1645
  modelValue: {
@@ -1615,9 +1668,9 @@ const _sfc_main$h = {
1615
1668
  });
1616
1669
  const selectOption = (option) => emit("update:modelValue", option);
1617
1670
  return (_ctx, _cache) => {
1618
- return openBlock(), createElementBlock("div", _hoisted_1$g, [
1671
+ return openBlock(), createElementBlock("div", _hoisted_1$p, [
1619
1672
  (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedOptions.value, (option) => {
1620
- return openBlock(), createBlock(_sfc_main$f, {
1673
+ return openBlock(), createBlock(_sfc_main$o, {
1621
1674
  key: `radio-${__props.name ?? "group"}-${option}`,
1622
1675
  type: "radio-input",
1623
1676
  "model-value": props.modelValue,
@@ -1632,11 +1685,11 @@ const _sfc_main$h = {
1632
1685
  };
1633
1686
  }
1634
1687
  };
1635
- const _hoisted_1$f = {
1688
+ const _hoisted_1$o = {
1636
1689
  key: 0,
1637
1690
  class: "min-h-[12rem] w-full rounded-lg border border-slate-300 bg-slate-50"
1638
1691
  };
1639
- const _sfc_main$g = {
1692
+ const _sfc_main$p = {
1640
1693
  __name: "TinyEditor",
1641
1694
  props: {
1642
1695
  modelValue: {
@@ -1741,7 +1794,7 @@ const _sfc_main$g = {
1741
1794
  };
1742
1795
  return (_ctx, _cache) => {
1743
1796
  return openBlock(), createElementBlock("div", { key: editorKey.value }, [
1744
- !isEditorReady.value ? (openBlock(), createElementBlock("div", _hoisted_1$f)) : (openBlock(), createBlock(unref(Editor), {
1797
+ !isEditorReady.value ? (openBlock(), createElementBlock("div", _hoisted_1$o)) : (openBlock(), createBlock(unref(Editor), {
1745
1798
  key: 1,
1746
1799
  "initial-value": content.value,
1747
1800
  "license-key": __props.licenseKey,
@@ -1755,17 +1808,17 @@ const _sfc_main$g = {
1755
1808
  };
1756
1809
  }
1757
1810
  };
1758
- const _hoisted_1$e = ["for"];
1759
- const _hoisted_2$a = {
1811
+ const _hoisted_1$n = ["for"];
1812
+ const _hoisted_2$f = {
1760
1813
  key: 1,
1761
1814
  class: "text-xs text-gray-500 mb-1 block break-all"
1762
1815
  };
1763
- const _hoisted_3$7 = {
1816
+ const _hoisted_3$9 = {
1764
1817
  key: 15,
1765
1818
  class: "flex items-center mt-2 text-sm text-red-600"
1766
1819
  };
1767
1820
  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";
1768
- const _sfc_main$f = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1821
+ const _sfc_main$o = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1769
1822
  __name: "InputGroup",
1770
1823
  props: {
1771
1824
  type: {
@@ -1951,6 +2004,7 @@ const _sfc_main$f = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1951
2004
  ...attrs,
1952
2005
  class: [defaultFieldClass, attrs.class],
1953
2006
  type: props.type,
2007
+ name: props.name,
1954
2008
  modelValue: props.modelValue,
1955
2009
  disabled: props.disabled,
1956
2010
  disabledClass: props.disabledClass
@@ -1958,6 +2012,7 @@ const _sfc_main$f = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1958
2012
  const textAreaBindings = computed(() => ({
1959
2013
  ...attrs,
1960
2014
  class: [defaultFieldClass, attrs.class],
2015
+ name: props.name,
1961
2016
  modelValue: props.modelValue,
1962
2017
  disabled: props.disabled,
1963
2018
  disabledClass: props.disabledClass
@@ -1965,6 +2020,7 @@ const _sfc_main$f = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1965
2020
  const dateBindings = computed(() => ({
1966
2021
  ...attrs,
1967
2022
  class: [defaultFieldClass, attrs.class],
2023
+ name: props.name,
1968
2024
  modelValue: props.modelValue,
1969
2025
  withTimestamp: props.type === "datetime-local" || props.withTimestamp,
1970
2026
  disabled: props.disabled,
@@ -1974,6 +2030,7 @@ const _sfc_main$f = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1974
2030
  const inputProps = {
1975
2031
  ...attrs,
1976
2032
  class: [defaultFieldClass, attrs.class],
2033
+ name: props.name,
1977
2034
  modelValue: props.modelValue,
1978
2035
  modelModifiers: props.modelModifiers,
1979
2036
  options: props.options,
@@ -1996,12 +2053,14 @@ const _sfc_main$f = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
1996
2053
  });
1997
2054
  const notationBindings = computed(() => ({
1998
2055
  ...attrs,
2056
+ name: props.name,
1999
2057
  modelValue: props.modelValue,
2000
2058
  options: props.options,
2001
2059
  disabled: props.disabled
2002
2060
  }));
2003
2061
  const checkboxBindings = computed(() => ({
2004
2062
  ...attrs,
2063
+ name: props.name,
2005
2064
  modelValue: props.modelValue,
2006
2065
  options: props.options,
2007
2066
  disabled: props.disabled
@@ -2015,6 +2074,7 @@ const _sfc_main$f = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2015
2074
  }));
2016
2075
  const checkboxSingleBindings = computed(() => ({
2017
2076
  ...attrs,
2077
+ name: props.name,
2018
2078
  modelValue: props.modelValue,
2019
2079
  label: props.label || attrs.label || "",
2020
2080
  disabled: props.disabled
@@ -2057,39 +2117,39 @@ const _sfc_main$f = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2057
2117
  key: 0,
2058
2118
  for: fieldId.value,
2059
2119
  class: "text-base font-semibold text-gray-900 dark:text-gray-50 mb-1 block"
2060
- }, toDisplayString(__props.label), 9, _hoisted_1$e)) : createCommentVNode("", true),
2061
- __props.helperText && !showsInlineChoiceControl.value ? (openBlock(), createElementBlock("span", _hoisted_2$a, toDisplayString(__props.helperText), 1)) : createCommentVNode("", true),
2062
- isTextareaType.value ? (openBlock(), createBlock(_sfc_main$o, mergeProps({ key: 2 }, textAreaBindings.value, {
2120
+ }, toDisplayString(__props.label), 9, _hoisted_1$n)) : createCommentVNode("", true),
2121
+ __props.helperText && !showsInlineChoiceControl.value ? (openBlock(), createElementBlock("span", _hoisted_2$f, toDisplayString(__props.helperText), 1)) : createCommentVNode("", true),
2122
+ isTextareaType.value ? (openBlock(), createBlock(_sfc_main$x, mergeProps({ key: 2 }, textAreaBindings.value, {
2063
2123
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("update:modelValue", $event)),
2064
2124
  onBlur: _cache[1] || (_cache[1] = ($event) => emit("blur", $event))
2065
- }), null, 16)) : isTinyEditorType.value ? (openBlock(), createBlock(_sfc_main$g, mergeProps({ key: 3 }, tinyEditorBindings.value, {
2125
+ }), null, 16)) : isTinyEditorType.value ? (openBlock(), createBlock(_sfc_main$p, mergeProps({ key: 3 }, tinyEditorBindings.value, {
2066
2126
  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => emit("update:modelValue", $event)),
2067
2127
  onBlur: _cache[3] || (_cache[3] = ($event) => emit("blur", $event))
2068
- }), null, 16)) : isSelectType.value ? (openBlock(), createBlock(_sfc_main$m, mergeProps({ key: 4 }, selectBindings.value, {
2128
+ }), null, 16)) : isSelectType.value ? (openBlock(), createBlock(_sfc_main$v, mergeProps({ key: 4 }, selectBindings.value, {
2069
2129
  "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => emit("update:modelValue", $event)),
2070
2130
  onBlur: _cache[5] || (_cache[5] = ($event) => emit("blur", $event))
2071
- }), null, 16)) : isDateType.value ? (openBlock(), createBlock(_sfc_main$l, mergeProps({ key: 5 }, dateBindings.value, {
2131
+ }), null, 16)) : isDateType.value ? (openBlock(), createBlock(_sfc_main$u, mergeProps({ key: 5 }, dateBindings.value, {
2072
2132
  "onUpdate:modelValue": _cache[6] || (_cache[6] = ($event) => emit("update:modelValue", $event)),
2073
2133
  onBlur: _cache[7] || (_cache[7] = ($event) => emit("blur", $event))
2074
- }), null, 16)) : isTextLikeType.value ? (openBlock(), createBlock(_sfc_main$p, mergeProps({ key: 6 }, textInputBindings.value, {
2134
+ }), null, 16)) : isTextLikeType.value ? (openBlock(), createBlock(_sfc_main$y, mergeProps({ key: 6 }, textInputBindings.value, {
2075
2135
  "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => emit("update:modelValue", $event)),
2076
2136
  onBlur: _cache[9] || (_cache[9] = ($event) => emit("blur", $event))
2077
- }), null, 16)) : isImageType.value ? (openBlock(), createBlock(_sfc_main$k, mergeProps({ key: 7 }, imageBindings.value, {
2137
+ }), null, 16)) : isImageType.value ? (openBlock(), createBlock(_sfc_main$t, mergeProps({ key: 7 }, imageBindings.value, {
2078
2138
  "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => emit("update:modelValue", $event)),
2079
2139
  onBlur: _cache[11] || (_cache[11] = ($event) => emit("blur", $event))
2080
- }), null, 16)) : isCheckboxSingleType.value ? (openBlock(), createBlock(_sfc_main$q, mergeProps({ key: 8 }, checkboxSingleBindings.value, {
2140
+ }), null, 16)) : isCheckboxSingleType.value ? (openBlock(), createBlock(_sfc_main$z, mergeProps({ key: 8 }, checkboxSingleBindings.value, {
2081
2141
  "onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => emit("update:modelValue", $event)),
2082
2142
  onBlur: _cache[13] || (_cache[13] = ($event) => emit("blur", $event))
2083
- }), null, 16)) : isRadioSingleType.value ? (openBlock(), createBlock(_sfc_main$i, mergeProps({ key: 9 }, radioSingleBindings.value, {
2143
+ }), null, 16)) : isRadioSingleType.value ? (openBlock(), createBlock(_sfc_main$r, mergeProps({ key: 9 }, radioSingleBindings.value, {
2084
2144
  "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => emit("update:modelValue", $event)),
2085
2145
  onBlur: _cache[15] || (_cache[15] = ($event) => emit("blur", $event))
2086
- }), null, 16)) : isNotationType.value ? (openBlock(), createBlock(_sfc_main$j, mergeProps({ key: 10 }, notationBindings.value, {
2146
+ }), null, 16)) : isNotationType.value ? (openBlock(), createBlock(_sfc_main$s, mergeProps({ key: 10 }, notationBindings.value, {
2087
2147
  "onUpdate:modelValue": _cache[16] || (_cache[16] = ($event) => emit("update:modelValue", $event)),
2088
2148
  onBlur: _cache[17] || (_cache[17] = ($event) => emit("blur", $event))
2089
- }), null, 16)) : isCheckboxType.value ? (openBlock(), createBlock(_sfc_main$e, mergeProps({ key: 11 }, checkboxBindings.value, {
2149
+ }), null, 16)) : isCheckboxType.value ? (openBlock(), createBlock(_sfc_main$n, mergeProps({ key: 11 }, checkboxBindings.value, {
2090
2150
  "onUpdate:modelValue": _cache[18] || (_cache[18] = ($event) => emit("update:modelValue", $event)),
2091
2151
  onBlur: _cache[19] || (_cache[19] = ($event) => emit("blur", $event))
2092
- }), null, 16)) : isRadioType.value ? (openBlock(), createBlock(_sfc_main$h, mergeProps({ key: 12 }, radioBindings.value, {
2152
+ }), null, 16)) : isRadioType.value ? (openBlock(), createBlock(_sfc_main$q, mergeProps({ key: 12 }, radioBindings.value, {
2093
2153
  "onUpdate:modelValue": _cache[20] || (_cache[20] = ($event) => emit("update:modelValue", $event)),
2094
2154
  onBlur: _cache[21] || (_cache[21] = ($event) => emit("blur", $event))
2095
2155
  }), null, 16)) : isNoComponentType.value ? renderSlot(_ctx.$slots, "unsupported-type", {
@@ -2105,7 +2165,7 @@ const _sfc_main$f = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2105
2165
  updateValue,
2106
2166
  attrs: unref(attrs)
2107
2167
  }),
2108
- hasError.value ? (openBlock(), createElementBlock("div", _hoisted_3$7, [
2168
+ hasError.value ? (openBlock(), createElementBlock("div", _hoisted_3$9, [
2109
2169
  createVNode(unref(ExclamationCircleIcon), { class: "mr-1 h-4 w-4 flex-shrink-0" }),
2110
2170
  createElementVNode("span", null, toDisplayString(__props.errorMessage), 1)
2111
2171
  ])) : createCommentVNode("", true)
@@ -2113,8 +2173,8 @@ const _sfc_main$f = /* @__PURE__ */ Object.assign({ inheritAttrs: false }, {
2113
2173
  };
2114
2174
  }
2115
2175
  });
2116
- const _hoisted_1$d = { class: "flex flex-wrap gap-3" };
2117
- const _sfc_main$e = {
2176
+ const _hoisted_1$m = { class: "flex flex-wrap gap-3" };
2177
+ const _sfc_main$n = {
2118
2178
  __name: "CheckboxMultipleInput",
2119
2179
  props: {
2120
2180
  modelValue: {
@@ -2125,6 +2185,10 @@ const _sfc_main$e = {
2125
2185
  type: Array,
2126
2186
  default: () => []
2127
2187
  },
2188
+ name: {
2189
+ type: String,
2190
+ default: void 0
2191
+ },
2128
2192
  disabled: {
2129
2193
  type: Boolean,
2130
2194
  default: false
@@ -2151,24 +2215,25 @@ const _sfc_main$e = {
2151
2215
  emit("update:modelValue", nextSelection);
2152
2216
  };
2153
2217
  return (_ctx, _cache) => {
2154
- return openBlock(), createElementBlock("div", _hoisted_1$d, [
2218
+ return openBlock(), createElementBlock("div", _hoisted_1$m, [
2155
2219
  (openBlock(true), createElementBlock(Fragment, null, renderList(normalizedOptions.value, (option) => {
2156
- return openBlock(), createBlock(_sfc_main$f, {
2220
+ return openBlock(), createBlock(_sfc_main$o, {
2157
2221
  key: `checkbox-${option}`,
2158
2222
  type: "checkbox-input",
2223
+ name: __props.name,
2159
2224
  "model-value": isChecked(option),
2160
2225
  value: true,
2161
2226
  "unchecked-value": false,
2162
2227
  label: option,
2163
2228
  disabled: __props.disabled,
2164
2229
  "onUpdate:modelValue": (checked) => updateSelection(option, checked)
2165
- }, null, 8, ["model-value", "label", "disabled", "onUpdate:modelValue"]);
2230
+ }, null, 8, ["name", "model-value", "label", "disabled", "onUpdate:modelValue"]);
2166
2231
  }), 128))
2167
2232
  ]);
2168
2233
  };
2169
2234
  }
2170
2235
  };
2171
- const _sfc_main$d = {
2236
+ const _sfc_main$m = {
2172
2237
  __name: "Modal",
2173
2238
  props: {
2174
2239
  show: {
@@ -2309,14 +2374,14 @@ const _sfc_main$d = {
2309
2374
  };
2310
2375
  }
2311
2376
  };
2312
- const _hoisted_1$c = { class: "bg-white px-4 pb-4 pt-5 dark:bg-neutral-950 sm:p-6 sm:pb-4" };
2313
- const _hoisted_2$9 = { class: "sm:flex sm:items-start" };
2314
- 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" };
2315
- const _hoisted_4$5 = { class: "mt-3 text-center sm:mt-0 sm:ms-4 sm:text-start" };
2316
- const _hoisted_5$3 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
2317
- const _hoisted_6$3 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
2318
- 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" };
2319
- const _sfc_main$c = {
2377
+ const _hoisted_1$l = { class: "bg-white px-4 pb-4 pt-5 dark:bg-neutral-950 sm:p-6 sm:pb-4" };
2378
+ const _hoisted_2$e = { class: "sm:flex sm:items-start" };
2379
+ 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" };
2380
+ const _hoisted_4$7 = { class: "mt-3 text-center sm:mt-0 sm:ms-4 sm:text-start" };
2381
+ const _hoisted_5$5 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
2382
+ const _hoisted_6$5 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
2383
+ 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" };
2384
+ const _sfc_main$l = {
2320
2385
  __name: "ConfirmationModal",
2321
2386
  props: {
2322
2387
  show: {
@@ -2344,7 +2409,7 @@ const _sfc_main$c = {
2344
2409
  emit("close");
2345
2410
  };
2346
2411
  return (_ctx, _cache) => {
2347
- return openBlock(), createBlock(_sfc_main$d, {
2412
+ return openBlock(), createBlock(_sfc_main$m, {
2348
2413
  show: __props.show,
2349
2414
  "max-width": __props.maxWidth,
2350
2415
  closeable: __props.closeable,
@@ -2352,22 +2417,22 @@ const _sfc_main$c = {
2352
2417
  onClose: close
2353
2418
  }, {
2354
2419
  default: withCtx(() => [
2355
- createElementVNode("div", _hoisted_1$c, [
2356
- createElementVNode("div", _hoisted_2$9, [
2357
- createElementVNode("div", _hoisted_3$6, [
2420
+ createElementVNode("div", _hoisted_1$l, [
2421
+ createElementVNode("div", _hoisted_2$e, [
2422
+ createElementVNode("div", _hoisted_3$8, [
2358
2423
  createVNode(unref(ExclamationTriangleIcon), { class: "size-6 text-red-600 dark:text-neutral-100" })
2359
2424
  ]),
2360
- createElementVNode("div", _hoisted_4$5, [
2361
- createElementVNode("h3", _hoisted_5$3, [
2425
+ createElementVNode("div", _hoisted_4$7, [
2426
+ createElementVNode("h3", _hoisted_5$5, [
2362
2427
  renderSlot(_ctx.$slots, "title")
2363
2428
  ]),
2364
- createElementVNode("div", _hoisted_6$3, [
2429
+ createElementVNode("div", _hoisted_6$5, [
2365
2430
  renderSlot(_ctx.$slots, "content")
2366
2431
  ])
2367
2432
  ])
2368
2433
  ])
2369
2434
  ]),
2370
- createElementVNode("div", _hoisted_7$3, [
2435
+ createElementVNode("div", _hoisted_7$5, [
2371
2436
  renderSlot(_ctx.$slots, "footer")
2372
2437
  ])
2373
2438
  ]),
@@ -2376,11 +2441,11 @@ const _sfc_main$c = {
2376
2441
  };
2377
2442
  }
2378
2443
  };
2379
- const _hoisted_1$b = { class: "px-6 py-4" };
2380
- const _hoisted_2$8 = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
2381
- const _hoisted_3$5 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
2382
- 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" };
2383
- const _sfc_main$b = {
2444
+ const _hoisted_1$k = { class: "px-6 py-4" };
2445
+ const _hoisted_2$d = { class: "text-lg font-medium text-neutral-950 dark:text-neutral-50" };
2446
+ const _hoisted_3$7 = { class: "mt-4 text-sm text-neutral-600 dark:text-neutral-200" };
2447
+ 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" };
2448
+ const _sfc_main$k = {
2384
2449
  __name: "DialogModal",
2385
2450
  props: {
2386
2451
  show: {
@@ -2403,22 +2468,22 @@ const _sfc_main$b = {
2403
2468
  emit("close");
2404
2469
  };
2405
2470
  return (_ctx, _cache) => {
2406
- return openBlock(), createBlock(_sfc_main$d, {
2471
+ return openBlock(), createBlock(_sfc_main$m, {
2407
2472
  show: __props.show,
2408
2473
  "max-width": __props.maxWidth,
2409
2474
  closeable: __props.closeable,
2410
2475
  onClose: close
2411
2476
  }, {
2412
2477
  default: withCtx(() => [
2413
- createElementVNode("div", _hoisted_1$b, [
2414
- createElementVNode("div", _hoisted_2$8, [
2478
+ createElementVNode("div", _hoisted_1$k, [
2479
+ createElementVNode("div", _hoisted_2$d, [
2415
2480
  renderSlot(_ctx.$slots, "title")
2416
2481
  ]),
2417
- createElementVNode("div", _hoisted_3$5, [
2482
+ createElementVNode("div", _hoisted_3$7, [
2418
2483
  renderSlot(_ctx.$slots, "content")
2419
2484
  ])
2420
2485
  ]),
2421
- createElementVNode("div", _hoisted_4$4, [
2486
+ createElementVNode("div", _hoisted_4$6, [
2422
2487
  renderSlot(_ctx.$slots, "footer")
2423
2488
  ])
2424
2489
  ]),
@@ -2427,8 +2492,8 @@ const _sfc_main$b = {
2427
2492
  };
2428
2493
  }
2429
2494
  };
2430
- const _hoisted_1$a = { class: "relative inline-block w-fit" };
2431
- const _sfc_main$a = {
2495
+ const _hoisted_1$j = { class: "relative inline-block w-fit" };
2496
+ const _sfc_main$j = {
2432
2497
  __name: "Dropdown",
2433
2498
  props: {
2434
2499
  align: {
@@ -2569,7 +2634,7 @@ const _sfc_main$a = {
2569
2634
  window.removeEventListener("scroll", handleViewportChange, true);
2570
2635
  });
2571
2636
  return (_ctx, _cache) => {
2572
- return openBlock(), createElementBlock("div", _hoisted_1$a, [
2637
+ return openBlock(), createElementBlock("div", _hoisted_1$j, [
2573
2638
  createElementVNode("div", {
2574
2639
  ref_key: "triggerRef",
2575
2640
  ref: triggerRef,
@@ -2609,13 +2674,13 @@ const _sfc_main$a = {
2609
2674
  };
2610
2675
  }
2611
2676
  };
2612
- const _hoisted_1$9 = {
2677
+ const _hoisted_1$i = {
2613
2678
  key: 0,
2614
2679
  type: "submit",
2615
2680
  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"
2616
2681
  };
2617
- const _hoisted_2$7 = ["href"];
2618
- const _sfc_main$9 = {
2682
+ const _hoisted_2$c = ["href"];
2683
+ const _sfc_main$i = {
2619
2684
  __name: "DropdownLink",
2620
2685
  props: {
2621
2686
  href: String,
@@ -2624,7 +2689,7 @@ const _sfc_main$9 = {
2624
2689
  setup(__props) {
2625
2690
  return (_ctx, _cache) => {
2626
2691
  return openBlock(), createElementBlock("div", null, [
2627
- __props.as == "button" ? (openBlock(), createElementBlock("button", _hoisted_1$9, [
2692
+ __props.as == "button" ? (openBlock(), createElementBlock("button", _hoisted_1$i, [
2628
2693
  renderSlot(_ctx.$slots, "default")
2629
2694
  ])) : __props.as == "a" ? (openBlock(), createElementBlock("a", {
2630
2695
  key: 1,
@@ -2632,7 +2697,7 @@ const _sfc_main$9 = {
2632
2697
  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"
2633
2698
  }, [
2634
2699
  renderSlot(_ctx.$slots, "default")
2635
- ], 8, _hoisted_2$7)) : (openBlock(), createBlock(unref(Link), {
2700
+ ], 8, _hoisted_2$c)) : (openBlock(), createBlock(unref(Link), {
2636
2701
  key: 2,
2637
2702
  href: __props.href,
2638
2703
  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"
@@ -2646,20 +2711,20 @@ const _sfc_main$9 = {
2646
2711
  };
2647
2712
  }
2648
2713
  };
2649
- const _hoisted_1$8 = { class: "md:grid md:grid-cols-3 md:gap-6" };
2650
- const _hoisted_2$6 = { class: "mt-5 md:col-span-2 md:mt-0" };
2651
- const _hoisted_3$4 = { class: "grid grid-cols-6 gap-6" };
2652
- const _hoisted_4$3 = {
2714
+ const _hoisted_1$h = { class: "md:grid md:grid-cols-3 md:gap-6" };
2715
+ const _hoisted_2$b = { class: "mt-5 md:col-span-2 md:mt-0" };
2716
+ const _hoisted_3$6 = { class: "grid grid-cols-6 gap-6" };
2717
+ const _hoisted_4$5 = {
2653
2718
  key: 0,
2654
2719
  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"
2655
2720
  };
2656
- const _sfc_main$8 = {
2721
+ const _sfc_main$h = {
2657
2722
  __name: "FormSection",
2658
2723
  emits: ["submitted"],
2659
2724
  setup(__props) {
2660
2725
  const hasActions = computed(() => !!useSlots().actions);
2661
2726
  return (_ctx, _cache) => {
2662
- return openBlock(), createElementBlock("div", _hoisted_1$8, [
2727
+ return openBlock(), createElementBlock("div", _hoisted_1$h, [
2663
2728
  createVNode(SectionTitle, null, {
2664
2729
  title: withCtx(() => [
2665
2730
  renderSlot(_ctx.$slots, "title")
@@ -2669,18 +2734,18 @@ const _sfc_main$8 = {
2669
2734
  ]),
2670
2735
  _: 3
2671
2736
  }),
2672
- createElementVNode("div", _hoisted_2$6, [
2737
+ createElementVNode("div", _hoisted_2$b, [
2673
2738
  createElementVNode("form", {
2674
2739
  onSubmit: _cache[0] || (_cache[0] = withModifiers(($event) => _ctx.$emit("submitted"), ["prevent"]))
2675
2740
  }, [
2676
2741
  createElementVNode("div", {
2677
2742
  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"])
2678
2743
  }, [
2679
- createElementVNode("div", _hoisted_3$4, [
2744
+ createElementVNode("div", _hoisted_3$6, [
2680
2745
  renderSlot(_ctx.$slots, "form")
2681
2746
  ])
2682
2747
  ], 2),
2683
- hasActions.value ? (openBlock(), createElementBlock("div", _hoisted_4$3, [
2748
+ hasActions.value ? (openBlock(), createElementBlock("div", _hoisted_4$5, [
2684
2749
  renderSlot(_ctx.$slots, "actions")
2685
2750
  ])) : createCommentVNode("", true)
2686
2751
  ], 32)
@@ -2689,8 +2754,8 @@ const _sfc_main$8 = {
2689
2754
  };
2690
2755
  }
2691
2756
  };
2692
- const _hoisted_1$7 = { class: "text-sm text-red-600 dark:text-neutral-100" };
2693
- const _sfc_main$7 = {
2757
+ const _hoisted_1$g = { class: "text-sm text-red-600 dark:text-neutral-100" };
2758
+ const _sfc_main$g = {
2694
2759
  __name: "InputError",
2695
2760
  props: {
2696
2761
  message: String
@@ -2698,33 +2763,33 @@ const _sfc_main$7 = {
2698
2763
  setup(__props) {
2699
2764
  return (_ctx, _cache) => {
2700
2765
  return withDirectives((openBlock(), createElementBlock("div", null, [
2701
- createElementVNode("p", _hoisted_1$7, toDisplayString(__props.message), 1)
2766
+ createElementVNode("p", _hoisted_1$g, toDisplayString(__props.message), 1)
2702
2767
  ], 512)), [
2703
2768
  [vShow, __props.message]
2704
2769
  ]);
2705
2770
  };
2706
2771
  }
2707
2772
  };
2708
- const _hoisted_1$6 = { class: "block text-sm font-medium text-neutral-700 dark:text-neutral-100" };
2709
- const _hoisted_2$5 = { key: 0 };
2710
- const _hoisted_3$3 = { key: 1 };
2711
- const _sfc_main$6 = {
2773
+ const _hoisted_1$f = { class: "block text-sm font-medium text-neutral-700 dark:text-neutral-100" };
2774
+ const _hoisted_2$a = { key: 0 };
2775
+ const _hoisted_3$5 = { key: 1 };
2776
+ const _sfc_main$f = {
2712
2777
  __name: "InputLabel",
2713
2778
  props: {
2714
2779
  value: String
2715
2780
  },
2716
2781
  setup(__props) {
2717
2782
  return (_ctx, _cache) => {
2718
- return openBlock(), createElementBlock("label", _hoisted_1$6, [
2719
- __props.value ? (openBlock(), createElementBlock("span", _hoisted_2$5, toDisplayString(__props.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_3$3, [
2783
+ return openBlock(), createElementBlock("label", _hoisted_1$f, [
2784
+ __props.value ? (openBlock(), createElementBlock("span", _hoisted_2$a, toDisplayString(__props.value), 1)) : (openBlock(), createElementBlock("span", _hoisted_3$5, [
2720
2785
  renderSlot(_ctx.$slots, "default")
2721
2786
  ]))
2722
2787
  ]);
2723
2788
  };
2724
2789
  }
2725
2790
  };
2726
- const _hoisted_1$5 = ["href", "title", "target", "rel"];
2727
- const _sfc_main$5 = /* @__PURE__ */ Object.assign({
2791
+ const _hoisted_1$e = ["href", "title", "target", "rel"];
2792
+ const _sfc_main$e = /* @__PURE__ */ Object.assign({
2728
2793
  inheritAttrs: false
2729
2794
  }, {
2730
2795
  __name: "LinkButton",
@@ -2793,24 +2858,472 @@ const _sfc_main$5 = /* @__PURE__ */ Object.assign({
2793
2858
  class: linkClasses.value
2794
2859
  }), [
2795
2860
  renderSlot(_ctx.$slots, "default")
2796
- ], 16, _hoisted_1$5));
2861
+ ], 16, _hoisted_1$e));
2797
2862
  };
2798
2863
  }
2799
2864
  });
2800
- const _hoisted_1$4 = { class: "hidden sm:block" };
2801
- const _hoisted_2$4 = { class: "py-8" };
2802
- const _sfc_main$4 = {
2865
+ const _hoisted_1$d = { class: "hidden sm:block" };
2866
+ const _hoisted_2$9 = { class: "py-8" };
2867
+ const _sfc_main$d = {
2803
2868
  __name: "SectionBorder",
2804
2869
  setup(__props) {
2805
2870
  return (_ctx, _cache) => {
2806
- return openBlock(), createElementBlock("div", _hoisted_1$4, [
2807
- createElementVNode("div", _hoisted_2$4, [
2808
- createVNode(_sfc_main$y)
2871
+ return openBlock(), createElementBlock("div", _hoisted_1$d, [
2872
+ createElementVNode("div", _hoisted_2$9, [
2873
+ createVNode(_sfc_main$H)
2809
2874
  ])
2810
2875
  ]);
2811
2876
  };
2812
2877
  }
2813
2878
  };
2879
+ 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" };
2880
+ const _hoisted_2$8 = { class: "grid flex-1 text-left text-sm text-neutral-900 dark:text-neutral-100" };
2881
+ const _hoisted_3$4 = { class: "mb-0.5 truncate leading-tight font-semibold" };
2882
+ const _hoisted_4$4 = {
2883
+ key: 0,
2884
+ class: "truncate text-xs text-neutral-500 dark:text-neutral-400"
2885
+ };
2886
+ const _hoisted_5$4 = ["href", "target", "rel"];
2887
+ 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" };
2888
+ const _hoisted_7$4 = { class: "grid flex-1 text-left text-sm text-neutral-900 dark:text-neutral-100" };
2889
+ const _hoisted_8$2 = { class: "mb-0.5 truncate leading-tight font-semibold" };
2890
+ const _hoisted_9$2 = {
2891
+ key: 0,
2892
+ class: "truncate text-xs text-neutral-500 dark:text-neutral-400"
2893
+ };
2894
+ 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" };
2895
+ const _hoisted_11$2 = { class: "grid flex-1 text-left text-sm text-neutral-900 dark:text-neutral-100" };
2896
+ const _hoisted_12$2 = { class: "mb-0.5 truncate leading-tight font-semibold" };
2897
+ const _hoisted_13$2 = {
2898
+ key: 0,
2899
+ class: "truncate text-xs text-neutral-500 dark:text-neutral-400"
2900
+ };
2901
+ const sharedClass = "flex items-center gap-3 rounded-lg px-3 py-2 transition-colors hover:bg-neutral-100 dark:hover:bg-neutral-900";
2902
+ const _sfc_main$c = /* @__PURE__ */ defineComponent({
2903
+ __name: "SideMenuBrand",
2904
+ props: {
2905
+ title: {},
2906
+ subtitle: { default: "" },
2907
+ href: { default: void 0 },
2908
+ external: { type: Boolean, default: false },
2909
+ target: { default: void 0 },
2910
+ rel: { default: void 0 },
2911
+ logoText: { default: "" }
2912
+ },
2913
+ setup(__props) {
2914
+ const props = __props;
2915
+ const logoFallback = computed(() => {
2916
+ if (props.logoText) {
2917
+ return props.logoText;
2918
+ }
2919
+ return props.title.split(" ").filter(Boolean).slice(0, 2).map((part) => part.charAt(0)).join("").toUpperCase();
2920
+ });
2921
+ return (_ctx, _cache) => {
2922
+ return __props.href && !__props.external ? (openBlock(), createBlock(unref(Link), {
2923
+ key: 0,
2924
+ href: __props.href,
2925
+ class: normalizeClass(sharedClass)
2926
+ }, {
2927
+ default: withCtx(() => [
2928
+ renderSlot(_ctx.$slots, "logo", {}, () => [
2929
+ createElementVNode("div", _hoisted_1$c, toDisplayString(logoFallback.value), 1)
2930
+ ]),
2931
+ createElementVNode("div", _hoisted_2$8, [
2932
+ createElementVNode("span", _hoisted_3$4, toDisplayString(__props.title), 1),
2933
+ __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_4$4, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
2934
+ ])
2935
+ ]),
2936
+ _: 3
2937
+ }, 8, ["href"])) : __props.href && __props.external ? (openBlock(), createElementBlock("a", {
2938
+ key: 1,
2939
+ href: __props.href,
2940
+ target: __props.target,
2941
+ rel: __props.rel,
2942
+ class: normalizeClass(sharedClass)
2943
+ }, [
2944
+ renderSlot(_ctx.$slots, "logo", {}, () => [
2945
+ createElementVNode("div", _hoisted_6$4, toDisplayString(logoFallback.value), 1)
2946
+ ]),
2947
+ createElementVNode("div", _hoisted_7$4, [
2948
+ createElementVNode("span", _hoisted_8$2, toDisplayString(__props.title), 1),
2949
+ __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_9$2, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
2950
+ ])
2951
+ ], 8, _hoisted_5$4)) : (openBlock(), createElementBlock("div", {
2952
+ key: 2,
2953
+ class: normalizeClass(sharedClass)
2954
+ }, [
2955
+ renderSlot(_ctx.$slots, "logo", {}, () => [
2956
+ createElementVNode("div", _hoisted_10$2, toDisplayString(logoFallback.value), 1)
2957
+ ]),
2958
+ createElementVNode("div", _hoisted_11$2, [
2959
+ createElementVNode("span", _hoisted_12$2, toDisplayString(__props.title), 1),
2960
+ __props.subtitle ? (openBlock(), createElementBlock("span", _hoisted_13$2, toDisplayString(__props.subtitle), 1)) : createCommentVNode("", true)
2961
+ ])
2962
+ ]));
2963
+ };
2964
+ }
2965
+ });
2966
+ const _hoisted_1$b = ["href", "aria-current", "target", "rel"];
2967
+ 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";
2968
+ const _sfc_main$b = /* @__PURE__ */ defineComponent({
2969
+ __name: "SideMenuButton",
2970
+ props: {
2971
+ href: {},
2972
+ title: { default: "" },
2973
+ active: { type: Boolean },
2974
+ icon: {},
2975
+ external: { type: Boolean, default: false },
2976
+ target: { default: void 0 },
2977
+ rel: { default: void 0 },
2978
+ activeClass: { default: "bg-muted text-foreground dark:text-white" },
2979
+ class: { type: [Boolean, null, String, Object, Array], default: void 0 },
2980
+ itemClass: { type: [Boolean, null, String, Object, Array], default: "" },
2981
+ iconClass: { default: "h-4 w-4" }
2982
+ },
2983
+ setup(__props) {
2984
+ const props = __props;
2985
+ return (_ctx, _cache) => {
2986
+ return !__props.external ? (openBlock(), createBlock(unref(Link), {
2987
+ key: 0,
2988
+ href: __props.href,
2989
+ "aria-current": __props.active ? "page" : void 0,
2990
+ class: normalizeClass([baseClass, __props.active ? __props.activeClass : "", __props.itemClass, props.class])
2991
+ }, {
2992
+ default: withCtx(() => [
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
+ ]),
3001
+ _: 3
3002
+ }, 8, ["href", "aria-current", "class"])) : (openBlock(), createElementBlock("a", {
3003
+ key: 1,
3004
+ href: __props.href,
3005
+ "aria-current": __props.active ? "page" : void 0,
3006
+ target: __props.target,
3007
+ rel: __props.rel,
3008
+ class: normalizeClass([baseClass, __props.active ? __props.activeClass : "", __props.itemClass, props.class])
3009
+ }, [
3010
+ __props.icon ? (openBlock(), createBlock(resolveDynamicComponent(__props.icon), {
3011
+ key: 0,
3012
+ class: normalizeClass(__props.iconClass)
3013
+ }, null, 8, ["class"])) : createCommentVNode("", true),
3014
+ renderSlot(_ctx.$slots, "default", {}, () => [
3015
+ createTextVNode(toDisplayString(__props.title), 1)
3016
+ ])
3017
+ ], 10, _hoisted_1$b));
3018
+ };
3019
+ }
3020
+ });
3021
+ const _hoisted_1$a = ["aria-label"];
3022
+ const _sfc_main$a = /* @__PURE__ */ defineComponent({
3023
+ __name: "SideMenuList",
3024
+ props: {
3025
+ items: {},
3026
+ label: { default: "Navigation" },
3027
+ activeClass: { default: "bg-muted text-foreground dark:text-white" },
3028
+ itemClass: { default: "" },
3029
+ iconClass: { default: "h-4 w-4" }
3030
+ },
3031
+ setup(__props) {
3032
+ return (_ctx, _cache) => {
3033
+ return openBlock(), createElementBlock("nav", {
3034
+ "aria-label": __props.label,
3035
+ class: "flex flex-col space-y-1 space-x-0"
3036
+ }, [
3037
+ (openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
3038
+ return openBlock(), createBlock(_sfc_main$b, {
3039
+ key: item.href,
3040
+ href: item.href,
3041
+ title: item.title,
3042
+ icon: item.icon,
3043
+ active: item.active,
3044
+ external: item.external,
3045
+ target: item.target,
3046
+ rel: item.rel,
3047
+ "active-class": __props.activeClass,
3048
+ "item-class": __props.itemClass,
3049
+ "icon-class": __props.iconClass
3050
+ }, {
3051
+ default: withCtx(() => [
3052
+ renderSlot(_ctx.$slots, "item", { item }, () => [
3053
+ createTextVNode(toDisplayString(item.title), 1)
3054
+ ])
3055
+ ]),
3056
+ _: 2
3057
+ }, 1032, ["href", "title", "icon", "active", "external", "target", "rel", "active-class", "item-class", "icon-class"]);
3058
+ }), 128))
3059
+ ], 8, _hoisted_1$a);
3060
+ };
3061
+ }
3062
+ });
3063
+ const _hoisted_1$9 = { class: "px-2 py-0" };
3064
+ const _hoisted_2$7 = { class: "px-3 pb-2 text-xs font-semibold uppercase tracking-wide text-neutral-500 dark:text-neutral-400" };
3065
+ const _sfc_main$9 = /* @__PURE__ */ defineComponent({
3066
+ __name: "SideMenuNavFooter",
3067
+ props: {
3068
+ items: {},
3069
+ label: { default: "Footer" }
3070
+ },
3071
+ setup(__props) {
3072
+ return (_ctx, _cache) => {
3073
+ return openBlock(), createElementBlock("section", _hoisted_1$9, [
3074
+ createElementVNode("h3", _hoisted_2$7, toDisplayString(__props.label), 1),
3075
+ createVNode(_sfc_main$a, {
3076
+ items: __props.items,
3077
+ label: "Footer navigation",
3078
+ "item-class": "text-neutral-600 hover:text-neutral-800 dark:text-neutral-300 dark:hover:text-neutral-100"
3079
+ }, null, 8, ["items"])
3080
+ ]);
3081
+ };
3082
+ }
3083
+ });
3084
+ const _hoisted_1$8 = { class: "px-2 py-0" };
3085
+ const _hoisted_2$6 = { class: "px-3 pb-2 text-xs font-semibold uppercase tracking-wide text-neutral-500 dark:text-neutral-400" };
3086
+ const _sfc_main$8 = /* @__PURE__ */ defineComponent({
3087
+ __name: "SideMenuNavMain",
3088
+ props: {
3089
+ items: {},
3090
+ label: { default: "Plateforme" }
3091
+ },
3092
+ setup(__props) {
3093
+ return (_ctx, _cache) => {
3094
+ return openBlock(), createElementBlock("section", _hoisted_1$8, [
3095
+ createElementVNode("h3", _hoisted_2$6, toDisplayString(__props.label), 1),
3096
+ createVNode(_sfc_main$a, {
3097
+ items: __props.items,
3098
+ label: "Main navigation"
3099
+ }, null, 8, ["items"])
3100
+ ]);
3101
+ };
3102
+ }
3103
+ });
3104
+ const _hoisted_1$7 = { class: "flex items-center gap-2" };
3105
+ 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" };
3106
+ const _hoisted_3$3 = ["src", "alt"];
3107
+ const _hoisted_4$3 = { key: 1 };
3108
+ const _hoisted_5$3 = { class: "grid flex-1 text-left text-sm leading-tight text-neutral-900 dark:text-neutral-100" };
3109
+ const _hoisted_6$3 = { class: "truncate font-medium" };
3110
+ const _hoisted_7$3 = {
3111
+ key: 0,
3112
+ class: "truncate text-xs text-neutral-500 dark:text-neutral-300"
3113
+ };
3114
+ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
3115
+ __name: "SideMenuUserInfo",
3116
+ props: {
3117
+ name: {},
3118
+ email: { default: "" },
3119
+ avatar: { default: "" },
3120
+ showEmail: { type: Boolean, default: false }
3121
+ },
3122
+ setup(__props) {
3123
+ const props = __props;
3124
+ const initials = computed(() => {
3125
+ return props.name.split(" ").filter(Boolean).slice(0, 2).map((part) => part.charAt(0)).join("").toUpperCase();
3126
+ });
3127
+ return (_ctx, _cache) => {
3128
+ return openBlock(), createElementBlock("div", _hoisted_1$7, [
3129
+ createElementVNode("div", _hoisted_2$5, [
3130
+ __props.avatar ? (openBlock(), createElementBlock("img", {
3131
+ key: 0,
3132
+ src: __props.avatar,
3133
+ alt: __props.name,
3134
+ class: "size-full object-cover"
3135
+ }, null, 8, _hoisted_3$3)) : (openBlock(), createElementBlock("span", _hoisted_4$3, toDisplayString(initials.value), 1))
3136
+ ]),
3137
+ createElementVNode("div", _hoisted_5$3, [
3138
+ createElementVNode("span", _hoisted_6$3, toDisplayString(__props.name), 1),
3139
+ __props.showEmail && __props.email ? (openBlock(), createElementBlock("span", _hoisted_7$3, toDisplayString(__props.email), 1)) : createCommentVNode("", true)
3140
+ ])
3141
+ ]);
3142
+ };
3143
+ }
3144
+ });
3145
+ const _hoisted_1$6 = { class: "p-0 font-normal" };
3146
+ const _hoisted_2$4 = { class: "flex items-center gap-2 px-1 py-1.5 text-left text-sm" };
3147
+ const _sfc_main$6 = /* @__PURE__ */ defineComponent({
3148
+ __name: "SideMenuUserMenuContent",
3149
+ props: {
3150
+ name: {},
3151
+ email: { default: "" },
3152
+ avatar: { default: "" },
3153
+ settingsHref: { default: "" },
3154
+ settingsLabel: { default: "Settings" },
3155
+ logoutLabel: { default: "Log out" }
3156
+ },
3157
+ emits: ["logout"],
3158
+ setup(__props, { emit: __emit }) {
3159
+ const emit = __emit;
3160
+ return (_ctx, _cache) => {
3161
+ return openBlock(), createElementBlock(Fragment, null, [
3162
+ createElementVNode("div", _hoisted_1$6, [
3163
+ createElementVNode("div", _hoisted_2$4, [
3164
+ createVNode(_sfc_main$7, {
3165
+ name: __props.name,
3166
+ email: __props.email,
3167
+ avatar: __props.avatar,
3168
+ "show-email": true
3169
+ }, null, 8, ["name", "email", "avatar"])
3170
+ ])
3171
+ ]),
3172
+ _cache[1] || (_cache[1] = createElementVNode("div", { class: "my-1 border-t border-neutral-200 dark:border-neutral-800" }, null, -1)),
3173
+ __props.settingsHref ? (openBlock(), createBlock(_sfc_main$i, {
3174
+ key: 0,
3175
+ href: __props.settingsHref
3176
+ }, {
3177
+ default: withCtx(() => [
3178
+ createVNode(unref(Cog6ToothIcon), { class: "mr-2 size-4" }),
3179
+ createTextVNode(" " + toDisplayString(__props.settingsLabel), 1)
3180
+ ]),
3181
+ _: 1
3182
+ }, 8, ["href"])) : createCommentVNode("", true),
3183
+ createElementVNode("button", {
3184
+ type: "button",
3185
+ 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",
3186
+ onClick: _cache[0] || (_cache[0] = ($event) => emit("logout"))
3187
+ }, [
3188
+ createVNode(unref(ArrowRightOnRectangleIcon), { class: "mr-2 inline size-4" }),
3189
+ createTextVNode(" " + toDisplayString(__props.logoutLabel), 1)
3190
+ ])
3191
+ ], 64);
3192
+ };
3193
+ }
3194
+ });
3195
+ const _hoisted_1$5 = {
3196
+ type: "button",
3197
+ 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"
3198
+ };
3199
+ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
3200
+ __name: "SideMenuNavUser",
3201
+ props: {
3202
+ user: {},
3203
+ settingsHref: { default: "" },
3204
+ settingsLabel: { default: "Settings" },
3205
+ logoutLabel: { default: "Log out" }
3206
+ },
3207
+ emits: ["logout"],
3208
+ setup(__props, { emit: __emit }) {
3209
+ const emit = __emit;
3210
+ const handleLogout = () => {
3211
+ emit("logout");
3212
+ };
3213
+ return (_ctx, _cache) => {
3214
+ return openBlock(), createBlock(_sfc_main$j, {
3215
+ align: "right",
3216
+ width: "48",
3217
+ "content-classes": ["py-1", "bg-white", "dark:bg-neutral-950"]
3218
+ }, {
3219
+ trigger: withCtx(() => [
3220
+ createElementVNode("button", _hoisted_1$5, [
3221
+ createVNode(_sfc_main$7, {
3222
+ name: __props.user.name,
3223
+ email: __props.user.email,
3224
+ avatar: __props.user.avatar
3225
+ }, null, 8, ["name", "email", "avatar"]),
3226
+ createVNode(unref(ChevronUpDownIcon), { class: "ml-auto size-4" })
3227
+ ])
3228
+ ]),
3229
+ content: withCtx(() => [
3230
+ renderSlot(_ctx.$slots, "content", {
3231
+ user: __props.user,
3232
+ logout: handleLogout
3233
+ }, () => [
3234
+ createVNode(_sfc_main$6, {
3235
+ name: __props.user.name,
3236
+ email: __props.user.email,
3237
+ avatar: __props.user.avatar,
3238
+ "settings-href": __props.settingsHref,
3239
+ "settings-label": __props.settingsLabel,
3240
+ "logout-label": __props.logoutLabel,
3241
+ onLogout: handleLogout
3242
+ }, null, 8, ["name", "email", "avatar", "settings-href", "settings-label", "logout-label"])
3243
+ ])
3244
+ ]),
3245
+ _: 3
3246
+ });
3247
+ };
3248
+ }
3249
+ });
3250
+ const _hoisted_1$4 = { class: "grid gap-4" };
3251
+ 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";
3252
+ const headerClass = "border-b border-neutral-200 p-4 dark:border-neutral-800";
3253
+ const contentClass = "flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto p-2";
3254
+ const footerClass = "border-t border-neutral-200 p-2 dark:border-neutral-800";
3255
+ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
3256
+ __name: "SideMenu",
3257
+ props: {
3258
+ brand: { default: void 0 },
3259
+ mainItems: { default: () => [] },
3260
+ footerItems: { default: () => [] },
3261
+ user: { default: void 0 },
3262
+ mainLabel: { default: "Plateforme" },
3263
+ footerLabel: { default: "Ressources" },
3264
+ settingsHref: { default: "" },
3265
+ settingsLabel: { default: "Settings" },
3266
+ logoutLabel: { default: "Log out" },
3267
+ class: { type: [Boolean, null, String, Object, Array], default: void 0 },
3268
+ headerClass: { type: [Boolean, null, String, Object, Array], default: void 0 },
3269
+ contentClass: { type: [Boolean, null, String, Object, Array], default: void 0 },
3270
+ footerClass: { type: [Boolean, null, String, Object, Array], default: void 0 }
3271
+ },
3272
+ setup(__props) {
3273
+ const props = __props;
3274
+ const slots = useSlots();
3275
+ const hasHeader = computed(() => Boolean(slots.header || props.brand));
3276
+ const hasContent = computed(() => Boolean(slots.default || props.mainItems.length));
3277
+ const hasFooter = computed(() => Boolean(slots.footer || props.footerItems.length || props.user));
3278
+ return (_ctx, _cache) => {
3279
+ return openBlock(), createElementBlock("aside", {
3280
+ class: normalizeClass([rootClass, props.class])
3281
+ }, [
3282
+ hasHeader.value ? (openBlock(), createElementBlock("div", {
3283
+ key: 0,
3284
+ class: normalizeClass([headerClass, props.headerClass])
3285
+ }, [
3286
+ renderSlot(_ctx.$slots, "header", {}, () => [
3287
+ __props.brand ? (openBlock(), createBlock(_sfc_main$c, normalizeProps(mergeProps({ key: 0 }, __props.brand)), null, 16)) : createCommentVNode("", true)
3288
+ ])
3289
+ ], 2)) : createCommentVNode("", true),
3290
+ hasContent.value ? (openBlock(), createElementBlock("div", {
3291
+ key: 1,
3292
+ class: normalizeClass([contentClass, props.contentClass])
3293
+ }, [
3294
+ renderSlot(_ctx.$slots, "default", {}, () => [
3295
+ __props.mainItems.length ? (openBlock(), createBlock(_sfc_main$8, {
3296
+ key: 0,
3297
+ items: __props.mainItems,
3298
+ label: __props.mainLabel
3299
+ }, null, 8, ["items", "label"])) : createCommentVNode("", true)
3300
+ ])
3301
+ ], 2)) : createCommentVNode("", true),
3302
+ hasFooter.value ? (openBlock(), createElementBlock("div", {
3303
+ key: 2,
3304
+ class: normalizeClass([footerClass, props.footerClass])
3305
+ }, [
3306
+ renderSlot(_ctx.$slots, "footer", {}, () => [
3307
+ createElementVNode("div", _hoisted_1$4, [
3308
+ __props.footerItems.length ? (openBlock(), createBlock(_sfc_main$9, {
3309
+ key: 0,
3310
+ items: __props.footerItems,
3311
+ label: __props.footerLabel
3312
+ }, null, 8, ["items", "label"])) : createCommentVNode("", true),
3313
+ __props.user ? (openBlock(), createBlock(_sfc_main$5, {
3314
+ key: 1,
3315
+ user: __props.user,
3316
+ "settings-href": __props.settingsHref,
3317
+ "settings-label": __props.settingsLabel,
3318
+ "logout-label": __props.logoutLabel
3319
+ }, null, 8, ["user", "settings-href", "settings-label", "logout-label"])) : createCommentVNode("", true)
3320
+ ])
3321
+ ])
3322
+ ], 2)) : createCommentVNode("", true)
3323
+ ], 2);
3324
+ };
3325
+ }
3326
+ });
2814
3327
  const _hoisted_1$3 = { class: "rounded-xl border border-neutral-200 bg-white/80 px-6 py-4 backdrop-blur-sm dark:border-neutral-800 dark:bg-neutral-950/80" };
2815
3328
  const _hoisted_2$3 = { class: "flex flex-col items-start justify-between gap-4 sm:flex-row sm:items-center" };
2816
3329
  const _hoisted_3$2 = { class: "flex items-center gap-3" };
@@ -3159,7 +3672,7 @@ const _sfc_main$1 = {
3159
3672
  ]),
3160
3673
  createElementVNode("h3", _hoisted_13$1, toDisplayString(__props.emptyState.title), 1),
3161
3674
  createElementVNode("p", _hoisted_14$1, toDisplayString(__props.emptyState.description), 1),
3162
- __props.emptyState.actionText && __props.emptyState.actionUrl ? (openBlock(), createBlock(_sfc_main$5, {
3675
+ __props.emptyState.actionText && __props.emptyState.actionUrl ? (openBlock(), createBlock(_sfc_main$e, {
3163
3676
  key: 0,
3164
3677
  href: __props.emptyState.actionUrl,
3165
3678
  variant: "primary"
@@ -3652,7 +4165,7 @@ const _sfc_main = {
3652
4165
  isEditingRow(item, index) && column.slot && unref(slots)[getEditSlotName(column)] ? renderSlot(_ctx.$slots, getEditSlotName(column), mergeProps({
3653
4166
  key: 0,
3654
4167
  ref_for: true
3655
- }, getSlotBindings(item, column, index))) : isEditingRow(item, index) && column.input ? (openBlock(), createBlock(_sfc_main$f, {
4168
+ }, getSlotBindings(item, column, index))) : isEditingRow(item, index) && column.input ? (openBlock(), createBlock(_sfc_main$o, {
3656
4169
  key: 1,
3657
4170
  type: getInputType(column),
3658
4171
  class: normalizeClass(getInputClass(column)),
@@ -3685,10 +4198,11 @@ const _sfc_main = {
3685
4198
  key: 0,
3686
4199
  ref_for: true
3687
4200
  }, getSlotBindings(item, null, index))) : createCommentVNode("", true),
3688
- __props.rowEditing && isEditingRow(item, index) ? (openBlock(), createBlock(_sfc_main$s, {
4201
+ __props.rowEditing && isEditingRow(item, index) ? (openBlock(), createBlock(_sfc_main$B, {
3689
4202
  key: 1,
3690
4203
  type: "button",
3691
- variant: "tertiary",
4204
+ variant: "outline",
4205
+ size: "icon",
3692
4206
  title: __props.cancelLabel,
3693
4207
  "aria-label": __props.cancelLabel,
3694
4208
  onClick: ($event) => cancelEdit(item, index)
@@ -3697,10 +4211,11 @@ const _sfc_main = {
3697
4211
  createVNode(unref(CheckIcon), { class: "size-4" })
3698
4212
  ]),
3699
4213
  _: 1
3700
- }, 8, ["title", "aria-label", "onClick"])) : __props.rowEditing ? (openBlock(), createBlock(_sfc_main$s, {
4214
+ }, 8, ["title", "aria-label", "onClick"])) : __props.rowEditing ? (openBlock(), createBlock(_sfc_main$B, {
3701
4215
  key: 2,
3702
4216
  type: "button",
3703
- variant: "warning",
4217
+ variant: "secondary",
4218
+ size: "icon",
3704
4219
  disabled: isRowEditDisabled(item, index),
3705
4220
  title: __props.editLabel,
3706
4221
  "aria-label": __props.editLabel,
@@ -3723,7 +4238,7 @@ const _sfc_main = {
3723
4238
  ]),
3724
4239
  createElementVNode("h3", _hoisted_17, toDisplayString(__props.emptyState.title), 1),
3725
4240
  createElementVNode("p", _hoisted_18, toDisplayString(__props.emptyState.description), 1),
3726
- __props.emptyState.actionText && __props.emptyState.actionUrl ? (openBlock(), createBlock(_sfc_main$5, {
4241
+ __props.emptyState.actionText && __props.emptyState.actionUrl ? (openBlock(), createBlock(_sfc_main$e, {
3727
4242
  key: 0,
3728
4243
  href: __props.emptyState.actionUrl,
3729
4244
  variant: "primary"
@@ -3749,43 +4264,52 @@ const plugin = {
3749
4264
  }
3750
4265
  };
3751
4266
  export {
3752
- _sfc_main$x as ActionCard,
3753
- _sfc_main$w as ActionMessage,
3754
- _sfc_main$u as ActionSection,
3755
- _sfc_main$t as Badge,
3756
- _sfc_main$s as Button,
3757
- _sfc_main$z as Card,
3758
- _sfc_main$A as CardTabs,
3759
- _sfc_main$r as Checkbox,
3760
- _sfc_main$q as CheckboxInput,
3761
- _sfc_main$e as CheckboxMultipleInput,
3762
- _sfc_main$c as ConfirmationModal,
3763
- _sfc_main$n as CustomSelect,
3764
- _sfc_main$l as DateInput,
3765
- _sfc_main$b as DialogModal,
3766
- _sfc_main$y as Divider,
3767
- _sfc_main$a as Dropdown,
3768
- _sfc_main$9 as DropdownLink,
4267
+ _sfc_main$G as ActionCard,
4268
+ _sfc_main$F as ActionMessage,
4269
+ _sfc_main$D as ActionSection,
4270
+ _sfc_main$C as Badge,
4271
+ _sfc_main$B as Button,
4272
+ _sfc_main$I as Card,
4273
+ _sfc_main$J as CardTabs,
4274
+ _sfc_main$A as Checkbox,
4275
+ _sfc_main$z as CheckboxInput,
4276
+ _sfc_main$n as CheckboxMultipleInput,
4277
+ _sfc_main$l as ConfirmationModal,
4278
+ _sfc_main$w as CustomSelect,
4279
+ _sfc_main$u as DateInput,
4280
+ _sfc_main$k as DialogModal,
4281
+ _sfc_main$H as Divider,
4282
+ _sfc_main$j as Dropdown,
4283
+ _sfc_main$i as DropdownLink,
3769
4284
  plugin as EnosVueDefault,
3770
- _sfc_main$8 as FormSection,
3771
- _sfc_main$k as ImageInput,
3772
- _sfc_main$7 as InputError,
3773
- _sfc_main$f as InputGroup,
3774
- _sfc_main$6 as InputLabel,
3775
- _sfc_main$5 as LinkButton,
3776
- _sfc_main$d as Modal,
3777
- _sfc_main$j as NotationInput,
3778
- _sfc_main$i as RadioInput,
3779
- _sfc_main$h as RadioMultipleInput,
3780
- _sfc_main$4 as SectionBorder,
4285
+ _sfc_main$h as FormSection,
4286
+ _sfc_main$t as ImageInput,
4287
+ _sfc_main$g as InputError,
4288
+ _sfc_main$o as InputGroup,
4289
+ _sfc_main$f as InputLabel,
4290
+ _sfc_main$e as LinkButton,
4291
+ _sfc_main$m as Modal,
4292
+ _sfc_main$s as NotationInput,
4293
+ _sfc_main$r as RadioInput,
4294
+ _sfc_main$q as RadioMultipleInput,
4295
+ _sfc_main$d as SectionBorder,
3781
4296
  SectionTitle,
3782
- _sfc_main$m as SelectInput,
4297
+ _sfc_main$v as SelectInput,
4298
+ _sfc_main$4 as SideMenu,
4299
+ _sfc_main$c as SideMenuBrand,
4300
+ _sfc_main$b as SideMenuButton,
4301
+ _sfc_main$a as SideMenuList,
4302
+ _sfc_main$9 as SideMenuNavFooter,
4303
+ _sfc_main$8 as SideMenuNavMain,
4304
+ _sfc_main$5 as SideMenuNavUser,
4305
+ _sfc_main$7 as SideMenuUserInfo,
4306
+ _sfc_main$6 as SideMenuUserMenuContent,
3783
4307
  _sfc_main$3 as SortControls,
3784
4308
  _sfc_main$1 as TableList,
3785
4309
  _sfc_main as TableListForm,
3786
- _sfc_main$o as TextArea,
3787
- _sfc_main$p as TextInput,
4310
+ _sfc_main$x as TextArea,
4311
+ _sfc_main$y as TextInput,
3788
4312
  _sfc_main$2 as ThSortable,
3789
- _sfc_main$g as TinyEditor
4313
+ _sfc_main$p as TinyEditor
3790
4314
  };
3791
4315
  //# sourceMappingURL=index.js.map