@auronui/vue 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (212) hide show
  1. package/ai-rules.md +26 -0
  2. package/dist/cjs/index.cjs +12347 -8681
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/components/autocomplete/Autocomplete.js.map +1 -1
  5. package/dist/components/autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +4 -1
  6. package/dist/components/autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  7. package/dist/components/context-menu/ContextMenu.js +7 -0
  8. package/dist/components/context-menu/ContextMenu.js.map +1 -0
  9. package/dist/components/context-menu/ContextMenu.vue_vue_type_script_setup_true_lang.js +38 -0
  10. package/dist/components/context-menu/ContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  11. package/dist/components/context-menu/ContextMenuCheckboxItem.js +7 -0
  12. package/dist/components/context-menu/ContextMenuCheckboxItem.js.map +1 -0
  13. package/dist/components/context-menu/ContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang.js +89 -0
  14. package/dist/components/context-menu/ContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  15. package/dist/components/context-menu/ContextMenuContent.js +7 -0
  16. package/dist/components/context-menu/ContextMenuContent.js.map +1 -0
  17. package/dist/components/context-menu/ContextMenuContent.vue_vue_type_script_setup_true_lang.js +135 -0
  18. package/dist/components/context-menu/ContextMenuContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  19. package/dist/components/context-menu/ContextMenuItem.js +7 -0
  20. package/dist/components/context-menu/ContextMenuItem.js.map +1 -0
  21. package/dist/components/context-menu/ContextMenuItem.vue_vue_type_script_setup_true_lang.js +72 -0
  22. package/dist/components/context-menu/ContextMenuItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  23. package/dist/components/context-menu/ContextMenuRadioGroup.js +7 -0
  24. package/dist/components/context-menu/ContextMenuRadioGroup.js.map +1 -0
  25. package/dist/components/context-menu/ContextMenuRadioGroup.vue_vue_type_script_setup_true_lang.js +40 -0
  26. package/dist/components/context-menu/ContextMenuRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  27. package/dist/components/context-menu/ContextMenuRadioItem.js +7 -0
  28. package/dist/components/context-menu/ContextMenuRadioItem.js.map +1 -0
  29. package/dist/components/context-menu/ContextMenuRadioItem.vue_vue_type_script_setup_true_lang.js +75 -0
  30. package/dist/components/context-menu/ContextMenuRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  31. package/dist/components/context-menu/ContextMenuSection.js +7 -0
  32. package/dist/components/context-menu/ContextMenuSection.js.map +1 -0
  33. package/dist/components/context-menu/ContextMenuSection.vue_vue_type_script_setup_true_lang.js +55 -0
  34. package/dist/components/context-menu/ContextMenuSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
  35. package/dist/components/context-menu/ContextMenuSub.js +7 -0
  36. package/dist/components/context-menu/ContextMenuSub.js.map +1 -0
  37. package/dist/components/context-menu/ContextMenuSub.vue_vue_type_script_setup_true_lang.js +35 -0
  38. package/dist/components/context-menu/ContextMenuSub.vue_vue_type_script_setup_true_lang.js.map +1 -0
  39. package/dist/components/context-menu/ContextMenuSubContent.js +7 -0
  40. package/dist/components/context-menu/ContextMenuSubContent.js.map +1 -0
  41. package/dist/components/context-menu/ContextMenuSubContent.vue_vue_type_script_setup_true_lang.js +155 -0
  42. package/dist/components/context-menu/ContextMenuSubContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  43. package/dist/components/context-menu/ContextMenuSubTrigger.js +7 -0
  44. package/dist/components/context-menu/ContextMenuSubTrigger.js.map +1 -0
  45. package/dist/components/context-menu/ContextMenuSubTrigger.vue_vue_type_script_setup_true_lang.js +64 -0
  46. package/dist/components/context-menu/ContextMenuSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  47. package/dist/components/context-menu/ContextMenuTrigger.js +7 -0
  48. package/dist/components/context-menu/ContextMenuTrigger.js.map +1 -0
  49. package/dist/components/context-menu/ContextMenuTrigger.vue_vue_type_script_setup_true_lang.js +38 -0
  50. package/dist/components/context-menu/ContextMenuTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  51. package/dist/components/editable/Editable.js +7 -0
  52. package/dist/components/editable/Editable.js.map +1 -0
  53. package/dist/components/editable/Editable.vue_vue_type_script_setup_true_lang.js +106 -0
  54. package/dist/components/editable/Editable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  55. package/dist/components/editable/EditableArea.js +7 -0
  56. package/dist/components/editable/EditableArea.js.map +1 -0
  57. package/dist/components/editable/EditableArea.vue_vue_type_script_setup_true_lang.js +41 -0
  58. package/dist/components/editable/EditableArea.vue_vue_type_script_setup_true_lang.js.map +1 -0
  59. package/dist/components/editable/EditableCancelTrigger.js +7 -0
  60. package/dist/components/editable/EditableCancelTrigger.js.map +1 -0
  61. package/dist/components/editable/EditableCancelTrigger.vue_vue_type_script_setup_true_lang.js +63 -0
  62. package/dist/components/editable/EditableCancelTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  63. package/dist/components/editable/EditableEditTrigger.js +7 -0
  64. package/dist/components/editable/EditableEditTrigger.js.map +1 -0
  65. package/dist/components/editable/EditableEditTrigger.vue_vue_type_script_setup_true_lang.js +53 -0
  66. package/dist/components/editable/EditableEditTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  67. package/dist/components/editable/EditableInput.js +7 -0
  68. package/dist/components/editable/EditableInput.js.map +1 -0
  69. package/dist/components/editable/EditableInput.vue_vue_type_script_setup_true_lang.js +38 -0
  70. package/dist/components/editable/EditableInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  71. package/dist/components/editable/EditablePreview.js +7 -0
  72. package/dist/components/editable/EditablePreview.js.map +1 -0
  73. package/dist/components/editable/EditablePreview.vue_vue_type_script_setup_true_lang.js +38 -0
  74. package/dist/components/editable/EditablePreview.vue_vue_type_script_setup_true_lang.js.map +1 -0
  75. package/dist/components/editable/EditableSubmitTrigger.js +7 -0
  76. package/dist/components/editable/EditableSubmitTrigger.js.map +1 -0
  77. package/dist/components/editable/EditableSubmitTrigger.vue_vue_type_script_setup_true_lang.js +53 -0
  78. package/dist/components/editable/EditableSubmitTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  79. package/dist/components/form/Form.js.map +1 -1
  80. package/dist/components/form/Form.vue_vue_type_script_setup_true_lang.js +32 -156
  81. package/dist/components/form/Form.vue_vue_type_script_setup_true_lang.js.map +1 -1
  82. package/dist/components/form/FormField.js.map +1 -1
  83. package/dist/components/form/FormField.vue_vue_type_script_setup_true_lang.js +44 -23
  84. package/dist/components/form/FormField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  85. package/dist/components/form/form.context.js.map +1 -1
  86. package/dist/components/form/form.state.js +166 -0
  87. package/dist/components/form/form.state.js.map +1 -0
  88. package/dist/components/form/useField.js +112 -0
  89. package/dist/components/form/useField.js.map +1 -0
  90. package/dist/components/form/useForm.js +17 -0
  91. package/dist/components/form/useForm.js.map +1 -0
  92. package/dist/components/hover-card/HoverCard.js +7 -0
  93. package/dist/components/hover-card/HoverCard.js.map +1 -0
  94. package/dist/components/hover-card/HoverCard.vue_vue_type_script_lang.js +52 -0
  95. package/dist/components/hover-card/HoverCard.vue_vue_type_script_lang.js.map +1 -0
  96. package/dist/components/hover-card/HoverCardArrow.js +7 -0
  97. package/dist/components/hover-card/HoverCardArrow.js.map +1 -0
  98. package/dist/components/hover-card/HoverCardArrow.vue_vue_type_script_setup_true_lang.js +35 -0
  99. package/dist/components/hover-card/HoverCardArrow.vue_vue_type_script_setup_true_lang.js.map +1 -0
  100. package/dist/components/hover-card/HoverCardContent.js +7 -0
  101. package/dist/components/hover-card/HoverCardContent.js.map +1 -0
  102. package/dist/components/hover-card/HoverCardContent.vue_vue_type_script_setup_true_lang.js +104 -0
  103. package/dist/components/hover-card/HoverCardContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  104. package/dist/components/hover-card/HoverCardTrigger.js +7 -0
  105. package/dist/components/hover-card/HoverCardTrigger.js.map +1 -0
  106. package/dist/components/hover-card/HoverCardTrigger.vue_vue_type_script_setup_true_lang.js +26 -0
  107. package/dist/components/hover-card/HoverCardTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  108. package/dist/components/menubar/Menubar.js +7 -0
  109. package/dist/components/menubar/Menubar.js.map +1 -0
  110. package/dist/components/menubar/Menubar.vue_vue_type_script_setup_true_lang.js +58 -0
  111. package/dist/components/menubar/Menubar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  112. package/dist/components/menubar/MenubarCheckboxItem.js +7 -0
  113. package/dist/components/menubar/MenubarCheckboxItem.js.map +1 -0
  114. package/dist/components/menubar/MenubarCheckboxItem.vue_vue_type_script_setup_true_lang.js +89 -0
  115. package/dist/components/menubar/MenubarCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  116. package/dist/components/menubar/MenubarContent.js +7 -0
  117. package/dist/components/menubar/MenubarContent.js.map +1 -0
  118. package/dist/components/menubar/MenubarContent.vue_vue_type_script_setup_true_lang.js +162 -0
  119. package/dist/components/menubar/MenubarContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  120. package/dist/components/menubar/MenubarItem.js +7 -0
  121. package/dist/components/menubar/MenubarItem.js.map +1 -0
  122. package/dist/components/menubar/MenubarItem.vue_vue_type_script_setup_true_lang.js +72 -0
  123. package/dist/components/menubar/MenubarItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  124. package/dist/components/menubar/MenubarMenu.js +7 -0
  125. package/dist/components/menubar/MenubarMenu.js.map +1 -0
  126. package/dist/components/menubar/MenubarMenu.vue_vue_type_script_setup_true_lang.js +20 -0
  127. package/dist/components/menubar/MenubarMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  128. package/dist/components/menubar/MenubarRadioGroup.js +7 -0
  129. package/dist/components/menubar/MenubarRadioGroup.js.map +1 -0
  130. package/dist/components/menubar/MenubarRadioGroup.vue_vue_type_script_setup_true_lang.js +40 -0
  131. package/dist/components/menubar/MenubarRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  132. package/dist/components/menubar/MenubarRadioItem.js +7 -0
  133. package/dist/components/menubar/MenubarRadioItem.js.map +1 -0
  134. package/dist/components/menubar/MenubarRadioItem.vue_vue_type_script_setup_true_lang.js +75 -0
  135. package/dist/components/menubar/MenubarRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  136. package/dist/components/menubar/MenubarSection.js +7 -0
  137. package/dist/components/menubar/MenubarSection.js.map +1 -0
  138. package/dist/components/menubar/MenubarSection.vue_vue_type_script_setup_true_lang.js +55 -0
  139. package/dist/components/menubar/MenubarSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
  140. package/dist/components/menubar/MenubarSub.js +7 -0
  141. package/dist/components/menubar/MenubarSub.js.map +1 -0
  142. package/dist/components/menubar/MenubarSub.vue_vue_type_script_setup_true_lang.js +35 -0
  143. package/dist/components/menubar/MenubarSub.vue_vue_type_script_setup_true_lang.js.map +1 -0
  144. package/dist/components/menubar/MenubarSubContent.js +7 -0
  145. package/dist/components/menubar/MenubarSubContent.js.map +1 -0
  146. package/dist/components/menubar/MenubarSubContent.vue_vue_type_script_setup_true_lang.js +155 -0
  147. package/dist/components/menubar/MenubarSubContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  148. package/dist/components/menubar/MenubarSubTrigger.js +7 -0
  149. package/dist/components/menubar/MenubarSubTrigger.js.map +1 -0
  150. package/dist/components/menubar/MenubarSubTrigger.vue_vue_type_script_setup_true_lang.js +64 -0
  151. package/dist/components/menubar/MenubarSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  152. package/dist/components/menubar/MenubarTrigger.js +7 -0
  153. package/dist/components/menubar/MenubarTrigger.js.map +1 -0
  154. package/dist/components/menubar/MenubarTrigger.vue_vue_type_script_setup_true_lang.js +53 -0
  155. package/dist/components/menubar/MenubarTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  156. package/dist/components/month-picker/MonthPicker.js +7 -0
  157. package/dist/components/month-picker/MonthPicker.js.map +1 -0
  158. package/dist/components/month-picker/MonthPicker.vue_vue_type_script_setup_true_lang.js +185 -0
  159. package/dist/components/month-picker/MonthPicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  160. package/dist/components/month-range-picker/MonthRangePicker.js +7 -0
  161. package/dist/components/month-range-picker/MonthRangePicker.js.map +1 -0
  162. package/dist/components/month-range-picker/MonthRangePicker.vue_vue_type_script_setup_true_lang.js +196 -0
  163. package/dist/components/month-range-picker/MonthRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  164. package/dist/components/navigation-menu/NavigationMenu.js +7 -0
  165. package/dist/components/navigation-menu/NavigationMenu.js.map +1 -0
  166. package/dist/components/navigation-menu/NavigationMenu.vue_vue_type_script_setup_true_lang.js +85 -0
  167. package/dist/components/navigation-menu/NavigationMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  168. package/dist/components/navigation-menu/NavigationMenuContent.js +7 -0
  169. package/dist/components/navigation-menu/NavigationMenuContent.js.map +1 -0
  170. package/dist/components/navigation-menu/NavigationMenuContent.vue_vue_type_script_setup_true_lang.js +70 -0
  171. package/dist/components/navigation-menu/NavigationMenuContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  172. package/dist/components/navigation-menu/NavigationMenuIndicator.js +7 -0
  173. package/dist/components/navigation-menu/NavigationMenuIndicator.js.map +1 -0
  174. package/dist/components/navigation-menu/NavigationMenuIndicator.vue_vue_type_script_setup_true_lang.js +53 -0
  175. package/dist/components/navigation-menu/NavigationMenuIndicator.vue_vue_type_script_setup_true_lang.js.map +1 -0
  176. package/dist/components/navigation-menu/NavigationMenuItem.js +7 -0
  177. package/dist/components/navigation-menu/NavigationMenuItem.js.map +1 -0
  178. package/dist/components/navigation-menu/NavigationMenuItem.vue_vue_type_script_setup_true_lang.js +20 -0
  179. package/dist/components/navigation-menu/NavigationMenuItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  180. package/dist/components/navigation-menu/NavigationMenuLink.js +7 -0
  181. package/dist/components/navigation-menu/NavigationMenuLink.js.map +1 -0
  182. package/dist/components/navigation-menu/NavigationMenuLink.vue_vue_type_script_setup_true_lang.js +70 -0
  183. package/dist/components/navigation-menu/NavigationMenuLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
  184. package/dist/components/navigation-menu/NavigationMenuList.js +7 -0
  185. package/dist/components/navigation-menu/NavigationMenuList.js.map +1 -0
  186. package/dist/components/navigation-menu/NavigationMenuList.vue_vue_type_script_setup_true_lang.js +47 -0
  187. package/dist/components/navigation-menu/NavigationMenuList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  188. package/dist/components/navigation-menu/NavigationMenuSub.js +7 -0
  189. package/dist/components/navigation-menu/NavigationMenuSub.js.map +1 -0
  190. package/dist/components/navigation-menu/NavigationMenuSub.vue_vue_type_script_setup_true_lang.js +37 -0
  191. package/dist/components/navigation-menu/NavigationMenuSub.vue_vue_type_script_setup_true_lang.js.map +1 -0
  192. package/dist/components/navigation-menu/NavigationMenuTrigger.js +7 -0
  193. package/dist/components/navigation-menu/NavigationMenuTrigger.js.map +1 -0
  194. package/dist/components/navigation-menu/NavigationMenuTrigger.vue_vue_type_script_setup_true_lang.js +66 -0
  195. package/dist/components/navigation-menu/NavigationMenuTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  196. package/dist/components/navigation-menu/NavigationMenuViewport.js +7 -0
  197. package/dist/components/navigation-menu/NavigationMenuViewport.js.map +1 -0
  198. package/dist/components/navigation-menu/NavigationMenuViewport.vue_vue_type_script_setup_true_lang.js +53 -0
  199. package/dist/components/navigation-menu/NavigationMenuViewport.vue_vue_type_script_setup_true_lang.js.map +1 -0
  200. package/dist/components/time-range-field/TimeRangeField.js +7 -0
  201. package/dist/components/time-range-field/TimeRangeField.js.map +1 -0
  202. package/dist/components/time-range-field/TimeRangeField.vue_vue_type_script_setup_true_lang.js +364 -0
  203. package/dist/components/time-range-field/TimeRangeField.vue_vue_type_script_setup_true_lang.js.map +1 -0
  204. package/dist/components/year-range-picker/YearRangePicker.js +7 -0
  205. package/dist/components/year-range-picker/YearRangePicker.js.map +1 -0
  206. package/dist/components/year-range-picker/YearRangePicker.vue_vue_type_script_setup_true_lang.js +199 -0
  207. package/dist/components/year-range-picker/YearRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  208. package/dist/index.d.ts +5393 -2896
  209. package/dist/index.js +50 -1
  210. package/dist/packages/styles/dist/components/hover-card/hover-card.styles.js +10 -0
  211. package/dist/packages/styles/dist/components/hover-card/hover-card.styles.js.map +1 -0
  212. package/package.json +4 -4
