@wow-two-beta/ui-vue 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/dist/chunks/{BackToTopButton.vue_vue_type_script_setup_true_lang-CkxLllEO.js → BackToTopButton.vue_vue_type_script_setup_true_lang-iLYlhK05.js} +11 -5
  2. package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-iLYlhK05.js.map +1 -0
  3. package/dist/chunks/{Backdrop.vue_vue_type_script_setup_true_lang-DZUhGY9p.js → Backdrop.vue_vue_type_script_setup_true_lang-CKG--_g8.js} +2 -2
  4. package/dist/chunks/{Backdrop.vue_vue_type_script_setup_true_lang-DZUhGY9p.js.map → Backdrop.vue_vue_type_script_setup_true_lang-CKG--_g8.js.map} +1 -1
  5. package/dist/chunks/{BottomSheet.vue_vue_type_script_setup_true_lang-CmNoI4BE.js → BottomSheet.vue_vue_type_script_setup_true_lang-CmNaGird.js} +8 -8
  6. package/dist/chunks/{BottomSheet.vue_vue_type_script_setup_true_lang-CmNoI4BE.js.map → BottomSheet.vue_vue_type_script_setup_true_lang-CmNaGird.js.map} +1 -1
  7. package/dist/chunks/{ChatComposer.vue_vue_type_script_setup_true_lang-lNcRhKIv.js → ChatComposer.vue_vue_type_script_setup_true_lang-DfeVsj9h.js} +1024 -579
  8. package/dist/chunks/ChatComposer.vue_vue_type_script_setup_true_lang-DfeVsj9h.js.map +1 -0
  9. package/dist/chunks/{DateExtensions-QahSUlRy.js → DateExtensions-C6a-h8ji.js} +12 -22
  10. package/dist/chunks/{DateExtensions-QahSUlRy.js.map → DateExtensions-C6a-h8ji.js.map} +1 -1
  11. package/dist/chunks/{DismissableLayer.vue_vue_type_script_setup_true_lang-6nRnzsJW.js → DismissableLayer.vue_vue_type_script_setup_true_lang-ptH1ttBL.js} +3 -3
  12. package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-ptH1ttBL.js.map +1 -0
  13. package/dist/chunks/{DrawerContent.vue_vue_type_script_setup_true_lang-DvvrJdF0.js → DrawerContent.vue_vue_type_script_setup_true_lang-4n5w3lg2.js} +5 -5
  14. package/dist/chunks/{DrawerContent.vue_vue_type_script_setup_true_lang-DvvrJdF0.js.map → DrawerContent.vue_vue_type_script_setup_true_lang-4n5w3lg2.js.map} +1 -1
  15. package/dist/chunks/{ModalContent.vue_vue_type_script_setup_true_lang-CLACSqKg.js → ModalContent.vue_vue_type_script_setup_true_lang-Co5jaeXk.js} +5 -5
  16. package/dist/chunks/{ModalContent.vue_vue_type_script_setup_true_lang-CLACSqKg.js.map → ModalContent.vue_vue_type_script_setup_true_lang-Co5jaeXk.js.map} +1 -1
  17. package/dist/chunks/{Navbar.vue_vue_type_script_setup_true_lang-Cl2ejukE.js → Navbar.vue_vue_type_script_setup_true_lang-Cy0zvm5d.js} +7 -7
  18. package/dist/chunks/Navbar.vue_vue_type_script_setup_true_lang-Cy0zvm5d.js.map +1 -0
  19. package/dist/chunks/{NotificationItem.vue_vue_type_script_setup_true_lang-KC5Iusce.js → NotificationItem.vue_vue_type_script_setup_true_lang-DySfo3fD.js} +5 -5
  20. package/dist/chunks/{NotificationItem.vue_vue_type_script_setup_true_lang-KC5Iusce.js.map → NotificationItem.vue_vue_type_script_setup_true_lang-DySfo3fD.js.map} +1 -1
  21. package/dist/chunks/{OptionTileGroup.vue_vue_type_script_setup_true_lang-BGSmXM_u.js → OptionTileGroup.vue_vue_type_script_setup_true_lang-CKSVGCby.js} +51 -30
  22. package/dist/chunks/OptionTileGroup.vue_vue_type_script_setup_true_lang-CKSVGCby.js.map +1 -0
  23. package/dist/chunks/{PopoverContent.vue_vue_type_script_setup_true_lang-D-OiGICS.js → PopoverContent.vue_vue_type_script_setup_true_lang-DYd617X5.js} +4 -4
  24. package/dist/chunks/{PopoverContent.vue_vue_type_script_setup_true_lang-D-OiGICS.js.map → PopoverContent.vue_vue_type_script_setup_true_lang-DYd617X5.js.map} +1 -1
  25. package/dist/chunks/{Presence-C7IJvh_P.js → Presence-DE4MlrJz.js} +45 -27
  26. package/dist/chunks/Presence-DE4MlrJz.js.map +1 -0
  27. package/dist/chunks/{SortableHandle.vue_vue_type_script_setup_true_lang-CWCXGjZG.js → SortableHandle.vue_vue_type_script_setup_true_lang-8WPwGZ5e.js} +141 -130
  28. package/dist/chunks/SortableHandle.vue_vue_type_script_setup_true_lang-8WPwGZ5e.js.map +1 -0
  29. package/dist/chunks/{SurfaceStyles-ChdpGRBO.js → SurfaceStyles-B6W7zdMi.js} +2 -2
  30. package/dist/chunks/{SurfaceStyles-ChdpGRBO.js.map → SurfaceStyles-B6W7zdMi.js.map} +1 -1
  31. package/dist/chunks/{TableOfContents.vue_vue_type_script_setup_true_lang-HVL4lg_f.js → TableOfContents.vue_vue_type_script_setup_true_lang-C9eM0AoG.js} +18 -20
  32. package/dist/chunks/TableOfContents.vue_vue_type_script_setup_true_lang-C9eM0AoG.js.map +1 -0
  33. package/dist/chunks/{Tones-CI65uuq9.js → Tones-WKBNZ_u2.js} +39 -17
  34. package/dist/chunks/Tones-WKBNZ_u2.js.map +1 -0
  35. package/dist/chunks/{index-BD7H9CkO.js → index-CEoYQiWL.js} +3 -3
  36. package/dist/chunks/{index-BD7H9CkO.js.map → index-CEoYQiWL.js.map} +1 -1
  37. package/dist/chunks/{index-Cbydgcdk.js → index-op-kbVUk.js} +3 -3
  38. package/dist/chunks/{index-Cbydgcdk.js.map → index-op-kbVUk.js.map} +1 -1
  39. package/dist/foundation/primitives/index.js +3 -3
  40. package/dist/foundation/primitives/presence/Presence.d.ts +4 -0
  41. package/dist/foundation/utils/index.js +3 -3
  42. package/dist/index.js +111 -109
  43. package/dist/presentation/actions/index.js +2 -2
  44. package/dist/presentation/actions/speedDial/SpeedDialAction.vue.d.ts +6 -5
  45. package/dist/presentation/actions/speedDial/index.d.ts +3 -5
  46. package/dist/presentation/display/audioWaveform/AudioWaveform.vue.d.ts +1 -0
  47. package/dist/presentation/display/diffViewer/DiffViewer.vue.d.ts +2 -0
  48. package/dist/presentation/display/eventCalendar/EventCalendar.vue.d.ts +1 -0
  49. package/dist/presentation/display/frameGlyph/FrameGlyph.vue.d.ts +2 -0
  50. package/dist/presentation/display/gantt/Gantt.vue.d.ts +1 -0
  51. package/dist/presentation/display/heatmapCalendar/HeatmapCalendar.vue.d.ts +1 -0
  52. package/dist/presentation/display/index.js +98 -96
  53. package/dist/presentation/display/list/ListContext.d.ts +16 -0
  54. package/dist/presentation/display/list/ListItem.vue.d.ts +7 -1
  55. package/dist/presentation/display/list/index.d.ts +1 -0
  56. package/dist/presentation/display/metricChip/MetricChip.vue.d.ts +1 -1
  57. package/dist/presentation/display/moduleGlyphs/CellsGlyph.vue.d.ts +1 -0
  58. package/dist/presentation/display/radiusGlyph/RadiusGlyph.vue.d.ts +1 -0
  59. package/dist/presentation/display/reactionBar/ReactionBar.vue.d.ts +1 -0
  60. package/dist/presentation/feedback/index.js +1 -1
  61. package/dist/presentation/feedback/tour/Tour.vue.d.ts +1 -0
  62. package/dist/presentation/forms/TimeColumns.vue.d.ts +22 -0
  63. package/dist/presentation/forms/dateField/DateField.vue.d.ts +12 -0
  64. package/dist/presentation/forms/dateTimeField/DateTimeField.vue.d.ts +17 -0
  65. package/dist/presentation/forms/index.js +2 -2
  66. package/dist/presentation/forms/multiSelect/MultiSelect.vue.d.ts +8 -0
  67. package/dist/presentation/forms/multiSelect/MultiSelectContext.d.ts +9 -0
  68. package/dist/presentation/forms/multiSelect/MultiSelectTags.vue.d.ts +10 -0
  69. package/dist/presentation/forms/multiSelect/MultiSelectTrigger.vue.d.ts +5 -0
  70. package/dist/presentation/forms/timeField/TimeField.vue.d.ts +20 -5
  71. package/dist/presentation/forms/timePicker/TimePicker.vue.d.ts +5 -5
  72. package/dist/presentation/layout/index.js +1 -1
  73. package/dist/presentation/nav/index.js +1 -1
  74. package/dist/presentation/overlays/index.js +5 -5
  75. package/package.json +3 -2
  76. package/dist/chunks/BackToTopButton.vue_vue_type_script_setup_true_lang-CkxLllEO.js.map +0 -1
  77. package/dist/chunks/ChatComposer.vue_vue_type_script_setup_true_lang-lNcRhKIv.js.map +0 -1
  78. package/dist/chunks/DismissableLayer.vue_vue_type_script_setup_true_lang-6nRnzsJW.js.map +0 -1
  79. package/dist/chunks/Navbar.vue_vue_type_script_setup_true_lang-Cl2ejukE.js.map +0 -1
  80. package/dist/chunks/OptionTileGroup.vue_vue_type_script_setup_true_lang-BGSmXM_u.js.map +0 -1
  81. package/dist/chunks/Presence-C7IJvh_P.js.map +0 -1
  82. package/dist/chunks/SortableHandle.vue_vue_type_script_setup_true_lang-CWCXGjZG.js.map +0 -1
  83. package/dist/chunks/TableOfContents.vue_vue_type_script_setup_true_lang-HVL4lg_f.js.map +0 -1
  84. package/dist/chunks/Tones-CI65uuq9.js.map +0 -1
@@ -2,39 +2,39 @@ import { defineComponent, useAttrs, computed, useTemplateRef, openBlock, createE
2
2
  import { u as useFormControl, a as useFormControlChrome } from "./FormControlContext-B71MFW26.js";
3
3
  import { u as useControlled } from "./useControlled-B6M4kTLn.js";
4
4
  import { c as cn } from "./cn-CzDCF-Ah.js";
5
- import { Minus, Plus, EyeOff, Eye, Search, X, Check, Upload, Loader2, ChevronDown, ChevronLeft, ChevronRight, Calendar, Clock, UploadCloud, Heading1, Heading2, Bold, Italic, Code, Link2, List, Quote, Copy, Zap, Wallet, Video, User, Trash, Tag, Sun, Star, ShoppingCart, Share2, Settings, Send, Play, Pin, Phone, Pencil, Paperclip, Music, Moon, Mic, MessageCircle, Map as Map$1, Mail, Lock, Lightbulb, Layers, Info, Inbox, Image, Home, Heart, Globe, Folder, File, ExternalLink, Edit, Download, Compass, Coffee, Cloud, Camera, Bookmark, Bell, Flag, Hash, Car, Bike, Utensils, PawPrint, Smile } from "lucide-vue-next";
6
- import { _ as _sfc_main$1K } from "./Icon.vue_vue_type_script_setup_true_lang-DgwdLCRR.js";
5
+ import { Minus, Plus, EyeOff, Eye, Search, X, Check, Upload, Loader2, ChevronDown, ChevronLeft, ChevronRight, Calendar, CalendarClock, Clock, UploadCloud, Heading1, Heading2, Bold, Italic, Code, Link2, List, Quote, Copy, Zap, Wallet, Video, User, Trash, Tag, Sun, Star, ShoppingCart, Share2, Settings, Send, Play, Pin, Phone, Pencil, Paperclip, Music, Moon, Mic, MessageCircle, Map as Map$1, Mail, Lock, Lightbulb, Layers, Info, Inbox, Image, Home, Heart, Globe, Folder, File, ExternalLink, Edit, Download, Compass, Coffee, Cloud, Camera, Bookmark, Bell, Flag, Hash, Car, Bike, Utensils, PawPrint, Smile } from "lucide-vue-next";
6
+ import { _ as _sfc_main$1L } from "./Icon.vue_vue_type_script_setup_true_lang-DgwdLCRR.js";
7
7
  import { S as Size } from "./StyleTokens-Bkz7Dm5L.js";
8
- import { _ as _sfc_main$1L } from "./FormControlProvider.vue_vue_type_script_setup_true_lang-Fak7Jv46.js";
8
+ import { _ as _sfc_main$1M } from "./FormControlProvider.vue_vue_type_script_setup_true_lang-Fak7Jv46.js";
9
9
  import { tv } from "tailwind-variants";
10
10
  import { a as ColorTone, C as ColorExtensions } from "./Environment-CuQav_mw.js";
11
11
  import { C as CssExtensions, S as SizePreset } from "./CssExtensions-BzLJG57F.js";
12
12
  import { u as useId } from "./useId-CtgAhGrn.js";
13
13
  import { S as Side } from "./Side-CSys3p-F.js";
14
- import { b as _sfc_main$1M, f as _sfc_main$1X, k as ToggleMode, e as _sfc_main$1Y, i as ToggleButtonVariant, h as ToggleButtonGroupVariant, _ as _sfc_main$1_, a as ButtonVariant, B as ButtonShape, d as _sfc_main$20, c as _sfc_main$21 } from "./OptionTileGroup.vue_vue_type_script_setup_true_lang-BGSmXM_u.js";
14
+ import { b as _sfc_main$1N, f as _sfc_main$1Y, k as ToggleMode, e as _sfc_main$1Z, i as ToggleButtonVariant, h as ToggleButtonGroupVariant, _ as _sfc_main$1$, a as ButtonVariant, B as ButtonShape, d as _sfc_main$21, c as _sfc_main$22 } from "./OptionTileGroup.vue_vue_type_script_setup_true_lang-CKSVGCby.js";
15
15
  import { O as Orientation } from "./Orientation-u-sYunuG.js";
16
16
  import { d as listboxVariants, L as ListboxItemState, a as listboxItemVariants, l as listboxGroupLabelVariants, c as listboxSeparatorVariants, b as listboxEmptyVariants } from "./Listbox.variants-CqAkYsmK.js";
17
17
  import { E as Equality } from "./Equality-DIQYQysz.js";
18
- import { _ as _sfc_main$1N, b as _sfc_main$1P, a as _sfc_main$1Q } from "./PopoverContent.vue_vue_type_script_setup_true_lang-D-OiGICS.js";
18
+ import { _ as _sfc_main$1O, b as _sfc_main$1Q, a as _sfc_main$1R } from "./PopoverContent.vue_vue_type_script_setup_true_lang-DYd617X5.js";
19
19
  import { b as useTypeahead, a as useRecentItems } from "./useRecentItems-DFnt5CBy.js";
20
- import { _ as _sfc_main$1O } from "./Announce.vue_vue_type_script_setup_true_lang-CDTltiIl.js";
21
- import { s as surfaceVariants } from "./SurfaceStyles-ChdpGRBO.js";
22
- import { _ as _sfc_main$1R } from "./Portal.vue_vue_type_script_setup_true_lang-CF3R0VCZ.js";
23
- import { P as Presence } from "./Presence-C7IJvh_P.js";
24
- import { _ as _sfc_main$1S } from "./AnchoredPositioner.vue_vue_type_script_setup_true_lang-BpBVI2Cu.js";
25
- import { a as _sfc_main$1T } from "./DismissableLayer.vue_vue_type_script_setup_true_lang-6nRnzsJW.js";
26
- import { b as buildMonthGrid, M as MONTHS_LONG, c as addMonths, W as WEEKDAYS_SHORT, i as isSameDay, d as isToday, e as addDays, s as sundayIndex, f as startOfMonth, g as today, h as isDateDisabled, j as formatISODate, p as parseISODate, k as formatISODateTime, l as parseISODateTime, m as formatISOTime, n as parseISOTime, o as isInRange, a as _sfc_main$1V, q as daysInMonth, _ as _sfc_main$1W } from "./DateExtensions-QahSUlRy.js";
20
+ import { _ as _sfc_main$1P } from "./Announce.vue_vue_type_script_setup_true_lang-CDTltiIl.js";
21
+ import { s as surfaceVariants } from "./SurfaceStyles-B6W7zdMi.js";
22
+ import { _ as _sfc_main$1S } from "./Portal.vue_vue_type_script_setup_true_lang-CF3R0VCZ.js";
23
+ import { P as Presence } from "./Presence-DE4MlrJz.js";
24
+ import { _ as _sfc_main$1T } from "./AnchoredPositioner.vue_vue_type_script_setup_true_lang-BpBVI2Cu.js";
25
+ import { a as _sfc_main$1U } from "./DismissableLayer.vue_vue_type_script_setup_true_lang-ptH1ttBL.js";
26
+ import { b as buildMonthGrid, M as MONTHS_LONG, c as addMonths, W as WEEKDAYS_SHORT, i as isSameDay, d as isToday, e as addDays, s as sundayIndex, f as startOfMonth, g as today, h as isDateDisabled, j as formatISODate, p as parseISODate, k as formatISODateTime, l as parseISODateTime, m as formatISOTime, n as isInRange, a as _sfc_main$1W, o as daysInMonth, _ as _sfc_main$1X } from "./DateExtensions-C6a-h8ji.js";
27
27
  import { Temporal } from "temporal-polyfill";
28
- import { b as useRovingFocusItem, _ as _sfc_main$1U, O as Orientation$1 } from "./RovingFocusGroup.vue_vue_type_script_setup_true_lang-DCpYSP2V.js";
28
+ import { b as useRovingFocusItem, _ as _sfc_main$1V, O as Orientation$1 } from "./RovingFocusGroup.vue_vue_type_script_setup_true_lang-DCpYSP2V.js";
29
29
  import { d as dataAttr } from "./dataAttr-7BR67dTj.js";
30
30
  import { a as matchesAcceptType, m as matchesAccept } from "./Accept-BWpCXDmS.js";
31
31
  import { Marked } from "marked";
32
32
  import { u as useEventListener } from "./useEventListener-gohT6zGs.js";
33
33
  import { a as EmojiCategory, E as EmojiCatalog } from "./EmojiCatalog-CR4Lcm43.js";
34
34
  import { K as Key } from "./KeyboardExtensions-CQlkK53D.js";
35
- import { a as _sfc_main$1Z, _ as _sfc_main$1$ } from "./ControlGroup.vue_vue_type_script_setup_true_lang-CV8Xstes.js";
36
- const _hoisted_1$1j = ["for", "id"];
37
- const _hoisted_2$I = {
35
+ import { a as _sfc_main$1_, _ as _sfc_main$20 } from "./ControlGroup.vue_vue_type_script_setup_true_lang-CV8Xstes.js";
36
+ const _hoisted_1$1k = ["for", "id"];
37
+ const _hoisted_2$L = {
38
38
  key: 0,
39
39
  class: "ml-0.5 text-destructive",
40
40
  "aria-hidden": "true"
@@ -44,7 +44,7 @@ const SIZE$4 = {
44
44
  sm: "text-sm",
45
45
  md: "text-sm"
46
46
  };
47
- const _sfc_main$1J = /* @__PURE__ */ defineComponent({
47
+ const _sfc_main$1K = /* @__PURE__ */ defineComponent({
48
48
  ...{ name: "Label", inheritAttrs: false },
49
49
  __name: "Label",
50
50
  props: {
@@ -85,13 +85,13 @@ const _sfc_main$1J = /* @__PURE__ */ defineComponent({
85
85
  class: rootClass.value
86
86
  }, passthroughAttrs.value), [
87
87
  renderSlot(_ctx.$slots, "default"),
88
- isRequired.value ? (openBlock(), createElementBlock("span", _hoisted_2$I, "*")) : createCommentVNode("", true)
89
- ], 16, _hoisted_1$1j);
88
+ isRequired.value ? (openBlock(), createElementBlock("span", _hoisted_2$L, "*")) : createCommentVNode("", true)
89
+ ], 16, _hoisted_1$1k);
90
90
  };
91
91
  }
92
92
  });
93
- const _hoisted_1$1i = ["id"];
94
- const _sfc_main$1I = /* @__PURE__ */ defineComponent({
93
+ const _hoisted_1$1j = ["id"];
94
+ const _sfc_main$1J = /* @__PURE__ */ defineComponent({
95
95
  ...{ name: "FormHelperText", inheritAttrs: false },
96
96
  __name: "FormHelperText",
97
97
  props: {
@@ -120,12 +120,12 @@ const _sfc_main$1I = /* @__PURE__ */ defineComponent({
120
120
  class: rootClass.value
121
121
  }, passthroughAttrs.value), [
122
122
  renderSlot(_ctx.$slots, "default")
123
- ], 16, _hoisted_1$1i);
123
+ ], 16, _hoisted_1$1j);
124
124
  };
125
125
  }
126
126
  });
127
- const _hoisted_1$1h = ["id"];
128
- const _sfc_main$1H = /* @__PURE__ */ defineComponent({
127
+ const _hoisted_1$1i = ["id"];
128
+ const _sfc_main$1I = /* @__PURE__ */ defineComponent({
129
129
  ...{ name: "FormErrorMessage", inheritAttrs: false },
130
130
  __name: "FormErrorMessage",
131
131
  props: {
@@ -172,11 +172,11 @@ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
172
172
  class: "block"
173
173
  }, toDisplayString(entry), 1);
174
174
  }), 128))
175
- ], 16, _hoisted_1$1h)) : createCommentVNode("", true);
175
+ ], 16, _hoisted_1$1i)) : createCommentVNode("", true);
176
176
  };
177
177
  }
178
178
  });