@@ -0,0 +1,364 @@
1
+ import { composeClassName } from "../../utils/composeClassName.js";
2
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, onBeforeUnmount, onMounted, openBlock, ref, renderList, renderSlot, toDisplayString, unref, useAttrs, useId, useModel, watch, withCtx } from "vue";
3
+ import { timeRangeFieldVariants } from "@auronui/styles";
4
+ import { TimeRangeFieldInput, TimeRangeFieldRoot } from "reka-ui";
5
+ //#region src/components/time-range-field/TimeRangeField.vue?vue&type=script&setup=true&lang.ts
6
+ var _hoisted_1 = [
7
+ "data-invalid",
8
+ "data-disabled",
9
+ "data-readonly",
10
+ "data-required",
11
+ "data-has-label",
12
+ "data-has-helper"
13
+ ];
14
+ var _hoisted_2 = ["id", "for"];
15
+ var _hoisted_3 = {
16
+ key: 0,
17
+ "aria-hidden": "true"
18
+ };
19
+ var _hoisted_4 = ["id", "for"];
20
+ var _hoisted_5 = {
21
+ key: 0,
22
+ "aria-hidden": "true"
23
+ };
24
+ var _hoisted_6 = ["id"];
25
+ var _hoisted_7 = ["id"];
26
+ var TimeRangeField_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
27
+ inheritAttrs: false,
28
+ __name: "TimeRangeField",
29
+ props: /* @__PURE__ */ mergeModels({
30
+ variant: { default: "flat" },
31
+ size: { default: "md" },
32
+ color: { default: "default" },
33
+ labelPlacement: { default: "inside" },
34
+ fullWidth: {
35
+ type: Boolean,
36
+ default: false
37
+ },
38
+ isInvalid: {
39
+ type: Boolean,
40
+ default: false
41
+ },
42
+ isDisabled: {
43
+ type: Boolean,
44
+ default: false
45
+ },
46
+ isReadOnly: {
47
+ type: Boolean,
48
+ default: false
49
+ },
50
+ isRequired: {
51
+ type: Boolean,
52
+ default: false
53
+ },
54
+ label: {},
55
+ description: {},
56
+ errorMessage: {},
57
+ class: { type: [
58
+ String,
59
+ Boolean,
60
+ null,
61
+ Object,
62
+ Array
63
+ ] },
64
+ classNames: {},
65
+ defaultValue: {},
66
+ defaultPlaceholder: {},
67
+ placeholderValue: {},
68
+ minValue: {},
69
+ maxValue: {},
70
+ granularity: { default: "minute" },
71
+ hourCycle: {},
72
+ step: {},
73
+ hideTimeZone: {
74
+ type: Boolean,
75
+ default: false
76
+ },
77
+ locale: {},
78
+ name: {},
79
+ required: { type: Boolean },
80
+ dir: {},
81
+ as: {},
82
+ asChild: { type: Boolean }
83
+ }, {
84
+ "modelValue": {},
85
+ "modelModifiers": {}
86
+ }),
87
+ emits: ["update:modelValue"],
88
+ setup(__props) {
89
+ const props = __props;
90
+ const modelValue = useModel(__props, "modelValue");
91
+ const attrs = useAttrs();
92
+ const generatedId = useId();
93
+ const fieldId = computed(() => attrs.id ?? `${generatedId}-field`);
94
+ const labelId = computed(() => `${generatedId}-label`);
95
+ const descriptionId = computed(() => `${generatedId}-description`);
96
+ const errorMessageId = computed(() => `${generatedId}-error`);
97
+ const hasLabel = computed(() => !!props.label);
98
+ const isFilled = computed(() => modelValue.value?.start != null || modelValue.value?.end != null);
99
+ const showError = computed(() => props.isInvalid && !!props.errorMessage);
100
+ const showDescription = computed(() => !!props.description && !showError.value);
101
+ const hasHelper = computed(() => showError.value || showDescription.value);
102
+ const ariaDescribedBy = computed(() => {
103
+ if (showError.value) return errorMessageId.value;
104
+ if (showDescription.value) return descriptionId.value;
105
+ });
106
+ const fieldRef = ref(null);
107
+ const fieldEl = computed(() => {
108
+ const r = fieldRef.value;
109
+ if (!r) return null;
110
+ if (r instanceof HTMLElement) return r;
111
+ return r.$el ?? null;
112
+ });
113
+ const isFocused = ref(false);
114
+ function updateSegmentFocus() {
115
+ const root = fieldEl.value;
116
+ if (!root) {
117
+ isFocused.value = false;
118
+ return;
119
+ }
120
+ const active = (root.ownerDocument ?? document).activeElement;
121
+ isFocused.value = !!active && root.contains(active) && active.hasAttribute("data-reka-time-field-segment");
122
+ }
123
+ function onDocFocusIn() {
124
+ updateSegmentFocus();
125
+ }
126
+ function onDocFocusOut() {
127
+ queueMicrotask(updateSegmentFocus);
128
+ }
129
+ let suppressSegmentFocusUntil = 0;
130
+ function onDocPointerDown(e) {
131
+ const root = fieldEl.value;
132
+ if (!root) return;
133
+ const target = e.target;
134
+ if (!target || root.contains(target)) return;
135
+ suppressSegmentFocusUntil = performance.now() + 250;
136
+ const active = (root.ownerDocument ?? document).activeElement;
137
+ if (active && root.contains(active) && active.hasAttribute("data-reka-time-field-segment")) active.blur();
138
+ }
139
+ function onDocFocusInGuard(e) {
140
+ if (performance.now() >= suppressSegmentFocusUntil) return;
141
+ const root = fieldEl.value;
142
+ if (!root) return;
143
+ const t = e.target;
144
+ if (t && root.contains(t) && t.hasAttribute?.("data-reka-time-field-segment")) t.blur();
145
+ }
146
+ onMounted(() => {
147
+ document.addEventListener("focusin", onDocFocusIn);
148
+ document.addEventListener("focusout", onDocFocusOut);
149
+ document.addEventListener("pointerdown", onDocPointerDown, true);
150
+ document.addEventListener("focusin", onDocFocusInGuard, true);
151
+ });
152
+ onBeforeUnmount(() => {
153
+ document.removeEventListener("focusin", onDocFocusIn);
154
+ document.removeEventListener("focusout", onDocFocusOut);
155
+ document.removeEventListener("pointerdown", onDocPointerDown, true);
156
+ document.removeEventListener("focusin", onDocFocusInGuard, true);
157
+ });
158
+ const segmentsFilled = ref(false);
159
+ function recomputeFilled() {
160
+ const root = fieldEl.value;
161
+ if (!root || typeof root.querySelectorAll !== "function") {
162
+ segmentsFilled.value = false;
163
+ return;
164
+ }
165
+ const segs = root.querySelectorAll("[data-reka-time-field-segment]:not([data-reka-time-field-segment=\"literal\"])");
166
+ let anyFilled = false;
167
+ segs.forEach((el) => {
168
+ if (el.dataset.placeholder === "false") anyFilled = true;
169
+ });
170
+ segmentsFilled.value = anyFilled;
171
+ }
172
+ watch([
173
+ modelValue,
174
+ () => props.defaultValue,
175
+ () => props.granularity,
176
+ () => props.hourCycle
177
+ ], () => {
178
+ queueMicrotask(recomputeFilled);
179
+ }, { immediate: true });
180
+ const effectiveFilled = computed(() => isFilled.value || segmentsFilled.value);
181
+ function handleFieldMousedown(e) {
182
+ const target = e.target;
183
+ if (!target) return;
184
+ if (target.closest("[data-reka-time-field-segment]")) return;
185
+ if (target.closest("[data-slot=\"start-content\"]")) return;
186
+ if (target.closest("[data-slot=\"end-content\"]")) return;
187
+ if (target.closest("button, [role=\"button\"]")) return;
188
+ const root = fieldEl.value;
189
+ if (!root) return;
190
+ const active = (root.ownerDocument ?? document).activeElement;
191
+ if (active && root.contains(active) && active.hasAttribute("data-reka-time-field-segment")) return;
192
+ const first = root.querySelector("[data-reka-time-field-segment]:not([data-reka-time-field-segment=\"literal\"])");
193
+ if (first) {
194
+ e.preventDefault();
195
+ first.focus();
196
+ }
197
+ }
198
+ const slotFns = computed(() => timeRangeFieldVariants({
199
+ variant: props.variant,
200
+ size: props.size,
201
+ color: props.color,
202
+ fullWidth: props.fullWidth,
203
+ isInvalid: props.isInvalid,
204
+ isDisabled: props.isDisabled,
205
+ isReadonly: props.isReadOnly,
206
+ hasLabel: hasLabel.value,
207
+ labelPlacement: props.labelPlacement
208
+ }));
209
+ const showOutsideLabel = computed(() => hasLabel.value && props.labelPlacement !== "inside");
210
+ const showInsideLabel = computed(() => hasLabel.value && props.labelPlacement === "inside");
211
+ return (_ctx, _cache) => {
212
+ return openBlock(), createElementBlock("div", {
213
+ class: normalizeClass(unref(composeClassName)(slotFns.value.base(), props.class, props.classNames?.base)),
214
+ "data-invalid": __props.isInvalid || void 0,
215
+ "data-disabled": __props.isDisabled || void 0,
216
+ "data-readonly": __props.isReadOnly || void 0,
217
+ "data-required": __props.isRequired || void 0,
218
+ "data-has-label": hasLabel.value || void 0,
219
+ "data-has-helper": hasHelper.value || void 0,
220
+ "data-slot": "time-range-field"
221
+ }, [showOutsideLabel.value ? (openBlock(), createElementBlock("label", {
222
+ key: 0,
223
+ id: labelId.value,
224
+ for: fieldId.value,
225
+ class: normalizeClass(unref(composeClassName)(slotFns.value.label(), props.classNames?.label))
226
+ }, [createTextVNode(toDisplayString(__props.label), 1), __props.isRequired ? (openBlock(), createElementBlock("span", _hoisted_3, " *")) : createCommentVNode("", true)], 10, _hoisted_2)) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(unref(composeClassName)(slotFns.value.mainWrapper(), props.classNames?.mainWrapper)) }, [createVNode(unref(TimeRangeFieldRoot), {
227
+ id: fieldId.value,
228
+ ref_key: "fieldRef",
229
+ ref: fieldRef,
230
+ modelValue: modelValue.value,
231
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
232
+ "default-value": __props.defaultValue,
233
+ "default-placeholder": __props.defaultPlaceholder,
234
+ placeholder: __props.placeholderValue,
235
+ "min-value": __props.minValue,
236
+ "max-value": __props.maxValue,
237
+ granularity: __props.granularity,
238
+ "hour-cycle": __props.hourCycle,
239
+ step: __props.step,
240
+ locale: __props.locale,
241
+ disabled: __props.isDisabled,
242
+ readonly: __props.isReadOnly,
243
+ name: __props.name,
244
+ "hide-time-zone": __props.hideTimeZone,
245
+ required: __props.required,
246
+ dir: __props.dir,
247
+ as: __props.as,
248
+ "as-child": __props.asChild,
249
+ "aria-labelledby": hasLabel.value ? labelId.value : void 0,
250
+ "aria-describedby": ariaDescribedBy.value,
251
+ "aria-required": __props.isRequired || void 0,
252
+ "aria-invalid": __props.isInvalid || void 0,
253
+ class: normalizeClass(unref(composeClassName)(slotFns.value.inputWrapper(), props.classNames?.inputWrapper)),
254
+ "data-filled": hasLabel.value ? effectiveFilled.value || void 0 : void 0,
255
+ "data-focused": isFocused.value || void 0,
256
+ "data-invalid": __props.isInvalid || void 0,
257
+ "data-disabled": __props.isDisabled || void 0,
258
+ "data-readonly": __props.isReadOnly || void 0,
259
+ onMousedown: handleFieldMousedown
260
+ }, {
261
+ default: withCtx(({ segments }) => [
262
+ showInsideLabel.value ? (openBlock(), createElementBlock("label", {
263
+ key: 0,
264
+ id: labelId.value,
265
+ for: fieldId.value,
266
+ class: normalizeClass(unref(composeClassName)(slotFns.value.label(), props.classNames?.label))
267
+ }, [createTextVNode(toDisplayString(__props.label), 1), __props.isRequired ? (openBlock(), createElementBlock("span", _hoisted_5, " *")) : createCommentVNode("", true)], 10, _hoisted_4)) : createCommentVNode("", true),
268
+ _ctx.$slots.startContent ? (openBlock(), createElementBlock("span", {
269
+ key: 1,
270
+ class: normalizeClass(unref(composeClassName)(slotFns.value.startContent(), props.classNames?.startContent)),
271
+ "data-slot": "start-content"
272
+ }, [renderSlot(_ctx.$slots, "startContent")], 2)) : createCommentVNode("", true),
273
+ createElementVNode("div", {
274
+ class: normalizeClass(unref(composeClassName)(slotFns.value.segmentList(), props.classNames?.segmentList)),
275
+ "data-slot": "segment-list",
276
+ "data-type": "start"
277
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(segments.start, (segment, _i) => {
278
+ return openBlock(), createBlock(unref(TimeRangeFieldInput), {
279
+ key: `start-${_i}`,
280
+ part: segment.part,
281
+ type: "start",
282
+ class: normalizeClass(unref(composeClassName)(slotFns.value.segment(), props.classNames?.segment))
283
+ }, {
284
+ default: withCtx(() => [createTextVNode(toDisplayString(segment.value), 1)]),
285
+ _: 2
286
+ }, 1032, ["part", "class"]);
287
+ }), 128))], 2),
288
+ createElementVNode("span", {
289
+ class: normalizeClass(unref(composeClassName)(slotFns.value.separator(), props.classNames?.separator)),
290
+ "aria-hidden": "true",
291
+ "data-slot": "separator"
292
+ }, "–", 2),
293
+ createElementVNode("div", {
294
+ class: normalizeClass(unref(composeClassName)(slotFns.value.segmentList(), props.classNames?.segmentList)),
295
+ "data-slot": "segment-list",
296
+ "data-type": "end"
297
+ }, [(openBlock(true), createElementBlock(Fragment, null, renderList(segments.end, (segment, _i) => {
298
+ return openBlock(), createBlock(unref(TimeRangeFieldInput), {
299
+ key: `end-${_i}`,
300
+ part: segment.part,
301
+ type: "end",
302
+ class: normalizeClass(unref(composeClassName)(slotFns.value.segment(), props.classNames?.segment))
303
+ }, {
304
+ default: withCtx(() => [createTextVNode(toDisplayString(segment.value), 1)]),
305
+ _: 2
306
+ }, 1032, ["part", "class"]);
307
+ }), 128))], 2),
308
+ _ctx.$slots.endContent ? (openBlock(), createElementBlock("span", {
309
+ key: 2,
310
+ class: normalizeClass(unref(composeClassName)(slotFns.value.endContent(), props.classNames?.endContent)),
311
+ "data-slot": "end-content"
312
+ }, [renderSlot(_ctx.$slots, "endContent")], 2)) : createCommentVNode("", true)
313
+ ]),
314
+ _: 3
315
+ }, 8, [
316
+ "id",
317
+ "modelValue",
318
+ "default-value",
319
+ "default-placeholder",
320
+ "placeholder",
321
+ "min-value",
322
+ "max-value",
323
+ "granularity",
324
+ "hour-cycle",
325
+ "step",
326
+ "locale",
327
+ "disabled",
328
+ "readonly",
329
+ "name",
330
+ "hide-time-zone",
331
+ "required",
332
+ "dir",
333
+ "as",
334
+ "as-child",
335
+ "aria-labelledby",
336
+ "aria-describedby",
337
+ "aria-required",
338
+ "aria-invalid",
339
+ "class",
340
+ "data-filled",
341
+ "data-focused",
342
+ "data-invalid",
343
+ "data-disabled",
344
+ "data-readonly"
345
+ ]), hasHelper.value ? (openBlock(), createElementBlock("div", {
346
+ key: 0,
347
+ class: normalizeClass(unref(composeClassName)(slotFns.value.helperWrapper(), props.classNames?.helperWrapper))
348
+ }, [showError.value ? (openBlock(), createElementBlock("div", {
349
+ key: 0,
350
+ id: errorMessageId.value,
351
+ class: normalizeClass(unref(composeClassName)(slotFns.value.errorMessage(), props.classNames?.errorMessage)),
352
+ role: "alert"
353
+ }, toDisplayString(__props.errorMessage), 11, _hoisted_6)) : showDescription.value ? (openBlock(), createElementBlock("div", {
354
+ key: 1,
355
+ id: descriptionId.value,
356
+ class: normalizeClass(unref(composeClassName)(slotFns.value.description(), props.classNames?.description))
357
+ }, toDisplayString(__props.description), 11, _hoisted_7)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)], 2)], 10, _hoisted_1);
358
+ };
359
+ }
360
+ });
361
+ //#endregion
362
+ export { TimeRangeField_vue_vue_type_script_setup_true_lang_default as default };
363
+
364
+ //# sourceMappingURL=TimeRangeField.vue_vue_type_script_setup_true_lang.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeRangeField.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../src/components/time-range-field/TimeRangeField.vue"],"sourcesContent":["<!--\n TimeRangeField — form-field mirror of DateRangeField.vue for a time range.\n\n Same prop surface, data-attribute contract, floating-label behavior,\n start/end content slots, and a11y wiring as DateRangeField. Renders TWO\n segment lists (start + end) separated by a visible \"–\" glyph, using\n @internationalized/date TimeValue instead of DateValue.\n-->\n<script setup lang=\"ts\">\nimport { computed, onBeforeUnmount, onMounted, ref, useAttrs, useId, watch } from 'vue'\nimport { TimeRangeFieldRoot, TimeRangeFieldInput } from 'reka-ui'\nimport type { TimeValue } from 'reka-ui'\nimport { timeRangeFieldVariants, type TimeRangeFieldVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\n\ndefineOptions({ inheritAttrs: false })\n\nconst props = withDefaults(defineProps<Props>(), {\n variant: 'flat',\n size: 'md',\n color: 'default',\n labelPlacement: 'inside',\n fullWidth: false,\n isInvalid: false,\n isDisabled: false,\n isReadOnly: false,\n isRequired: false,\n granularity: 'minute',\n hideTimeZone: false,\n})\n\nconst modelValue = defineModel<TimeRange | null | undefined>()\n\nexport interface TimeRange {\n start: TimeValue\n end: TimeValue\n}\n\ntype Props = {\n /** Visual style of the field. @default 'flat' */\n variant?: TimeRangeFieldVariants['variant']\n /** Field height. @default 'md' */\n size?: TimeRangeFieldVariants['size']\n /** Accent color applied to focus ring + floating label. @default 'default' */\n color?: TimeRangeFieldVariants['color']\n /** Label placement relative to the field. @default 'inside' */\n labelPlacement?: TimeRangeFieldVariants['labelPlacement']\n /** Stretches root wrapper to 100% width. @default false */\n fullWidth?: boolean\n /** Marks the field as invalid. @default false */\n isInvalid?: boolean\n /** Disables the field. @default false */\n isDisabled?: boolean\n /** Makes the field read-only. @default false */\n isReadOnly?: boolean\n /** Adds a required asterisk next to the label. @default false */\n isRequired?: boolean\n /** Field label. When omitted, floating-label behavior is skipped. */\n label?: string\n /** Helper text below the field. Suppressed when isInvalid && errorMessage is shown. */\n description?: string\n /** Error text below the field. Only rendered when isInvalid is true. */\n errorMessage?: string\n /** Extra classes merged onto the root wrapper. */\n class?: ClassValue\n /** Per-slot class overrides. Merged with tailwind-variants styles. */\n classNames?: Partial<{\n base: ClassValue\n label: ClassValue\n mainWrapper: ClassValue\n inputWrapper: ClassValue\n startContent: ClassValue\n segmentList: ClassValue\n segment: ClassValue\n separator: ClassValue\n endContent: ClassValue\n helperWrapper: ClassValue\n errorMessage: ClassValue\n description: ClassValue\n }>\n\n /* ─── TimeRangeField-specific ─────────────────────────────────── */\n defaultValue?: TimeRange\n defaultPlaceholder?: TimeValue\n placeholderValue?: TimeValue\n minValue?: TimeValue\n maxValue?: TimeValue\n granularity?: 'hour' | 'minute' | 'second'\n hourCycle?: 12 | 24\n /** Steps for segment keyboard navigation. */\n step?: Partial<Record<'hour' | 'minute' | 'second' | 'millisecond', number>>\n hideTimeZone?: boolean\n locale?: string\n name?: string\n /** Marks the field as required for form submission. */\n required?: boolean\n /** Text direction for the field. */\n dir?: 'ltr' | 'rtl'\n /** Render root as a different element or component. */\n as?: string\n /** Render root child as root element. */\n asChild?: boolean\n}\n\nconst attrs = useAttrs()\nconst generatedId = useId()\nconst fieldId = computed(() => (attrs.id as string | undefined) ?? `${generatedId}-field`)\nconst labelId = computed(() => `${generatedId}-label`)\nconst descriptionId = computed(() => `${generatedId}-description`)\nconst errorMessageId = computed(() => `${generatedId}-error`)\n\nconst hasLabel = computed(() => !!props.label)\nconst isFilled = computed(() => modelValue.value?.start != null || modelValue.value?.end != null)\n\nconst showError = computed(() => props.isInvalid && !!props.errorMessage)\nconst showDescription = computed(() => !!props.description && !showError.value)\nconst hasHelper = computed(() => showError.value || showDescription.value)\nconst ariaDescribedBy = computed(() => {\n if (showError.value) return errorMessageId.value\n if (showDescription.value) return descriptionId.value\n return undefined\n})\n\nconst fieldRef = ref<HTMLElement | null>(null)\n// Reka components expose their root DOM node via $el — unwrap before using DOM APIs.\nconst fieldEl = computed<HTMLElement | null>(() => {\n const r = fieldRef.value as unknown as { $el?: HTMLElement } | HTMLElement | null\n if (!r) return null\n if (r instanceof HTMLElement) return r\n return r.$el ?? null\n})\n\n// `isFocused` tracks focus on a TIME SEGMENT specifically — not any descendant.\nconst isFocused = ref(false)\nfunction updateSegmentFocus() {\n const root = fieldEl.value\n if (!root) { isFocused.value = false; return }\n const active = (root.ownerDocument ?? document).activeElement as HTMLElement | null\n isFocused.value = !!active\n && root.contains(active)\n && active.hasAttribute('data-reka-time-field-segment')\n}\nfunction onDocFocusIn() { updateSegmentFocus() }\nfunction onDocFocusOut() { queueMicrotask(updateSegmentFocus) }\n\n// Guard against focus snap-back after an outside click.\nlet suppressSegmentFocusUntil = 0\nfunction onDocPointerDown(e: PointerEvent) {\n const root = fieldEl.value\n if (!root) return\n const target = e.target as Node | null\n if (!target || root.contains(target)) return\n suppressSegmentFocusUntil = performance.now() + 250\n const active = (root.ownerDocument ?? document).activeElement as HTMLElement | null\n if (active && root.contains(active) && active.hasAttribute('data-reka-time-field-segment')) {\n active.blur()\n }\n}\nfunction onDocFocusInGuard(e: FocusEvent) {\n if (performance.now() >= suppressSegmentFocusUntil) return\n const root = fieldEl.value\n if (!root) return\n const t = e.target as HTMLElement | null\n if (t && root.contains(t) && t.hasAttribute?.('data-reka-time-field-segment')) {\n t.blur()\n }\n}\n\nonMounted(() => {\n document.addEventListener('focusin', onDocFocusIn)\n document.addEventListener('focusout', onDocFocusOut)\n document.addEventListener('pointerdown', onDocPointerDown, true)\n document.addEventListener('focusin', onDocFocusInGuard, true)\n})\nonBeforeUnmount(() => {\n document.removeEventListener('focusin', onDocFocusIn)\n document.removeEventListener('focusout', onDocFocusOut)\n document.removeEventListener('pointerdown', onDocPointerDown, true)\n document.removeEventListener('focusin', onDocFocusInGuard, true)\n})\n\n// Track data-filled by sniffing rendered segments across BOTH segment lists.\nconst segmentsFilled = ref(false)\nfunction recomputeFilled() {\n const root = fieldEl.value\n if (!root || typeof root.querySelectorAll !== 'function') {\n segmentsFilled.value = false\n return\n }\n const segs = root.querySelectorAll('[data-reka-time-field-segment]:not([data-reka-time-field-segment=\"literal\"])')\n let anyFilled = false\n segs.forEach((el) => {\n if ((el as HTMLElement).dataset.placeholder === 'false') anyFilled = true\n })\n segmentsFilled.value = anyFilled\n}\nwatch([modelValue, () => props.defaultValue, () => props.granularity, () => props.hourCycle], () => {\n queueMicrotask(recomputeFilled)\n}, { immediate: true })\n\nconst effectiveFilled = computed(() => isFilled.value || segmentsFilled.value)\n\nfunction handleFieldMousedown(e: MouseEvent) {\n const target = e.target as HTMLElement | null\n if (!target) return\n if (target.closest('[data-reka-time-field-segment]')) return\n if (target.closest('[data-slot=\"start-content\"]')) return\n if (target.closest('[data-slot=\"end-content\"]')) return\n if (target.closest('button, [role=\"button\"]')) return\n const root = fieldEl.value\n if (!root) return\n const active = (root.ownerDocument ?? document).activeElement as HTMLElement | null\n if (active && root.contains(active) && active.hasAttribute('data-reka-time-field-segment')) {\n return\n }\n const first = root.querySelector<HTMLElement>(\n '[data-reka-time-field-segment]:not([data-reka-time-field-segment=\"literal\"])',\n )\n if (first) {\n e.preventDefault()\n first.focus()\n }\n}\n\nconst slotFns = computed(() =>\n timeRangeFieldVariants({\n variant: props.variant,\n size: props.size,\n color: props.color,\n fullWidth: props.fullWidth,\n isInvalid: props.isInvalid,\n isDisabled: props.isDisabled,\n isReadonly: props.isReadOnly,\n hasLabel: hasLabel.value,\n labelPlacement: props.labelPlacement,\n }),\n)\n\nconst showOutsideLabel = computed(\n () => hasLabel.value && props.labelPlacement !== 'inside',\n)\nconst showInsideLabel = computed(\n () => hasLabel.value && props.labelPlacement === 'inside',\n)\n</script>\n\n<template>\n <div\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :data-invalid=\"isInvalid || undefined\"\n :data-disabled=\"isDisabled || undefined\"\n :data-readonly=\"isReadOnly || undefined\"\n :data-required=\"isRequired || undefined\"\n :data-has-label=\"hasLabel || undefined\"\n :data-has-helper=\"hasHelper || undefined\"\n data-slot=\"time-range-field\"\n >\n <label\n v-if=\"showOutsideLabel\"\n :id=\"labelId\"\n :for=\"fieldId\"\n :class=\"composeClassName(slotFns.label(), props.classNames?.label)\"\n >{{ label }}<span\n v-if=\"isRequired\"\n aria-hidden=\"true\"\n > *</span></label>\n\n <div :class=\"composeClassName(slotFns.mainWrapper(), props.classNames?.mainWrapper)\">\n <TimeRangeFieldRoot\n :id=\"fieldId\"\n ref=\"fieldRef\"\n v-model=\"modelValue\"\n :default-value=\"defaultValue\"\n :default-placeholder=\"defaultPlaceholder\"\n :placeholder=\"placeholderValue\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :granularity=\"granularity\"\n :hour-cycle=\"hourCycle\"\n :step=\"step\"\n :locale=\"locale\"\n :disabled=\"isDisabled\"\n :readonly=\"isReadOnly\"\n :name=\"name\"\n :hide-time-zone=\"hideTimeZone\"\n :required=\"required\"\n :dir=\"dir\"\n :as=\"as\"\n :as-child=\"asChild\"\n :aria-labelledby=\"hasLabel ? labelId : undefined\"\n :aria-describedby=\"ariaDescribedBy\"\n :aria-required=\"isRequired || undefined\"\n :aria-invalid=\"isInvalid || undefined\"\n :class=\"composeClassName(slotFns.inputWrapper(), props.classNames?.inputWrapper)\"\n :data-filled=\"hasLabel ? (effectiveFilled || undefined) : undefined\"\n :data-focused=\"isFocused || undefined\"\n :data-invalid=\"isInvalid || undefined\"\n :data-disabled=\"isDisabled || undefined\"\n :data-readonly=\"isReadOnly || undefined\"\n @mousedown=\"handleFieldMousedown\"\n >\n <template #default=\"{ segments }\">\n <label\n v-if=\"showInsideLabel\"\n :id=\"labelId\"\n :for=\"fieldId\"\n :class=\"composeClassName(slotFns.label(), props.classNames?.label)\"\n >{{ label }}<span\n v-if=\"isRequired\"\n aria-hidden=\"true\"\n > *</span></label>\n\n <span\n v-if=\"$slots.startContent\"\n :class=\"composeClassName(slotFns.startContent(), props.classNames?.startContent)\"\n data-slot=\"start-content\"\n >\n <slot name=\"startContent\" />\n </span>\n\n <div\n :class=\"composeClassName(slotFns.segmentList(), props.classNames?.segmentList)\"\n data-slot=\"segment-list\"\n data-type=\"start\"\n >\n <template\n v-for=\"(segment, _i) in segments.start\"\n :key=\"`start-${_i}`\"\n >\n <TimeRangeFieldInput\n :part=\"segment.part\"\n type=\"start\"\n :class=\"composeClassName(slotFns.segment(), props.classNames?.segment)\"\n >\n {{ segment.value }}\n </TimeRangeFieldInput>\n </template>\n </div>\n\n <span\n :class=\"composeClassName(slotFns.separator(), props.classNames?.separator)\"\n aria-hidden=\"true\"\n data-slot=\"separator\"\n >–</span>\n\n <div\n :class=\"composeClassName(slotFns.segmentList(), props.classNames?.segmentList)\"\n data-slot=\"segment-list\"\n data-type=\"end\"\n >\n <template\n v-for=\"(segment, _i) in segments.end\"\n :key=\"`end-${_i}`\"\n >\n <TimeRangeFieldInput\n :part=\"segment.part\"\n type=\"end\"\n :class=\"composeClassName(slotFns.segment(), props.classNames?.segment)\"\n >\n {{ segment.value }}\n </TimeRangeFieldInput>\n </template>\n </div>\n\n <span\n v-if=\"$slots.endContent\"\n :class=\"composeClassName(slotFns.endContent(), props.classNames?.endContent)\"\n data-slot=\"end-content\"\n >\n <slot name=\"endContent\" />\n </span>\n </template>\n </TimeRangeFieldRoot>\n\n <div\n v-if=\"hasHelper\"\n :class=\"composeClassName(slotFns.helperWrapper(), props.classNames?.helperWrapper)\"\n >\n <div\n v-if=\"showError\"\n :id=\"errorMessageId\"\n :class=\"composeClassName(slotFns.errorMessage(), props.classNames?.errorMessage)\"\n role=\"alert\"\n >\n {{ errorMessage }}\n </div>\n <div\n v-else-if=\"showDescription\"\n :id=\"descriptionId\"\n :class=\"composeClassName(slotFns.description(), props.classNames?.description)\"\n >\n {{ description }}\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import YearRangePicker_vue_vue_type_script_setup_true_lang_default from "./YearRangePicker.vue_vue_type_script_setup_true_lang.js";
2
+ //#region src/components/year-range-picker/YearRangePicker.vue
3
+ var YearRangePicker_default = YearRangePicker_vue_vue_type_script_setup_true_lang_default;
4
+ //#endregion
5
+ export { YearRangePicker_default as default };
6
+
7
+ //# sourceMappingURL=YearRangePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"YearRangePicker.js","names":[],"sources":["../../../src/components/year-range-picker/YearRangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport {\n YearRangePickerRoot,\n YearRangePickerHeader,\n YearRangePickerHeading,\n YearRangePickerPrev,\n YearRangePickerNext,\n YearRangePickerGrid,\n YearRangePickerGridBody,\n YearRangePickerGridRow,\n YearRangePickerCell,\n YearRangePickerCellTrigger,\n} from 'reka-ui'\nimport type { DateValue } from '@internationalized/date'\nimport { yearRangePickerVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\n\nexport interface DateRange {\n start: DateValue\n end: DateValue\n}\n\nconst props = withDefaults(defineProps<{\n defaultValue?: DateRange | null\n defaultPlaceholder?: DateValue\n minValue?: DateValue\n maxValue?: DateValue\n isYearDisabled?: (date: DateValue) => boolean\n isYearUnavailable?: (date: DateValue) => boolean\n locale?: string\n yearsPerPage?: number\n preventDeselect?: boolean\n allowNonContiguousRanges?: boolean\n maximumYears?: number\n readonly?: boolean\n disabled?: boolean\n calendarLabel?: string\n /** Initial focus state. @default false */\n initialFocus?: boolean\n /** Text direction. */\n dir?: 'ltr' | 'rtl'\n /** Navigate to next page. */\n nextPage?: (placeholder: DateValue) => DateValue\n /** Navigate to previous page. */\n prevPage?: (placeholder: DateValue) => DateValue\n /** Fix one end of the range. */\n fixedDate?: 'start' | 'end'\n /** Render as a different element or component. */\n as?: string\n /** Render child as root element. */\n asChild?: boolean\n class?: ClassValue\n /** Per-slot class overrides */\n classNames?: Partial<{\n base: ClassValue\n header: ClassValue\n navButton: ClassValue\n navButtonIcon: ClassValue\n heading: ClassValue\n grid: ClassValue\n gridBody: ClassValue\n gridRow: ClassValue\n cell: ClassValue\n }>\n}>(), {\n yearsPerPage: 12,\n preventDeselect: false,\n allowNonContiguousRanges: false,\n readonly: false,\n disabled: false,\n})\n\nconst emit = defineEmits<{\n 'update:start-value': [value: DateValue | undefined]\n}>()\n\nconst modelValue = defineModel<DateRange | null>()\nconst placeholderModel = defineModel<DateValue | undefined>('placeholder')\n\nconst slotFns = computed(() => yearRangePickerVariants())\n</script>\n\n<template>\n <YearRangePickerRoot\n v-model=\"modelValue\"\n v-model:placeholder=\"placeholderModel\"\n :default-value=\"defaultValue ?? undefined\"\n :default-placeholder=\"defaultPlaceholder\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :is-year-disabled=\"isYearDisabled\"\n :is-year-unavailable=\"isYearUnavailable\"\n :locale=\"locale\"\n :years-per-page=\"yearsPerPage\"\n :prevent-deselect=\"preventDeselect\"\n :allow-non-contiguous-ranges=\"allowNonContiguousRanges\"\n :maximum-years=\"maximumYears\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :calendar-label=\"calendarLabel\"\n :initial-focus=\"initialFocus\"\n :dir=\"dir\"\n :next-page=\"nextPage\"\n :prev-page=\"prevPage\"\n :fixed-date=\"fixedDate\"\n :as=\"as\"\n :as-child=\"asChild\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:start-value=\"emit('update:start-value', $event)\"\n >\n <template #default=\"{ grid }\">\n <YearRangePickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <YearRangePickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous years\"\n >\n <svg\n :class=\"composeClassName(slotFns.navButtonIcon(), props.classNames?.navButtonIcon)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </YearRangePickerPrev>\n\n <YearRangePickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <slot\n name=\"heading\"\n :heading-value=\"headingValue\"\n >\n {{ headingValue }}\n </slot>\n </YearRangePickerHeading>\n\n <YearRangePickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next years\"\n >\n <svg\n :class=\"composeClassName(slotFns.navButtonIcon(), props.classNames?.navButtonIcon)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </YearRangePickerNext>\n </YearRangePickerHeader>\n\n <YearRangePickerGrid :class=\"composeClassName(slotFns.grid(), props.classNames?.grid)\">\n <YearRangePickerGridBody :class=\"composeClassName(slotFns.gridBody(), props.classNames?.gridBody)\">\n <YearRangePickerGridRow\n v-for=\"(row, rowIndex) in grid.rows\"\n :key=\"rowIndex\"\n :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\"\n >\n <YearRangePickerCell\n v-for=\"yearValue in row\"\n :key=\"yearValue.toString()\"\n :date=\"yearValue\"\n >\n <YearRangePickerCellTrigger\n :year=\"yearValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.cell(), props.classNames?.cell)\"\n />\n </YearRangePickerCell>\n </YearRangePickerGridRow>\n </YearRangePickerGridBody>\n </YearRangePickerGrid>\n </template>\n </YearRangePickerRoot>\n</template>\n"],"mappings":""}
@@ -0,0 +1,199 @@
1
+ import { composeClassName } from "../../utils/composeClassName.js";
2
+ import { Fragment, computed, createBlock, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, renderList, renderSlot, toDisplayString, unref, useModel, withCtx } from "vue";
3
+ import { yearRangePickerVariants } from "@auronui/styles";
4
+ import { YearRangePickerCell, YearRangePickerCellTrigger, YearRangePickerGrid, YearRangePickerGridBody, YearRangePickerGridRow, YearRangePickerHeader, YearRangePickerHeading, YearRangePickerNext, YearRangePickerPrev, YearRangePickerRoot } from "reka-ui";
5
+ //#region src/components/year-range-picker/YearRangePicker.vue?vue&type=script&setup=true&lang.ts
6
+ var YearRangePicker_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
7
+ __name: "YearRangePicker",
8
+ props: /* @__PURE__ */ mergeModels({
9
+ defaultValue: {},
10
+ defaultPlaceholder: {},
11
+ minValue: {},
12
+ maxValue: {},
13
+ isYearDisabled: {},
14
+ isYearUnavailable: {},
15
+ locale: {},
16
+ yearsPerPage: { default: 12 },
17
+ preventDeselect: {
18
+ type: Boolean,
19
+ default: false
20
+ },
21
+ allowNonContiguousRanges: {
22
+ type: Boolean,
23
+ default: false
24
+ },
25
+ maximumYears: {},
26
+ readonly: {
27
+ type: Boolean,
28
+ default: false
29
+ },
30
+ disabled: {
31
+ type: Boolean,
32
+ default: false
33
+ },
34
+ calendarLabel: {},
35
+ initialFocus: { type: Boolean },
36
+ dir: {},
37
+ nextPage: {},
38
+ prevPage: {},
39
+ fixedDate: {},
40
+ as: {},
41
+ asChild: { type: Boolean },
42
+ class: { type: [
43
+ String,
44
+ Boolean,
45
+ null,
46
+ Object,
47
+ Array
48
+ ] },
49
+ classNames: {}
50
+ }, {
51
+ "modelValue": {},
52
+ "modelModifiers": {},
53
+ "placeholder": {},
54
+ "placeholderModifiers": {}
55
+ }),
56
+ emits: /* @__PURE__ */ mergeModels(["update:start-value"], ["update:modelValue", "update:placeholder"]),
57
+ setup(__props, { emit: __emit }) {
58
+ const props = __props;
59
+ const emit = __emit;
60
+ const modelValue = useModel(__props, "modelValue");
61
+ const placeholderModel = useModel(__props, "placeholder");
62
+ const slotFns = computed(() => yearRangePickerVariants());
63
+ return (_ctx, _cache) => {
64
+ return openBlock(), createBlock(unref(YearRangePickerRoot), {
65
+ modelValue: modelValue.value,
66
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => modelValue.value = $event),
67
+ placeholder: placeholderModel.value,
68
+ "onUpdate:placeholder": _cache[1] || (_cache[1] = ($event) => placeholderModel.value = $event),
69
+ "default-value": __props.defaultValue ?? void 0,
70
+ "default-placeholder": __props.defaultPlaceholder,
71
+ "min-value": __props.minValue,
72
+ "max-value": __props.maxValue,
73
+ "is-year-disabled": __props.isYearDisabled,
74
+ "is-year-unavailable": __props.isYearUnavailable,
75
+ locale: __props.locale,
76
+ "years-per-page": __props.yearsPerPage,
77
+ "prevent-deselect": __props.preventDeselect,
78
+ "allow-non-contiguous-ranges": __props.allowNonContiguousRanges,
79
+ "maximum-years": __props.maximumYears,
80
+ readonly: __props.readonly,
81
+ disabled: __props.disabled,
82
+ "calendar-label": __props.calendarLabel,
83
+ "initial-focus": __props.initialFocus,
84
+ dir: __props.dir,
85
+ "next-page": __props.nextPage,
86
+ "prev-page": __props.prevPage,
87
+ "fixed-date": __props.fixedDate,
88
+ as: __props.as,
89
+ "as-child": __props.asChild,
90
+ class: normalizeClass(unref(composeClassName)(slotFns.value.base(), props.class, props.classNames?.base)),
91
+ "onUpdate:startValue": _cache[2] || (_cache[2] = ($event) => emit("update:start-value", $event))
92
+ }, {
93
+ default: withCtx(({ grid }) => [createVNode(unref(YearRangePickerHeader), { class: normalizeClass(unref(composeClassName)(slotFns.value.header(), props.classNames?.header)) }, {
94
+ default: withCtx(() => [
95
+ createVNode(unref(YearRangePickerPrev), {
96
+ class: normalizeClass(unref(composeClassName)(slotFns.value.navButton(), props.classNames?.navButton)),
97
+ "aria-label": "Previous years"
98
+ }, {
99
+ default: withCtx(() => [(openBlock(), createElementBlock("svg", {
100
+ class: normalizeClass(unref(composeClassName)(slotFns.value.navButtonIcon(), props.classNames?.navButtonIcon)),
101
+ xmlns: "http://www.w3.org/2000/svg",
102
+ width: "16",
103
+ height: "16",
104
+ viewBox: "0 0 24 24",
105
+ fill: "none",
106
+ stroke: "currentColor",
107
+ "stroke-width": "2",
108
+ "stroke-linecap": "round",
109
+ "stroke-linejoin": "round",
110
+ "aria-hidden": "true"
111
+ }, [..._cache[3] || (_cache[3] = [createElementVNode("polyline", { points: "15 18 9 12 15 6" }, null, -1)])], 2))]),
112
+ _: 1
113
+ }, 8, ["class"]),
114
+ createVNode(unref(YearRangePickerHeading), { class: normalizeClass(unref(composeClassName)(slotFns.value.heading(), props.classNames?.heading)) }, {
115
+ default: withCtx(({ headingValue }) => [renderSlot(_ctx.$slots, "heading", { headingValue }, () => [createTextVNode(toDisplayString(headingValue), 1)])]),
116
+ _: 3
117
+ }, 8, ["class"]),
118
+ createVNode(unref(YearRangePickerNext), {
119
+ class: normalizeClass(unref(composeClassName)(slotFns.value.navButton(), props.classNames?.navButton)),
120
+ "aria-label": "Next years"
121
+ }, {
122
+ default: withCtx(() => [(openBlock(), createElementBlock("svg", {
123
+ class: normalizeClass(unref(composeClassName)(slotFns.value.navButtonIcon(), props.classNames?.navButtonIcon)),
124
+ xmlns: "http://www.w3.org/2000/svg",
125
+ width: "16",
126
+ height: "16",
127
+ viewBox: "0 0 24 24",
128
+ fill: "none",
129
+ stroke: "currentColor",
130
+ "stroke-width": "2",
131
+ "stroke-linecap": "round",
132
+ "stroke-linejoin": "round",
133
+ "aria-hidden": "true"
134
+ }, [..._cache[4] || (_cache[4] = [createElementVNode("polyline", { points: "9 18 15 12 9 6" }, null, -1)])], 2))]),
135
+ _: 1
136
+ }, 8, ["class"])
137
+ ]),
138
+ _: 3
139
+ }, 8, ["class"]), createVNode(unref(YearRangePickerGrid), { class: normalizeClass(unref(composeClassName)(slotFns.value.grid(), props.classNames?.grid)) }, {
140
+ default: withCtx(() => [createVNode(unref(YearRangePickerGridBody), { class: normalizeClass(unref(composeClassName)(slotFns.value.gridBody(), props.classNames?.gridBody)) }, {
141
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(grid.rows, (row, rowIndex) => {
142
+ return openBlock(), createBlock(unref(YearRangePickerGridRow), {
143
+ key: rowIndex,
144
+ class: normalizeClass(unref(composeClassName)(slotFns.value.gridRow(), props.classNames?.gridRow))
145
+ }, {
146
+ default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(row, (yearValue) => {
147
+ return openBlock(), createBlock(unref(YearRangePickerCell), {
148
+ key: yearValue.toString(),
149
+ date: yearValue
150
+ }, {
151
+ default: withCtx(() => [createVNode(unref(YearRangePickerCellTrigger), {
152
+ year: yearValue,
153
+ as: "button",
154
+ class: normalizeClass(unref(composeClassName)(slotFns.value.cell(), props.classNames?.cell))
155
+ }, null, 8, ["year", "class"])]),
156
+ _: 2
157
+ }, 1032, ["date"]);
158
+ }), 128))]),
159
+ _: 2
160
+ }, 1032, ["class"]);
161
+ }), 128))]),
162
+ _: 2
163
+ }, 1032, ["class"])]),
164
+ _: 2
165
+ }, 1032, ["class"])]),
166
+ _: 3
167
+ }, 8, [
168
+ "modelValue",
169
+ "placeholder",
170
+ "default-value",
171
+ "default-placeholder",
172
+ "min-value",
173
+ "max-value",
174
+ "is-year-disabled",
175
+ "is-year-unavailable",
176
+ "locale",
177
+ "years-per-page",
178
+ "prevent-deselect",
179
+ "allow-non-contiguous-ranges",
180
+ "maximum-years",
181
+ "readonly",
182
+ "disabled",
183
+ "calendar-label",
184
+ "initial-focus",
185
+ "dir",
186
+ "next-page",
187
+ "prev-page",
188
+ "fixed-date",
189
+ "as",
190
+ "as-child",
191
+ "class"
192
+ ]);
193
+ };
194
+ }
195
+ });
196
+ //#endregion
197
+ export { YearRangePicker_vue_vue_type_script_setup_true_lang_default as default };
198
+
199
+ //# sourceMappingURL=YearRangePicker.vue_vue_type_script_setup_true_lang.js.map