179
- const _sfc_main$1G = /* @__PURE__ */ defineComponent({
179
+ const _sfc_main$1H = /* @__PURE__ */ defineComponent({
180
180
  ...{ name: "Legend", inheritAttrs: false },
181
181
  __name: "Legend",
182
182
  setup(__props, { expose: __expose }) {
@@ -278,8 +278,8 @@ const InputRing = {
278
278
  /** Refers to a 4px focus ring. */
279
279
  Lg: "lg"
280
280
  };
281
- const _hoisted_1$1g = ["id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
282
- const _sfc_main$1F = /* @__PURE__ */ defineComponent({
281
+ const _hoisted_1$1h = ["id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
282
+ const _sfc_main$1G = /* @__PURE__ */ defineComponent({
283
283
  ...{ name: "TextInput", inheritAttrs: false },
284
284
  __name: "TextInput",
285
285
  props: {
@@ -353,12 +353,12 @@ const _sfc_main$1F = /* @__PURE__ */ defineComponent({
353
353
  "aria-invalid": isInvalid.value,
354
354
  "aria-describedby": describedBy.value,
355
355
  class: rootClass.value
356
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1g);
356
+ }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1h);
357
357
  };
358
358
  }
359
359
  });
360
- const _hoisted_1$1f = ["id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
361
- const _sfc_main$1E = /* @__PURE__ */ defineComponent({
360
+ const _hoisted_1$1g = ["id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
361
+ const _sfc_main$1F = /* @__PURE__ */ defineComponent({
362
362
  ...{ name: "EmailInput", inheritAttrs: false },
363
363
  __name: "EmailInput",
364
364
  props: {
@@ -435,12 +435,12 @@ const _sfc_main$1E = /* @__PURE__ */ defineComponent({
435
435
  "aria-invalid": isInvalid.value,
436
436
  "aria-describedby": describedBy.value,
437
437
  class: rootClass.value
438
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1f);
438
+ }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1g);
439
439
  };
440
440
  }
441
441
  });
442
- const _hoisted_1$1e = ["id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
443
- const _sfc_main$1D = /* @__PURE__ */ defineComponent({
442
+ const _hoisted_1$1f = ["id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
443
+ const _sfc_main$1E = /* @__PURE__ */ defineComponent({
444
444
  ...{ name: "TelInput", inheritAttrs: false },
445
445
  __name: "TelInput",
446
446
  props: {
@@ -516,12 +516,12 @@ const _sfc_main$1D = /* @__PURE__ */ defineComponent({
516
516
  "aria-invalid": isInvalid.value,
517
517
  "aria-describedby": describedBy.value,
518
518
  class: rootClass.value
519
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1e);
519
+ }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1f);
520
520
  };
521
521
  }
522
522
  });
523
- const _hoisted_1$1d = ["id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
524
- const _sfc_main$1C = /* @__PURE__ */ defineComponent({
523
+ const _hoisted_1$1e = ["id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
524
+ const _sfc_main$1D = /* @__PURE__ */ defineComponent({
525
525
  ...{ name: "UrlInput", inheritAttrs: false },
526
526
  __name: "UrlInput",
527
527
  props: {
@@ -598,15 +598,15 @@ const _sfc_main$1C = /* @__PURE__ */ defineComponent({
598
598
  "aria-invalid": isInvalid.value,
599
599
  "aria-describedby": describedBy.value,
600
600
  class: rootClass.value
601
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1d);
601
+ }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1e);
602
602
  };
603
603
  }
604
604
  });
605
- const _hoisted_1$1c = ["step", "id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
606
- const _hoisted_2$H = { class: "absolute right-1 top-1/2 flex -translate-y-1/2 items-center" };
605
+ const _hoisted_1$1d = ["step", "id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
606
+ const _hoisted_2$K = { class: "absolute right-1 top-1/2 flex -translate-y-1/2 items-center" };
607
607
  const _hoisted_3$u = ["disabled"];
608
- const _hoisted_4$l = ["disabled"];
609
- const _sfc_main$1B = /* @__PURE__ */ defineComponent({
608
+ const _hoisted_4$m = ["disabled"];
609
+ const _sfc_main$1C = /* @__PURE__ */ defineComponent({
610
610
  ...{ name: "NumberInput", inheritAttrs: false },
611
611
  __name: "NumberInput",
612
612
  props: {
@@ -697,8 +697,8 @@ const _sfc_main$1B = /* @__PURE__ */ defineComponent({
697
697
  "aria-invalid": isInvalid.value,
698
698
  "aria-describedby": describedBy.value,
699
699
  class: inputClass.value
700
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1c),
701
- createElementVNode("div", _hoisted_2$H, [
700
+ }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1d),
701
+ createElementVNode("div", _hoisted_2$K, [
702
702
  createElementVNode("button", {
703
703
  type: "button",
704
704
  disabled: isDisabled.value,
@@ -706,7 +706,7 @@ const _sfc_main$1B = /* @__PURE__ */ defineComponent({
706
706
  class: "grid h-7 w-6 place-items-center rounded text-muted-foreground hover:bg-muted disabled:opacity-50",
707
707
  onClick: _cache[0] || (_cache[0] = ($event) => adjust(-1))
708
708
  }, [
709
- createVNode(unref(_sfc_main$1K), {
709
+ createVNode(unref(_sfc_main$1L), {
710
710
  icon: unref(MinusIcon),
711
711
  size: 14
712
712
  }, null, 8, ["icon"])
@@ -718,19 +718,19 @@ const _sfc_main$1B = /* @__PURE__ */ defineComponent({
718
718
  class: "grid h-7 w-6 place-items-center rounded text-muted-foreground hover:bg-muted disabled:opacity-50",
719
719
  onClick: _cache[1] || (_cache[1] = ($event) => adjust(1))
720
720
  }, [
721
- createVNode(unref(_sfc_main$1K), {
721
+ createVNode(unref(_sfc_main$1L), {
722
722
  icon: unref(PlusIcon),
723
723
  size: 14
724
724
  }, null, 8, ["icon"])
725
- ], 8, _hoisted_4$l)
725
+ ], 8, _hoisted_4$m)
726
726
  ])
727
727
  ], 2);
728
728
  };
729
729
  }
730
730
  });
731
- const _hoisted_1$1b = ["type", "autocomplete", "id", "disabled", "required", "readonly", "value", "aria-invalid", "aria-describedby"];
732
- const _hoisted_2$G = ["disabled", "aria-label", "aria-pressed"];
733
- const _sfc_main$1A = /* @__PURE__ */ defineComponent({
731
+ const _hoisted_1$1c = ["type", "autocomplete", "id", "disabled", "required", "readonly", "value", "aria-invalid", "aria-describedby"];
732
+ const _hoisted_2$J = ["disabled", "aria-label", "aria-pressed"];
733
+ const _sfc_main$1B = /* @__PURE__ */ defineComponent({
734
734
  ...{ name: "PasswordInput", inheritAttrs: false },
735
735
  __name: "PasswordInput",
736
736
  props: {
@@ -816,7 +816,7 @@ const _sfc_main$1A = /* @__PURE__ */ defineComponent({
816
816
  "aria-invalid": isInvalid.value,
817
817
  "aria-describedby": describedBy.value,
818
818
  class: inputClass.value
819
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1b),
819
+ }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1c),
820
820
  __props.hasToggle ? (openBlock(), createElementBlock("button", {
821
821
  key: 0,
822
822
  type: "button",
@@ -826,18 +826,18 @@ const _sfc_main$1A = /* @__PURE__ */ defineComponent({
826
826
  class: "absolute right-1 top-1/2 grid h-8 w-8 -translate-y-1/2 place-items-center rounded text-muted-foreground hover:bg-muted disabled:opacity-50",
827
827
  onClick: toggle
828
828
  }, [
829
- createVNode(unref(_sfc_main$1K), {
829
+ createVNode(unref(_sfc_main$1L), {
830
830
  icon: toggleIcon.value,
831
831
  size: 16
832
832
  }, null, 8, ["icon"])
833
- ], 8, _hoisted_2$G)) : createCommentVNode("", true)
833
+ ], 8, _hoisted_2$J)) : createCommentVNode("", true)
834
834
  ], 2);
835
835
  };
836
836
  }
837
837
  });
838
- const _hoisted_1$1a = ["id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
839
- const _hoisted_2$F = ["disabled"];
840
- const _sfc_main$1z = /* @__PURE__ */ defineComponent({
838
+ const _hoisted_1$1b = ["id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
839
+ const _hoisted_2$I = ["disabled"];
840
+ const _sfc_main$1A = /* @__PURE__ */ defineComponent({
841
841
  ...{ name: "SearchInput", inheritAttrs: false },
842
842
  __name: "SearchInput",
843
843
  props: {
@@ -922,7 +922,7 @@ const _sfc_main$1z = /* @__PURE__ */ defineComponent({
922
922
  return openBlock(), createElementBlock("div", {
923
923
  class: normalizeClass(wrapperClass.value)
924
924
  }, [
925
- createVNode(unref(_sfc_main$1K), {
925
+ createVNode(unref(_sfc_main$1L), {
926
926
  icon: unref(SearchIcon),
927
927
  size: 16,
928
928
  class: "absolute left-3 top-1/2 -translate-y-1/2 text-subtle-foreground"
@@ -939,7 +939,7 @@ const _sfc_main$1z = /* @__PURE__ */ defineComponent({
939
939
  "aria-invalid": isInvalid.value,
940
940
  "aria-describedby": describedBy.value,
941
941
  class: inputClass.value
942
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1a),
942
+ }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1b),
943
943
  showClear.value ? (openBlock(), createElementBlock("button", {
944
944
  key: 0,
945
945
  type: "button",
@@ -948,17 +948,17 @@ const _sfc_main$1z = /* @__PURE__ */ defineComponent({
948
948
  class: "absolute right-1 top-1/2 grid h-8 w-8 -translate-y-1/2 place-items-center rounded text-subtle-foreground hover:bg-muted hover:text-muted-foreground",
949
949
  onClick: handleClear
950
950
  }, [
951
- createVNode(unref(_sfc_main$1K), {
951
+ createVNode(unref(_sfc_main$1L), {
952
952
  icon: unref(ClearIcon),
953
953
  size: 14
954
954
  }, null, 8, ["icon"])
955
- ], 8, _hoisted_2$F)) : createCommentVNode("", true)
955
+ ], 8, _hoisted_2$I)) : createCommentVNode("", true)
956
956
  ], 2);
957
957
  };
958
958
  }
959
959
  });
960
- const _hoisted_1$19 = ["rows", "id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
961
- const _sfc_main$1y = /* @__PURE__ */ defineComponent({
960
+ const _hoisted_1$1a = ["rows", "id", "value", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
961
+ const _sfc_main$1z = /* @__PURE__ */ defineComponent({
962
962
  ...{ name: "TextAreaInput", inheritAttrs: false },
963
963
  __name: "TextAreaInput",
964
964
  props: {
@@ -1034,7 +1034,7 @@ const _sfc_main$1y = /* @__PURE__ */ defineComponent({
1034
1034
  "aria-invalid": isInvalid.value,
1035
1035
  "aria-describedby": describedBy.value,
1036
1036
  class: rootClass.value
1037
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$19);
1037
+ }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$1a);
1038
1038
  };
1039
1039
  }
1040
1040
  });
@@ -1114,7 +1114,7 @@ const checkboxVariants = tv({
1114
1114
  tone: "primary"
1115
1115
  }
1116
1116
  });
1117
- const _hoisted_1$18 = ["id", "disabled", "required", "checked", "aria-checked", "aria-invalid", "aria-describedby"];
1117
+ const _hoisted_1$19 = ["id", "disabled", "required", "checked", "aria-checked", "aria-invalid", "aria-describedby"];
1118
1118
  const COMPONENT_NAME = "Checkbox";
1119
1119
  const BOX_SIZE_CLASS = {
1120
1120
  xs: "h-3.5 w-3.5",
@@ -1181,7 +1181,7 @@ const INDETERMINATE_CHECKED_CLASS = {
1181
1181
  warning: "text-white border-white/80"
1182
1182
  }
1183
1183
  };
1184
- const _sfc_main$1x = /* @__PURE__ */ defineComponent({
1184
+ const _sfc_main$1y = /* @__PURE__ */ defineComponent({
1185
1185
  ...{ name: COMPONENT_NAME, inheritAttrs: false },
1186
1186
  __name: "Checkbox",
1187
1187
  props: {
@@ -1284,7 +1284,7 @@ const _sfc_main$1x = /* @__PURE__ */ defineComponent({
1284
1284
  "aria-invalid": isInvalid.value,
1285
1285
  "aria-describedby": describedBy.value,
1286
1286
  class: "peer absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed"
1287
- }, passthroughAttrs.value, { onChange }), null, 16, _hoisted_1$18),
1287
+ }, passthroughAttrs.value, { onChange }), null, 16, _hoisted_1$19),
1288
1288
  createElementVNode("span", {
1289
1289
  "aria-hidden": "true",
1290
1290
  class: normalizeClass(visualClass.value)
@@ -1301,13 +1301,13 @@ const _sfc_main$1x = /* @__PURE__ */ defineComponent({
1301
1301
  };
1302
1302
  }
1303
1303
  });
1304
- const _hoisted_1$17 = ["id", "disabled", "required", "checked", "aria-invalid"];
1304
+ const _hoisted_1$18 = ["id", "disabled", "required", "checked", "aria-invalid"];
1305
1305
  const SIZE_CLASS = {
1306
1306
  sm: "h-4 w-4",
1307
1307
  md: "h-5 w-5",
1308
1308
  lg: "h-6 w-6"
1309
1309
  };
1310
- const _sfc_main$1w = /* @__PURE__ */ defineComponent({
1310
+ const _sfc_main$1x = /* @__PURE__ */ defineComponent({
1311
1311
  ...{ name: "Radio", inheritAttrs: false },
1312
1312
  __name: "Radio",
1313
1313
  props: {
@@ -1376,7 +1376,7 @@ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
1376
1376
  checked: unref(isChecked),
1377
1377
  "aria-invalid": isInvalid.value,
1378
1378
  class: "peer absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed"
1379
- }, passthroughAttrs.value, { onChange }), null, 16, _hoisted_1$17),
1379
+ }, passthroughAttrs.value, { onChange }), null, 16, _hoisted_1$18),
1380
1380
  createElementVNode("span", {
1381
1381
  "aria-hidden": "true",
1382
1382
  class: normalizeClass(unref(visualClass))
@@ -1387,7 +1387,7 @@ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
1387
1387
  };
1388
1388
  }
1389
1389
  });
1390
- const _hoisted_1$16 = ["id", "disabled", "required", "checked", "aria-invalid"];
1390
+ const _hoisted_1$17 = ["id", "disabled", "required", "checked", "aria-invalid"];
1391
1391
  const TRACK_CLASS$1 = {
1392
1392
  sm: "h-4 w-7",
1393
1393
  md: "h-5 w-9",
@@ -1403,7 +1403,7 @@ const TRACK_CHECKED_CLASS = {
1403
1403
  md: "peer-checked:[&>span]:translate-x-4",
1404
1404
  lg: "peer-checked:[&>span]:translate-x-5"
1405
1405
  };
1406
- const _sfc_main$1v = /* @__PURE__ */ defineComponent({
1406
+ const _sfc_main$1w = /* @__PURE__ */ defineComponent({
1407
1407
  ...{ name: "Switch", inheritAttrs: false },
1408
1408
  __name: "Switch",
1409
1409
  props: {
@@ -1480,7 +1480,7 @@ const _sfc_main$1v = /* @__PURE__ */ defineComponent({
1480
1480
  checked: unref(isChecked),
1481
1481
  "aria-invalid": isInvalid.value,
1482
1482
  class: "peer absolute inset-0 m-0 h-full w-full cursor-pointer opacity-0 disabled:cursor-not-allowed"
1483
- }, passthroughAttrs.value, { onChange }), null, 16, _hoisted_1$16),
1483
+ }, passthroughAttrs.value, { onChange }), null, 16, _hoisted_1$17),
1484
1484
  createElementVNode("span", {
1485
1485
  "aria-hidden": "true",
1486
1486
  class: normalizeClass(trackClass.value)
@@ -1493,13 +1493,13 @@ const _sfc_main$1v = /* @__PURE__ */ defineComponent({
1493
1493
  };
1494
1494
  }
1495
1495
  });
1496
- const _hoisted_1$15 = ["id", "disabled", "required", "min", "max", "value", "aria-invalid", "aria-describedby"];
1496
+ const _hoisted_1$16 = ["id", "disabled", "required", "min", "max", "value", "aria-invalid", "aria-describedby"];
1497
1497
  const TRACK_CLASS = {
1498
1498
  sm: "[&::-webkit-slider-runnable-track]:h-1 [&::-moz-range-track]:h-1",
1499
1499
  md: "[&::-webkit-slider-runnable-track]:h-1.5 [&::-moz-range-track]:h-1.5",
1500
1500
  lg: "[&::-webkit-slider-runnable-track]:h-2 [&::-moz-range-track]:h-2"
1501
1501
  };
1502
- const _sfc_main$1u = /* @__PURE__ */ defineComponent({
1502
+ const _sfc_main$1v = /* @__PURE__ */ defineComponent({
1503
1503
  ...{ name: "Slider", inheritAttrs: false },
1504
1504
  __name: "Slider",
1505
1505
  props: {
@@ -1570,11 +1570,11 @@ const _sfc_main$1u = /* @__PURE__ */ defineComponent({
1570
1570
  "aria-invalid": isInvalid.value,
1571
1571
  "aria-describedby": describedBy.value,
1572
1572
  class: rootClass.value
1573
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$15);
1573
+ }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$16);
1574
1574
  };
1575
1575
  }
1576
1576
  });
1577
- const _sfc_main$1t = /* @__PURE__ */ defineComponent({
1577
+ const _sfc_main$1u = /* @__PURE__ */ defineComponent({
1578
1578
  ...{ name: "Field", inheritAttrs: false },
1579
1579
  __name: "Field",
1580
1580
  props: {
@@ -1610,7 +1610,7 @@ const _sfc_main$1t = /* @__PURE__ */ defineComponent({
1610
1610
  const root = useTemplateRef("root");
1611
1611
  __expose({ el: root });
1612
1612
  return (_ctx, _cache) => {
1613
- return openBlock(), createBlock(unref(_sfc_main$1L), {
1613
+ return openBlock(), createBlock(unref(_sfc_main$1M), {
1614
1614
  id: parentId.value,
1615
1615
  errors: parentErrors.value,
1616
1616
  "is-invalid": isInvalid.value,
@@ -1624,7 +1624,7 @@ const _sfc_main$1t = /* @__PURE__ */ defineComponent({
1624
1624
  ref: root,
1625
1625
  class: rootClass.value
1626
1626
  }, passthroughAttrs.value), [
1627
- hasLabel.value ? (openBlock(), createBlock(_sfc_main$1J, { key: 0 }, {
1627
+ hasLabel.value ? (openBlock(), createBlock(_sfc_main$1K, { key: 0 }, {
1628
1628
  default: withCtx(() => [
1629
1629
  renderSlot(_ctx.$slots, "label", {}, () => [
1630
1630
  createTextVNode(toDisplayString(__props.label), 1)
@@ -1633,7 +1633,7 @@ const _sfc_main$1t = /* @__PURE__ */ defineComponent({
1633
1633
  _: 3
1634
1634
  })) : createCommentVNode("", true),
1635
1635
  renderSlot(_ctx.$slots, "default"),
1636
- showError.value ? (openBlock(), createBlock(_sfc_main$1H, {
1636
+ showError.value ? (openBlock(), createBlock(_sfc_main$1I, {
1637
1637
  key: 1,
1638
1638
  message: hasOwnError.value ? __props.error : void 0
1639
1639
  }, createSlots({ _: 2 }, [
@@ -1644,7 +1644,7 @@ const _sfc_main$1t = /* @__PURE__ */ defineComponent({
1644
1644
  ]),
1645
1645
  key: "0"
1646
1646
  } : void 0
1647
- ]), 1032, ["message"])) : hasHelper.value ? (openBlock(), createBlock(_sfc_main$1I, { key: 2 }, {
1647
+ ]), 1032, ["message"])) : hasHelper.value ? (openBlock(), createBlock(_sfc_main$1J, { key: 2 }, {
1648
1648
  default: withCtx(() => [
1649
1649
  renderSlot(_ctx.$slots, "helper", {}, () => [
1650
1650
  createTextVNode(toDisplayString(__props.helper), 1)
@@ -1663,14 +1663,14 @@ const CheckboxGroupKey = Symbol("wow-two.checkboxGroup");
1663
1663
  function useCheckboxGroup() {
1664
1664
  return inject(CheckboxGroupKey, null);
1665
1665
  }
1666
- const _hoisted_1$14 = ["for"];
1667
- const _hoisted_2$E = { class: "flex flex-col gap-0.5 text-sm" };
1666
+ const _hoisted_1$15 = ["for"];
1667
+ const _hoisted_2$H = { class: "flex flex-col gap-0.5 text-sm" };
1668
1668
  const _hoisted_3$t = { class: "font-medium text-foreground" };
1669
- const _hoisted_4$k = {
1669
+ const _hoisted_4$l = {
1670
1670
  key: 0,
1671
1671
  class: "text-muted-foreground"
1672
1672
  };
1673
- const _sfc_main$1s = /* @__PURE__ */ defineComponent({
1673
+ const _sfc_main$1t = /* @__PURE__ */ defineComponent({
1674
1674
  ...{ name: "CheckboxField", inheritAttrs: false },
1675
1675
  __name: "CheckboxField",
1676
1676
  props: {
@@ -1733,13 +1733,13 @@ const _sfc_main$1s = /* @__PURE__ */ defineComponent({
1733
1733
  for: inputId.value,
1734
1734
  class: normalizeClass(wrapperClass.value)
1735
1735
  }, [
1736
- isInGroup.value ? (openBlock(), createBlock(unref(_sfc_main$1L), {
1736
+ isInGroup.value ? (openBlock(), createBlock(unref(_sfc_main$1M), {
1737
1737
  key: 0,
1738
1738
  "is-disabled": groupDisabled.value,
1739
1739
  "is-invalid": groupInvalid.value
1740
1740
  }, {
1741
1741
  default: withCtx(() => [
1742
- createVNode(_sfc_main$1x, mergeProps({
1742
+ createVNode(_sfc_main$1y, mergeProps({
1743
1743
  ref_key: "inner",
1744
1744
  ref: inner
1745
1745
  }, { ...checkboxProps.value, ...passthroughAttrs.value }, {
@@ -1750,7 +1750,7 @@ const _sfc_main$1s = /* @__PURE__ */ defineComponent({
1750
1750
  }), null, 16, ["id", "checked", "class"])
1751
1751
  ]),
1752
1752
  _: 1
1753
- }, 8, ["is-disabled", "is-invalid"])) : (openBlock(), createBlock(_sfc_main$1x, mergeProps({
1753
+ }, 8, ["is-disabled", "is-invalid"])) : (openBlock(), createBlock(_sfc_main$1y, mergeProps({
1754
1754
  key: 1,
1755
1755
  ref_key: "inner",
1756
1756
  ref: inner
@@ -1758,19 +1758,19 @@ const _sfc_main$1s = /* @__PURE__ */ defineComponent({
1758
1758
  id: inputId.value,
1759
1759
  class: checkboxClass.value
1760
1760
  }), null, 16, ["id", "class"])),
1761
- createElementVNode("span", _hoisted_2$E, [
1761
+ createElementVNode("span", _hoisted_2$H, [
1762
1762
  createElementVNode("span", _hoisted_3$t, [
1763
1763
  renderSlot(_ctx.$slots, "label", {}, () => [
1764
1764
  createTextVNode(toDisplayString(__props.label), 1)
1765
1765
  ])
1766
1766
  ]),
1767
- hasDescription.value ? (openBlock(), createElementBlock("span", _hoisted_4$k, [
1767
+ hasDescription.value ? (openBlock(), createElementBlock("span", _hoisted_4$l, [
1768
1768
  renderSlot(_ctx.$slots, "description", {}, () => [
1769
1769
  createTextVNode(toDisplayString(__props.description), 1)
1770
1770
  ])
1771
1771
  ])) : createCommentVNode("", true)
1772
1772
  ])
1773
- ], 10, _hoisted_1$14);
1773
+ ], 10, _hoisted_1$15);
1774
1774
  };
1775
1775
  }
1776
1776
  });
@@ -1778,14 +1778,14 @@ const RadioGroupKey = Symbol("wow-two.radioGroup");
1778
1778
  function useRadioGroup() {
1779
1779
  return inject(RadioGroupKey, null);
1780
1780
  }
1781
- const _hoisted_1$13 = ["for"];
1782
- const _hoisted_2$D = { class: "flex flex-col gap-0.5 text-sm" };
1781
+ const _hoisted_1$14 = ["for"];
1782
+ const _hoisted_2$G = { class: "flex flex-col gap-0.5 text-sm" };
1783
1783
  const _hoisted_3$s = { class: "font-medium text-foreground" };
1784
- const _hoisted_4$j = {
1784
+ const _hoisted_4$k = {
1785
1785
  key: 0,
1786
1786
  class: "text-muted-foreground"
1787
1787
  };
1788
- const _sfc_main$1r = /* @__PURE__ */ defineComponent({
1788
+ const _sfc_main$1s = /* @__PURE__ */ defineComponent({
1789
1789
  ...{ name: "RadioField", inheritAttrs: false },
1790
1790
  __name: "RadioField",
1791
1791
  props: {
@@ -1845,13 +1845,13 @@ const _sfc_main$1r = /* @__PURE__ */ defineComponent({
1845
1845
  for: inputId.value,
1846
1846
  class: normalizeClass(wrapperClass.value)
1847
1847
  }, [
1848
- isInGroup.value ? (openBlock(), createBlock(unref(_sfc_main$1L), {
1848
+ isInGroup.value ? (openBlock(), createBlock(unref(_sfc_main$1M), {
1849
1849
  key: 0,
1850
1850
  "is-disabled": groupDisabled.value,
1851
1851
  "is-invalid": groupInvalid.value
1852
1852
  }, {
1853
1853
  default: withCtx(() => [
1854
- createVNode(_sfc_main$1w, mergeProps({
1854
+ createVNode(_sfc_main$1x, mergeProps({
1855
1855
  ref_key: "inner",
1856
1856
  ref: inner
1857
1857
  }, { ...radioProps.value, ...passthroughAttrs.value }, {
@@ -1863,7 +1863,7 @@ const _sfc_main$1r = /* @__PURE__ */ defineComponent({
1863
1863
  }), null, 16, ["id", "name", "checked", "class"])
1864
1864
  ]),
1865
1865
  _: 1
1866
- }, 8, ["is-disabled", "is-invalid"])) : (openBlock(), createBlock(_sfc_main$1w, mergeProps({
1866
+ }, 8, ["is-disabled", "is-invalid"])) : (openBlock(), createBlock(_sfc_main$1x, mergeProps({
1867
1867
  key: 1,
1868
1868
  ref_key: "inner",
1869
1869
  ref: inner
@@ -1871,30 +1871,30 @@ const _sfc_main$1r = /* @__PURE__ */ defineComponent({
1871
1871
  id: inputId.value,
1872
1872
  class: radioClass.value
1873
1873
  }), null, 16, ["id", "class"])),
1874
- createElementVNode("span", _hoisted_2$D, [
1874
+ createElementVNode("span", _hoisted_2$G, [
1875
1875
  createElementVNode("span", _hoisted_3$s, [
1876
1876
  renderSlot(_ctx.$slots, "label", {}, () => [
1877
1877
  createTextVNode(toDisplayString(__props.label), 1)
1878
1878
  ])
1879
1879
  ]),
1880
- hasDescription.value ? (openBlock(), createElementBlock("span", _hoisted_4$j, [
1880
+ hasDescription.value ? (openBlock(), createElementBlock("span", _hoisted_4$k, [
1881
1881
  renderSlot(_ctx.$slots, "description", {}, () => [
1882
1882
  createTextVNode(toDisplayString(__props.description), 1)
1883
1883
  ])
1884
1884
  ])) : createCommentVNode("", true)
1885
1885
  ])
1886
- ], 10, _hoisted_1$13);
1886
+ ], 10, _hoisted_1$14);
1887
1887
  };
1888
1888
  }
1889
1889
  });
1890
- const _hoisted_1$12 = ["for"];
1891
- const _hoisted_2$C = { class: "flex flex-col gap-0.5 text-sm" };
1890
+ const _hoisted_1$13 = ["for"];
1891
+ const _hoisted_2$F = { class: "flex flex-col gap-0.5 text-sm" };
1892
1892
  const _hoisted_3$r = { class: "font-medium text-foreground" };
1893
- const _hoisted_4$i = {
1893
+ const _hoisted_4$j = {
1894
1894
  key: 0,
1895
1895
  class: "text-muted-foreground"
1896
1896
  };
1897
- const _sfc_main$1q = /* @__PURE__ */ defineComponent({
1897
+ const _sfc_main$1r = /* @__PURE__ */ defineComponent({
1898
1898
  ...{ name: "SwitchField", inheritAttrs: false },
1899
1899
  __name: "SwitchField",
1900
1900
  props: {
@@ -1949,30 +1949,30 @@ const _sfc_main$1q = /* @__PURE__ */ defineComponent({
1949
1949
  for: inputId.value,
1950
1950
  class: normalizeClass(wrapperClass.value)
1951
1951
  }, [
1952
- createVNode(_sfc_main$1v, mergeProps({
1952
+ createVNode(_sfc_main$1w, mergeProps({
1953
1953
  ref_key: "inner",
1954
1954
  ref: inner
1955
1955
  }, { ...switchProps.value, ...passthroughAttrs.value }, {
1956
1956
  id: inputId.value,
1957
1957
  class: switchClass.value
1958
1958
  }), null, 16, ["id", "class"]),
1959
- createElementVNode("span", _hoisted_2$C, [
1959
+ createElementVNode("span", _hoisted_2$F, [
1960
1960
  createElementVNode("span", _hoisted_3$r, [
1961
1961
  renderSlot(_ctx.$slots, "label", {}, () => [
1962
1962
  createTextVNode(toDisplayString(__props.label), 1)
1963
1963
  ])
1964
1964
  ]),
1965
- hasDescription.value ? (openBlock(), createElementBlock("span", _hoisted_4$i, [
1965
+ hasDescription.value ? (openBlock(), createElementBlock("span", _hoisted_4$j, [
1966
1966
  renderSlot(_ctx.$slots, "description", {}, () => [
1967
1967
  createTextVNode(toDisplayString(__props.description), 1)
1968
1968
  ])
1969
1969
  ])) : createCommentVNode("", true)
1970
1970
  ])
1971
- ], 10, _hoisted_1$12);
1971
+ ], 10, _hoisted_1$13);
1972
1972
  };
1973
1973
  }
1974
1974
  });
1975
- const _sfc_main$1p = /* @__PURE__ */ defineComponent({
1975
+ const _sfc_main$1q = /* @__PURE__ */ defineComponent({
1976
1976
  ...{ name: "CheckboxGroup", inheritAttrs: false },
1977
1977
  __name: "CheckboxGroup",
1978
1978
  props: {
@@ -2033,7 +2033,7 @@ const _sfc_main$1p = /* @__PURE__ */ defineComponent({
2033
2033
  const root = useTemplateRef("root");
2034
2034
  __expose({ el: computed(() => root.value?.el ?? null) });
2035
2035
  return (_ctx, _cache) => {
2036
- return openBlock(), createBlock(_sfc_main$1M, mergeProps({
2036
+ return openBlock(), createBlock(_sfc_main$1N, mergeProps({
2037
2037
  ref_key: "root",
2038
2038
  ref: root,
2039
2039
  id: groupId.value,
@@ -2044,7 +2044,7 @@ const _sfc_main$1p = /* @__PURE__ */ defineComponent({
2044
2044
  class: rootClass.value
2045
2045
  }, passthroughAttrs.value), {
2046
2046
  default: withCtx(() => [
2047
- hasLegend.value ? (openBlock(), createBlock(_sfc_main$1G, { key: 0 }, {
2047
+ hasLegend.value ? (openBlock(), createBlock(_sfc_main$1H, { key: 0 }, {
2048
2048
  default: withCtx(() => [
2049
2049
  renderSlot(_ctx.$slots, "legend", {}, () => [
2050
2050
  createTextVNode(toDisplayString(__props.legend), 1)
@@ -2063,7 +2063,7 @@ const _sfc_main$1p = /* @__PURE__ */ defineComponent({
2063
2063
  };
2064
2064
  }
2065
2065
  });
2066
- const _sfc_main$1o = /* @__PURE__ */ defineComponent({
2066
+ const _sfc_main$1p = /* @__PURE__ */ defineComponent({
2067
2067
  ...{ name: "RadioGroup", inheritAttrs: false },
2068
2068
  __name: "RadioGroup",
2069
2069
  props: {
@@ -2125,7 +2125,7 @@ const _sfc_main$1o = /* @__PURE__ */ defineComponent({
2125
2125
  const root = useTemplateRef("root");
2126
2126
  __expose({ el: computed(() => root.value?.el ?? null) });
2127
2127
  return (_ctx, _cache) => {
2128
- return openBlock(), createBlock(_sfc_main$1M, mergeProps({
2128
+ return openBlock(), createBlock(_sfc_main$1N, mergeProps({
2129
2129
  ref_key: "root",
2130
2130
  ref: root,
2131
2131
  role: "radiogroup",
@@ -2137,7 +2137,7 @@ const _sfc_main$1o = /* @__PURE__ */ defineComponent({
2137
2137
  class: rootClass.value
2138
2138
  }, passthroughAttrs.value), {
2139
2139
  default: withCtx(() => [
2140
- hasLegend.value ? (openBlock(), createBlock(_sfc_main$1G, { key: 0 }, {
2140
+ hasLegend.value ? (openBlock(), createBlock(_sfc_main$1H, { key: 0 }, {
2141
2141
  default: withCtx(() => [
2142
2142
  renderSlot(_ctx.$slots, "legend", {}, () => [
2143
2143
  createTextVNode(toDisplayString(__props.legend), 1)
@@ -2156,7 +2156,7 @@ const _sfc_main$1o = /* @__PURE__ */ defineComponent({
2156
2156
  };
2157
2157
  }
2158
2158
  });
2159
- const _hoisted_1$11 = ["type", "inputmode", "aria-label", "id", "aria-describedby", "aria-required", "aria-invalid", "disabled", "readonly", "value", "onInput", "onKeydown"];
2159
+ const _hoisted_1$12 = ["type", "inputmode", "aria-label", "id", "aria-describedby", "aria-required", "aria-invalid", "disabled", "readonly", "value", "onInput", "onKeydown"];
2160
2160
  const PinInputType = {
2161
2161
  /** Refers to digits only (`0-9`). */
2162
2162
  Numeric: "numeric",
@@ -2168,7 +2168,7 @@ const SIZE$3 = {
2168
2168
  md: "h-11 w-11 text-lg",
2169
2169
  lg: "h-14 w-14 text-xl"
2170
2170
  };
2171
- const _sfc_main$1n = /* @__PURE__ */ defineComponent({
2171
+ const _sfc_main$1o = /* @__PURE__ */ defineComponent({
2172
2172
  ...{ name: "PinInput", inheritAttrs: false },
2173
2173
  __name: "PinInput",
2174
2174
  props: {
@@ -2296,14 +2296,15 @@ const _sfc_main$1n = /* @__PURE__ */ defineComponent({
2296
2296
  onInput: ($event) => onCellInput(i, $event),
2297
2297
  onKeydown: ($event) => onCellKeydown(i, $event),
2298
2298
  onPaste
2299
- }, null, 42, _hoisted_1$11);
2299
+ }, null, 42, _hoisted_1$12);
2300
2300
  }), 128))
2301
2301
  ], 16);
2302
2302
  };
2303
2303
  }
2304
2304
  });
2305
- const _hoisted_1$10 = ["value", "id", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
2305
+ const _hoisted_1$11 = ["value", "id", "disabled", "required", "readonly", "aria-invalid", "aria-describedby"];
2306
2306
  function applyMask(raw, mask) {
2307
+ if (!mask) return raw;
2307
2308
  let out = "";
2308
2309
  let r = 0;
2309
2310
  for (let m = 0; m < mask.length && r < raw.length; m++) {
@@ -2341,7 +2342,7 @@ function applyMask(raw, mask) {
2341
2342
  }
2342
2343
  return out;
2343
2344
  }
2344
- const _sfc_main$1m = /* @__PURE__ */ defineComponent({
2345
+ const _sfc_main$1n = /* @__PURE__ */ defineComponent({
2345
2346
  ...{ name: "MaskedInput", inheritAttrs: false },
2346
2347
  __name: "MaskedInput",
2347
2348
  props: {
@@ -2409,12 +2410,12 @@ const _sfc_main$1m = /* @__PURE__ */ defineComponent({
2409
2410
  "aria-invalid": isInvalid.value,
2410
2411
  "aria-describedby": describedBy.value,
2411
2412
  class: rootClass.value
2412
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$10);
2413
+ }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$11);
2413
2414
  };
2414
2415
  }
2415
2416
  });
2416
- const _hoisted_1$$ = { class: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-sm text-muted-foreground" };
2417
- const _sfc_main$1l = /* @__PURE__ */ defineComponent({
2417
+ const _hoisted_1$10 = { class: "pointer-events-none absolute left-3 top-1/2 -translate-y-1/2 text-sm text-muted-foreground" };
2418
+ const _sfc_main$1m = /* @__PURE__ */ defineComponent({
2418
2419
  ...{ name: "CurrencyInput", inheritAttrs: false },
2419
2420
  __name: "CurrencyInput",
2420
2421
  props: {
@@ -2451,8 +2452,8 @@ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
2451
2452
  return openBlock(), createElementBlock("div", {
2452
2453
  class: normalizeClass(wrapperClass.value)
2453
2454
  }, [
2454
- createElementVNode("span", _hoisted_1$$, toDisplayString(__props.symbol), 1),
2455
- createVNode(_sfc_main$1B, mergeProps({
2455
+ createElementVNode("span", _hoisted_1$10, toDisplayString(__props.symbol), 1),
2456
+ createVNode(_sfc_main$1C, mergeProps({
2456
2457
  ref_key: "inner",
2457
2458
  ref: inner
2458
2459
  }, { ...numberProps.value, ...passthroughAttrs.value }, { class: "pl-7" }), null, 16)
@@ -2460,7 +2461,7 @@ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
2460
2461
  };
2461
2462
  }
2462
2463
  });
2463
- const _sfc_main$1k = /* @__PURE__ */ defineComponent({
2464
+ const _sfc_main$1l = /* @__PURE__ */ defineComponent({
2464
2465
  ...{ name: "PercentInput", inheritAttrs: false },
2465
2466
  __name: "PercentInput",
2466
2467
  props: {
@@ -2492,7 +2493,7 @@ const _sfc_main$1k = /* @__PURE__ */ defineComponent({
2492
2493
  return openBlock(), createElementBlock("div", {
2493
2494
  class: normalizeClass(wrapperClass.value)
2494
2495
  }, [
2495
- createVNode(_sfc_main$1B, mergeProps({
2496
+ createVNode(_sfc_main$1C, mergeProps({
2496
2497
  ref_key: "inner",
2497
2498
  ref: inner
2498
2499
  }, { ...props, ...passthroughAttrs.value }, { class: "pr-16" }), null, 16),
@@ -2501,7 +2502,7 @@ const _sfc_main$1k = /* @__PURE__ */ defineComponent({
2501
2502
  };
2502
2503
  }
2503
2504
  });
2504
- const _sfc_main$1j = /* @__PURE__ */ defineComponent({
2505
+ const _sfc_main$1k = /* @__PURE__ */ defineComponent({
2505
2506
  ...{ name: "CharacterCount", inheritAttrs: false },
2506
2507
  __name: "CharacterCount",
2507
2508
  props: {
@@ -2536,7 +2537,7 @@ const _sfc_main$1j = /* @__PURE__ */ defineComponent({
2536
2537
  };
2537
2538
  }
2538
2539
  });
2539
- const _sfc_main$1i = /* @__PURE__ */ defineComponent({
2540
+ const _sfc_main$1j = /* @__PURE__ */ defineComponent({
2540
2541
  ...{ name: "InputAddon", inheritAttrs: false },
2541
2542
  __name: "InputAddon",
2542
2543
  props: {
@@ -2555,9 +2556,15 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
2555
2556
  );
2556
2557
  const rootClass = computed(
2557
2558
  () => cn(
2558
- "inline-flex w-full items-stretch [&>*]:rounded-none",
2559
+ "inline-flex w-full items-stretch rounded-md [&>*]:rounded-none",
2559
2560
  "[&>*:first-child]:rounded-l-md [&>*:last-child]:rounded-r-md",
2560
2561
  "[&>*:not(:first-child)]:-ml-px",
2562
+ /* The group is the control, so the focus ring belongs to the group. Past the React
2563
+ original, where the ring landed on the input segment alone and the addons read as
2564
+ separate boxes hanging off a highlighted middle. The segment's own ring is
2565
+ suppressed; it is raised instead so its border paints over its neighbours'. */
2566
+ "[&:has(>*:focus-visible)]:ring-2 [&:has(>*:focus-visible)]:ring-ring",
2567
+ "[&>*:focus-visible]:z-10 [&>*:focus-visible]:relative [&>*:focus-visible]:ring-0",
2561
2568
  attrs.class
2562
2569
  )
2563
2570
  );
@@ -2591,7 +2598,7 @@ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
2591
2598
  };
2592
2599
  }
2593
2600
  });
2594
- const _sfc_main$1h = /* @__PURE__ */ defineComponent({
2601
+ const _sfc_main$1i = /* @__PURE__ */ defineComponent({
2595
2602
  ...{ name: "InputGroup", inheritAttrs: false },
2596
2603
  __name: "InputGroup",
2597
2604
  props: {
@@ -2607,8 +2614,12 @@ const _sfc_main$1h = /* @__PURE__ */ defineComponent({
2607
2614
  );
2608
2615
  const rootClass = computed(
2609
2616
  () => cn(
2610
- "inline-flex w-full",
2617
+ "inline-flex w-full rounded-md",
2611
2618
  isHorizontal.value ? "flex-row" : "flex-col",
2619
+ /* Same contract as `InputAddon`: the joined row is one control, so the ring goes round
2620
+ the whole group and the focused segment only rises above its neighbours' borders. */
2621
+ "[&:has(>*:focus-visible)]:ring-2 [&:has(>*:focus-visible)]:ring-ring",
2622
+ "[&>*:focus-visible]:z-10 [&>*:focus-visible]:relative [&>*:focus-visible]:ring-0",
2612
2623
  isHorizontal.value ? "[&>*]:rounded-none [&>*:first-child]:rounded-l-md [&>*:last-child]:rounded-r-md [&>*:not(:first-child)]:-ml-px" : "[&>*]:rounded-none [&>*:first-child]:rounded-t-md [&>*:last-child]:rounded-b-md [&>*:not(:first-child)]:-mt-px",
2613
2624
  attrs.class
2614
2625
  )
@@ -2626,12 +2637,12 @@ const _sfc_main$1h = /* @__PURE__ */ defineComponent({
2626
2637
  };
2627
2638
  }
2628
2639
  });
2629
- const _hoisted_1$_ = { class: "flex items-center justify-between" };
2630
- const _hoisted_2$B = {
2640
+ const _hoisted_1$$ = { class: "flex items-center justify-between" };
2641
+ const _hoisted_2$E = {
2631
2642
  key: 0,
2632
2643
  class: "text-xs text-muted-foreground"
2633
2644
  };
2634
- const _sfc_main$1g = /* @__PURE__ */ defineComponent({
2645
+ const _sfc_main$1h = /* @__PURE__ */ defineComponent({
2635
2646
  ...{ name: "LabeledInput", inheritAttrs: false },
2636
2647
  __name: "LabeledInput",
2637
2648
  props: {
@@ -2657,8 +2668,8 @@ const _sfc_main$1g = /* @__PURE__ */ defineComponent({
2657
2668
  ref: root,
2658
2669
  class: rootClass.value
2659
2670
  }, passthroughAttrs.value), [
2660
- createElementVNode("div", _hoisted_1$_, [
2661
- createVNode(_sfc_main$1J, { for: unref(generatedId) }, {
2671
+ createElementVNode("div", _hoisted_1$$, [
2672
+ createVNode(_sfc_main$1K, { for: unref(generatedId) }, {
2662
2673
  default: withCtx(() => [
2663
2674
  renderSlot(_ctx.$slots, "label", {}, () => [
2664
2675
  createTextVNode(toDisplayString(__props.label), 1)
@@ -2666,7 +2677,7 @@ const _sfc_main$1g = /* @__PURE__ */ defineComponent({
2666
2677
  ]),
2667
2678
  _: 3
2668
2679
  }, 8, ["for"]),
2669
- hasTrailing.value ? (openBlock(), createElementBlock("span", _hoisted_2$B, [
2680
+ hasTrailing.value ? (openBlock(), createElementBlock("span", _hoisted_2$E, [
2670
2681
  renderSlot(_ctx.$slots, "trailing", {}, () => [
2671
2682
  createTextVNode(toDisplayString(__props.trailing), 1)
2672
2683
  ])
@@ -2677,13 +2688,13 @@ const _sfc_main$1g = /* @__PURE__ */ defineComponent({
2677
2688
  };
2678
2689
  }
2679
2690
  });
2680
- const _hoisted_1$Z = ["for"];
2681
- const _hoisted_2$A = { class: "flex items-start gap-3 pr-7" };
2691
+ const _hoisted_1$_ = ["for"];
2692
+ const _hoisted_2$D = { class: "flex items-start gap-3 pr-7" };
2682
2693
  const _hoisted_3$q = {
2683
2694
  key: 0,
2684
2695
  class: "text-muted-foreground"
2685
2696
  };
2686
- const _hoisted_4$h = { class: "min-w-0 flex-1" };
2697
+ const _hoisted_4$i = { class: "min-w-0 flex-1" };
2687
2698
  const _hoisted_5$b = { class: "font-medium text-foreground" };
2688
2699
  const _hoisted_6$8 = {
2689
2700
  key: 0,
@@ -2694,7 +2705,7 @@ const SIZE$2 = {
2694
2705
  md: "p-4 text-sm",
2695
2706
  lg: "p-5 text-base"
2696
2707
  };
2697
- const _sfc_main$1f = /* @__PURE__ */ defineComponent({
2708
+ const _sfc_main$1g = /* @__PURE__ */ defineComponent({
2698
2709
  ...{ name: "ChoiceCard", inheritAttrs: false },
2699
2710
  __name: "ChoiceCard",
2700
2711
  props: {
@@ -2761,13 +2772,13 @@ const _sfc_main$1f = /* @__PURE__ */ defineComponent({
2761
2772
  for: inputId.value,
2762
2773
  class: normalizeClass(rootClass.value)
2763
2774
  }, [
2764
- isInGroup.value ? (openBlock(), createBlock(unref(_sfc_main$1L), {
2775
+ isInGroup.value ? (openBlock(), createBlock(unref(_sfc_main$1M), {
2765
2776
  key: 0,
2766
2777
  "is-disabled": groupDisabled.value,
2767
2778
  "is-invalid": groupInvalid.value
2768
2779
  }, {
2769
2780
  default: withCtx(() => [
2770
- createVNode(_sfc_main$1w, mergeProps({
2781
+ createVNode(_sfc_main$1x, mergeProps({
2771
2782
  ref_key: "inner",
2772
2783
  ref: inner
2773
2784
  }, { ...radioProps.value, ...passthroughAttrs.value }, {
@@ -2779,7 +2790,7 @@ const _sfc_main$1f = /* @__PURE__ */ defineComponent({
2779
2790
  }), null, 16, ["id", "name", "checked"])
2780
2791
  ]),
2781
2792
  _: 1
2782
- }, 8, ["is-disabled", "is-invalid"])) : (openBlock(), createBlock(_sfc_main$1w, mergeProps({
2793
+ }, 8, ["is-disabled", "is-invalid"])) : (openBlock(), createBlock(_sfc_main$1x, mergeProps({
2783
2794
  key: 1,
2784
2795
  ref_key: "inner",
2785
2796
  ref: inner
@@ -2787,13 +2798,13 @@ const _sfc_main$1f = /* @__PURE__ */ defineComponent({
2787
2798
  id: inputId.value,
2788
2799
  class: "absolute right-3 top-3"
2789
2800
  }), null, 16, ["id"])),
2790
- createElementVNode("div", _hoisted_2$A, [
2801
+ createElementVNode("div", _hoisted_2$D, [
2791
2802
  hasIcon.value ? (openBlock(), createElementBlock("span", _hoisted_3$q, [
2792
2803
  renderSlot(_ctx.$slots, "icon", {}, () => [
2793
2804
  createTextVNode(toDisplayString(__props.icon), 1)
2794
2805
  ])
2795
2806
  ])) : createCommentVNode("", true),
2796
- createElementVNode("div", _hoisted_4$h, [
2807
+ createElementVNode("div", _hoisted_4$i, [
2797
2808
  createElementVNode("div", _hoisted_5$b, [
2798
2809
  renderSlot(_ctx.$slots, "label", {}, () => [
2799
2810
  createTextVNode(toDisplayString(__props.label), 1)
@@ -2806,15 +2817,15 @@ const _sfc_main$1f = /* @__PURE__ */ defineComponent({
2806
2817
  ])) : createCommentVNode("", true)
2807
2818
  ])
2808
2819
  ])
2809
- ], 10, _hoisted_1$Z);
2820
+ ], 10, _hoisted_1$_);
2810
2821
  };
2811
2822
  }
2812
2823
  });
2813
- const _hoisted_1$Y = {
2824
+ const _hoisted_1$Z = {
2814
2825
  class: "flex gap-1",
2815
2826
  "aria-hidden": "true"
2816
2827
  };
2817
- const _hoisted_2$z = {
2828
+ const _hoisted_2$C = {
2818
2829
  key: 0,
2819
2830
  class: "text-xs text-muted-foreground"
2820
2831
  };
@@ -2829,7 +2840,7 @@ function scorePassword(pw) {
2829
2840
  if (/[^A-Za-z0-9]/.test(pw)) score++;
2830
2841
  return Math.min(4, score);
2831
2842
  }
2832
- const _sfc_main$1e = /* @__PURE__ */ defineComponent({
2843
+ const _sfc_main$1f = /* @__PURE__ */ defineComponent({
2833
2844
  ...{ name: "PasswordStrength", inheritAttrs: false },
2834
2845
  __name: "PasswordStrength",
2835
2846
  props: {
@@ -2862,7 +2873,7 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
2862
2873
  ref: root,
2863
2874
  class: rootClass.value
2864
2875
  }, passthroughAttrs.value), [
2865
- createElementVNode("div", _hoisted_1$Y, [
2876
+ createElementVNode("div", _hoisted_1$Z, [
2866
2877
  (openBlock(), createElementBlock(Fragment, null, renderList(4, (i) => {
2867
2878
  return createElementVNode("div", {
2868
2879
  key: i,
@@ -2870,13 +2881,13 @@ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
2870
2881
  }, null, 2);
2871
2882
  }), 64))
2872
2883
  ]),
2873
- isLabelShown.value ? (openBlock(), createElementBlock("div", _hoisted_2$z, toDisplayString(label.value), 1)) : createCommentVNode("", true)
2884
+ isLabelShown.value ? (openBlock(), createElementBlock("div", _hoisted_2$C, toDisplayString(label.value), 1)) : createCommentVNode("", true)
2874
2885
  ], 16);
2875
2886
  };
2876
2887
  }
2877
2888
  });
2878
- const _hoisted_1$X = ["disabled", "aria-describedby"];
2879
- const _hoisted_2$y = ["id", "disabled", "aria-invalid", "aria-describedby", "aria-required"];
2889
+ const _hoisted_1$Y = ["disabled", "aria-describedby"];
2890
+ const _hoisted_2$B = ["id", "disabled", "aria-invalid", "aria-describedby", "aria-required"];
2880
2891
  const _hoisted_3$p = {
2881
2892
  key: 0,
2882
2893
  class: "truncate text-sm text-muted-foreground"
@@ -2886,7 +2897,7 @@ const SIZE$1 = {
2886
2897
  md: "h-10 px-4 text-sm",
2887
2898
  lg: "h-12 px-6 text-base"
2888
2899
  };
2889
- const _sfc_main$1d = /* @__PURE__ */ defineComponent({
2900
+ const _sfc_main$1e = /* @__PURE__ */ defineComponent({
2890
2901
  ...{ name: "FilePicker", inheritAttrs: false },
2891
2902
  __name: "FilePicker",
2892
2903
  props: {
@@ -2944,14 +2955,14 @@ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
2944
2955
  class: normalizeClass(buttonClass.value),
2945
2956
  onClick: openPicker
2946
2957
  }, [
2947
- createVNode(unref(_sfc_main$1K), {
2958
+ createVNode(unref(_sfc_main$1L), {
2948
2959
  icon: unref(UploadIcon),
2949
2960
  size: 16
2950
2961
  }, null, 8, ["icon"]),
2951
2962
  renderSlot(_ctx.$slots, "label", {}, () => [
2952
2963
  createTextVNode(toDisplayString(__props.label), 1)
2953
2964
  ])
2954
- ], 10, _hoisted_1$X),
2965
+ ], 10, _hoisted_1$Y),
2955
2966
  createElementVNode("input", mergeProps({
2956
2967
  ref_key: "input",
2957
2968
  ref: input,
@@ -2962,7 +2973,7 @@ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
2962
2973
  "aria-describedby": describedBy.value,
2963
2974
  "aria-required": isRequired.value,
2964
2975
  class: "sr-only"
2965
- }, passthroughAttrs.value, { onChange }), null, 16, _hoisted_2$y),
2976
+ }, passthroughAttrs.value, { onChange }), null, 16, _hoisted_2$B),
2966
2977
  hasPreview.value ? (openBlock(), createElementBlock("span", _hoisted_3$p, [
2967
2978
  renderSlot(_ctx.$slots, "preview", {}, () => [
2968
2979
  createTextVNode(toDisplayString(__props.preview), 1)
@@ -2991,8 +3002,8 @@ function useListboxContext() {
2991
3002
  if (!ctx) throw new Error("Listbox.Item / Group / Separator must be used inside <Listbox>");
2992
3003
  return ctx;
2993
3004
  }
2994
- const _hoisted_1$W = ["tabindex", "aria-multiselectable", "aria-activedescendant", "aria-disabled"];
2995
- const _sfc_main$1c = /* @__PURE__ */ defineComponent({
3005
+ const _hoisted_1$X = ["tabindex", "aria-multiselectable", "aria-activedescendant", "aria-disabled"];
3006
+ const _sfc_main$1d = /* @__PURE__ */ defineComponent({
2996
3007
  ...{ name: "Listbox", inheritAttrs: false },
2997
3008
  __name: "Listbox",
2998
3009
  props: {
@@ -3189,12 +3200,12 @@ const _sfc_main$1c = /* @__PURE__ */ defineComponent({
3189
3200
  class: rootClass.value
3190
3201
  }, passthroughAttrs.value, { onKeydown: handleKeyDown }), [
3191
3202
  renderSlot(_ctx.$slots, "default")
3192
- ], 16, _hoisted_1$W);
3203
+ ], 16, _hoisted_1$X);
3193
3204
  };
3194
3205
  }
3195
3206
  });
3196
- const _hoisted_1$V = ["id", "aria-selected", "aria-disabled", "data-active", "data-selected", "data-disabled"];
3197
- const _hoisted_2$x = {
3207
+ const _hoisted_1$W = ["id", "aria-selected", "aria-disabled", "data-active", "data-selected", "data-disabled"];
3208
+ const _hoisted_2$A = {
3198
3209
  key: 0,
3199
3210
  class: "h-2 w-2 rounded-full bg-primary"
3200
3211
  };
@@ -3202,7 +3213,7 @@ const _hoisted_3$o = {
3202
3213
  "data-listbox-item-content": "",
3203
3214
  class: "flex min-w-0 flex-1 items-center gap-2"
3204
3215
  };
3205
- const _sfc_main$1b = /* @__PURE__ */ defineComponent({
3216
+ const _sfc_main$1c = /* @__PURE__ */ defineComponent({
3206
3217
  ...{ name: "ListboxItem", inheritAttrs: false },
3207
3218
  __name: "ListboxItem",
3208
3219
  props: {
@@ -3287,7 +3298,7 @@ const _sfc_main$1b = /* @__PURE__ */ defineComponent({
3287
3298
  )
3288
3299
  )
3289
3300
  }, [
3290
- isSelected.value ? (openBlock(), createElementBlock("span", _hoisted_2$x)) : createCommentVNode("", true)
3301
+ isSelected.value ? (openBlock(), createElementBlock("span", _hoisted_2$A)) : createCommentVNode("", true)
3291
3302
  ], 2)) : indicator.value === unref(ListboxIndicator).Dot ? (openBlock(), createElementBlock("span", {
3292
3303
  key: 2,
3293
3304
  "aria-hidden": "true",
@@ -3300,13 +3311,13 @@ const _sfc_main$1b = /* @__PURE__ */ defineComponent({
3300
3311
  key: 3,
3301
3312
  class: normalizeClass(unref(cn)("h-4 w-4 shrink-0", !unref(ctx).isMultiple && "opacity-80"))
3302
3313
  }, null, 8, ["class"])) : createCommentVNode("", true)
3303
- ], 16, _hoisted_1$V);
3314
+ ], 16, _hoisted_1$W);
3304
3315
  };
3305
3316
  }
3306
3317
  });
3307
- const _hoisted_1$U = ["aria-labelledby"];
3308
- const _hoisted_2$w = ["id"];
3309
- const _sfc_main$1a = /* @__PURE__ */ defineComponent({
3318
+ const _hoisted_1$V = ["aria-labelledby"];
3319
+ const _hoisted_2$z = ["id"];
3320
+ const _sfc_main$1b = /* @__PURE__ */ defineComponent({
3310
3321
  ...{ name: "ListboxGroup" },
3311
3322
  __name: "ListboxGroup",
3312
3323
  props: {
@@ -3330,13 +3341,13 @@ const _sfc_main$1a = /* @__PURE__ */ defineComponent({
3330
3341
  renderSlot(_ctx.$slots, "label", {}, () => [
3331
3342
  createTextVNode(toDisplayString(__props.label), 1)
3332
3343
  ])
3333
- ], 10, _hoisted_2$w)) : createCommentVNode("", true),
3344
+ ], 10, _hoisted_2$z)) : createCommentVNode("", true),
3334
3345
  renderSlot(_ctx.$slots, "default")
3335
- ], 8, _hoisted_1$U);
3346
+ ], 8, _hoisted_1$V);
3336
3347
  };
3337
3348
  }
3338
3349
  });
3339
- const _sfc_main$19 = /* @__PURE__ */ defineComponent({
3350
+ const _sfc_main$1a = /* @__PURE__ */ defineComponent({
3340
3351
  ...{ name: "ListboxSeparator" },
3341
3352
  __name: "ListboxSeparator",
3342
3353
  setup(__props) {
@@ -3348,7 +3359,7 @@ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
3348
3359
  };
3349
3360
  }
3350
3361
  });
3351
- const _sfc_main$18 = /* @__PURE__ */ defineComponent({
3362
+ const _sfc_main$19 = /* @__PURE__ */ defineComponent({
3352
3363
  ...{ name: "ListboxEmpty", inheritAttrs: false },
3353
3364
  __name: "ListboxEmpty",
3354
3365
  setup(__props) {
@@ -3379,8 +3390,8 @@ function useSelectContext() {
3379
3390
  if (!ctx) throw new Error("Select.* must be used inside <Select>");
3380
3391
  return ctx;
3381
3392
  }
3382
- const _hoisted_1$T = ["name", "value"];
3383
- const _sfc_main$17 = /* @__PURE__ */ defineComponent({
3393
+ const _hoisted_1$U = ["name", "value"];
3394
+ const _sfc_main$18 = /* @__PURE__ */ defineComponent({
3384
3395
  ...{ name: "Select", inheritAttrs: false },
3385
3396
  __name: "Select",
3386
3397
  props: {
@@ -3606,7 +3617,7 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
3606
3617
  const isOpenNow = computed(() => openCtl.value.value);
3607
3618
  const serializedKey = computed(() => serializeKeyFn.value(keyCtl.value.value));
3608
3619
  return (_ctx, _cache) => {
3609
- return openBlock(), createBlock(unref(_sfc_main$1N), {
3620
+ return openBlock(), createBlock(unref(_sfc_main$1O), {
3610
3621
  open: isOpenNow.value,
3611
3622
  placement: __props.placement,
3612
3623
  offset: 4,
@@ -3619,7 +3630,7 @@ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
3619
3630
  type: "hidden",
3620
3631
  name: __props.name,
3621
3632
  value: serializedKey.value
3622
- }, null, 8, _hoisted_1$T)) : createCommentVNode("", true)
3633
+ }, null, 8, _hoisted_1$U)) : createCommentVNode("", true)
3623
3634
  ]),
3624
3635
  _: 3
3625
3636
  }, 8, ["open", "placement"]);
@@ -3648,11 +3659,11 @@ const selectTriggerVariants = tv({
3648
3659
  }
3649
3660
  }
3650
3661
  });
3651
- const _hoisted_1$S = {
3662
+ const _hoisted_1$T = {
3652
3663
  key: 0,
3653
3664
  class: "truncate"
3654
3665
  };
3655
- const _sfc_main$16 = /* @__PURE__ */ defineComponent({
3666
+ const _sfc_main$17 = /* @__PURE__ */ defineComponent({
3656
3667
  ...{ name: "SelectValue" },
3657
3668
  __name: "SelectValue",
3658
3669
  props: {
@@ -3671,7 +3682,7 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
3671
3682
  });
3672
3683
  const valueClass = computed(() => cn("truncate text-left", !resolvedLabel.value && "text-muted-foreground"));
3673
3684
  return (_ctx, _cache) => {
3674
- return hasOverride.value ? (openBlock(), createElementBlock("span", _hoisted_1$S, [
3685
+ return hasOverride.value ? (openBlock(), createElementBlock("span", _hoisted_1$T, [
3675
3686
  renderSlot(_ctx.$slots, "default", {}, () => [
3676
3687
  createTextVNode(toDisplayString(__props.label), 1)
3677
3688
  ])
@@ -3688,10 +3699,10 @@ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
3688
3699
  };
3689
3700
  }
3690
3701
  });
3691
- const _hoisted_1$R = { class: "relative inline-flex w-full" };
3692
- const _hoisted_2$v = ["id", "disabled", "aria-busy", "aria-controls", "aria-activedescendant", "aria-invalid", "aria-labelledby", "aria-describedby", "data-state"];
3702
+ const _hoisted_1$S = { class: "relative inline-flex w-full" };
3703
+ const _hoisted_2$y = ["id", "disabled", "aria-busy", "aria-controls", "aria-activedescendant", "aria-invalid", "aria-labelledby", "aria-describedby", "data-state"];
3693
3704
  const _hoisted_3$n = { class: "ml-auto flex shrink-0 items-center gap-1.5" };
3694
- const _hoisted_4$g = ["aria-label"];
3705
+ const _hoisted_4$h = ["aria-label"];
3695
3706
  const TRIGGER_ICON_CLASSES = {
3696
3707
  xs: "h-3 w-3",
3697
3708
  sm: "h-3.5 w-3.5",
@@ -3723,7 +3734,7 @@ function triggerDataState(open, isLoading, isDisabled, isInvalid) {
3723
3734
  if (isInvalid) return "invalid";
3724
3735
  return void 0;
3725
3736
  }
3726
- const _sfc_main$15 = /* @__PURE__ */ defineComponent({
3737
+ const _sfc_main$16 = /* @__PURE__ */ defineComponent({
3727
3738
  ...{ name: "SelectTrigger", inheritAttrs: false },
3728
3739
  __name: "SelectTrigger",
3729
3740
  props: {
@@ -3796,14 +3807,14 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
3796
3807
  const root = useTemplateRef("root");
3797
3808
  __expose({ el: root });
3798
3809
  return (_ctx, _cache) => {
3799
- return openBlock(), createElementBlock("span", _hoisted_1$R, [
3800
- createVNode(unref(_sfc_main$1O), null, {
3810
+ return openBlock(), createElementBlock("span", _hoisted_1$S, [
3811
+ createVNode(unref(_sfc_main$1P), null, {
3801
3812
  default: withCtx(() => [
3802
3813
  createTextVNode(toDisplayString(unref(ctx).isLoading ? unref(ctx).loadingLabel : ""), 1)
3803
3814
  ]),
3804
3815
  _: 1
3805
3816
  }),
3806
- createVNode(unref(_sfc_main$1P), { "as-child": "" }, {
3817
+ createVNode(unref(_sfc_main$1Q), { "as-child": "" }, {
3807
3818
  default: withCtx(() => [
3808
3819
  createElementVNode("button", mergeProps({
3809
3820
  ref_key: "root",
@@ -3822,7 +3833,7 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
3822
3833
  class: buttonClass.value
3823
3834
  }, passthroughAttrs.value, { onKeydown: handleTriggerKeyDown }), [
3824
3835
  renderSlot(_ctx.$slots, "default", {}, () => [
3825
- createVNode(_sfc_main$16)
3836
+ createVNode(_sfc_main$17)
3826
3837
  ]),
3827
3838
  createElementVNode("span", _hoisted_3$n, [
3828
3839
  showClear.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
@@ -3843,7 +3854,7 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
3843
3854
  class: normalizeClass(chevronClass.value)
3844
3855
  }, null, 8, ["class"]))
3845
3856
  ])
3846
- ], 16, _hoisted_2$v)
3857
+ ], 16, _hoisted_2$y)
3847
3858
  ]),
3848
3859
  _: 3
3849
3860
  }),
@@ -3857,16 +3868,16 @@ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
3857
3868
  createVNode(unref(ClearIcon), {
3858
3869
  class: normalizeClass(iconClass.value)
3859
3870
  }, null, 8, ["class"])
3860
- ], 10, _hoisted_4$g)) : createCommentVNode("", true)
3871
+ ], 10, _hoisted_4$h)) : createCommentVNode("", true)
3861
3872
  ]);
3862
3873
  };
3863
3874
  }
3864
3875
  });
3865
- const _hoisted_1$Q = {
3876
+ const _hoisted_1$R = {
3866
3877
  key: 0,
3867
3878
  class: "border-b border-border p-1"
3868
3879
  };
3869
- const _hoisted_2$u = {
3880
+ const _hoisted_2$x = {
3870
3881
  key: 0,
3871
3882
  role: "status",
3872
3883
  class: "flex items-center gap-2 px-2 py-2 text-sm text-subtle-foreground"
@@ -3880,7 +3891,7 @@ const FORWARDED_NAV_KEYS = /* @__PURE__ */ new Set([
3880
3891
  "PageUp",
3881
3892
  "Enter"
3882
3893
  ]);
3883
- const _sfc_main$14 = /* @__PURE__ */ defineComponent({
3894
+ const _sfc_main$15 = /* @__PURE__ */ defineComponent({
3884
3895
  ...{ name: "SelectContent", inheritAttrs: false },
3885
3896
  __name: "SelectContent",
3886
3897
  props: {
@@ -3940,7 +3951,7 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
3940
3951
  );
3941
3952
  const selectedForListbox = computed(() => ctx.selectedKey ?? void 0);
3942
3953
  return (_ctx, _cache) => {
3943
- return openBlock(), createBlock(unref(_sfc_main$1Q), {
3954
+ return openBlock(), createBlock(unref(_sfc_main$1R), {
3944
3955
  variant: __props.variant,
3945
3956
  tone: __props.tone,
3946
3957
  radius: __props.radius,
@@ -3949,8 +3960,8 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
3949
3960
  class: normalizeClass(contentClass.value)
3950
3961
  }, {
3951
3962
  default: withCtx(() => [
3952
- __props.isSearchable ? (openBlock(), createElementBlock("div", _hoisted_1$Q, [
3953
- createVNode(_sfc_main$1z, {
3963
+ __props.isSearchable ? (openBlock(), createElementBlock("div", _hoisted_1$R, [
3964
+ createVNode(_sfc_main$1A, {
3954
3965
  size: "sm",
3955
3966
  autofocus: "",
3956
3967
  role: "combobox",
@@ -3967,7 +3978,7 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
3967
3978
  onClear: _cache[1] || (_cache[1] = ($event) => unref(ctx).setQuery(""))
3968
3979
  }, null, 8, ["aria-controls", "aria-activedescendant", "model-value", "placeholder"])
3969
3980
  ])) : createCommentVNode("", true),
3970
- createVNode(_sfc_main$1c, {
3981
+ createVNode(_sfc_main$1d, {
3971
3982
  ref_key: "listbox",
3972
3983
  ref: listbox,
3973
3984
  id: unref(ctx).listboxId,
@@ -3980,12 +3991,12 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
3980
3991
  onActiveChange: _cache[2] || (_cache[2] = ($event) => unref(ctx).setActiveDescendant($event))
3981
3992
  }, {
3982
3993
  default: withCtx(() => [
3983
- unref(ctx).isLoading ? (openBlock(), createElementBlock("div", _hoisted_2$u, [
3994
+ unref(ctx).isLoading ? (openBlock(), createElementBlock("div", _hoisted_2$x, [
3984
3995
  createVNode(unref(LoaderIcon), { class: "h-4 w-4 animate-spin" }),
3985
3996
  createElementVNode("span", null, toDisplayString(unref(ctx).loadingLabel), 1)
3986
3997
  ])) : createCommentVNode("", true),
3987
3998
  renderSlot(_ctx.$slots, "default"),
3988
- !unref(ctx).isLoading && showEmpty.value ? (openBlock(), createBlock(_sfc_main$18, { key: 1 }, {
3999
+ !unref(ctx).isLoading && showEmpty.value ? (openBlock(), createBlock(_sfc_main$19, { key: 1 }, {
3989
4000
  default: withCtx(() => [
3990
4001
  createTextVNode(toDisplayString(__props.noResultsLabel), 1)
3991
4002
  ]),
@@ -4000,7 +4011,7 @@ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
4000
4011
  };
4001
4012
  }
4002
4013
  });
4003
- const _sfc_main$13 = /* @__PURE__ */ defineComponent({
4014
+ const _sfc_main$14 = /* @__PURE__ */ defineComponent({
4004
4015
  ...{ name: "SelectItem", inheritAttrs: false },
4005
4016
  __name: "SelectItem",
4006
4017
  props: {
@@ -4031,7 +4042,7 @@ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
4031
4042
  () => !ctx.query || itemText.value.toLowerCase().includes(ctx.query.toLowerCase())
4032
4043
  );
4033
4044
  return (_ctx, _cache) => {
4034
- return matchesQuery.value ? (openBlock(), createBlock(_sfc_main$1b, {
4045
+ return matchesQuery.value ? (openBlock(), createBlock(_sfc_main$1c, {
4035
4046
  key: 0,
4036
4047
  value: __props.itemKey,
4037
4048
  "is-disabled": __props.isDisabled
@@ -4052,8 +4063,8 @@ function useMultiSelectContext() {
4052
4063
  if (!ctx) throw new Error("MultiSelect.* must be used inside <MultiSelect>");
4053
4064
  return ctx;
4054
4065
  }
4055
- const _hoisted_1$P = ["name", "value"];
4056
- const _sfc_main$12 = /* @__PURE__ */ defineComponent({
4066
+ const _hoisted_1$Q = ["name", "value"];
4067
+ const _sfc_main$13 = /* @__PURE__ */ defineComponent({
4057
4068
  ...{ name: "MultiSelect", inheritAttrs: false },
4058
4069
  __name: "MultiSelect",
4059
4070
  props: {
@@ -4066,7 +4077,8 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
4066
4077
  defaultOpen: { type: Boolean, default: false },
4067
4078
  open: { type: Boolean, default: void 0 },
4068
4079
  isOpen: { type: Boolean, default: void 0 },
4069
- placement: { default: "bottom" }
4080
+ placement: { default: "bottom" },
4081
+ getOptionLabel: {}
4070
4082
  },
4071
4083
  emits: ["update:modelValue", "value-change", "update:open", "open-change"],
4072
4084
  setup(__props, { emit: __emit }) {
@@ -4102,6 +4114,9 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
4102
4114
  delete next[value];
4103
4115
  labels.value = next;
4104
4116
  }
4117
+ function getOptionLabelFn(value) {
4118
+ return props.getOptionLabel?.(value) ?? null;
4119
+ }
4105
4120
  provide(multiSelectContextKey, {
4106
4121
  get open() {
4107
4122
  return openCtl.value.value;
@@ -4116,6 +4131,7 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
4116
4131
  },
4117
4132
  registerLabel,
4118
4133
  unregisterLabel,
4134
+ getOptionLabel: getOptionLabelFn,
4119
4135
  get isDisabled() {
4120
4136
  return finalDisabled.value;
4121
4137
  },
@@ -4138,7 +4154,7 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
4138
4154
  const isOpenNow = computed(() => openCtl.value.value);
4139
4155
  const selected = computed(() => valuesCtl.value.value);
4140
4156
  return (_ctx, _cache) => {
4141
- return openBlock(), createBlock(unref(_sfc_main$1N), {
4157
+ return openBlock(), createBlock(unref(_sfc_main$1O), {
4142
4158
  open: isOpenNow.value,
4143
4159
  placement: __props.placement,
4144
4160
  offset: 6,
@@ -4152,7 +4168,7 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
4152
4168
  type: "hidden",
4153
4169
  name: __props.name,
4154
4170
  value: v
4155
- }, null, 8, _hoisted_1$P);
4171
+ }, null, 8, _hoisted_1$Q);
4156
4172
  }), 128)) : createCommentVNode("", true)
4157
4173
  ]),
4158
4174
  _: 3
@@ -4160,28 +4176,44 @@ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
4160
4176
  };
4161
4177
  }
4162
4178
  });
4163
- const _hoisted_1$O = {
4179
+ const _hoisted_1$P = {
4164
4180
  key: 0,
4165
4181
  class: "text-muted-foreground"
4166
4182
  };
4167
- const _hoisted_2$t = {
4168
- key: 1,
4169
- class: "flex flex-1 flex-wrap items-center gap-1"
4183
+ const _hoisted_2$w = ["aria-label", "onClick"];
4184
+ const _hoisted_3$m = {
4185
+ key: 0,
4186
+ class: "ml-0.5 flex shrink-0 items-center gap-1.5"
4170
4187
  };
4171
- const _hoisted_3$m = ["aria-label", "onClick"];
4172
- const _sfc_main$11 = /* @__PURE__ */ defineComponent({
4188
+ const _hoisted_4$g = { class: "text-xs font-medium tabular-nums text-muted-foreground" };
4189
+ const _sfc_main$12 = /* @__PURE__ */ defineComponent({
4173
4190
  ...{ name: "MultiSelectTags" },
4174
4191
  __name: "MultiSelectTags",
4175
4192
  props: {
4176
- placeholder: {}
4193
+ placeholder: {},
4194
+ maxVisible: {}
4177
4195
  },
4178
4196
  setup(__props) {
4197
+ const props = __props;
4179
4198
  const ctx = useMultiSelectContext();
4199
+ const isCapped = computed(
4200
+ () => props.maxVisible !== void 0 && ctx.values.length > props.maxVisible
4201
+ );
4202
+ const visibleValues = computed(
4203
+ () => isCapped.value ? ctx.values.slice(0, props.maxVisible) : ctx.values
4204
+ );
4205
+ const overflowCount = computed(() => ctx.values.length - visibleValues.value.length);
4206
+ const stripClass = computed(
4207
+ () => cn(
4208
+ "flex min-w-0 flex-1 items-center gap-1",
4209
+ isCapped.value ? "flex-nowrap overflow-hidden" : "flex-wrap"
4210
+ )
4211
+ );
4180
4212
  function tagLabel(value) {
4181
- return ctx.labels[value] ?? value;
4213
+ return ctx.labels[value] ?? ctx.getOptionLabel(value) ?? value;
4182
4214
  }
4183
4215
  function removeLabel(value) {
4184
- const label = ctx.labels[value];
4216
+ const label = tagLabel(value);
4185
4217
  return `Remove ${typeof label === "string" ? label : value}`;
4186
4218
  }
4187
4219
  function remove(value, event) {
@@ -4190,15 +4222,18 @@ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
4190
4222
  }
4191
4223
  const CloseIcon = X;
4192
4224
  return (_ctx, _cache) => {
4193
- return unref(ctx).values.length === 0 ? (openBlock(), createElementBlock("span", _hoisted_1$O, [
4225
+ return unref(ctx).values.length === 0 ? (openBlock(), createElementBlock("span", _hoisted_1$P, [
4194
4226
  renderSlot(_ctx.$slots, "placeholder", {}, () => [
4195
4227
  createTextVNode(toDisplayString(__props.placeholder), 1)
4196
4228
  ])
4197
- ])) : (openBlock(), createElementBlock("span", _hoisted_2$t, [
4198
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(ctx).values, (v) => {
4229
+ ])) : (openBlock(), createElementBlock("span", {
4230
+ key: 1,
4231
+ class: normalizeClass(stripClass.value)
4232
+ }, [
4233
+ (openBlock(true), createElementBlock(Fragment, null, renderList(visibleValues.value, (v) => {
4199
4234
  return openBlock(), createElementBlock("span", {
4200
4235
  key: v,
4201
- class: "inline-flex items-center gap-1 rounded-sm bg-muted px-1.5 py-0.5 text-xs"
4236
+ class: "inline-flex max-w-full shrink-0 items-center gap-1 truncate rounded-sm border border-border bg-muted px-1.5 py-0.5 text-xs"
4202
4237
  }, [
4203
4238
  createTextVNode(toDisplayString(tagLabel(v)) + " ", 1),
4204
4239
  !unref(ctx).isDisabled ? (openBlock(), createElementBlock("span", {
@@ -4212,20 +4247,28 @@ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
4212
4247
  }, ["stop"]))
4213
4248
  }, [
4214
4249
  createVNode(unref(CloseIcon), { class: "h-3 w-3" })
4215
- ], 40, _hoisted_3$m)) : createCommentVNode("", true)
4250
+ ], 40, _hoisted_2$w)) : createCommentVNode("", true)
4216
4251
  ]);
4217
- }), 128))
4218
- ]));
4252
+ }), 128)),
4253
+ overflowCount.value > 0 ? (openBlock(), createElementBlock("span", _hoisted_3$m, [
4254
+ _cache[1] || (_cache[1] = createElementVNode("span", {
4255
+ "aria-hidden": "true",
4256
+ class: "h-4 w-px shrink-0 bg-border"
4257
+ }, null, -1)),
4258
+ createElementVNode("span", _hoisted_4$g, " +" + toDisplayString(overflowCount.value), 1)
4259
+ ])) : createCommentVNode("", true)
4260
+ ], 2));
4219
4261
  };
4220
4262
  }
4221
4263
  });
4222
- const _hoisted_1$N = ["id", "disabled", "aria-invalid", "aria-labelledby", "aria-describedby"];
4223
- const _sfc_main$10 = /* @__PURE__ */ defineComponent({
4264
+ const _hoisted_1$O = ["id", "disabled", "aria-invalid", "aria-labelledby", "aria-describedby"];
4265
+ const _sfc_main$11 = /* @__PURE__ */ defineComponent({
4224
4266
  ...{ name: "MultiSelectTrigger", inheritAttrs: false },
4225
4267
  __name: "MultiSelectTrigger",
4226
4268
  props: {
4227
4269
  size: {},
4228
- state: {}
4270
+ state: {},
4271
+ maxVisibleTags: {}
4229
4272
  },
4230
4273
  setup(__props, { expose: __expose }) {
4231
4274
  const props = __props;
@@ -4265,7 +4308,7 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
4265
4308
  const ChevronDownIcon = ChevronDown;
4266
4309
  __expose({ el: root });
4267
4310
  return (_ctx, _cache) => {
4268
- return openBlock(), createBlock(unref(_sfc_main$1P), { "as-child": "" }, {
4311
+ return openBlock(), createBlock(unref(_sfc_main$1Q), { "as-child": "" }, {
4269
4312
  default: withCtx(() => [
4270
4313
  createElementVNode("button", mergeProps({
4271
4314
  ref_key: "root",
@@ -4278,18 +4321,21 @@ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
4278
4321
  "aria-describedby": unref(ctx).describedBy,
4279
4322
  class: buttonClass.value
4280
4323
  }, passthroughAttrs.value, { onKeydown }), [
4281
- hasContent.value ? renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 0) : (openBlock(), createBlock(_sfc_main$11, { key: 1 })),
4324
+ hasContent.value ? renderSlot(_ctx.$slots, "default", {}, void 0, void 0, 0) : (openBlock(), createBlock(_sfc_main$12, {
4325
+ key: 1,
4326
+ "max-visible": __props.maxVisibleTags
4327
+ }, null, 8, ["max-visible"])),
4282
4328
  createVNode(unref(ChevronDownIcon), {
4283
4329
  class: normalizeClass(chevronClass.value)
4284
4330
  }, null, 8, ["class"])
4285
- ], 16, _hoisted_1$N)
4331
+ ], 16, _hoisted_1$O)
4286
4332
  ]),
4287
4333
  _: 3
4288
4334
  });
4289
4335
  };
4290
4336
  }
4291
4337
  });
4292
- const _sfc_main$$ = /* @__PURE__ */ defineComponent({
4338
+ const _sfc_main$10 = /* @__PURE__ */ defineComponent({
4293
4339
  ...{ name: "MultiSelectContent", inheritAttrs: false },
4294
4340
  __name: "MultiSelectContent",
4295
4341
  props: {
@@ -4312,7 +4358,7 @@ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
4312
4358
  ctx.setValues(next);
4313
4359
  }
4314
4360
  return (_ctx, _cache) => {
4315
- return openBlock(), createBlock(unref(_sfc_main$1Q), {
4361
+ return openBlock(), createBlock(unref(_sfc_main$1R), {
4316
4362
  variant: __props.variant,
4317
4363
  tone: __props.tone,
4318
4364
  radius: __props.radius,
@@ -4321,7 +4367,7 @@ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
4321
4367
  class: normalizeClass(panelClass.value)
4322
4368
  }, {
4323
4369
  default: withCtx(() => [
4324
- createVNode(unref(_sfc_main$1c), {
4370
+ createVNode(unref(_sfc_main$1d), {
4325
4371
  "is-multiple": "",
4326
4372
  value: selected.value,
4327
4373
  variant: "flat",
@@ -4339,7 +4385,7 @@ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
4339
4385
  };
4340
4386
  }
4341
4387
  });
4342
- const _sfc_main$_ = /* @__PURE__ */ defineComponent({
4388
+ const _sfc_main$$ = /* @__PURE__ */ defineComponent({
4343
4389
  ...{ name: "MultiSelectItem", inheritAttrs: false },
4344
4390
  __name: "MultiSelectItem",
4345
4391
  props: {
@@ -4358,7 +4404,7 @@ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
4358
4404
  { immediate: true }
4359
4405
  );
4360
4406
  return (_ctx, _cache) => {
4361
- return openBlock(), createBlock(unref(_sfc_main$1b), {
4407
+ return openBlock(), createBlock(unref(_sfc_main$1c), {
4362
4408
  ref_key: "el",
4363
4409
  ref: el,
4364
4410
  value: __props.value,
@@ -4378,8 +4424,8 @@ function useComboboxContext() {
4378
4424
  if (!ctx) throw new Error("Combobox.* must be used inside <Combobox>");
4379
4425
  return ctx;
4380
4426
  }
4381
- const _hoisted_1$M = ["name", "value"];
4382
- const _sfc_main$Z = /* @__PURE__ */ defineComponent({
4427
+ const _hoisted_1$N = ["name", "value"];
4428
+ const _sfc_main$_ = /* @__PURE__ */ defineComponent({
4383
4429
  ...{ name: "Combobox", inheritAttrs: false },
4384
4430
  __name: "Combobox",
4385
4431
  props: {
@@ -4504,13 +4550,13 @@ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
4504
4550
  type: "hidden",
4505
4551
  name: __props.name,
4506
4552
  value: selected.value
4507
- }, null, 8, _hoisted_1$M)) : createCommentVNode("", true)
4553
+ }, null, 8, _hoisted_1$N)) : createCommentVNode("", true)
4508
4554
  ], 64);
4509
4555
  };
4510
4556
  }
4511
4557
  });
4512
- const _hoisted_1$L = ["aria-expanded", "aria-controls", "aria-activedescendant", "aria-disabled", "disabled", "value"];
4513
- const _sfc_main$Y = /* @__PURE__ */ defineComponent({
4558
+ const _hoisted_1$M = ["aria-expanded", "aria-controls", "aria-activedescendant", "aria-disabled", "disabled", "value"];
4559
+ const _sfc_main$Z = /* @__PURE__ */ defineComponent({
4514
4560
  ...{ name: "ComboboxInput", inheritAttrs: false },
4515
4561
  __name: "ComboboxInput",
4516
4562
  props: {
@@ -4638,12 +4684,12 @@ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
4638
4684
  onFocus,
4639
4685
  onBlur,
4640
4686
  onKeydown
4641
- }), null, 16, _hoisted_1$L);
4687
+ }), null, 16, _hoisted_1$M);
4642
4688
  };
4643
4689
  }
4644
4690
  });
4645
- const _hoisted_1$K = { class: "group contents" };
4646
- const _sfc_main$X = /* @__PURE__ */ defineComponent({
4691
+ const _hoisted_1$L = { class: "group contents" };
4692
+ const _sfc_main$Y = /* @__PURE__ */ defineComponent({
4647
4693
  ...{ name: "ComboboxContent", inheritAttrs: false },
4648
4694
  __name: "ComboboxContent",
4649
4695
  props: {
@@ -4718,19 +4764,19 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
4718
4764
  )
4719
4765
  );
4720
4766
  return (_ctx, _cache) => {
4721
- return openBlock(), createBlock(unref(_sfc_main$1R), null, {
4767
+ return openBlock(), createBlock(unref(_sfc_main$1S), null, {
4722
4768
  default: withCtx(() => [
4723
4769
  createVNode(unref(Presence), { "is-present": isOpen.value }, {
4724
4770
  default: withCtx(() => [
4725
- createElementVNode("div", _hoisted_1$K, [
4726
- createVNode(unref(_sfc_main$1S), {
4771
+ createElementVNode("div", _hoisted_1$L, [
4772
+ createVNode(unref(_sfc_main$1T), {
4727
4773
  anchor: anchor.value,
4728
4774
  placement: __props.placement,
4729
4775
  offset: __props.offset,
4730
4776
  class: "z-dropdown"
4731
4777
  }, {
4732
4778
  default: withCtx(() => [
4733
- createVNode(unref(_sfc_main$1T), mergeProps({
4779
+ createVNode(unref(_sfc_main$1U), mergeProps({
4734
4780
  ref: setRef,
4735
4781
  "on-escape": onEscape,
4736
4782
  "on-outside-pointer-down": onOutsidePointerDown,
@@ -4756,9 +4802,9 @@ const _sfc_main$X = /* @__PURE__ */ defineComponent({
4756
4802
  };
4757
4803
  }
4758
4804
  });
4759
- const _hoisted_1$J = ["id", "aria-selected", "aria-disabled", "data-active", "data-selected"];
4760
- const _hoisted_2$s = { class: "flex-1" };
4761
- const _sfc_main$W = /* @__PURE__ */ defineComponent({
4805
+ const _hoisted_1$K = ["id", "aria-selected", "aria-disabled", "data-active", "data-selected"];
4806
+ const _hoisted_2$v = { class: "flex-1" };
4807
+ const _sfc_main$X = /* @__PURE__ */ defineComponent({
4762
4808
  ...{ name: "ComboboxItem", inheritAttrs: false },
4763
4809
  __name: "ComboboxItem",
4764
4810
  props: {
@@ -4818,20 +4864,20 @@ const _sfc_main$W = /* @__PURE__ */ defineComponent({
4818
4864
  onClick,
4819
4865
  onPointerenter
4820
4866
  }), [
4821
- createElementVNode("span", _hoisted_2$s, [
4867
+ createElementVNode("span", _hoisted_2$v, [
4822
4868
  renderSlot(_ctx.$slots, "default")
4823
4869
  ]),
4824
4870
  isSelected.value ? (openBlock(), createBlock(unref(CheckIcon), {
4825
4871
  key: 0,
4826
4872
  class: "h-4 w-4 opacity-80"
4827
4873
  })) : createCommentVNode("", true)
4828
- ], 16, _hoisted_1$J);
4874
+ ], 16, _hoisted_1$K);
4829
4875
  };
4830
4876
  }
4831
4877
  });
4832
- const _hoisted_1$I = ["aria-labelledby"];
4833
- const _hoisted_2$r = ["id"];
4834
- const _sfc_main$V = /* @__PURE__ */ defineComponent({
4878
+ const _hoisted_1$J = ["aria-labelledby"];
4879
+ const _hoisted_2$u = ["id"];
4880
+ const _sfc_main$W = /* @__PURE__ */ defineComponent({
4835
4881
  ...{ name: "ComboboxGroup" },
4836
4882
  __name: "ComboboxGroup",
4837
4883
  props: {
@@ -4855,13 +4901,13 @@ const _sfc_main$V = /* @__PURE__ */ defineComponent({
4855
4901
  renderSlot(_ctx.$slots, "label", {}, () => [
4856
4902
  createTextVNode(toDisplayString(__props.label), 1)
4857
4903
  ])
4858
- ], 10, _hoisted_2$r)) : createCommentVNode("", true),
4904
+ ], 10, _hoisted_2$u)) : createCommentVNode("", true),
4859
4905
  renderSlot(_ctx.$slots, "default")
4860
- ], 8, _hoisted_1$I);
4906
+ ], 8, _hoisted_1$J);
4861
4907
  };
4862
4908
  }
4863
4909
  });
4864
- const _sfc_main$U = /* @__PURE__ */ defineComponent({
4910
+ const _sfc_main$V = /* @__PURE__ */ defineComponent({
4865
4911
  ...{ name: "ComboboxSeparator" },
4866
4912
  __name: "ComboboxSeparator",
4867
4913
  setup(__props) {
@@ -4873,7 +4919,7 @@ const _sfc_main$U = /* @__PURE__ */ defineComponent({
4873
4919
  };
4874
4920
  }
4875
4921
  });
4876
- const _sfc_main$T = /* @__PURE__ */ defineComponent({
4922
+ const _sfc_main$U = /* @__PURE__ */ defineComponent({
4877
4923
  ...{ name: "ComboboxEmpty", inheritAttrs: false },
4878
4924
  __name: "ComboboxEmpty",
4879
4925
  setup(__props) {
@@ -4895,8 +4941,8 @@ const _sfc_main$T = /* @__PURE__ */ defineComponent({
4895
4941
  };
4896
4942
  }
4897
4943
  });
4898
- const _hoisted_1$H = { class: "flex items-center justify-between gap-2 px-1" };
4899
- const _hoisted_2$q = {
4944
+ const _hoisted_1$I = { class: "flex items-center justify-between gap-2 px-1" };
4945
+ const _hoisted_2$t = {
4900
4946
  class: "text-sm font-medium",
4901
4947
  "aria-live": "polite"
4902
4948
  };
@@ -4904,7 +4950,7 @@ const _hoisted_3$l = { class: "grid grid-cols-7 gap-0 px-1" };
4904
4950
  const _hoisted_4$f = ["aria-label"];
4905
4951
  const _hoisted_5$a = ["data-date", "aria-disabled", "data-today", "data-out-of-month", "data-disabled", "tabindex", "onClick", "onKeydown"];
4906
4952
  const MAX_DISABLED_SKIP = 400;
4907
- const _sfc_main$S = /* @__PURE__ */ defineComponent({
4953
+ const _sfc_main$T = /* @__PURE__ */ defineComponent({
4908
4954
  ...{ name: "MonthGrid", inheritAttrs: false },
4909
4955
  __name: "MonthGrid",
4910
4956
  props: {
@@ -5036,7 +5082,7 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
5036
5082
  const consumer = props.dayProps?.(date, { outOfMonth });
5037
5083
  return cn(
5038
5084
  "grid h-9 w-9 place-items-center text-sm transition-colors",
5039
- "hover:bg-muted hover:text-foreground",
5085
+ "hover:bg-primary/10 hover:text-foreground",
5040
5086
  "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
5041
5087
  outOfMonth && "text-muted-foreground/60",
5042
5088
  dayDisabled(date) && "pointer-events-none opacity-40",
@@ -5063,7 +5109,7 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
5063
5109
  ref: root,
5064
5110
  class: normalizeClass(rootClass.value)
5065
5111
  }, [
5066
- createElementVNode("div", _hoisted_1$H, [
5112
+ createElementVNode("div", _hoisted_1$I, [
5067
5113
  createElementVNode("button", {
5068
5114
  type: "button",
5069
5115
  "aria-label": "Previous month",
@@ -5072,7 +5118,7 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
5072
5118
  }, [
5073
5119
  createVNode(unref(ChevronLeftIcon), { class: "h-4 w-4" })
5074
5120
  ]),
5075
- createElementVNode("div", _hoisted_2$q, toDisplayString(monthLabel.value), 1),
5121
+ createElementVNode("div", _hoisted_2$t, toDisplayString(monthLabel.value), 1),
5076
5122
  createElementVNode("button", {
5077
5123
  type: "button",
5078
5124
  "aria-label": "Next month",
@@ -5127,7 +5173,7 @@ const _sfc_main$S = /* @__PURE__ */ defineComponent({
5127
5173
  };
5128
5174
  }
5129
5175
  });
5130
- const _sfc_main$R = /* @__PURE__ */ defineComponent({
5176
+ const _sfc_main$S = /* @__PURE__ */ defineComponent({
5131
5177
  ...{ name: "Calendar", inheritAttrs: false },
5132
5178
  __name: "Calendar",
5133
5179
  props: {
@@ -5179,7 +5225,7 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
5179
5225
  class: cn(
5180
5226
  "rounded-sm",
5181
5227
  isToday(date) && !isSelectedCell && "border border-border",
5182
- isSelectedCell && "bg-primary text-primary-foreground hover:bg-primary"
5228
+ isSelectedCell && "bg-primary text-primary-foreground hover:bg-primary/90 hover:text-primary-foreground"
5183
5229
  )
5184
5230
  };
5185
5231
  }
@@ -5197,7 +5243,7 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
5197
5243
  ref: root,
5198
5244
  class: rootClass.value
5199
5245
  }, passthroughAttrs.value), [
5200
- createVNode(_sfc_main$S, {
5246
+ createVNode(_sfc_main$T, {
5201
5247
  "view-month": viewMonth.value,
5202
5248
  "on-view-month-change": setViewMonth,
5203
5249
  "focused-date": focusedDate.value,
@@ -5211,8 +5257,9 @@ const _sfc_main$R = /* @__PURE__ */ defineComponent({
5211
5257
  };
5212
5258
  }
5213
5259
  });
5214
- const _hoisted_1$G = ["id", "value", "min", "max", "disabled", "required", "aria-invalid", "aria-describedby"];
5215
- const _sfc_main$Q = /* @__PURE__ */ defineComponent({
5260
+ const _hoisted_1$H = ["id", "value", "min", "max", "disabled", "required", "aria-invalid", "aria-describedby"];
5261
+ const _hoisted_2$s = ["id", "value", "placeholder", "disabled", "required", "aria-invalid", "aria-describedby"];
5262
+ const _sfc_main$R = /* @__PURE__ */ defineComponent({
5216
5263
  ...{ name: "DateField", inheritAttrs: false },
5217
5264
  __name: "DateField",
5218
5265
  props: {
@@ -5225,6 +5272,8 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
5225
5272
  defaultValue: {},
5226
5273
  min: {},
5227
5274
  max: {},
5275
+ native: { type: Boolean, default: false },
5276
+ placeholder: { default: "YYYY-MM-DD" },
5228
5277
  id: {},
5229
5278
  disabled: { type: Boolean, default: void 0 },
5230
5279
  required: { type: Boolean, default: void 0 }
@@ -5243,56 +5292,268 @@ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
5243
5292
  emit("value-change", next);
5244
5293
  }
5245
5294
  });
5246
- const displayValue = computed(() => formatISODate(controlled.value.value));
5295
+ const committed = controlled.value;
5296
+ const open = ref(false);
5297
+ const displayValue = computed(() => formatISODate(committed.value));
5298
+ const draft = ref(displayValue.value);
5299
+ watch(displayValue, (next) => {
5300
+ draft.value = next;
5301
+ });
5302
+ function commit() {
5303
+ if (!draft.value.trim()) {
5304
+ controlled.setValue(null);
5305
+ draft.value = "";
5306
+ return;
5307
+ }
5308
+ const next = parseISODate(draft.value.trim());
5309
+ if (next) {
5310
+ controlled.setValue(next);
5311
+ draft.value = formatISODate(next);
5312
+ } else {
5313
+ draft.value = displayValue.value;
5314
+ }
5315
+ }
5316
+ function onDraftInput(event) {
5317
+ draft.value = event.target.value;
5318
+ }
5319
+ function onBlur() {
5320
+ commit();
5321
+ }
5322
+ function onKeydown(event) {
5323
+ if (event.defaultPrevented) return;
5324
+ if (event.key === "Enter") {
5325
+ event.preventDefault();
5326
+ commit();
5327
+ }
5328
+ }
5329
+ function onNativeInput(event) {
5330
+ controlled.setValue(parseISODate(event.target.value));
5331
+ }
5332
+ function onCalendarChange(next) {
5333
+ controlled.setValue(next);
5334
+ open.value = false;
5335
+ }
5336
+ const calendarMonth = computed(() => committed.value ?? today());
5247
5337
  const minValue = computed(() => formatISODate(props.min));
5248
5338
  const maxValue = computed(() => formatISODate(props.max));
5249
- function onInput(event) {
5250
- controlled.setValue(parseISODate(event.target.value));
5339
+ const finalState = computed(
5340
+ () => props.state ?? (ctx?.isInvalid ? InputState.Invalid : InputState.Default)
5341
+ );
5342
+ const inputId = computed(() => props.id ?? ctx?.id);
5343
+ const isDisabled = computed(() => props.disabled ?? ctx?.isDisabled);
5344
+ const isRequired = computed(() => props.required ?? ctx?.isRequired);
5345
+ const isInvalid = computed(() => ctx?.isInvalid || void 0);
5346
+ const describedBy = computed(() => ctx?.describedBy);
5347
+ const OWNED_ATTRS = /* @__PURE__ */ new Set(["class"]);
5348
+ const passthroughAttrs = computed(
5349
+ () => Object.fromEntries(Object.entries(attrs).filter(([key]) => !OWNED_ATTRS.has(key)))
5350
+ );
5351
+ const wrapperClass = computed(() => cn("relative", attrs.class));
5352
+ const inputClass = computed(
5353
+ () => cn(
5354
+ inputBaseVariants({
5355
+ size: props.size,
5356
+ state: finalState.value,
5357
+ border: props.border,
5358
+ ring: props.ring
5359
+ }),
5360
+ !props.native && "pr-10"
5361
+ )
5362
+ );
5363
+ const root = useTemplateRef("root");
5364
+ __expose({ el: root });
5365
+ return (_ctx, _cache) => {
5366
+ return openBlock(), createElementBlock("div", {
5367
+ class: normalizeClass(wrapperClass.value)
5368
+ }, [
5369
+ __props.native ? (openBlock(), createElementBlock("input", mergeProps({
5370
+ key: 0,
5371
+ ref_key: "root",
5372
+ ref: root,
5373
+ type: "date",
5374
+ id: inputId.value,
5375
+ value: displayValue.value,
5376
+ min: minValue.value,
5377
+ max: maxValue.value,
5378
+ disabled: isDisabled.value,
5379
+ required: isRequired.value,
5380
+ "aria-invalid": isInvalid.value,
5381
+ "aria-describedby": describedBy.value,
5382
+ class: inputClass.value
5383
+ }, passthroughAttrs.value, { onInput: onNativeInput }), null, 16, _hoisted_1$H)) : (openBlock(), createBlock(unref(_sfc_main$1O), {
5384
+ key: 1,
5385
+ open: open.value,
5386
+ "onUpdate:open": _cache[0] || (_cache[0] = ($event) => open.value = $event),
5387
+ placement: "bottom-start",
5388
+ offset: 6
5389
+ }, {
5390
+ default: withCtx(() => [
5391
+ createElementVNode("input", mergeProps({
5392
+ ref_key: "root",
5393
+ ref: root,
5394
+ type: "text",
5395
+ autocomplete: "off",
5396
+ spellcheck: false,
5397
+ id: inputId.value,
5398
+ value: draft.value,
5399
+ placeholder: __props.placeholder,
5400
+ disabled: isDisabled.value,
5401
+ required: isRequired.value,
5402
+ "aria-invalid": isInvalid.value,
5403
+ "aria-describedby": describedBy.value,
5404
+ class: inputClass.value
5405
+ }, passthroughAttrs.value, {
5406
+ onInput: onDraftInput,
5407
+ onBlur,
5408
+ onKeydown
5409
+ }), null, 16, _hoisted_2$s),
5410
+ createVNode(unref(_sfc_main$1Q), {
5411
+ "aria-label": "Choose date",
5412
+ disabled: isDisabled.value,
5413
+ class: "absolute right-1 top-1/2 grid h-8 w-8 -translate-y-1/2 place-items-center rounded text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50"
5414
+ }, {
5415
+ default: withCtx(() => [
5416
+ createVNode(unref(Calendar), { class: "h-4 w-4" })
5417
+ ]),
5418
+ _: 1
5419
+ }, 8, ["disabled"]),
5420
+ createVNode(unref(_sfc_main$1R), { "is-bare": "" }, {
5421
+ default: withCtx(() => [
5422
+ createVNode(_sfc_main$S, {
5423
+ value: unref(committed),
5424
+ "default-month": calendarMonth.value,
5425
+ min: __props.min,
5426
+ max: __props.max,
5427
+ onValueChange: onCalendarChange
5428
+ }, null, 8, ["value", "default-month", "min", "max"])
5429
+ ]),
5430
+ _: 1
5431
+ })
5432
+ ]),
5433
+ _: 1
5434
+ }, 8, ["open"]))
5435
+ ], 2);
5436
+ };
5437
+ }
5438
+ });
5439
+ const _hoisted_1$G = ["aria-selected", "data-selected", "onClick"];
5440
+ const _hoisted_2$r = ["aria-selected", "data-selected", "onClick"];
5441
+ const HOURS = Array.from({ length: 24 }, (_, i) => i);
5442
+ const _sfc_main$Q = /* @__PURE__ */ defineComponent({
5443
+ ...{ name: "TimeColumns", inheritAttrs: false },
5444
+ __name: "TimeColumns",
5445
+ props: {
5446
+ value: {},
5447
+ minuteStep: { default: 5 },
5448
+ onTimeChange: {}
5449
+ },
5450
+ setup(__props, { expose: __expose }) {
5451
+ const props = __props;
5452
+ const attrs = useAttrs();
5453
+ const hoursEl = useTemplateRef("hoursEl");
5454
+ const minutesEl = useTemplateRef("minutesEl");
5455
+ const minuteList = computed(() => {
5456
+ const list = [];
5457
+ for (let m = 0; m < 60; m += props.minuteStep) list.push(m);
5458
+ return list;
5459
+ });
5460
+ let raf = 0;
5461
+ onMounted(() => {
5462
+ raf = requestAnimationFrame(() => {
5463
+ hoursEl.value?.querySelector("[data-selected]")?.scrollIntoView({
5464
+ block: "center"
5465
+ });
5466
+ minutesEl.value?.querySelector("[data-selected]")?.scrollIntoView({
5467
+ block: "center"
5468
+ });
5469
+ });
5470
+ });
5471
+ onBeforeUnmount(() => {
5472
+ if (raf) cancelAnimationFrame(raf);
5473
+ });
5474
+ function update(next) {
5475
+ props.onTimeChange(
5476
+ Temporal.PlainTime.from({
5477
+ hour: next.hour ?? props.value?.hour ?? 0,
5478
+ minute: next.minute ?? props.value?.minute ?? 0
5479
+ })
5480
+ );
5481
+ }
5482
+ function cellClass(isSelected) {
5483
+ return cn(
5484
+ "grid h-8 w-12 place-items-center rounded-sm text-sm transition-colors hover:bg-primary/10",
5485
+ isSelected && "bg-primary text-primary-foreground hover:bg-primary/90"
5486
+ );
5487
+ }
5488
+ function pad(n) {
5489
+ return String(n).padStart(2, "0");
5251
5490
  }
5252
- const finalState = computed(
5253
- () => props.state ?? (ctx?.isInvalid ? InputState.Invalid : InputState.Default)
5254
- );
5255
- const inputId = computed(() => props.id ?? ctx?.id);
5256
- const isDisabled = computed(() => props.disabled ?? ctx?.isDisabled);
5257
- const isRequired = computed(() => props.required ?? ctx?.isRequired);
5258
- const isInvalid = computed(() => ctx?.isInvalid || void 0);
5259
- const describedBy = computed(() => ctx?.describedBy);
5260
5491
  const OWNED_ATTRS = /* @__PURE__ */ new Set(["class"]);
5261
5492
  const passthroughAttrs = computed(
5262
5493
  () => Object.fromEntries(Object.entries(attrs).filter(([key]) => !OWNED_ATTRS.has(key)))
5263
5494
  );
5264
5495
  const rootClass = computed(
5265
5496
  () => cn(
5266
- inputBaseVariants({
5267
- size: props.size,
5268
- state: finalState.value,
5269
- border: props.border,
5270
- ring: props.ring
5271
- }),
5497
+ "flex gap-1 rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-md",
5272
5498
  attrs.class
5273
5499
  )
5274
5500
  );
5501
+ const HOUR_LIST = HOURS;
5275
5502
  const root = useTemplateRef("root");
5276
5503
  __expose({ el: root });
5277
5504
  return (_ctx, _cache) => {
5278
- return openBlock(), createElementBlock("input", mergeProps({
5505
+ return openBlock(), createElementBlock("div", mergeProps({
5279
5506
  ref_key: "root",
5280
5507
  ref: root,
5281
- type: "date",
5282
- id: inputId.value,
5283
- value: displayValue.value,
5284
- min: minValue.value,
5285
- max: maxValue.value,
5286
- disabled: isDisabled.value,
5287
- required: isRequired.value,
5288
- "aria-invalid": isInvalid.value,
5289
- "aria-describedby": describedBy.value,
5290
5508
  class: rootClass.value
5291
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$G);
5509
+ }, passthroughAttrs.value), [
5510
+ createElementVNode("div", {
5511
+ ref_key: "hoursEl",
5512
+ ref: hoursEl,
5513
+ role: "listbox",
5514
+ "aria-label": "Hours",
5515
+ class: "flex max-h-56 flex-col gap-0.5 overflow-y-auto pr-1"
5516
+ }, [
5517
+ (openBlock(true), createElementBlock(Fragment, null, renderList(unref(HOUR_LIST), (h) => {
5518
+ return openBlock(), createElementBlock("button", {
5519
+ key: h,
5520
+ type: "button",
5521
+ role: "option",
5522
+ "aria-selected": props.value?.hour === h,
5523
+ "data-selected": props.value?.hour === h ? "" : void 0,
5524
+ class: normalizeClass(cellClass(props.value?.hour === h)),
5525
+ onClick: ($event) => update({ hour: h })
5526
+ }, toDisplayString(pad(h)), 11, _hoisted_1$G);
5527
+ }), 128))
5528
+ ], 512),
5529
+ _cache[0] || (_cache[0] = createElementVNode("div", { class: "w-px self-stretch bg-border" }, null, -1)),
5530
+ createElementVNode("div", {
5531
+ ref_key: "minutesEl",
5532
+ ref: minutesEl,
5533
+ role: "listbox",
5534
+ "aria-label": "Minutes",
5535
+ class: "flex max-h-56 flex-col gap-0.5 overflow-y-auto pl-1"
5536
+ }, [
5537
+ (openBlock(true), createElementBlock(Fragment, null, renderList(minuteList.value, (m) => {
5538
+ return openBlock(), createElementBlock("button", {
5539
+ key: m,
5540
+ type: "button",
5541
+ role: "option",
5542
+ "aria-selected": props.value?.minute === m,
5543
+ "data-selected": props.value?.minute === m ? "" : void 0,
5544
+ class: normalizeClass(cellClass(props.value?.minute === m)),
5545
+ onClick: ($event) => update({ minute: m })
5546
+ }, toDisplayString(pad(m)), 11, _hoisted_2$r);
5547
+ }), 128))
5548
+ ], 512)
5549
+ ], 16);
5292
5550
  };
5293
5551
  }
5294
5552
  });
5295
5553
  const _hoisted_1$F = ["id", "value", "min", "max", "disabled", "required", "aria-invalid", "aria-describedby"];
5554
+ const _hoisted_2$q = ["id", "value", "placeholder", "disabled", "required", "aria-invalid", "aria-describedby"];
5555
+ const _hoisted_3$k = { class: "flex items-start gap-2" };
5556
+ const _hoisted_4$e = ["name", "value"];
5296
5557
  const _sfc_main$P = /* @__PURE__ */ defineComponent({
5297
5558
  ...{ name: "DateTimeField", inheritAttrs: false },
5298
5559
  __name: "DateTimeField",
@@ -5306,6 +5567,10 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
5306
5567
  defaultValue: {},
5307
5568
  min: {},
5308
5569
  max: {},
5570
+ native: { type: Boolean, default: false },
5571
+ minuteStep: { default: 5 },
5572
+ placeholder: { default: "YYYY-MM-DD HH:MM" },
5573
+ name: {},
5309
5574
  id: {},
5310
5575
  disabled: { type: Boolean, default: void 0 },
5311
5576
  required: { type: Boolean, default: void 0 }
@@ -5324,12 +5589,69 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
5324
5589
  emit("value-change", next);
5325
5590
  }
5326
5591
  });
5327
- const displayValue = computed(() => formatISODateTime(controlled.value.value));
5328
- const minValue = computed(() => formatISODateTime(props.min));
5329
- const maxValue = computed(() => formatISODateTime(props.max));
5330
- function onInput(event) {
5592
+ const committed = controlled.value;
5593
+ const open = ref(false);
5594
+ const isoValue = computed(() => formatISODateTime(committed.value));
5595
+ const displayText = computed(() => isoValue.value.replace("T", " "));
5596
+ const draft = ref(displayText.value);
5597
+ watch(displayText, (next) => {
5598
+ draft.value = next;
5599
+ });
5600
+ function parseDateTimeText(text) {
5601
+ const normalised = text.trim().replace(/\s+/, "T");
5602
+ const full = parseISODateTime(normalised);
5603
+ if (full) return full;
5604
+ const dateOnly = parseISODate(normalised);
5605
+ return dateOnly ? dateOnly.toPlainDateTime() : null;
5606
+ }
5607
+ function commit() {
5608
+ if (!draft.value.trim()) {
5609
+ controlled.setValue(null);
5610
+ draft.value = "";
5611
+ return;
5612
+ }
5613
+ const next = parseDateTimeText(draft.value);
5614
+ if (next) {
5615
+ controlled.setValue(next);
5616
+ draft.value = formatISODateTime(next).replace("T", " ");
5617
+ } else {
5618
+ draft.value = displayText.value;
5619
+ }
5620
+ }
5621
+ function onDraftInput(event) {
5622
+ draft.value = event.target.value;
5623
+ }
5624
+ function onBlur() {
5625
+ commit();
5626
+ }
5627
+ function onKeydown(event) {
5628
+ if (event.defaultPrevented) return;
5629
+ if (event.key === "Enter") {
5630
+ event.preventDefault();
5631
+ commit();
5632
+ }
5633
+ }
5634
+ function onNativeInput(event) {
5331
5635
  controlled.setValue(parseISODateTime(event.target.value));
5332
5636
  }
5637
+ function onCalendarChange(date) {
5638
+ if (!date) {
5639
+ controlled.setValue(null);
5640
+ return;
5641
+ }
5642
+ controlled.setValue(date.toPlainDateTime(committed.value?.toPlainTime()));
5643
+ }
5644
+ function onColumnsChange(time) {
5645
+ const date = committed.value?.toPlainDate() ?? today();
5646
+ controlled.setValue(date.toPlainDateTime(time));
5647
+ }
5648
+ const calendarValue = computed(() => committed.value?.toPlainDate() ?? null);
5649
+ const calendarMonth = computed(() => calendarValue.value ?? today());
5650
+ const timeValue = computed(() => committed.value?.toPlainTime() ?? null);
5651
+ const minDate = computed(() => props.min?.toPlainDate() ?? null);
5652
+ const maxDate = computed(() => props.max?.toPlainDate() ?? null);
5653
+ const minValue = computed(() => formatISODateTime(props.min));
5654
+ const maxValue = computed(() => formatISODateTime(props.max));
5333
5655
  const finalState = computed(
5334
5656
  () => props.state ?? (ctx?.isInvalid ? InputState.Invalid : InputState.Default)
5335
5657
  );
@@ -5342,7 +5664,8 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
5342
5664
  const passthroughAttrs = computed(
5343
5665
  () => Object.fromEntries(Object.entries(attrs).filter(([key]) => !OWNED_ATTRS.has(key)))
5344
5666
  );
5345
- const rootClass = computed(
5667
+ const wrapperClass = computed(() => cn("relative", attrs.class));
5668
+ const inputClass = computed(
5346
5669
  () => cn(
5347
5670
  inputBaseVariants({
5348
5671
  size: props.size,
@@ -5350,30 +5673,101 @@ const _sfc_main$P = /* @__PURE__ */ defineComponent({
5350
5673
  border: props.border,
5351
5674
  ring: props.ring
5352
5675
  }),
5353
- attrs.class
5676
+ !props.native && "pr-10"
5354
5677
  )
5355
5678
  );
5356
5679
  const root = useTemplateRef("root");
5357
5680
  __expose({ el: root });
5358
5681
  return (_ctx, _cache) => {
5359
- return openBlock(), createElementBlock("input", mergeProps({
5360
- ref_key: "root",
5361
- ref: root,
5362
- type: "datetime-local",
5363
- id: inputId.value,
5364
- value: displayValue.value,
5365
- min: minValue.value,
5366
- max: maxValue.value,
5367
- disabled: isDisabled.value,
5368
- required: isRequired.value,
5369
- "aria-invalid": isInvalid.value,
5370
- "aria-describedby": describedBy.value,
5371
- class: rootClass.value
5372
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$F);
5682
+ return openBlock(), createElementBlock("div", {
5683
+ class: normalizeClass(wrapperClass.value)
5684
+ }, [
5685
+ __props.native ? (openBlock(), createElementBlock("input", mergeProps({
5686
+ key: 0,
5687
+ ref_key: "root",
5688
+ ref: root,
5689
+ type: "datetime-local",
5690
+ id: inputId.value,
5691
+ value: isoValue.value,
5692
+ min: minValue.value,
5693
+ max: maxValue.value,
5694
+ disabled: isDisabled.value,
5695
+ required: isRequired.value,
5696
+ "aria-invalid": isInvalid.value,
5697
+ "aria-describedby": describedBy.value,
5698
+ class: inputClass.value
5699
+ }, passthroughAttrs.value, { onInput: onNativeInput }), null, 16, _hoisted_1$F)) : (openBlock(), createBlock(unref(_sfc_main$1O), {
5700
+ key: 1,
5701
+ open: open.value,
5702
+ "onUpdate:open": _cache[0] || (_cache[0] = ($event) => open.value = $event),
5703
+ placement: "bottom-start",
5704
+ offset: 6
5705
+ }, {
5706
+ default: withCtx(() => [
5707
+ createElementVNode("input", mergeProps({
5708
+ ref_key: "root",
5709
+ ref: root,
5710
+ type: "text",
5711
+ autocomplete: "off",
5712
+ spellcheck: false,
5713
+ id: inputId.value,
5714
+ value: draft.value,
5715
+ placeholder: __props.placeholder,
5716
+ disabled: isDisabled.value,
5717
+ required: isRequired.value,
5718
+ "aria-invalid": isInvalid.value,
5719
+ "aria-describedby": describedBy.value,
5720
+ class: inputClass.value
5721
+ }, passthroughAttrs.value, {
5722
+ onInput: onDraftInput,
5723
+ onBlur,
5724
+ onKeydown
5725
+ }), null, 16, _hoisted_2$q),
5726
+ createVNode(unref(_sfc_main$1Q), {
5727
+ "aria-label": "Choose date and time",
5728
+ disabled: isDisabled.value,
5729
+ class: "absolute right-1 top-1/2 grid h-8 w-8 -translate-y-1/2 place-items-center rounded text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50"
5730
+ }, {
5731
+ default: withCtx(() => [
5732
+ createVNode(unref(CalendarClock), { class: "h-4 w-4" })
5733
+ ]),
5734
+ _: 1
5735
+ }, 8, ["disabled"]),
5736
+ createVNode(unref(_sfc_main$1R), { "is-bare": "" }, {
5737
+ default: withCtx(() => [
5738
+ createElementVNode("div", _hoisted_3$k, [
5739
+ createVNode(_sfc_main$S, {
5740
+ value: calendarValue.value,
5741
+ "default-month": calendarMonth.value,
5742
+ min: minDate.value,
5743
+ max: maxDate.value,
5744
+ onValueChange: onCalendarChange
5745
+ }, null, 8, ["value", "default-month", "min", "max"]),
5746
+ createVNode(_sfc_main$Q, {
5747
+ value: timeValue.value,
5748
+ "minute-step": __props.minuteStep,
5749
+ "on-time-change": onColumnsChange
5750
+ }, null, 8, ["value", "minute-step"])
5751
+ ])
5752
+ ]),
5753
+ _: 1
5754
+ })
5755
+ ]),
5756
+ _: 1
5757
+ }, 8, ["open"])),
5758
+ __props.name ? (openBlock(), createElementBlock("input", {
5759
+ key: 2,
5760
+ type: "hidden",
5761
+ name: __props.name,
5762
+ value: isoValue.value
5763
+ }, null, 8, _hoisted_4$e)) : createCommentVNode("", true)
5764
+ ], 2);
5373
5765
  };
5374
5766
  }
5375
5767
  });
5376
5768
  const _hoisted_1$E = ["id", "value", "disabled", "required", "aria-invalid", "aria-describedby"];
5769
+ const _hoisted_2$p = ["id", "value", "placeholder", "disabled", "required", "aria-invalid", "aria-describedby"];
5770
+ const TIME_TEXT = /^(\d{1,2})(?::?(\d{2}))?$/;
5377
5771
  const _sfc_main$O = /* @__PURE__ */ defineComponent({
5378
5772
  ...{ name: "TimeField", inheritAttrs: false },
5379
5773
  __name: "TimeField",
@@ -5385,6 +5779,9 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
5385
5779
  modelValue: {},
5386
5780
  value: {},
5387
5781
  defaultValue: {},
5782
+ native: { type: Boolean, default: false },
5783
+ minuteStep: { default: 5 },
5784
+ placeholder: { default: "--:--" },
5388
5785
  id: {},
5389
5786
  disabled: { type: Boolean, default: void 0 },
5390
5787
  required: { type: Boolean, default: void 0 }
@@ -5403,10 +5800,55 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
5403
5800
  emit("value-change", next);
5404
5801
  }
5405
5802
  });
5406
- const displayValue = computed(() => formatISOTime(controlled.value.value));
5407
- function onInput(event) {
5408
- controlled.setValue(parseISOTime(event.target.value));
5803
+ const committed = controlled.value;
5804
+ const open = ref(false);
5805
+ const draft = ref(formatISOTime(committed.value));
5806
+ watch(committed, (next) => {
5807
+ draft.value = formatISOTime(next);
5808
+ });
5809
+ function parseTimeText(text) {
5810
+ const match = TIME_TEXT.exec(text.trim());
5811
+ if (!match) return null;
5812
+ const hour = Number(match[1]);
5813
+ const minute = match[2] === void 0 ? 0 : Number(match[2]);
5814
+ if (hour > 23 || minute > 59) return null;
5815
+ return new Temporal.PlainTime(hour, minute);
5816
+ }
5817
+ function commit() {
5818
+ if (!draft.value.trim()) {
5819
+ controlled.setValue(null);
5820
+ draft.value = "";
5821
+ return;
5822
+ }
5823
+ const next = parseTimeText(draft.value);
5824
+ if (next) {
5825
+ controlled.setValue(next);
5826
+ draft.value = formatISOTime(next);
5827
+ } else {
5828
+ draft.value = formatISOTime(committed.value);
5829
+ }
5830
+ }
5831
+ function onDraftInput(event) {
5832
+ draft.value = event.target.value;
5833
+ }
5834
+ function onBlur() {
5835
+ commit();
5836
+ }
5837
+ function onKeydown(event) {
5838
+ if (event.defaultPrevented) return;
5839
+ if (event.key === "Enter") {
5840
+ event.preventDefault();
5841
+ commit();
5842
+ }
5843
+ }
5844
+ function onNativeInput(event) {
5845
+ const raw = event.target.value;
5846
+ controlled.setValue(raw ? parseTimeText(raw) : null);
5847
+ }
5848
+ function onColumnsChange(next) {
5849
+ controlled.setValue(next);
5409
5850
  }
5851
+ const displayValue = computed(() => formatISOTime(committed.value));
5410
5852
  const finalState = computed(
5411
5853
  () => props.state ?? (ctx?.isInvalid ? InputState.Invalid : InputState.Default)
5412
5854
  );
@@ -5419,7 +5861,8 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
5419
5861
  const passthroughAttrs = computed(
5420
5862
  () => Object.fromEntries(Object.entries(attrs).filter(([key]) => !OWNED_ATTRS.has(key)))
5421
5863
  );
5422
- const rootClass = computed(
5864
+ const wrapperClass = computed(() => cn("relative", attrs.class));
5865
+ const inputClass = computed(
5423
5866
  () => cn(
5424
5867
  inputBaseVariants({
5425
5868
  size: props.size,
@@ -5427,24 +5870,79 @@ const _sfc_main$O = /* @__PURE__ */ defineComponent({
5427
5870
  border: props.border,
5428
5871
  ring: props.ring
5429
5872
  }),
5430
- attrs.class
5873
+ !props.native && "pr-10"
5431
5874
  )
5432
5875
  );
5433
5876
  const root = useTemplateRef("root");
5434
5877
  __expose({ el: root });
5435
5878
  return (_ctx, _cache) => {
5436
- return openBlock(), createElementBlock("input", mergeProps({
5437
- ref_key: "root",
5438
- ref: root,
5439
- type: "time",
5440
- id: inputId.value,
5441
- value: displayValue.value,
5442
- disabled: isDisabled.value,
5443
- required: isRequired.value,
5444
- "aria-invalid": isInvalid.value,
5445
- "aria-describedby": describedBy.value,
5446
- class: rootClass.value
5447
- }, passthroughAttrs.value, { onInput }), null, 16, _hoisted_1$E);
5879
+ return openBlock(), createElementBlock("div", {
5880
+ class: normalizeClass(wrapperClass.value)
5881
+ }, [
5882
+ __props.native ? (openBlock(), createElementBlock("input", mergeProps({
5883
+ key: 0,
5884
+ ref_key: "root",
5885
+ ref: root,
5886
+ type: "time",
5887
+ id: inputId.value,
5888
+ value: displayValue.value,
5889
+ disabled: isDisabled.value,
5890
+ required: isRequired.value,
5891
+ "aria-invalid": isInvalid.value,
5892
+ "aria-describedby": describedBy.value,
5893
+ class: inputClass.value
5894
+ }, passthroughAttrs.value, { onInput: onNativeInput }), null, 16, _hoisted_1$E)) : (openBlock(), createBlock(unref(_sfc_main$1O), {
5895
+ key: 1,
5896
+ open: open.value,
5897
+ "onUpdate:open": _cache[0] || (_cache[0] = ($event) => open.value = $event),
5898
+ placement: "bottom-start",
5899
+ offset: 6
5900
+ }, {
5901
+ default: withCtx(() => [
5902
+ createElementVNode("input", mergeProps({
5903
+ ref_key: "root",
5904
+ ref: root,
5905
+ type: "text",
5906
+ inputmode: "numeric",
5907
+ autocomplete: "off",
5908
+ spellcheck: false,
5909
+ id: inputId.value,
5910
+ value: draft.value,
5911
+ placeholder: __props.placeholder,
5912
+ disabled: isDisabled.value,
5913
+ required: isRequired.value,
5914
+ "aria-invalid": isInvalid.value,
5915
+ "aria-describedby": describedBy.value,
5916
+ class: inputClass.value
5917
+ }, passthroughAttrs.value, {
5918
+ onInput: onDraftInput,
5919
+ onBlur,
5920
+ onKeydown
5921
+ }), null, 16, _hoisted_2$p),
5922
+ createVNode(unref(_sfc_main$1Q), {
5923
+ "aria-label": "Choose time",
5924
+ disabled: isDisabled.value,
5925
+ class: "absolute right-1 top-1/2 grid h-8 w-8 -translate-y-1/2 place-items-center rounded text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:opacity-50"
5926
+ }, {
5927
+ default: withCtx(() => [
5928
+ createVNode(unref(Clock), { class: "h-4 w-4" })
5929
+ ]),
5930
+ _: 1
5931
+ }, 8, ["disabled"]),
5932
+ createVNode(unref(_sfc_main$1R), { "is-bare": "" }, {
5933
+ default: withCtx(() => [
5934
+ createVNode(_sfc_main$Q, {
5935
+ value: unref(committed),
5936
+ "minute-step": __props.minuteStep,
5937
+ "on-time-change": onColumnsChange
5938
+ }, null, 8, ["value", "minute-step"])
5939
+ ]),
5940
+ _: 1
5941
+ })
5942
+ ]),
5943
+ _: 1
5944
+ }, 8, ["open"]))
5945
+ ], 2);
5448
5946
  };
5449
5947
  }
5450
5948
  });
@@ -5531,11 +6029,22 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
5531
6029
  onPointerleave: () => {
5532
6030
  if (isSameDay(hoveredDate.value, date)) hoveredDate.value = null;
5533
6031
  },
6032
+ /*
6033
+ * Every painted cell has to restate BOTH `hover:bg-*` and `hover:text-*`. `MonthGrid`'s
6034
+ * base hover is `hover:bg-primary/10 hover:text-foreground`, and a `:hover` rule outranks
6035
+ * the unqualified `bg-primary` / `bg-primary-soft` here on specificity — so without an
6036
+ * explicit hover the selected ends and the in-range run lost their fill the moment the
6037
+ * pointer touched them. tailwind-merge only resolves same-group + same-variant pairs.
6038
+ *
6039
+ * The ladder: `/90` on the solid ends (the package's solid-surface hover), `/25` on the
6040
+ * in-range run — a step deeper than its `primary-soft` fill, so the hover reads against
6041
+ * the range without competing with the ends.
6042
+ */
5534
6043
  class: cn(
5535
6044
  isToday(date) && !startCell && !endCell && "border border-border rounded-sm",
5536
- rangeCell && "bg-primary-soft text-primary-soft-foreground",
5537
- startCell && "bg-primary text-primary-foreground rounded-l-sm",
5538
- endCell && "bg-primary text-primary-foreground rounded-r-sm",
6045
+ rangeCell && "bg-primary-soft text-primary-soft-foreground hover:bg-primary/25 hover:text-primary-soft-foreground",
6046
+ startCell && "bg-primary text-primary-foreground rounded-l-sm hover:bg-primary/90 hover:text-primary-foreground",
6047
+ endCell && "bg-primary text-primary-foreground rounded-r-sm hover:bg-primary/90 hover:text-primary-foreground",
5539
6048
  !startCell && !endCell && !rangeCell && "rounded-sm"
5540
6049
  )
5541
6050
  };
@@ -5556,7 +6065,7 @@ const _sfc_main$N = /* @__PURE__ */ defineComponent({
5556
6065
  ref: root,
5557
6066
  class: rootClass.value
5558
6067
  }, passthroughAttrs.value), [
5559
- createVNode(_sfc_main$S, {
6068
+ createVNode(_sfc_main$T, {
5560
6069
  "view-month": viewMonth.value,
5561
6070
  "on-view-month-change": setViewMonth,
5562
6071
  "focused-date": focusedDate.value,
@@ -5643,14 +6152,14 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
5643
6152
  const trigger = useTemplateRef("trigger");
5644
6153
  __expose({ el: computed(() => trigger.value?.el ?? null) });
5645
6154
  return (_ctx, _cache) => {
5646
- return openBlock(), createBlock(unref(_sfc_main$1N), {
6155
+ return openBlock(), createBlock(unref(_sfc_main$1O), {
5647
6156
  open: open.value,
5648
6157
  "onUpdate:open": _cache[0] || (_cache[0] = ($event) => open.value = $event),
5649
6158
  placement: "bottom-start",
5650
6159
  offset: 6
5651
6160
  }, {
5652
6161
  default: withCtx(() => [
5653
- createVNode(unref(_sfc_main$1P), mergeProps({
6162
+ createVNode(unref(_sfc_main$1Q), mergeProps({
5654
6163
  ref_key: "trigger",
5655
6164
  ref: trigger,
5656
6165
  id: triggerId.value,
@@ -5669,9 +6178,9 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
5669
6178
  ]),
5670
6179
  _: 1
5671
6180
  }, 16, ["id", "disabled", "aria-invalid", "aria-label", "aria-labelledby", "aria-describedby", "class"]),
5672
- createVNode(unref(_sfc_main$1Q), { "is-bare": "" }, {
6181
+ createVNode(unref(_sfc_main$1R), { "is-bare": "" }, {
5673
6182
  default: withCtx(() => [
5674
- createVNode(_sfc_main$R, {
6183
+ createVNode(_sfc_main$S, {
5675
6184
  value: unref(date),
5676
6185
  "default-month": defaultMonth.value,
5677
6186
  min: __props.min,
@@ -5694,11 +6203,7 @@ const _sfc_main$M = /* @__PURE__ */ defineComponent({
5694
6203
  };
5695
6204
  }
5696
6205
  });
5697
- const _hoisted_1$C = { class: "flex gap-1 rounded-md border border-border bg-popover p-2 text-popover-foreground shadow-md" };
5698
- const _hoisted_2$p = ["aria-selected", "data-selected", "onClick"];
5699
- const _hoisted_3$k = ["aria-selected", "data-selected", "onClick"];
5700
- const _hoisted_4$e = ["name", "value"];
5701
- const HOURS = Array.from({ length: 24 }, (_, i) => i);
6206
+ const _hoisted_1$C = ["name", "value"];
5702
6207
  const _sfc_main$L = /* @__PURE__ */ defineComponent({
5703
6208
  ...{ name: "TimePicker", inheritAttrs: false },
5704
6209
  __name: "TimePicker",
@@ -5736,42 +6241,11 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
5736
6241
  });
5737
6242
  const time = controlled.value;
5738
6243
  const open = ref(false);
5739
- const hours = useTemplateRef("hours");
5740
- const minutesEl = useTemplateRef("minutesEl");
5741
- const minutes = computed(() => {
5742
- const list = [];
5743
- for (let m = 0; m < 60; m += props.minuteStep) list.push(m);
5744
- return list;
5745
- });
5746
- watch(
5747
- open,
5748
- (isOpen) => {
5749
- if (!isOpen) return;
5750
- requestAnimationFrame(() => {
5751
- hours.value?.querySelector("[data-selected]")?.scrollIntoView({ block: "center" });
5752
- minutesEl.value?.querySelector("[data-selected]")?.scrollIntoView({ block: "center" });
5753
- });
5754
- },
5755
- { flush: "post" }
5756
- );
5757
6244
  const triggerState = computed(
5758
6245
  () => props.state ?? (finalInvalid.value ? InputState.Invalid : InputState.Default)
5759
6246
  );
5760
- function update(next) {
5761
- const merged = Temporal.PlainTime.from({
5762
- hour: next.hour ?? time.value?.hour ?? 0,
5763
- minute: next.minute ?? time.value?.minute ?? 0
5764
- });
5765
- controlled.setValue(merged);
5766
- }
5767
- function cellClass(isSelected) {
5768
- return cn(
5769
- "grid h-8 w-12 place-items-center rounded-sm text-sm transition-colors hover:bg-muted",
5770
- isSelected && "bg-primary text-primary-foreground hover:bg-primary"
5771
- );
5772
- }
5773
- function pad(n) {
5774
- return String(n).padStart(2, "0");
6247
+ function onColumnsChange(next) {
6248
+ controlled.setValue(next);
5775
6249
  }
5776
6250
  const displayText = computed(
5777
6251
  () => time.value ? props.format(time.value) : props.placeholder
@@ -5795,18 +6269,17 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
5795
6269
  )
5796
6270
  );
5797
6271
  const labelClass = computed(() => cn("truncate", !time.value && "text-muted-foreground"));
5798
- const HOUR_LIST = HOURS;
5799
6272
  const trigger = useTemplateRef("trigger");
5800
6273
  __expose({ el: computed(() => trigger.value?.el ?? null) });
5801
6274
  return (_ctx, _cache) => {
5802
- return openBlock(), createBlock(unref(_sfc_main$1N), {
6275
+ return openBlock(), createBlock(unref(_sfc_main$1O), {
5803
6276
  open: open.value,
5804
6277
  "onUpdate:open": _cache[0] || (_cache[0] = ($event) => open.value = $event),
5805
6278
  placement: "bottom-start",
5806
6279
  offset: 6
5807
6280
  }, {
5808
6281
  default: withCtx(() => [
5809
- createVNode(unref(_sfc_main$1P), mergeProps({
6282
+ createVNode(unref(_sfc_main$1Q), mergeProps({
5810
6283
  ref_key: "trigger",
5811
6284
  ref: trigger,
5812
6285
  id: triggerId.value,
@@ -5825,49 +6298,13 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
5825
6298
  ]),
5826
6299
  _: 1
5827
6300
  }, 16, ["id", "disabled", "aria-invalid", "aria-label", "aria-labelledby", "aria-describedby", "class"]),
5828
- createVNode(unref(_sfc_main$1Q), { "is-bare": "" }, {
6301
+ createVNode(unref(_sfc_main$1R), { "is-bare": "" }, {
5829
6302
  default: withCtx(() => [
5830
- createElementVNode("div", _hoisted_1$C, [
5831
- createElementVNode("div", {
5832
- ref_key: "hours",
5833
- ref: hours,
5834
- role: "listbox",
5835
- "aria-label": "Hours",
5836
- class: "flex max-h-56 flex-col gap-0.5 overflow-y-auto pr-1"
5837
- }, [
5838
- (openBlock(true), createElementBlock(Fragment, null, renderList(unref(HOUR_LIST), (h) => {
5839
- return openBlock(), createElementBlock("button", {
5840
- key: h,
5841
- type: "button",
5842
- role: "option",
5843
- "aria-selected": unref(time)?.hour === h,
5844
- "data-selected": unref(time)?.hour === h ? "" : void 0,
5845
- class: normalizeClass(cellClass(unref(time)?.hour === h)),
5846
- onClick: ($event) => update({ hour: h })
5847
- }, toDisplayString(pad(h)), 11, _hoisted_2$p);
5848
- }), 128))
5849
- ], 512),
5850
- _cache[1] || (_cache[1] = createElementVNode("div", { class: "w-px self-stretch bg-border" }, null, -1)),
5851
- createElementVNode("div", {
5852
- ref_key: "minutesEl",
5853
- ref: minutesEl,
5854
- role: "listbox",
5855
- "aria-label": "Minutes",
5856
- class: "flex max-h-56 flex-col gap-0.5 overflow-y-auto pl-1"
5857
- }, [
5858
- (openBlock(true), createElementBlock(Fragment, null, renderList(minutes.value, (m) => {
5859
- return openBlock(), createElementBlock("button", {
5860
- key: m,
5861
- type: "button",
5862
- role: "option",
5863
- "aria-selected": unref(time)?.minute === m,
5864
- "data-selected": unref(time)?.minute === m ? "" : void 0,
5865
- class: normalizeClass(cellClass(unref(time)?.minute === m)),
5866
- onClick: ($event) => update({ minute: m })
5867
- }, toDisplayString(pad(m)), 11, _hoisted_3$k);
5868
- }), 128))
5869
- ], 512)
5870
- ])
6303
+ createVNode(_sfc_main$Q, {
6304
+ value: unref(time),
6305
+ "minute-step": __props.minuteStep,
6306
+ "on-time-change": onColumnsChange
6307
+ }, null, 8, ["value", "minute-step"])
5871
6308
  ]),
5872
6309
  _: 1
5873
6310
  }),
@@ -5876,7 +6313,7 @@ const _sfc_main$L = /* @__PURE__ */ defineComponent({
5876
6313
  type: "hidden",
5877
6314
  name: __props.name,
5878
6315
  value: hiddenValue.value
5879
- }, null, 8, _hoisted_4$e)) : createCommentVNode("", true)
6316
+ }, null, 8, _hoisted_1$C)) : createCommentVNode("", true)
5880
6317
  ]),
5881
6318
  _: 1
5882
6319
  }, 8, ["open"]);
@@ -5966,14 +6403,14 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
5966
6403
  const trigger = useTemplateRef("trigger");
5967
6404
  __expose({ el: computed(() => trigger.value?.el ?? null) });
5968
6405
  return (_ctx, _cache) => {
5969
- return openBlock(), createBlock(unref(_sfc_main$1N), {
6406
+ return openBlock(), createBlock(unref(_sfc_main$1O), {
5970
6407
  open: open.value,
5971
6408
  "onUpdate:open": _cache[0] || (_cache[0] = ($event) => open.value = $event),
5972
6409
  placement: "bottom-start",
5973
6410
  offset: 6
5974
6411
  }, {
5975
6412
  default: withCtx(() => [
5976
- createVNode(unref(_sfc_main$1P), mergeProps({
6413
+ createVNode(unref(_sfc_main$1Q), mergeProps({
5977
6414
  ref_key: "trigger",
5978
6415
  ref: trigger,
5979
6416
  id: triggerId.value,
@@ -5992,7 +6429,7 @@ const _sfc_main$K = /* @__PURE__ */ defineComponent({
5992
6429
  ]),
5993
6430
  _: 1
5994
6431
  }, 16, ["id", "disabled", "aria-invalid", "aria-label", "aria-labelledby", "aria-describedby", "class"]),
5995
- createVNode(unref(_sfc_main$1Q), { "is-bare": "" }, {
6432
+ createVNode(unref(_sfc_main$1R), { "is-bare": "" }, {
5996
6433
  default: withCtx(() => [
5997
6434
  createVNode(_sfc_main$N, {
5998
6435
  value: unref(range),
@@ -6960,7 +7397,7 @@ const _sfc_main$D = /* @__PURE__ */ defineComponent({
6960
7397
  const root = useTemplateRef("root");
6961
7398
  __expose({ el: computed(() => root.value?.el ?? null) });
6962
7399
  return (_ctx, _cache) => {
6963
- return openBlock(), createBlock(unref(_sfc_main$1U), mergeProps({
7400
+ return openBlock(), createBlock(unref(_sfc_main$1V), mergeProps({
6964
7401
  ref_key: "root",
6965
7402
  ref: root,
6966
7403
  orientation: unref(Orientation$1).Both,
@@ -7096,9 +7533,9 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7096
7533
  const trigger = useTemplateRef("trigger");
7097
7534
  __expose({ el: computed(() => trigger.value?.el ?? null) });
7098
7535
  return (_ctx, _cache) => {
7099
- return openBlock(), createBlock(unref(_sfc_main$1N), null, {
7536
+ return openBlock(), createBlock(unref(_sfc_main$1O), null, {
7100
7537
  default: withCtx(() => [
7101
- hasCustomTrigger.value ? (openBlock(), createBlock(unref(_sfc_main$1P), {
7538
+ hasCustomTrigger.value ? (openBlock(), createBlock(unref(_sfc_main$1Q), {
7102
7539
  key: 0,
7103
7540
  ref_key: "trigger",
7104
7541
  ref: trigger,
@@ -7108,7 +7545,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7108
7545
  renderSlot(_ctx.$slots, "trigger")
7109
7546
  ]),
7110
7547
  _: 3
7111
- }, 512)) : isSwatchTrigger.value ? (openBlock(), createBlock(unref(_sfc_main$1P), mergeProps({
7548
+ }, 512)) : isSwatchTrigger.value ? (openBlock(), createBlock(unref(_sfc_main$1Q), mergeProps({
7112
7549
  key: 1,
7113
7550
  ref_key: "trigger",
7114
7551
  ref: trigger,
@@ -7129,7 +7566,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7129
7566
  }, null, 8, ["color", "size", "is-disabled", "class"])
7130
7567
  ]),
7131
7568
  _: 1
7132
- }, 16, ["id", "aria-label", "aria-labelledby", "aria-describedby", "aria-invalid"])) : (openBlock(), createBlock(unref(_sfc_main$1P), mergeProps({
7569
+ }, 16, ["id", "aria-label", "aria-labelledby", "aria-describedby", "aria-invalid"])) : (openBlock(), createBlock(unref(_sfc_main$1Q), mergeProps({
7133
7570
  key: 2,
7134
7571
  ref_key: "trigger",
7135
7572
  ref: trigger,
@@ -7151,12 +7588,12 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7151
7588
  ]),
7152
7589
  _: 1
7153
7590
  }, 16, ["id", "aria-label", "aria-labelledby", "aria-describedby", "aria-invalid", "disabled", "class"])),
7154
- createVNode(unref(_sfc_main$1Q), {
7591
+ createVNode(unref(_sfc_main$1R), {
7155
7592
  "aria-label": "Color picker",
7156
7593
  class: "flex w-64 flex-col gap-3"
7157
7594
  }, {
7158
7595
  default: withCtx(() => [
7159
- createVNode(unref(_sfc_main$1L), null, {
7596
+ createVNode(unref(_sfc_main$1M), null, {
7160
7597
  default: withCtx(() => [
7161
7598
  createVNode(_sfc_main$G, {
7162
7599
  hue: hsv.value.h,
@@ -7167,7 +7604,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7167
7604
  ]),
7168
7605
  _: 1
7169
7606
  }),
7170
- createVNode(unref(_sfc_main$1L), null, {
7607
+ createVNode(unref(_sfc_main$1M), null, {
7171
7608
  default: withCtx(() => [
7172
7609
  createVNode(_sfc_main$H, {
7173
7610
  channel: unref(ColorChannel).Hue,
@@ -7178,7 +7615,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7178
7615
  ]),
7179
7616
  _: 1
7180
7617
  }),
7181
- __props.hasAlpha ? (openBlock(), createBlock(unref(_sfc_main$1L), { key: 0 }, {
7618
+ __props.hasAlpha ? (openBlock(), createBlock(unref(_sfc_main$1M), { key: 0 }, {
7182
7619
  default: withCtx(() => [
7183
7620
  createVNode(_sfc_main$H, {
7184
7621
  channel: unref(ColorChannel).Alpha,
@@ -7190,7 +7627,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7190
7627
  ]),
7191
7628
  _: 1
7192
7629
  })) : createCommentVNode("", true),
7193
- createVNode(unref(_sfc_main$1L), null, {
7630
+ createVNode(unref(_sfc_main$1M), null, {
7194
7631
  default: withCtx(() => [
7195
7632
  createVNode(_sfc_main$I, {
7196
7633
  "aria-label": "Hex color",
@@ -7201,7 +7638,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
7201
7638
  ]),
7202
7639
  _: 1
7203
7640
  }),
7204
- hasPresets.value ? (openBlock(), createBlock(unref(_sfc_main$1L), { key: 1 }, {
7641
+ hasPresets.value ? (openBlock(), createBlock(unref(_sfc_main$1M), { key: 1 }, {
7205
7642
  default: withCtx(() => [
7206
7643
  createVNode(_sfc_main$D, {
7207
7644
  colors: __props.presets ?? [],
@@ -7332,7 +7769,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
7332
7769
  );
7333
7770
  __expose({ el });
7334
7771
  return (_ctx, _cache) => {
7335
- return openBlock(), createBlock(unref(_sfc_main$1U), mergeProps({
7772
+ return openBlock(), createBlock(unref(_sfc_main$1V), mergeProps({
7336
7773
  ref_key: "el",
7337
7774
  ref: el,
7338
7775
  orientation: unref(stepper).orientation,
@@ -7670,7 +8107,7 @@ const _sfc_main$x = /* @__PURE__ */ defineComponent({
7670
8107
  onClick: onContainerClick
7671
8108
  }, [
7672
8109
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(tags), (t, i) => {
7673
- return openBlock(), createBlock(_sfc_main$1V, mergeProps({
8110
+ return openBlock(), createBlock(_sfc_main$1W, mergeProps({
7674
8111
  key: `${t}-${i}`,
7675
8112
  variant: __props.tagVariant,
7676
8113
  "data-pending-delete": isPendingDelete(i) ? "" : void 0,
@@ -7879,7 +8316,7 @@ const _sfc_main$w = /* @__PURE__ */ defineComponent({
7879
8316
  onDragleave: onDragLeave,
7880
8317
  onDrop
7881
8318
  }, [
7882
- createVNode(unref(_sfc_main$1K), {
8319
+ createVNode(unref(_sfc_main$1L), {
7883
8320
  icon: unref(UploadIcon),
7884
8321
  size: 28,
7885
8322
  class: normalizeClass(iconClass.value)
@@ -8070,7 +8507,7 @@ const _sfc_main$u = /* @__PURE__ */ defineComponent({
8070
8507
  onClick
8071
8508
  }), [
8072
8509
  renderSlot(_ctx.$slots, "default", {}, () => [
8073
- createVNode(unref(_sfc_main$1K), {
8510
+ createVNode(unref(_sfc_main$1L), {
8074
8511
  icon: unref(CloseIcon),
8075
8512
  size: 14
8076
8513
  }, null, 8, ["icon"])
@@ -8237,7 +8674,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
8237
8674
  onClick
8238
8675
  }), [
8239
8676
  renderSlot(_ctx.$slots, "default", {}, () => [
8240
- createVNode(unref(_sfc_main$1K), {
8677
+ createVNode(unref(_sfc_main$1L), {
8241
8678
  icon: unref(CheckIcon),
8242
8679
  size: 14
8243
8680
  }, null, 8, ["icon"])
@@ -8972,7 +9409,7 @@ const _sfc_main$l = /* @__PURE__ */ defineComponent({
8972
9409
  class: "inline-flex h-7 w-7 items-center justify-center rounded-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
8973
9410
  onClick: ($event) => applyAction(a)
8974
9411
  }, [
8975
- createVNode(unref(_sfc_main$1K), {
9412
+ createVNode(unref(_sfc_main$1L), {
8976
9413
  icon: a.icon,
8977
9414
  size: 14
8978
9415
  }, null, 8, ["icon"])
@@ -9184,7 +9621,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9184
9621
  class: "inline-flex h-5 w-5 items-center justify-center text-muted-foreground hover:text-foreground",
9185
9622
  onClick: _cache[0] || (_cache[0] = ($event) => open.value = !open.value)
9186
9623
  }, [
9187
- createVNode(unref(_sfc_main$1K), {
9624
+ createVNode(unref(_sfc_main$1L), {
9188
9625
  icon: unref(ChevronIcon),
9189
9626
  size: 12,
9190
9627
  class: normalizeClass(chevronClass.value)
@@ -9217,7 +9654,7 @@ const _sfc_main$k = /* @__PURE__ */ defineComponent({
9217
9654
  class: "ml-auto opacity-0 transition-opacity group-hover:opacity-100 inline-flex h-5 w-5 items-center justify-center rounded text-muted-foreground hover:bg-muted hover:text-foreground",
9218
9655
  onClick: copyPath
9219
9656
  }, [
9220
- createVNode(unref(_sfc_main$1K), {
9657
+ createVNode(unref(_sfc_main$1L), {
9221
9658
  icon: unref(CopyIcon),
9222
9659
  size: 11
9223
9660
  }, null, 8, ["icon"])
@@ -9500,20 +9937,17 @@ const _hoisted_16$1 = {
9500
9937
  "aria-label": "End mode",
9501
9938
  class: "flex flex-col gap-2 text-sm"
9502
9939
  };
9503
- const _hoisted_17$1 = { class: "flex items-center gap-2" };
9504
- const _hoisted_18$1 = ["name", "checked", "disabled"];
9505
- const _hoisted_19$1 = { class: "flex items-center gap-2" };
9506
- const _hoisted_20$1 = ["name", "checked", "disabled"];
9507
- const _hoisted_21$1 = ["value", "disabled"];
9508
- const _hoisted_22$1 = { class: "flex items-center gap-2" };
9509
- const _hoisted_23$1 = ["name", "checked", "disabled"];
9510
- const _hoisted_24$1 = ["value", "disabled"];
9511
- const _hoisted_25$1 = { class: "rounded-md bg-muted/40 p-3 text-xs" };
9512
- const _hoisted_26$1 = {
9940
+ const _hoisted_17$1 = ["for"];
9941
+ const _hoisted_18$1 = ["for"];
9942
+ const _hoisted_19$1 = ["value", "disabled"];
9943
+ const _hoisted_20$1 = { class: "flex items-center gap-2" };
9944
+ const _hoisted_21$1 = ["for"];
9945
+ const _hoisted_22$1 = { class: "rounded-md bg-muted/40 p-3 text-xs" };
9946
+ const _hoisted_23$1 = {
9513
9947
  "aria-live": "polite",
9514
9948
  class: "grid grid-cols-2 gap-x-4 gap-y-0.5 sm:grid-cols-3"
9515
9949
  };
9516
- const _hoisted_27$1 = ["name", "value"];
9950
+ const _hoisted_24$1 = ["name", "value"];
9517
9951
  const RecurrenceFreq = {
9518
9952
  /** Refers to a daily recurrence. */
9519
9953
  Daily: "DAILY",
@@ -9703,8 +10137,8 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
9703
10137
  const raw = Number(event.target.value) || 1;
9704
10138
  update({ count: Math.max(1, raw), until: null });
9705
10139
  }
9706
- function onUntilInput(event) {
9707
- update({ until: parseISODate(event.target.value), count: void 0 });
10140
+ function onUntilPick(next) {
10141
+ update({ until: next, count: void 0 });
9708
10142
  }
9709
10143
  function weekdayClass(wd) {
9710
10144
  return cn(
@@ -9717,7 +10151,6 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
9717
10151
  }
9718
10152
  const rootId = computed(() => props.id ?? ctx?.id);
9719
10153
  const endRadioName = computed(() => `${props.name ?? "rule"}-end`);
9720
- const untilValue = computed(() => formatISODate(rule.value.until ?? null));
9721
10154
  const serialized = computed(() => serializeRule(rule.value));
9722
10155
  const OWNED_ATTRS = /* @__PURE__ */ new Set(["class"]);
9723
10156
  const passthroughAttrs = computed(
@@ -9734,7 +10167,6 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
9734
10167
  const freqClass = cn(inputBaseVariants({ size: InputSize.Sm }), "w-32");
9735
10168
  const monthDayClass = cn(inputBaseVariants({ size: InputSize.Sm }), "w-20");
9736
10169
  const countClass = cn(inputBaseVariants({ size: InputSize.Sm }), "w-20");
9737
- const untilClass = cn(inputBaseVariants({ size: InputSize.Sm }), "w-44");
9738
10170
  __expose({ el });
9739
10171
  return (_ctx, _cache) => {
9740
10172
  return openBlock(), createElementBlock("div", mergeProps({
@@ -9811,24 +10243,32 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
9811
10243
  _cache[4] || (_cache[4] = createElementVNode("span", { class: "text-muted-foreground" }, "of the month", -1))
9812
10244
  ])) : createCommentVNode("", true),
9813
10245
  createElementVNode("div", _hoisted_16$1, [
9814
- createElementVNode("label", _hoisted_17$1, [
9815
- createElementVNode("input", {
9816
- type: "radio",
10246
+ createElementVNode("label", {
10247
+ for: `${unref(uid)}-end-never`,
10248
+ class: "flex items-center gap-2"
10249
+ }, [
10250
+ createVNode(_sfc_main$1x, {
10251
+ id: `${unref(uid)}-end-never`,
10252
+ size: "sm",
9817
10253
  name: endRadioName.value,
9818
10254
  checked: endMode.value === "never",
9819
10255
  disabled: isDisabled.value || isReadOnly.value,
9820
- onChange: _cache[0] || (_cache[0] = ($event) => update({ count: void 0, until: null }))
9821
- }, null, 40, _hoisted_18$1),
10256
+ onValueChange: _cache[0] || (_cache[0] = ($event) => update({ count: void 0, until: null }))
10257
+ }, null, 8, ["id", "name", "checked", "disabled"]),
9822
10258
  _cache[5] || (_cache[5] = createTextVNode(" Never ", -1))
9823
- ]),
9824
- createElementVNode("label", _hoisted_19$1, [
9825
- createElementVNode("input", {
9826
- type: "radio",
10259
+ ], 8, _hoisted_17$1),
10260
+ createElementVNode("label", {
10261
+ for: `${unref(uid)}-end-count`,
10262
+ class: "flex items-center gap-2"
10263
+ }, [
10264
+ createVNode(_sfc_main$1x, {
10265
+ id: `${unref(uid)}-end-count`,
10266
+ size: "sm",
9827
10267
  name: endRadioName.value,
9828
10268
  checked: endMode.value === "count",
9829
10269
  disabled: isDisabled.value || isReadOnly.value,
9830
- onChange: _cache[1] || (_cache[1] = ($event) => update({ count: unref(rule).count ?? 10, until: null }))
9831
- }, null, 40, _hoisted_20$1),
10270
+ onValueChange: _cache[1] || (_cache[1] = ($event) => update({ count: unref(rule).count ?? 10, until: null }))
10271
+ }, null, 8, ["id", "name", "checked", "disabled"]),
9832
10272
  _cache[6] || (_cache[6] = createTextVNode(" After ", -1)),
9833
10273
  createElementVNode("input", {
9834
10274
  type: "number",
@@ -9838,31 +10278,39 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
9838
10278
  disabled: isDisabled.value || isReadOnly.value || endMode.value !== "count",
9839
10279
  class: normalizeClass(unref(countClass)),
9840
10280
  onInput: onCountInput
9841
- }, null, 42, _hoisted_21$1),
10281
+ }, null, 42, _hoisted_19$1),
9842
10282
  _cache[7] || (_cache[7] = createTextVNode(" occurrences ", -1))
9843
- ]),
9844
- createElementVNode("label", _hoisted_22$1, [
9845
- createElementVNode("input", {
9846
- type: "radio",
9847
- name: endRadioName.value,
9848
- checked: endMode.value === "until",
9849
- disabled: isDisabled.value || isReadOnly.value,
9850
- onChange: _cache[2] || (_cache[2] = ($event) => update({ until: unref(addMonths)(__props.from, 6), count: void 0 }))
9851
- }, null, 40, _hoisted_23$1),
9852
- _cache[8] || (_cache[8] = createTextVNode(" On ", -1)),
9853
- createElementVNode("input", {
9854
- type: "date",
10283
+ ], 8, _hoisted_18$1),
10284
+ createElementVNode("div", _hoisted_20$1, [
10285
+ createElementVNode("label", {
10286
+ for: `${unref(uid)}-end-until`,
10287
+ class: "flex items-center gap-2"
10288
+ }, [
10289
+ createVNode(_sfc_main$1x, {
10290
+ id: `${unref(uid)}-end-until`,
10291
+ size: "sm",
10292
+ name: endRadioName.value,
10293
+ checked: endMode.value === "until",
10294
+ disabled: isDisabled.value || isReadOnly.value,
10295
+ onValueChange: _cache[2] || (_cache[2] = ($event) => update({ until: unref(addMonths)(__props.from, 6), count: void 0 }))
10296
+ }, null, 8, ["id", "name", "checked", "disabled"]),
10297
+ _cache[8] || (_cache[8] = createTextVNode(" On ", -1))
10298
+ ], 8, _hoisted_21$1),
10299
+ createVNode(_sfc_main$M, {
10300
+ id: `${unref(uid)}-end-date`,
10301
+ size: "sm",
9855
10302
  "aria-label": "End date",
9856
- value: untilValue.value,
10303
+ class: "w-44",
10304
+ placeholder: "Pick a date",
10305
+ value: unref(rule).until ?? null,
9857
10306
  disabled: isDisabled.value || isReadOnly.value || endMode.value !== "until",
9858
- class: normalizeClass(unref(untilClass)),
9859
- onInput: onUntilInput
9860
- }, null, 42, _hoisted_24$1)
10307
+ onValueChange: onUntilPick
10308
+ }, null, 8, ["id", "value", "disabled"])
9861
10309
  ])
9862
10310
  ]),
9863
- createElementVNode("div", _hoisted_25$1, [
10311
+ createElementVNode("div", _hoisted_22$1, [
9864
10312
  _cache[9] || (_cache[9] = createElementVNode("div", { class: "mb-1 font-medium text-muted-foreground" }, "Next occurrences", -1)),
9865
- createElementVNode("ul", _hoisted_26$1, [
10313
+ createElementVNode("ul", _hoisted_23$1, [
9866
10314
  (openBlock(true), createElementBlock(Fragment, null, renderList(preview.value, (d, i) => {
9867
10315
  return openBlock(), createElementBlock("li", {
9868
10316
  key: i,
@@ -9876,7 +10324,7 @@ const _sfc_main$g = /* @__PURE__ */ defineComponent({
9876
10324
  type: "hidden",
9877
10325
  name: __props.name,
9878
10326
  value: serialized.value
9879
- }, null, 8, _hoisted_27$1)) : createCommentVNode("", true)
10327
+ }, null, 8, _hoisted_24$1)) : createCommentVNode("", true)
9880
10328
  ], 16, _hoisted_1$d);
9881
10329
  };
9882
10330
  }
@@ -10295,7 +10743,7 @@ const _sfc_main$e = /* @__PURE__ */ defineComponent({
10295
10743
  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(keys), (k, i) => {
10296
10744
  return openBlock(), createElementBlock(Fragment, { key: i }, [
10297
10745
  i > 0 ? (openBlock(), createElementBlock("span", _hoisted_5$4, "+")) : createCommentVNode("", true),
10298
- createVNode(_sfc_main$1W, null, {
10746
+ createVNode(_sfc_main$1X, null, {
10299
10747
  default: withCtx(() => [
10300
10748
  createTextVNode(toDisplayString(modifierLabel(k)), 1)
10301
10749
  ]),
@@ -10483,7 +10931,7 @@ const _sfc_main$d = /* @__PURE__ */ defineComponent({
10483
10931
  class: normalizeClass(buttonClass(key)),
10484
10932
  onClick: ($event) => unref(controlled).setValue(key)
10485
10933
  }, [
10486
- createVNode(unref(_sfc_main$1K), {
10934
+ createVNode(unref(_sfc_main$1L), {
10487
10935
  icon: iconComp,
10488
10936
  size: __props.size
10489
10937
  }, null, 8, ["icon", "size"])
@@ -10594,12 +11042,12 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
10594
11042
  const ChevronDownIcon = ChevronDown;
10595
11043
  return (_ctx, _cache) => {
10596
11044
  return openBlock(), createElementBlock("div", mergeProps({ class: wrapperClass.value }, passthroughAttrs.value), [
10597
- createVNode(unref(_sfc_main$1N), {
11045
+ createVNode(unref(_sfc_main$1O), {
10598
11046
  open: open.value,
10599
11047
  onOpenChange
10600
11048
  }, {
10601
11049
  default: withCtx(() => [
10602
- createVNode(unref(_sfc_main$1P), { "as-child": "" }, {
11050
+ createVNode(unref(_sfc_main$1Q), { "as-child": "" }, {
10603
11051
  default: withCtx(() => [
10604
11052
  createElementVNode("button", {
10605
11053
  type: "button",
@@ -10616,7 +11064,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
10616
11064
  style: normalizeStyle({ fontFamily: unref(family) }),
10617
11065
  class: "truncate text-foreground"
10618
11066
  }, toDisplayString(current.value?.name ?? __props.placeholder), 5),
10619
- createVNode(unref(_sfc_main$1K), {
11067
+ createVNode(unref(_sfc_main$1L), {
10620
11068
  icon: unref(ChevronDownIcon),
10621
11069
  size: 14,
10622
11070
  class: "text-muted-foreground"
@@ -10625,10 +11073,7 @@ const _sfc_main$c = /* @__PURE__ */ defineComponent({
10625
11073
  ]),
10626
11074
  _: 1
10627
11075
  }),
10628
- createVNode(unref(_sfc_main$1Q), {
10629
- "is-bare": "",
10630
- class: "w-[20rem] p-2"
10631
- }, {
11076
+ createVNode(unref(_sfc_main$1R), { class: "w-[20rem] p-2" }, {
10632
11077
  default: withCtx(() => [
10633
11078
  createElementVNode("input", {
10634
11079
  type: "search",
@@ -11103,7 +11548,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
11103
11548
  class: "inline-flex h-7 w-7 items-center justify-center rounded text-destructive hover:bg-destructive-soft disabled:pointer-events-none disabled:opacity-40",
11104
11549
  onClick: ($event) => removeStop(i)
11105
11550
  }, [
11106
- createVNode(unref(_sfc_main$1K), {
11551
+ createVNode(unref(_sfc_main$1L), {
11107
11552
  icon: unref(TrashIcon),
11108
11553
  size: 12
11109
11554
  }, null, 8, ["icon"])
@@ -11117,7 +11562,7 @@ const _sfc_main$a = /* @__PURE__ */ defineComponent({
11117
11562
  class: "inline-flex h-8 w-full items-center justify-center gap-1 rounded-md border border-dashed border-border text-xs text-muted-foreground hover:bg-muted hover:text-foreground",
11118
11563
  onClick: addStop
11119
11564
  }, [
11120
- createVNode(unref(_sfc_main$1K), {
11565
+ createVNode(unref(_sfc_main$1L), {
11121
11566
  icon: unref(PlusIcon),
11122
11567
  size: 12
11123
11568
  }, null, 8, ["icon"]),
@@ -11745,7 +12190,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
11745
12190
  const emit = __emit;
11746
12191
  const isPills = computed(() => props.variant === CategoryNavVariant.Pills);
11747
12192
  const navSize = computed(() => EmojiPickerSizes[props.size].nav);
11748
- const stripIconSize = computed(() => props.iconSize ?? Math.round(navSize.value * 0.8));
12193
+ const stripIconSize = computed(() => props.iconSize ?? Math.round(navSize.value * 0.55));
11749
12194
  const stripItemStyle = computed(() => ({ height: `${navSize.value}px` }));
11750
12195
  const categories = computed(
11751
12196
  () => CategoryOrder.map((key) => ({ key, label: CategoryDisplays[key].label, icon: CategoryDisplays[key].Icon }))
@@ -11754,7 +12199,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
11754
12199
  if (typeof key === "string") emit("select", key);
11755
12200
  }
11756
12201
  return (_ctx, _cache) => {
11757
- return isPills.value ? (openBlock(), createBlock(unref(_sfc_main$1X), {
12202
+ return isPills.value ? (openBlock(), createBlock(unref(_sfc_main$1Y), {
11758
12203
  key: 0,
11759
12204
  type: unref(ToggleMode).Single,
11760
12205
  "is-attached": false,
@@ -11765,7 +12210,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
11765
12210
  }, {
11766
12211
  default: withCtx(() => [
11767
12212
  (openBlock(true), createElementBlock(Fragment, null, renderList(categories.value, (category) => {
11768
- return openBlock(), createBlock(unref(_sfc_main$1Y), {
12213
+ return openBlock(), createBlock(unref(_sfc_main$1Z), {
11769
12214
  key: category.key,
11770
12215
  value: category.key,
11771
12216
  variant: unref(ToggleButtonVariant).Outline,
@@ -11779,7 +12224,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
11779
12224
  }), 128))
11780
12225
  ]),
11781
12226
  _: 1
11782
- }, 8, ["type", "value"])) : (openBlock(), createBlock(unref(_sfc_main$1X), {
12227
+ }, 8, ["type", "value"])) : (openBlock(), createBlock(unref(_sfc_main$1Y), {
11783
12228
  key: 1,
11784
12229
  type: unref(ToggleMode).Single,
11785
12230
  variant: unref(ToggleButtonGroupVariant).Segmented,
@@ -11790,7 +12235,7 @@ const _sfc_main$7 = /* @__PURE__ */ defineComponent({
11790
12235
  }, {
11791
12236
  default: withCtx(() => [
11792
12237
  (openBlock(true), createElementBlock(Fragment, null, renderList(categories.value, (category) => {
11793
- return openBlock(), createBlock(unref(_sfc_main$1Y), {
12238
+ return openBlock(), createBlock(unref(_sfc_main$1Z), {
11794
12239
  key: category.key,
11795
12240
  value: category.key,
11796
12241
  title: category.label,
@@ -12090,11 +12535,11 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
12090
12535
  return picker.activeCategory.value === RecentCategory ? EmojiEmptyLabels.recents : EmojiEmptyLabels.category;
12091
12536
  });
12092
12537
  return (_ctx, _cache) => {
12093
- return openBlock(), createBlock(unref(_sfc_main$1Z), { gap: "3" }, {
12538
+ return openBlock(), createBlock(unref(_sfc_main$1_), { gap: "3" }, {
12094
12539
  default: withCtx(() => [
12095
12540
  createElementVNode("div", _hoisted_1$2, [
12096
12541
  createElementVNode("span", _hoisted_2$2, toDisplayString(__props.label), 1),
12097
- createVNode(unref(_sfc_main$1_), {
12542
+ createVNode(unref(_sfc_main$1$), {
12098
12543
  variant: isNoneSelected.value ? void 0 : unref(ButtonVariant).Outline,
12099
12544
  tone: isNoneSelected.value ? unref(ColorTone).Primary : unref(ColorTone).Neutral,
12100
12545
  size: unref(SizePreset).Sm,
@@ -12107,14 +12552,14 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
12107
12552
  _: 1
12108
12553
  }, 8, ["variant", "tone", "size", "aria-pressed"])
12109
12554
  ]),
12110
- createVNode(_sfc_main$1z, {
12555
+ createVNode(_sfc_main$1A, {
12111
12556
  size: searchSize.value,
12112
12557
  placeholder: "Search emoji…",
12113
12558
  "model-value": unref(picker).searchKeyword.value,
12114
12559
  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => unref(picker).searchKeyword.value = $event),
12115
12560
  onClear: _cache[2] || (_cache[2] = ($event) => unref(picker).searchKeyword.value = "")
12116
12561
  }, null, 8, ["size", "model-value"]),
12117
- createVNode(unref(_sfc_main$1Z), { gap: "2" }, {
12562
+ createVNode(unref(_sfc_main$1_), { gap: "2" }, {
12118
12563
  default: withCtx(() => [
12119
12564
  !unref(picker).showSearch.value ? (openBlock(), createBlock(_sfc_main$7, {
12120
12565
  key: 0,
@@ -12190,16 +12635,16 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
12190
12635
  if (entry !== null) openCtl.setValue(false);
12191
12636
  }
12192
12637
  return (_ctx, _cache) => {
12193
- return openBlock(), createBlock(unref(_sfc_main$1N), {
12638
+ return openBlock(), createBlock(unref(_sfc_main$1O), {
12194
12639
  open: isOpenNow.value,
12195
12640
  placement: __props.placement,
12196
12641
  onOpenChange: _cache[0] || (_cache[0] = ($event) => unref(openCtl).setValue($event))
12197
12642
  }, {
12198
12643
  default: withCtx(() => [
12199
- createVNode(unref(_sfc_main$1P), { "as-child": "" }, {
12644
+ createVNode(unref(_sfc_main$1Q), { "as-child": "" }, {
12200
12645
  default: withCtx(() => [
12201
12646
  renderSlot(_ctx.$slots, "trigger", {}, () => [
12202
- createVNode(unref(_sfc_main$1_), {
12647
+ createVNode(unref(_sfc_main$1$), {
12203
12648
  variant: unref(ButtonVariant).Ghost,
12204
12649
  tone: unref(ColorTone).Neutral,
12205
12650
  size: unref(SizePreset).Sm,
@@ -12219,12 +12664,12 @@ const _sfc_main$3 = /* @__PURE__ */ defineComponent({
12219
12664
  ]),
12220
12665
  _: 3
12221
12666
  }),
12222
- createVNode(unref(_sfc_main$1Q), {
12667
+ createVNode(unref(_sfc_main$1R), {
12223
12668
  class: "w-80",
12224
12669
  padding: "sm"
12225
12670
  }, {
12226
12671
  default: withCtx(() => [
12227
- createVNode(unref(_sfc_main$1L), null, {
12672
+ createVNode(unref(_sfc_main$1M), null, {
12228
12673
  default: withCtx(() => [
12229
12674
  createVNode(_sfc_main$4, {
12230
12675
  "model-value": currentValue.value,
@@ -12304,16 +12749,16 @@ const _sfc_main$2 = /* @__PURE__ */ defineComponent({
12304
12749
  emit("value-change", ratio);
12305
12750
  }
12306
12751
  return (_ctx, _cache) => {
12307
- return openBlock(), createBlock(unref(_sfc_main$1$), {
12752
+ return openBlock(), createBlock(unref(_sfc_main$20), {
12308
12753
  label: "Size",
12309
12754
  orientation: "vertical",
12310
12755
  divided: false
12311
12756
  }, {
12312
12757
  default: withCtx(() => [
12313
- createVNode(unref(_sfc_main$20), { label: "Emoji size" }, {
12758
+ createVNode(unref(_sfc_main$21), { label: "Emoji size" }, {
12314
12759
  default: withCtx(() => [
12315
12760
  (openBlock(true), createElementBlock(Fragment, null, renderList(presets.value, (entry) => {
12316
- return openBlock(), createBlock(unref(_sfc_main$21), {
12761
+ return openBlock(), createBlock(unref(_sfc_main$22), {
12317
12762
  key: entry.preset,
12318
12763
  size: __props.size,
12319
12764
  selected: entry.selected,
@@ -12592,15 +13037,15 @@ export {
12592
13037
  ADDRESS_COUNTRIES as A,
12593
13038
  BUILT_IN_FONTS as B,
12594
13039
  CategoryDisplays as C,
12595
- _sfc_main$T as D,
12596
- _sfc_main$V as E,
12597
- _sfc_main$Y as F,
12598
- _sfc_main$W as G,
12599
- _sfc_main$U as H,
13040
+ _sfc_main$U as D,
13041
+ _sfc_main$W as E,
13042
+ _sfc_main$Z as F,
13043
+ _sfc_main$X as G,
13044
+ _sfc_main$V as H,
12600
13045
  CronFieldKind as I,
12601
13046
  _sfc_main$b as J,
12602
- _sfc_main$1l as K,
12603
- _sfc_main$Q as L,
13047
+ _sfc_main$1m as K,
13048
+ _sfc_main$R as L,
12604
13049
  _sfc_main$M as M,
12605
13050
  _sfc_main$K as N,
12606
13051
  _sfc_main$P as O,
@@ -12612,40 +13057,40 @@ export {
12612
13057
  _sfc_main$t as U,
12613
13058
  _sfc_main$s as V,
12614
13059
  _sfc_main$r as W,
12615
- _sfc_main$1E as X,
13060
+ _sfc_main$1F as X,
12616
13061
  EmojiEmptyLabels as Y,
12617
13062
  _sfc_main$4 as Z,
12618
13063
  _sfc_main$9 as _,
12619
- _sfc_main$R as a,
12620
- _sfc_main$17 as a$,
13064
+ _sfc_main$S as a,
13065
+ _sfc_main$18 as a$,
12621
13066
  EmojiPickerSizes as a0,
12622
13067
  EmojiRecentsKey as a1,
12623
13068
  _sfc_main$2 as a2,
12624
13069
  EmojiTileShape as a3,
12625
- _sfc_main$1t as a4,
12626
- _sfc_main$1d as a5,
13070
+ _sfc_main$1u as a4,
13071
+ _sfc_main$1e as a5,
12627
13072
  FileRejectionReason as a6,
12628
13073
  _sfc_main$w as a7,
12629
13074
  _sfc_main$c as a8,
12630
- _sfc_main$1H as a9,
12631
- _sfc_main$1m as aA,
12632
- _sfc_main$12 as aB,
12633
- _sfc_main$$ as aC,
12634
- _sfc_main$_ as aD,
12635
- _sfc_main$11 as aE,
12636
- _sfc_main$10 as aF,
12637
- _sfc_main$1B as aG,
13075
+ _sfc_main$1I as a9,
13076
+ _sfc_main$1n as aA,
13077
+ _sfc_main$13 as aB,
13078
+ _sfc_main$10 as aC,
13079
+ _sfc_main$$ as aD,
13080
+ _sfc_main$12 as aE,
13081
+ _sfc_main$11 as aF,
13082
+ _sfc_main$1C as aG,
12638
13083
  PHONE_COUNTRIES as aH,
12639
- _sfc_main$1A as aI,
12640
- _sfc_main$1e as aJ,
12641
- _sfc_main$1k as aK,
13084
+ _sfc_main$1B as aI,
13085
+ _sfc_main$1f as aJ,
13086
+ _sfc_main$1l as aK,
12642
13087
  _sfc_main$8 as aL,
12643
13088
  PickerElement as aM,
12644
- _sfc_main$1n as aN,
13089
+ _sfc_main$1o as aN,
12645
13090
  PinInputType as aO,
12646
- _sfc_main$1w as aP,
12647
- _sfc_main$1r as aQ,
12648
- _sfc_main$1o as aR,
13091
+ _sfc_main$1x as aP,
13092
+ _sfc_main$1s as aQ,
13093
+ _sfc_main$1p as aR,
12649
13094
  RadioGroupKey as aS,
12650
13095
  _sfc_main$N as aT,
12651
13096
  _sfc_main$1 as aU,
@@ -12654,14 +13099,14 @@ export {
12654
13099
  RecurrenceEndMode as aX,
12655
13100
  RecurrenceFreq as aY,
12656
13101
  RecurrenceWeekday as aZ,
12657
- _sfc_main$1z as a_,
12658
- _sfc_main$1I as aa,
13102
+ _sfc_main$1A as a_,
13103
+ _sfc_main$1J as aa,
12659
13104
  GradientKind as ab,
12660
13105
  _sfc_main$a as ac,
12661
13106
  _sfc_main$d as ad,
12662
- _sfc_main$1i as ae,
13107
+ _sfc_main$1j as ae,
12663
13108
  InputBorder as af,
12664
- _sfc_main$1h as ag,
13109
+ _sfc_main$1i as ag,
12665
13110
  InputRing as ah,
12666
13111
  InputSize as ai,
12667
13112
  InputState as aj,
@@ -12670,24 +13115,24 @@ export {
12670
13115
  _sfc_main$e as am,
12671
13116
  _sfc_main$f as an,
12672
13117
  KnobTone as ao,
12673
- _sfc_main$1J as ap,
12674
- _sfc_main$1g as aq,
12675
- _sfc_main$1G as ar,
12676
- _sfc_main$1c as as,
12677
- _sfc_main$18 as at,
12678
- _sfc_main$1a as au,
13118
+ _sfc_main$1K as ap,
13119
+ _sfc_main$1h as aq,
13120
+ _sfc_main$1H as ar,
13121
+ _sfc_main$1d as as,
13122
+ _sfc_main$19 as at,
13123
+ _sfc_main$1b as au,
12679
13124
  ListboxIndicator as av,
12680
- _sfc_main$1b as aw,
12681
- _sfc_main$19 as ax,
13125
+ _sfc_main$1c as aw,
13126
+ _sfc_main$1a as ax,
12682
13127
  _sfc_main$l as ay,
12683
13128
  MarkdownEditorView as az,
12684
13129
  CategoryNavVariant as b,
12685
- _sfc_main$14 as b0,
12686
- _sfc_main$13 as b1,
13130
+ _sfc_main$15 as b0,
13131
+ _sfc_main$14 as b1,
12687
13132
  SelectSize as b2,
12688
- _sfc_main$15 as b3,
12689
- _sfc_main$16 as b4,
12690
- _sfc_main$1u as b5,
13133
+ _sfc_main$16 as b3,
13134
+ _sfc_main$17 as b4,
13135
+ _sfc_main$1v as b5,
12691
13136
  StepStatus as b6,
12692
13137
  _sfc_main$B as b7,
12693
13138
  _sfc_main$A as b8,
@@ -12697,15 +13142,15 @@ export {
12697
13142
  _sfc_main$z as ba,
12698
13143
  SubmitTrigger as bb,
12699
13144
  SwatchShape as bc,
12700
- _sfc_main$1v as bd,
12701
- _sfc_main$1q as be,
13145
+ _sfc_main$1w as bd,
13146
+ _sfc_main$1r as be,
12702
13147
  _sfc_main$x as bf,
12703
- _sfc_main$1D as bg,
12704
- _sfc_main$1y as bh,
12705
- _sfc_main$1F as bi,
13148
+ _sfc_main$1E as bg,
13149
+ _sfc_main$1z as bh,
13150
+ _sfc_main$1G as bi,
12706
13151
  _sfc_main$O as bj,
12707
13152
  _sfc_main$L as bk,
12708
- _sfc_main$1C as bl,
13153
+ _sfc_main$1D as bl,
12709
13154
  _sfc_main$q as bm,
12710
13155
  _sfc_main$p as bn,
12711
13156
  _sfc_main$o as bo,
@@ -12723,14 +13168,14 @@ export {
12723
13168
  CategoryOrder as c,
12724
13169
  CenterEmojiSize as d,
12725
13170
  CenterEmojiSizeDisplays as e,
12726
- _sfc_main$1j as f,
13171
+ _sfc_main$1k as f,
12727
13172
  _sfc_main as g,
12728
- _sfc_main$1x as h,
12729
- _sfc_main$1s as i,
12730
- _sfc_main$1p as j,
13173
+ _sfc_main$1y as h,
13174
+ _sfc_main$1t as i,
13175
+ _sfc_main$1q as j,
12731
13176
  CheckboxGroupKey as k,
12732
13177
  CheckboxVariant as l,
12733
- _sfc_main$1f as m,
13178
+ _sfc_main$1g as m,
12734
13179
  _sfc_main$m as n,
12735
13180
  _sfc_main$G as o,
12736
13181
  ColorChannel as p,
@@ -12742,7 +13187,7 @@ export {
12742
13187
  _sfc_main$D as v,
12743
13188
  ColorSwatchSize as w,
12744
13189
  _sfc_main$F as x,
12745
- _sfc_main$Z as y,
12746
- _sfc_main$X as z
13190
+ _sfc_main$_ as y,
13191
+ _sfc_main$Y as z
12747
13192
  };
12748
- //# sourceMappingURL=ChatComposer.vue_vue_type_script_setup_true_lang-lNcRhKIv.js.map
13193
+ //# sourceMappingURL=ChatComposer.vue_vue_type_script_setup_true_lang-DfeVsj9h.js.map