@auronui/vue 1.2.2 → 1.4.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 (440) hide show
  1. package/ai-rules.md +165 -1
  2. package/dist/cjs/index.cjs +18335 -13786
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/components/_shared/FieldLabel.js +7 -0
  5. package/dist/components/_shared/FieldLabel.js.map +1 -0
  6. package/dist/components/_shared/FieldLabel.vue_vue_type_script_setup_true_lang.js +38 -0
  7. package/dist/components/_shared/FieldLabel.vue_vue_type_script_setup_true_lang.js.map +1 -0
  8. package/dist/components/_shared/FormFieldHelper.js +7 -0
  9. package/dist/components/_shared/FormFieldHelper.js.map +1 -0
  10. package/dist/components/_shared/FormFieldHelper.vue_vue_type_script_setup_true_lang.js +59 -0
  11. package/dist/components/_shared/FormFieldHelper.vue_vue_type_script_setup_true_lang.js.map +1 -0
  12. package/dist/components/_shared/TimeScroller.js +7 -0
  13. package/dist/components/_shared/TimeScroller.js.map +1 -0
  14. package/dist/components/{date-time-picker/DateTimePickerTimeScroller.vue_vue_type_script_setup_true_lang.js → _shared/TimeScroller.vue_vue_type_script_setup_true_lang.js} +5 -6
  15. package/dist/components/_shared/TimeScroller.vue_vue_type_script_setup_true_lang.js.map +1 -0
  16. package/dist/components/accordion/Accordion.js.map +1 -1
  17. package/dist/components/accordion/Accordion.vue_vue_type_script_setup_true_lang.js +10 -4
  18. package/dist/components/accordion/Accordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  19. package/dist/components/accordion/AccordionItem.js.map +1 -1
  20. package/dist/components/accordion/AccordionItem.vue_vue_type_script_setup_true_lang.js +11 -2
  21. package/dist/components/accordion/AccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  22. package/dist/components/alert-dialog/AlertDialogAction.js.map +1 -1
  23. package/dist/components/alert-dialog/AlertDialogAction.vue_vue_type_script_setup_true_lang.js.map +1 -1
  24. package/dist/components/alert-dialog/AlertDialogCancel.js.map +1 -1
  25. package/dist/components/alert-dialog/AlertDialogCancel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  26. package/dist/components/autocomplete/Autocomplete.js.map +1 -1
  27. package/dist/components/autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +60 -53
  28. package/dist/components/autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  29. package/dist/components/autocomplete/AutocompleteCreateItem.js.map +1 -1
  30. package/dist/components/autocomplete/AutocompleteCreateItem.vue_vue_type_script_setup_true_lang.js +8 -2
  31. package/dist/components/autocomplete/AutocompleteCreateItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  32. package/dist/components/autocomplete/AutocompleteInput.js.map +1 -1
  33. package/dist/components/autocomplete/AutocompleteInput.vue_vue_type_script_setup_true_lang.js +17 -8
  34. package/dist/components/autocomplete/AutocompleteInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  35. package/dist/components/autocomplete/AutocompleteItem.js.map +1 -1
  36. package/dist/components/autocomplete/AutocompleteItem.vue_vue_type_script_setup_true_lang.js +4 -2
  37. package/dist/components/autocomplete/AutocompleteItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  38. package/dist/components/avatar/AvatarGroup.js.map +1 -1
  39. package/dist/components/avatar/AvatarGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  40. package/dist/components/button/Button.js.map +1 -1
  41. package/dist/components/button/Button.vue_vue_type_script_setup_true_lang.js +10 -4
  42. package/dist/components/button/Button.vue_vue_type_script_setup_true_lang.js.map +1 -1
  43. package/dist/components/button/ButtonGroup.js.map +1 -1
  44. package/dist/components/button/ButtonGroup.vue_vue_type_script_setup_true_lang.js +10 -4
  45. package/dist/components/button/ButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  46. package/dist/components/button/CloseButton.js.map +1 -1
  47. package/dist/components/button/CloseButton.vue_vue_type_script_setup_true_lang.js +10 -4
  48. package/dist/components/button/CloseButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  49. package/dist/components/button/ToggleButton.js.map +1 -1
  50. package/dist/components/button/ToggleButton.vue_vue_type_script_setup_true_lang.js +17 -6
  51. package/dist/components/button/ToggleButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  52. package/dist/components/button/ToggleButtonGroup.js.map +1 -1
  53. package/dist/components/button/ToggleButtonGroup.vue_vue_type_script_setup_true_lang.js +10 -4
  54. package/dist/components/button/ToggleButtonGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  55. package/dist/components/calendar/Calendar.js.map +1 -1
  56. package/dist/components/calendar/Calendar.vue_vue_type_script_setup_true_lang.js +21 -10
  57. package/dist/components/calendar/Calendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  58. package/dist/components/calendar-year-picker/CalendarYearPicker.js.map +1 -1
  59. package/dist/components/calendar-year-picker/CalendarYearPicker.vue_vue_type_script_setup_true_lang.js +15 -4
  60. package/dist/components/calendar-year-picker/CalendarYearPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  61. package/dist/components/checkbox/Checkbox.js.map +1 -1
  62. package/dist/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +16 -5
  63. package/dist/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  64. package/dist/components/checkbox/CheckboxGroup.js.map +1 -1
  65. package/dist/components/checkbox/CheckboxGroup.vue_vue_type_script_setup_true_lang.js +10 -4
  66. package/dist/components/checkbox/CheckboxGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  67. package/dist/components/chip/Chip.js.map +1 -1
  68. package/dist/components/chip/Chip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  69. package/dist/components/collapsible/Collapsible.js.map +1 -1
  70. package/dist/components/collapsible/Collapsible.vue_vue_type_script_setup_true_lang.js +8 -2
  71. package/dist/components/collapsible/Collapsible.vue_vue_type_script_setup_true_lang.js.map +1 -1
  72. package/dist/components/collapsible/CollapsibleGroup.js.map +1 -1
  73. package/dist/components/collapsible/CollapsibleGroup.vue_vue_type_script_setup_true_lang.js +2 -2
  74. package/dist/components/collapsible/CollapsibleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  75. package/dist/components/color-area/ColorArea.js.map +1 -1
  76. package/dist/components/color-area/ColorArea.vue_vue_type_script_setup_true_lang.js +15 -4
  77. package/dist/components/color-area/ColorArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  78. package/dist/components/color-field/ColorField.js.map +1 -1
  79. package/dist/components/color-field/ColorField.vue_vue_type_script_setup_true_lang.js +22 -6
  80. package/dist/components/color-field/ColorField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  81. package/dist/components/color-input-group/ColorInputGroup.js.map +1 -1
  82. package/dist/components/color-input-group/ColorInputGroup.vue_vue_type_script_setup_true_lang.js +22 -6
  83. package/dist/components/color-input-group/ColorInputGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  84. package/dist/components/color-picker/ColorPicker.js.map +1 -1
  85. package/dist/components/color-picker/ColorPicker.vue_vue_type_script_setup_true_lang.js +15 -9
  86. package/dist/components/color-picker/ColorPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  87. package/dist/components/color-slider/ColorSlider.js.map +1 -1
  88. package/dist/components/color-slider/ColorSlider.vue_vue_type_script_setup_true_lang.js +15 -4
  89. package/dist/components/color-slider/ColorSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  90. package/dist/components/color-swatch-picker/ColorSwatchPicker.js.map +1 -1
  91. package/dist/components/color-swatch-picker/ColorSwatchPicker.vue_vue_type_script_setup_true_lang.js +15 -4
  92. package/dist/components/color-swatch-picker/ColorSwatchPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  93. package/dist/components/combo-box/ComboBoxInput.js.map +1 -1
  94. package/dist/components/combo-box/ComboBoxInput.vue_vue_type_script_setup_true_lang.js +7 -1
  95. package/dist/components/combo-box/ComboBoxInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  96. package/dist/components/combo-box/ComboBoxItem.js.map +1 -1
  97. package/dist/components/combo-box/ComboBoxItem.vue_vue_type_script_setup_true_lang.js +4 -2
  98. package/dist/components/combo-box/ComboBoxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  99. package/dist/components/context-menu/ContextMenu.js +7 -0
  100. package/dist/components/context-menu/ContextMenu.js.map +1 -0
  101. package/dist/components/context-menu/ContextMenu.vue_vue_type_script_setup_true_lang.js +38 -0
  102. package/dist/components/context-menu/ContextMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  103. package/dist/components/context-menu/ContextMenuCheckboxItem.js +7 -0
  104. package/dist/components/context-menu/ContextMenuCheckboxItem.js.map +1 -0
  105. package/dist/components/context-menu/ContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang.js +91 -0
  106. package/dist/components/context-menu/ContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  107. package/dist/components/context-menu/ContextMenuContent.js +7 -0
  108. package/dist/components/context-menu/ContextMenuContent.js.map +1 -0
  109. package/dist/components/context-menu/ContextMenuContent.vue_vue_type_script_setup_true_lang.js +135 -0
  110. package/dist/components/context-menu/ContextMenuContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  111. package/dist/components/context-menu/ContextMenuItem.js +7 -0
  112. package/dist/components/context-menu/ContextMenuItem.js.map +1 -0
  113. package/dist/components/context-menu/ContextMenuItem.vue_vue_type_script_setup_true_lang.js +74 -0
  114. package/dist/components/context-menu/ContextMenuItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  115. package/dist/components/context-menu/ContextMenuRadioGroup.js +7 -0
  116. package/dist/components/context-menu/ContextMenuRadioGroup.js.map +1 -0
  117. package/dist/components/context-menu/ContextMenuRadioGroup.vue_vue_type_script_setup_true_lang.js +40 -0
  118. package/dist/components/context-menu/ContextMenuRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  119. package/dist/components/context-menu/ContextMenuRadioItem.js +7 -0
  120. package/dist/components/context-menu/ContextMenuRadioItem.js.map +1 -0
  121. package/dist/components/context-menu/ContextMenuRadioItem.vue_vue_type_script_setup_true_lang.js +77 -0
  122. package/dist/components/context-menu/ContextMenuRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  123. package/dist/components/context-menu/ContextMenuSection.js +7 -0
  124. package/dist/components/context-menu/ContextMenuSection.js.map +1 -0
  125. package/dist/components/context-menu/ContextMenuSection.vue_vue_type_script_setup_true_lang.js +55 -0
  126. package/dist/components/context-menu/ContextMenuSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
  127. package/dist/components/context-menu/ContextMenuSub.js +7 -0
  128. package/dist/components/context-menu/ContextMenuSub.js.map +1 -0
  129. package/dist/components/context-menu/ContextMenuSub.vue_vue_type_script_setup_true_lang.js +35 -0
  130. package/dist/components/context-menu/ContextMenuSub.vue_vue_type_script_setup_true_lang.js.map +1 -0
  131. package/dist/components/context-menu/ContextMenuSubContent.js +7 -0
  132. package/dist/components/context-menu/ContextMenuSubContent.js.map +1 -0
  133. package/dist/components/context-menu/ContextMenuSubContent.vue_vue_type_script_setup_true_lang.js +155 -0
  134. package/dist/components/context-menu/ContextMenuSubContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  135. package/dist/components/context-menu/ContextMenuSubTrigger.js +7 -0
  136. package/dist/components/context-menu/ContextMenuSubTrigger.js.map +1 -0
  137. package/dist/components/context-menu/ContextMenuSubTrigger.vue_vue_type_script_setup_true_lang.js +66 -0
  138. package/dist/components/context-menu/ContextMenuSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  139. package/dist/components/context-menu/ContextMenuTrigger.js +7 -0
  140. package/dist/components/context-menu/ContextMenuTrigger.js.map +1 -0
  141. package/dist/components/context-menu/ContextMenuTrigger.vue_vue_type_script_setup_true_lang.js +44 -0
  142. package/dist/components/context-menu/ContextMenuTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  143. package/dist/components/date-input/DateInput.js.map +1 -1
  144. package/dist/components/date-input/DateInput.vue_vue_type_script_setup_true_lang.js +61 -60
  145. package/dist/components/date-input/DateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  146. package/dist/components/date-range-field/DateRangeField.js.map +1 -1
  147. package/dist/components/date-range-field/DateRangeField.vue_vue_type_script_setup_true_lang.js +61 -61
  148. package/dist/components/date-range-field/DateRangeField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  149. package/dist/components/date-time-picker/DateTimePicker.js.map +1 -1
  150. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +13 -13
  151. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  152. package/dist/components/dropdown/DropdownCheckboxItem.js.map +1 -1
  153. package/dist/components/dropdown/DropdownCheckboxItem.vue_vue_type_script_setup_true_lang.js +4 -2
  154. package/dist/components/dropdown/DropdownCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  155. package/dist/components/dropdown/DropdownItem.js.map +1 -1
  156. package/dist/components/dropdown/DropdownItem.vue_vue_type_script_setup_true_lang.js +4 -2
  157. package/dist/components/dropdown/DropdownItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  158. package/dist/components/dropdown/DropdownRadioItem.js.map +1 -1
  159. package/dist/components/dropdown/DropdownRadioItem.vue_vue_type_script_setup_true_lang.js +4 -2
  160. package/dist/components/dropdown/DropdownRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  161. package/dist/components/dropdown/DropdownSubTrigger.js.map +1 -1
  162. package/dist/components/dropdown/DropdownSubTrigger.vue_vue_type_script_setup_true_lang.js +4 -2
  163. package/dist/components/dropdown/DropdownSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  164. package/dist/components/dropdown/DropdownTrigger.js.map +1 -1
  165. package/dist/components/dropdown/DropdownTrigger.vue_vue_type_script_setup_true_lang.js +7 -1
  166. package/dist/components/dropdown/DropdownTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  167. package/dist/components/editable/Editable.js +7 -0
  168. package/dist/components/editable/Editable.js.map +1 -0
  169. package/dist/components/editable/Editable.vue_vue_type_script_setup_true_lang.js +128 -0
  170. package/dist/components/editable/Editable.vue_vue_type_script_setup_true_lang.js.map +1 -0
  171. package/dist/components/editable/EditableArea.js +7 -0
  172. package/dist/components/editable/EditableArea.js.map +1 -0
  173. package/dist/components/editable/EditableArea.vue_vue_type_script_setup_true_lang.js +41 -0
  174. package/dist/components/editable/EditableArea.vue_vue_type_script_setup_true_lang.js.map +1 -0
  175. package/dist/components/editable/EditableCancelTrigger.js +7 -0
  176. package/dist/components/editable/EditableCancelTrigger.js.map +1 -0
  177. package/dist/components/editable/EditableCancelTrigger.vue_vue_type_script_setup_true_lang.js +63 -0
  178. package/dist/components/editable/EditableCancelTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  179. package/dist/components/editable/EditableEditTrigger.js +7 -0
  180. package/dist/components/editable/EditableEditTrigger.js.map +1 -0
  181. package/dist/components/editable/EditableEditTrigger.vue_vue_type_script_setup_true_lang.js +53 -0
  182. package/dist/components/editable/EditableEditTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  183. package/dist/components/editable/EditableInput.js +7 -0
  184. package/dist/components/editable/EditableInput.js.map +1 -0
  185. package/dist/components/editable/EditableInput.vue_vue_type_script_setup_true_lang.js +38 -0
  186. package/dist/components/editable/EditableInput.vue_vue_type_script_setup_true_lang.js.map +1 -0
  187. package/dist/components/editable/EditablePreview.js +7 -0
  188. package/dist/components/editable/EditablePreview.js.map +1 -0
  189. package/dist/components/editable/EditablePreview.vue_vue_type_script_setup_true_lang.js +38 -0
  190. package/dist/components/editable/EditablePreview.vue_vue_type_script_setup_true_lang.js.map +1 -0
  191. package/dist/components/editable/EditableSubmitTrigger.js +7 -0
  192. package/dist/components/editable/EditableSubmitTrigger.js.map +1 -0
  193. package/dist/components/editable/EditableSubmitTrigger.vue_vue_type_script_setup_true_lang.js +53 -0
  194. package/dist/components/editable/EditableSubmitTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  195. package/dist/components/fieldset/Fieldset.js.map +1 -1
  196. package/dist/components/fieldset/Fieldset.vue_vue_type_script_setup_true_lang.js +8 -2
  197. package/dist/components/fieldset/Fieldset.vue_vue_type_script_setup_true_lang.js.map +1 -1
  198. package/dist/components/form/Form.js.map +1 -1
  199. package/dist/components/form/Form.vue_vue_type_script_setup_true_lang.js +32 -156
  200. package/dist/components/form/Form.vue_vue_type_script_setup_true_lang.js.map +1 -1
  201. package/dist/components/form/FormField.js.map +1 -1
  202. package/dist/components/form/FormField.vue_vue_type_script_setup_true_lang.js +44 -23
  203. package/dist/components/form/FormField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  204. package/dist/components/form/form.context.js.map +1 -1
  205. package/dist/components/form/form.state.js +166 -0
  206. package/dist/components/form/form.state.js.map +1 -0
  207. package/dist/components/form/useField.js +112 -0
  208. package/dist/components/form/useField.js.map +1 -0
  209. package/dist/components/form/useForm.js +17 -0
  210. package/dist/components/form/useForm.js.map +1 -0
  211. package/dist/components/hover-card/HoverCard.js +7 -0
  212. package/dist/components/hover-card/HoverCard.js.map +1 -0
  213. package/dist/components/hover-card/HoverCard.vue_vue_type_script_lang.js +52 -0
  214. package/dist/components/hover-card/HoverCard.vue_vue_type_script_lang.js.map +1 -0
  215. package/dist/components/hover-card/HoverCardArrow.js +7 -0
  216. package/dist/components/hover-card/HoverCardArrow.js.map +1 -0
  217. package/dist/components/hover-card/HoverCardArrow.vue_vue_type_script_setup_true_lang.js +35 -0
  218. package/dist/components/hover-card/HoverCardArrow.vue_vue_type_script_setup_true_lang.js.map +1 -0
  219. package/dist/components/hover-card/HoverCardContent.js +7 -0
  220. package/dist/components/hover-card/HoverCardContent.js.map +1 -0
  221. package/dist/components/hover-card/HoverCardContent.vue_vue_type_script_setup_true_lang.js +104 -0
  222. package/dist/components/hover-card/HoverCardContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  223. package/dist/components/hover-card/HoverCardTrigger.js +7 -0
  224. package/dist/components/hover-card/HoverCardTrigger.js.map +1 -0
  225. package/dist/components/hover-card/HoverCardTrigger.vue_vue_type_script_setup_true_lang.js +26 -0
  226. package/dist/components/hover-card/HoverCardTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  227. package/dist/components/input/Input.js.map +1 -1
  228. package/dist/components/input/Input.vue_vue_type_script_setup_true_lang.js +76 -71
  229. package/dist/components/input/Input.vue_vue_type_script_setup_true_lang.js.map +1 -1
  230. package/dist/components/input-otp/InputOTP.js.map +1 -1
  231. package/dist/components/input-otp/InputOTP.vue_vue_type_script_setup_true_lang.js +15 -4
  232. package/dist/components/input-otp/InputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -1
  233. package/dist/components/link/Link.js.map +1 -1
  234. package/dist/components/link/Link.vue_vue_type_script_setup_true_lang.js +8 -2
  235. package/dist/components/link/Link.vue_vue_type_script_setup_true_lang.js.map +1 -1
  236. package/dist/components/list-box/ListBox.js.map +1 -1
  237. package/dist/components/list-box/ListBox.vue_vue_type_script_setup_true_lang.js +7 -1
  238. package/dist/components/list-box/ListBox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  239. package/dist/components/menubar/Menubar.js +7 -0
  240. package/dist/components/menubar/Menubar.js.map +1 -0
  241. package/dist/components/menubar/Menubar.vue_vue_type_script_setup_true_lang.js +58 -0
  242. package/dist/components/menubar/Menubar.vue_vue_type_script_setup_true_lang.js.map +1 -0
  243. package/dist/components/menubar/MenubarCheckboxItem.js +7 -0
  244. package/dist/components/menubar/MenubarCheckboxItem.js.map +1 -0
  245. package/dist/components/menubar/MenubarCheckboxItem.vue_vue_type_script_setup_true_lang.js +91 -0
  246. package/dist/components/menubar/MenubarCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  247. package/dist/components/menubar/MenubarContent.js +7 -0
  248. package/dist/components/menubar/MenubarContent.js.map +1 -0
  249. package/dist/components/menubar/MenubarContent.vue_vue_type_script_setup_true_lang.js +162 -0
  250. package/dist/components/menubar/MenubarContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  251. package/dist/components/menubar/MenubarItem.js +7 -0
  252. package/dist/components/menubar/MenubarItem.js.map +1 -0
  253. package/dist/components/menubar/MenubarItem.vue_vue_type_script_setup_true_lang.js +74 -0
  254. package/dist/components/menubar/MenubarItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  255. package/dist/components/menubar/MenubarMenu.js +7 -0
  256. package/dist/components/menubar/MenubarMenu.js.map +1 -0
  257. package/dist/components/menubar/MenubarMenu.vue_vue_type_script_setup_true_lang.js +20 -0
  258. package/dist/components/menubar/MenubarMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  259. package/dist/components/menubar/MenubarRadioGroup.js +7 -0
  260. package/dist/components/menubar/MenubarRadioGroup.js.map +1 -0
  261. package/dist/components/menubar/MenubarRadioGroup.vue_vue_type_script_setup_true_lang.js +40 -0
  262. package/dist/components/menubar/MenubarRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -0
  263. package/dist/components/menubar/MenubarRadioItem.js +7 -0
  264. package/dist/components/menubar/MenubarRadioItem.js.map +1 -0
  265. package/dist/components/menubar/MenubarRadioItem.vue_vue_type_script_setup_true_lang.js +77 -0
  266. package/dist/components/menubar/MenubarRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  267. package/dist/components/menubar/MenubarSection.js +7 -0
  268. package/dist/components/menubar/MenubarSection.js.map +1 -0
  269. package/dist/components/menubar/MenubarSection.vue_vue_type_script_setup_true_lang.js +55 -0
  270. package/dist/components/menubar/MenubarSection.vue_vue_type_script_setup_true_lang.js.map +1 -0
  271. package/dist/components/menubar/MenubarSub.js +7 -0
  272. package/dist/components/menubar/MenubarSub.js.map +1 -0
  273. package/dist/components/menubar/MenubarSub.vue_vue_type_script_setup_true_lang.js +35 -0
  274. package/dist/components/menubar/MenubarSub.vue_vue_type_script_setup_true_lang.js.map +1 -0
  275. package/dist/components/menubar/MenubarSubContent.js +7 -0
  276. package/dist/components/menubar/MenubarSubContent.js.map +1 -0
  277. package/dist/components/menubar/MenubarSubContent.vue_vue_type_script_setup_true_lang.js +155 -0
  278. package/dist/components/menubar/MenubarSubContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  279. package/dist/components/menubar/MenubarSubTrigger.js +7 -0
  280. package/dist/components/menubar/MenubarSubTrigger.js.map +1 -0
  281. package/dist/components/menubar/MenubarSubTrigger.vue_vue_type_script_setup_true_lang.js +66 -0
  282. package/dist/components/menubar/MenubarSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  283. package/dist/components/menubar/MenubarTrigger.js +7 -0
  284. package/dist/components/menubar/MenubarTrigger.js.map +1 -0
  285. package/dist/components/menubar/MenubarTrigger.vue_vue_type_script_setup_true_lang.js +59 -0
  286. package/dist/components/menubar/MenubarTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  287. package/dist/components/meter/Meter.js.map +1 -1
  288. package/dist/components/meter/Meter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  289. package/dist/components/month-picker/MonthPicker.js +7 -0
  290. package/dist/components/month-picker/MonthPicker.js.map +1 -0
  291. package/dist/components/month-picker/MonthPicker.vue_vue_type_script_setup_true_lang.js +196 -0
  292. package/dist/components/month-picker/MonthPicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  293. package/dist/components/month-range-picker/MonthRangePicker.js +7 -0
  294. package/dist/components/month-range-picker/MonthRangePicker.js.map +1 -0
  295. package/dist/components/month-range-picker/MonthRangePicker.vue_vue_type_script_setup_true_lang.js +207 -0
  296. package/dist/components/month-range-picker/MonthRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  297. package/dist/components/navigation-menu/NavigationMenu.js +7 -0
  298. package/dist/components/navigation-menu/NavigationMenu.js.map +1 -0
  299. package/dist/components/navigation-menu/NavigationMenu.vue_vue_type_script_setup_true_lang.js +85 -0
  300. package/dist/components/navigation-menu/NavigationMenu.vue_vue_type_script_setup_true_lang.js.map +1 -0
  301. package/dist/components/navigation-menu/NavigationMenuContent.js +7 -0
  302. package/dist/components/navigation-menu/NavigationMenuContent.js.map +1 -0
  303. package/dist/components/navigation-menu/NavigationMenuContent.vue_vue_type_script_setup_true_lang.js +70 -0
  304. package/dist/components/navigation-menu/NavigationMenuContent.vue_vue_type_script_setup_true_lang.js.map +1 -0
  305. package/dist/components/navigation-menu/NavigationMenuIndicator.js +7 -0
  306. package/dist/components/navigation-menu/NavigationMenuIndicator.js.map +1 -0
  307. package/dist/components/navigation-menu/NavigationMenuIndicator.vue_vue_type_script_setup_true_lang.js +53 -0
  308. package/dist/components/navigation-menu/NavigationMenuIndicator.vue_vue_type_script_setup_true_lang.js.map +1 -0
  309. package/dist/components/navigation-menu/NavigationMenuItem.js +7 -0
  310. package/dist/components/navigation-menu/NavigationMenuItem.js.map +1 -0
  311. package/dist/components/navigation-menu/NavigationMenuItem.vue_vue_type_script_setup_true_lang.js +20 -0
  312. package/dist/components/navigation-menu/NavigationMenuItem.vue_vue_type_script_setup_true_lang.js.map +1 -0
  313. package/dist/components/navigation-menu/NavigationMenuLink.js +7 -0
  314. package/dist/components/navigation-menu/NavigationMenuLink.js.map +1 -0
  315. package/dist/components/navigation-menu/NavigationMenuLink.vue_vue_type_script_setup_true_lang.js +70 -0
  316. package/dist/components/navigation-menu/NavigationMenuLink.vue_vue_type_script_setup_true_lang.js.map +1 -0
  317. package/dist/components/navigation-menu/NavigationMenuList.js +7 -0
  318. package/dist/components/navigation-menu/NavigationMenuList.js.map +1 -0
  319. package/dist/components/navigation-menu/NavigationMenuList.vue_vue_type_script_setup_true_lang.js +47 -0
  320. package/dist/components/navigation-menu/NavigationMenuList.vue_vue_type_script_setup_true_lang.js.map +1 -0
  321. package/dist/components/navigation-menu/NavigationMenuSub.js +7 -0
  322. package/dist/components/navigation-menu/NavigationMenuSub.js.map +1 -0
  323. package/dist/components/navigation-menu/NavigationMenuSub.vue_vue_type_script_setup_true_lang.js +37 -0
  324. package/dist/components/navigation-menu/NavigationMenuSub.vue_vue_type_script_setup_true_lang.js.map +1 -0
  325. package/dist/components/navigation-menu/NavigationMenuTrigger.js +7 -0
  326. package/dist/components/navigation-menu/NavigationMenuTrigger.js.map +1 -0
  327. package/dist/components/navigation-menu/NavigationMenuTrigger.vue_vue_type_script_setup_true_lang.js +72 -0
  328. package/dist/components/navigation-menu/NavigationMenuTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -0
  329. package/dist/components/navigation-menu/NavigationMenuViewport.js +7 -0
  330. package/dist/components/navigation-menu/NavigationMenuViewport.js.map +1 -0
  331. package/dist/components/navigation-menu/NavigationMenuViewport.vue_vue_type_script_setup_true_lang.js +53 -0
  332. package/dist/components/navigation-menu/NavigationMenuViewport.vue_vue_type_script_setup_true_lang.js.map +1 -0
  333. package/dist/components/number-field/NumberField.js.map +1 -1
  334. package/dist/components/number-field/NumberField.vue_vue_type_script_setup_true_lang.js +19 -5
  335. package/dist/components/number-field/NumberField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  336. package/dist/components/pagination/Pagination.js.map +1 -1
  337. package/dist/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js +9 -3
  338. package/dist/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  339. package/dist/components/popover/PopoverClose.js.map +1 -1
  340. package/dist/components/popover/PopoverClose.vue_vue_type_script_setup_true_lang.js +11 -2
  341. package/dist/components/popover/PopoverClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  342. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  343. package/dist/components/progress-bar/ProgressBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  344. package/dist/components/progress-circle/ProgressCircle.js.map +1 -1
  345. package/dist/components/progress-circle/ProgressCircle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  346. package/dist/components/radio/Radio.js.map +1 -1
  347. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js +16 -5
  348. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  349. package/dist/components/radio/RadioGroup.js.map +1 -1
  350. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js +18 -7
  351. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  352. package/dist/components/range-calendar/RangeCalendar.js.map +1 -1
  353. package/dist/components/range-calendar/RangeCalendar.vue_vue_type_script_setup_true_lang.js +19 -8
  354. package/dist/components/range-calendar/RangeCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  355. package/dist/components/select/Select.js.map +1 -1
  356. package/dist/components/select/Select.vue_vue_type_script_setup_true_lang.js +55 -51
  357. package/dist/components/select/Select.vue_vue_type_script_setup_true_lang.js.map +1 -1
  358. package/dist/components/select/SelectItem.js.map +1 -1
  359. package/dist/components/select/SelectItem.vue_vue_type_script_setup_true_lang.js +4 -2
  360. package/dist/components/select/SelectItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  361. package/dist/components/select/SelectTrigger.js.map +1 -1
  362. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js +18 -9
  363. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  364. package/dist/components/slider/Slider.js.map +1 -1
  365. package/dist/components/slider/Slider.vue_vue_type_script_setup_true_lang.js +16 -5
  366. package/dist/components/slider/Slider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  367. package/dist/components/splitter/SplitterResizeHandle.js.map +1 -1
  368. package/dist/components/splitter/SplitterResizeHandle.vue_vue_type_script_setup_true_lang.js +8 -2
  369. package/dist/components/splitter/SplitterResizeHandle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  370. package/dist/components/switch/Switch.js.map +1 -1
  371. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js +16 -5
  372. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  373. package/dist/components/switch/SwitchGroup.js.map +1 -1
  374. package/dist/components/switch/SwitchGroup.vue_vue_type_script_setup_true_lang.js +10 -4
  375. package/dist/components/switch/SwitchGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  376. package/dist/components/table/Table.js.map +1 -1
  377. package/dist/components/table/Table.vue_vue_type_script_setup_true_lang.js.map +1 -1
  378. package/dist/components/table/TableBody.js.map +1 -1
  379. package/dist/components/table/TableBody.vue_vue_type_script_setup_true_lang.js.map +1 -1
  380. package/dist/components/table/TableCheckboxCell.js.map +1 -1
  381. package/dist/components/table/TableCheckboxCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  382. package/dist/components/table/TableVirtualBody.js.map +1 -1
  383. package/dist/components/table/TableVirtualBody.vue_vue_type_script_setup_true_lang.js.map +1 -1
  384. package/dist/components/table/table.context.js.map +1 -1
  385. package/dist/components/tabs/Tab.js.map +1 -1
  386. package/dist/components/tabs/Tab.vue_vue_type_script_setup_true_lang.js +11 -2
  387. package/dist/components/tabs/Tab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  388. package/dist/components/tabs/TabList.js.map +1 -1
  389. package/dist/components/tabs/TabList.vue_vue_type_script_setup_true_lang.js +2 -2
  390. package/dist/components/tabs/TabList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  391. package/dist/components/tabs/Tabs.js.map +1 -1
  392. package/dist/components/tabs/Tabs.vue_vue_type_script_setup_true_lang.js +2 -2
  393. package/dist/components/tabs/Tabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  394. package/dist/components/textarea/Textarea.js.map +1 -1
  395. package/dist/components/textarea/Textarea.vue_vue_type_script_setup_true_lang.js +70 -65
  396. package/dist/components/textarea/Textarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  397. package/dist/components/time-field/TimeField.js.map +1 -1
  398. package/dist/components/time-field/TimeField.vue_vue_type_script_setup_true_lang.js +61 -60
  399. package/dist/components/time-field/TimeField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  400. package/dist/components/time-picker/TimePicker.js +7 -0
  401. package/dist/components/time-picker/TimePicker.js.map +1 -0
  402. package/dist/components/time-picker/TimePicker.vue_vue_type_script_setup_true_lang.js +320 -0
  403. package/dist/components/time-picker/TimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  404. package/dist/components/time-range-field/TimeRangeField.js +7 -0
  405. package/dist/components/time-range-field/TimeRangeField.js.map +1 -0
  406. package/dist/components/time-range-field/TimeRangeField.vue_vue_type_script_setup_true_lang.js +364 -0
  407. package/dist/components/time-range-field/TimeRangeField.vue_vue_type_script_setup_true_lang.js.map +1 -0
  408. package/dist/components/toolbar/ToolbarButton.js.map +1 -1
  409. package/dist/components/toolbar/ToolbarButton.vue_vue_type_script_setup_true_lang.js +11 -2
  410. package/dist/components/toolbar/ToolbarButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  411. package/dist/components/toolbar/ToolbarToggleGroup.js.map +1 -1
  412. package/dist/components/toolbar/ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js +23 -6
  413. package/dist/components/toolbar/ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  414. package/dist/components/toolbar/ToolbarToggleItem.js.map +1 -1
  415. package/dist/components/toolbar/ToolbarToggleItem.vue_vue_type_script_setup_true_lang.js +11 -2
  416. package/dist/components/toolbar/ToolbarToggleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  417. package/dist/components/tooltip/TooltipProvider.js.map +1 -1
  418. package/dist/components/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js +8 -2
  419. package/dist/components/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  420. package/dist/components/tree/Tree.js.map +1 -1
  421. package/dist/components/tree/Tree.vue_vue_type_script_setup_true_lang.js +11 -2
  422. package/dist/components/tree/Tree.vue_vue_type_script_setup_true_lang.js.map +1 -1
  423. package/dist/components/year-range-picker/YearRangePicker.js +7 -0
  424. package/dist/components/year-range-picker/YearRangePicker.js.map +1 -0
  425. package/dist/components/year-range-picker/YearRangePicker.vue_vue_type_script_setup_true_lang.js +210 -0
  426. package/dist/components/year-range-picker/YearRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  427. package/dist/composables/useDeprecatedBooleanProp.js +43 -0
  428. package/dist/composables/useDeprecatedBooleanProp.js.map +1 -0
  429. package/dist/composables/useFormField.js +50 -0
  430. package/dist/composables/useFormField.js.map +1 -0
  431. package/dist/index.d.ts +5855 -3093
  432. package/dist/index.js +51 -1
  433. package/dist/packages/styles/dist/components/hover-card/hover-card.styles.js +10 -0
  434. package/dist/packages/styles/dist/components/hover-card/hover-card.styles.js.map +1 -0
  435. package/dist/utils/warnDeprecated.js +2 -1
  436. package/dist/utils/warnDeprecated.js.map +1 -1
  437. package/package.json +4 -4
  438. package/dist/components/date-time-picker/DateTimePickerTimeScroller.js +0 -7
  439. package/dist/components/date-time-picker/DateTimePickerTimeScroller.js.map +0 -1
  440. package/dist/components/date-time-picker/DateTimePickerTimeScroller.vue_vue_type_script_setup_true_lang.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { composeClassName } from "../../utils/composeClassName.js";
2
+ import { useDeprecatedBooleanProp } from "../../composables/useDeprecatedBooleanProp.js";
2
3
  import { useRadioGroupProvide } from "./radio-group.context.js";
3
4
  import Radio_default from "./Radio.js";
4
5
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, defineComponent, normalizeClass, openBlock, renderList, renderSlot, toDisplayString, toRef, unref, withCtx } from "vue";
@@ -18,9 +19,13 @@ var RadioGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
18
19
  __name: "RadioGroup",
19
20
  props: {
20
21
  variant: { default: "primary" },
22
+ isDisabled: {
23
+ type: Boolean,
24
+ default: void 0
25
+ },
21
26
  disabled: {
22
27
  type: Boolean,
23
- default: false
28
+ default: void 0
24
29
  },
25
30
  isInvalid: {
26
31
  type: Boolean,
@@ -43,9 +48,13 @@ var RadioGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
43
48
  default: false
44
49
  },
45
50
  as: { default: void 0 },
51
+ isRequired: {
52
+ type: Boolean,
53
+ default: void 0
54
+ },
46
55
  required: {
47
56
  type: Boolean,
48
- default: false
57
+ default: void 0
49
58
  },
50
59
  class: {},
51
60
  items: {}
@@ -54,9 +63,11 @@ var RadioGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
54
63
  setup(__props, { emit: __emit }) {
55
64
  const props = __props;
56
65
  const emit = __emit;
66
+ const isDisabled = useDeprecatedBooleanProp("RadioGroup", "isDisabled", () => props.isDisabled, "disabled", () => props.disabled);
67
+ const isRequired = useDeprecatedBooleanProp("RadioGroup", "isRequired", () => props.isRequired, "required", () => props.required);
57
68
  useRadioGroupProvide({
58
69
  variant: toRef(props, "variant"),
59
- disabled: toRef(props, "disabled"),
70
+ disabled: isDisabled,
60
71
  isInvalid: toRef(props, "isInvalid")
61
72
  });
62
73
  const labelId = `radio-group-label-${Math.random().toString(36).slice(2, 8)}`;
@@ -65,7 +76,7 @@ var RadioGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
65
76
  return openBlock(), createBlock(unref(RadioGroupRoot), {
66
77
  "model-value": props.modelValue,
67
78
  "default-value": props.defaultValue,
68
- disabled: props.disabled,
79
+ disabled: unref(isDisabled),
69
80
  "aria-invalid": props.isInvalid || void 0,
70
81
  name: props.name,
71
82
  orientation: props.orientation,
@@ -73,7 +84,7 @@ var RadioGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
73
84
  loop: props.loop,
74
85
  "as-child": props.asChild,
75
86
  as: props.as,
76
- required: props.required,
87
+ required: unref(isRequired),
77
88
  "aria-labelledby": props.label ? labelId : void 0,
78
89
  class: normalizeClass(unref(composeClassName)(groupClasses.value, props.class)),
79
90
  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $event != null && emit("update:modelValue", String($event)))
@@ -88,11 +99,11 @@ var RadioGroup_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
88
99
  return openBlock(), createBlock(Radio_default, {
89
100
  key: item.value,
90
101
  value: item.value,
91
- disabled: item.disabled
102
+ "is-disabled": item.disabled
92
103
  }, {
93
104
  default: withCtx(() => [createTextVNode(toDisplayString(item.label ?? item.value), 1)]),
94
105
  _: 2
95
- }, 1032, ["value", "disabled"]);
106
+ }, 1032, ["value", "is-disabled"]);
96
107
  }), 128)) : renderSlot(_ctx.$slots, "default", { key: 1 })]),
97
108
  props.isInvalid && props.errorMessage ? (openBlock(), createElementBlock("span", _hoisted_2, toDisplayString(props.errorMessage), 1)) : props.description ? (openBlock(), createElementBlock("span", _hoisted_3, toDisplayString(props.description), 1)) : createCommentVNode("", true)
98
109
  ]),
@@ -1 +1 @@
1
- {"version":3,"file":"RadioGroup.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/radio/RadioGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRef } from 'vue'\nimport { RadioGroupRoot } from 'reka-ui'\nimport { radioGroupVariants, type RadioGroupVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useRadioGroupProvide } from './radio-group.context'\nimport Radio from './Radio.vue'\n\ntype RadioShorthandItem = { value: string; label?: string; disabled?: boolean }\n\nconst props = withDefaults(defineProps<{\n variant?: RadioGroupVariants['variant']\n disabled?: boolean\n isInvalid?: boolean\n modelValue?: string\n defaultValue?: string\n name?: string\n orientation?: 'horizontal' | 'vertical'\n label?: string\n description?: string\n errorMessage?: string\n /** Text direction forwarded to RadioGroupRoot. */\n dir?: 'ltr' | 'rtl'\n /** Whether keyboard navigation loops from last to first item. */\n loop?: boolean\n /** Whether RadioGroupRoot renders as a child element. */\n asChild?: boolean\n /** Element or component to render RadioGroupRoot as. */\n as?: string\n /** Whether the radio group is required. */\n required?: boolean\n class?: string\n /** Shorthand API: render radio options from an array instead of the compound slot API */\n items?: RadioShorthandItem[]\n}>(), {\n variant: 'primary',\n disabled: false,\n isInvalid: false,\n modelValue: undefined,\n defaultValue: undefined,\n name: undefined,\n orientation: 'vertical',\n label: undefined,\n description: undefined,\n errorMessage: undefined,\n dir: undefined,\n loop: true,\n asChild: false,\n as: undefined,\n required: false,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n}>()\n\n// Provide context to child Radio components\nuseRadioGroupProvide({\n variant: toRef(props, 'variant'),\n disabled: toRef(props, 'disabled'),\n isInvalid: toRef(props, 'isInvalid'),\n})\n\nconst labelId = `radio-group-label-${Math.random().toString(36).slice(2, 8)}`\n\nconst groupClasses = computed(() =>\n radioGroupVariants({ variant: props.variant })\n)\n</script>\n\n<template>\n <RadioGroupRoot\n :model-value=\"props.modelValue\"\n :default-value=\"props.defaultValue\"\n :disabled=\"props.disabled\"\n :aria-invalid=\"props.isInvalid || undefined\"\n :name=\"props.name\"\n :orientation=\"props.orientation\"\n :dir=\"props.dir\"\n :loop=\"props.loop\"\n :as-child=\"props.asChild\"\n :as=\"props.as\"\n :required=\"props.required\"\n :aria-labelledby=\"props.label ? labelId : undefined\"\n :class=\"composeClassName(groupClasses, props.class)\"\n @update:model-value=\"$event != null && emit('update:modelValue', String($event))\"\n >\n <span\n v-if=\"props.label\"\n :id=\"labelId\"\n class=\"radio-group__label\"\n >{{ props.label }}</span>\n <div class=\"radio-group__wrapper\">\n <template v-if=\"props.items\">\n <Radio\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :disabled=\"item.disabled\"\n >{{ item.label ?? item.value }}</Radio>\n </template>\n <slot v-else />\n </div>\n <span\n v-if=\"props.isInvalid && props.errorMessage\"\n class=\"radio-group__error-message\"\n >{{ props.errorMessage }}</span>\n <span\n v-else-if=\"props.description\"\n class=\"radio-group__description\"\n >{{ props.description }}</span>\n </RadioGroupRoot>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUA,MAAM,QAAQ;EA0Cd,MAAM,OAAO;AAKb,uBAAqB;GACnB,SAAS,MAAM,OAAO,UAAU;GAChC,UAAU,MAAM,OAAO,WAAW;GAClC,WAAW,MAAM,OAAO,YAAY;GACrC,CAAA;EAED,MAAM,UAAU,qBAAqB,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE;EAE3E,MAAM,eAAe,eACnB,mBAAmB,EAAE,SAAS,MAAM,SAAS,CAAA,CAC/C;;uBAIE,YAwCiB,MAAA,eAAA,EAAA;IAvCd,eAAa,MAAM;IACnB,iBAAe,MAAM;IACrB,UAAU,MAAM;IAChB,gBAAc,MAAM,aAAa,KAAA;IACjC,MAAM,MAAM;IACZ,aAAa,MAAM;IACnB,KAAK,MAAM;IACX,MAAM,MAAM;IACZ,YAAU,MAAM;IAChB,IAAI,MAAM;IACV,UAAU,MAAM;IAChB,mBAAiB,MAAM,QAAQ,UAAU,KAAA;IACzC,OAAK,eAAE,MAAA,iBAAgB,CAAC,aAAA,OAAc,MAAM,MAAK,CAAA;IACjD,uBAAkB,OAAA,OAAA,OAAA,MAAA,WAAE,UAAM,QAAY,KAAI,qBAAsB,OAAO,OAAM,CAAA;;2BAMrD;KAHjB,MAAM,SAAA,WAAA,EADd,mBAIyB,QAAA;;MAFtB,IAAI;MACL,OAAM;wBACJ,MAAM,MAAK,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;KACf,mBAUM,OAVN,YAUM,CATY,MAAM,SAAA,UAAA,KAAA,EACpB,mBAKuC,UAAA,EAAA,KAAA,GAAA,EAAA,WAJtB,MAAM,QAAd,SAAI;0BADb,YAKuC,eAAA;OAHpC,KAAK,KAAK;OACV,OAAO,KAAK;OACZ,UAAU,KAAK;;8BACa,CAAA,gBAAA,gBAA3B,KAAK,SAAS,KAAK,MAAK,EAAA,EAAA,CAAA,CAAA;;;iBAE9B,WAAe,KAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,CAAA,CAAA;KAGT,MAAM,aAAa,MAAM,gBAAA,WAAA,EADjC,mBAGgC,QAHhC,YAGgC,gBAA5B,MAAM,aAAY,EAAA,EAAA,IAET,MAAM,eAAA,WAAA,EADnB,mBAG+B,QAH/B,YAG+B,gBAA3B,MAAM,YAAW,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA"}
1
+ {"version":3,"file":"RadioGroup.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/radio/RadioGroup.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, toRef } from 'vue'\nimport { RadioGroupRoot } from 'reka-ui'\nimport { radioGroupVariants, type RadioGroupVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useRadioGroupProvide } from './radio-group.context'\nimport Radio from './Radio.vue'\nimport { useDeprecatedBooleanProp } from '../../composables/useDeprecatedBooleanProp'\n\ntype RadioShorthandItem = { value: string; label?: string; disabled?: boolean }\n\nconst props = withDefaults(defineProps<{\n variant?: RadioGroupVariants['variant']\n isDisabled?: boolean\n /** @deprecated Use isDisabled instead. */\n disabled?: boolean\n isInvalid?: boolean\n modelValue?: string\n defaultValue?: string\n name?: string\n orientation?: 'horizontal' | 'vertical'\n label?: string\n description?: string\n errorMessage?: string\n /** Text direction forwarded to RadioGroupRoot. */\n dir?: 'ltr' | 'rtl'\n /** Whether keyboard navigation loops from last to first item. */\n loop?: boolean\n /** Whether RadioGroupRoot renders as a child element. */\n asChild?: boolean\n /** Element or component to render RadioGroupRoot as. */\n as?: string\n isRequired?: boolean\n /**\n * Whether the radio group is required.\n * @deprecated Use isRequired instead.\n */\n required?: boolean\n class?: string\n /** Shorthand API: render radio options from an array instead of the compound slot API */\n items?: RadioShorthandItem[]\n}>(), {\n variant: 'primary',\n isDisabled: undefined,\n disabled: undefined,\n isInvalid: false,\n modelValue: undefined,\n defaultValue: undefined,\n name: undefined,\n orientation: 'vertical',\n label: undefined,\n description: undefined,\n errorMessage: undefined,\n dir: undefined,\n loop: true,\n asChild: false,\n as: undefined,\n isRequired: undefined,\n required: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n}>()\n\nconst isDisabled = useDeprecatedBooleanProp(\n 'RadioGroup', 'isDisabled', () => props.isDisabled, 'disabled', () => props.disabled,\n)\n\nconst isRequired = useDeprecatedBooleanProp(\n 'RadioGroup', 'isRequired', () => props.isRequired, 'required', () => props.required,\n)\n\n// Provide context to child Radio components\nuseRadioGroupProvide({\n variant: toRef(props, 'variant'),\n disabled: isDisabled,\n isInvalid: toRef(props, 'isInvalid'),\n})\n\nconst labelId = `radio-group-label-${Math.random().toString(36).slice(2, 8)}`\n\nconst groupClasses = computed(() =>\n radioGroupVariants({ variant: props.variant })\n)\n</script>\n\n<template>\n <RadioGroupRoot\n :model-value=\"props.modelValue\"\n :default-value=\"props.defaultValue\"\n :disabled=\"isDisabled\"\n :aria-invalid=\"props.isInvalid || undefined\"\n :name=\"props.name\"\n :orientation=\"props.orientation\"\n :dir=\"props.dir\"\n :loop=\"props.loop\"\n :as-child=\"props.asChild\"\n :as=\"props.as\"\n :required=\"isRequired\"\n :aria-labelledby=\"props.label ? labelId : undefined\"\n :class=\"composeClassName(groupClasses, props.class)\"\n @update:model-value=\"$event != null && emit('update:modelValue', String($event))\"\n >\n <span\n v-if=\"props.label\"\n :id=\"labelId\"\n class=\"radio-group__label\"\n >{{ props.label }}</span>\n <div class=\"radio-group__wrapper\">\n <template v-if=\"props.items\">\n <Radio\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :is-disabled=\"item.disabled\"\n >{{ item.label ?? item.value }}</Radio>\n </template>\n <slot v-else />\n </div>\n <span\n v-if=\"props.isInvalid && props.errorMessage\"\n class=\"radio-group__error-message\"\n >{{ props.errorMessage }}</span>\n <span\n v-else-if=\"props.description\"\n class=\"radio-group__description\"\n >{{ props.description }}</span>\n </RadioGroupRoot>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWA,MAAM,QAAQ;EAkDd,MAAM,OAAO;EAIb,MAAM,aAAa,yBACjB,cAAc,oBAAoB,MAAM,YAAY,kBAAkB,MAAM,SAC9E;EAEA,MAAM,aAAa,yBACjB,cAAc,oBAAoB,MAAM,YAAY,kBAAkB,MAAM,SAC9E;AAGA,uBAAqB;GACnB,SAAS,MAAM,OAAO,UAAU;GAChC,UAAU;GACV,WAAW,MAAM,OAAO,YAAY;GACrC,CAAA;EAED,MAAM,UAAU,qBAAqB,KAAK,QAAQ,CAAC,SAAS,GAAG,CAAC,MAAM,GAAG,EAAE;EAE3E,MAAM,eAAe,eACnB,mBAAmB,EAAE,SAAS,MAAM,SAAS,CAAA,CAC/C;;uBAIE,YAwCiB,MAAA,eAAA,EAAA;IAvCd,eAAa,MAAM;IACnB,iBAAe,MAAM;IACrB,UAAU,MAAA,WAAU;IACpB,gBAAc,MAAM,aAAa,KAAA;IACjC,MAAM,MAAM;IACZ,aAAa,MAAM;IACnB,KAAK,MAAM;IACX,MAAM,MAAM;IACZ,YAAU,MAAM;IAChB,IAAI,MAAM;IACV,UAAU,MAAA,WAAU;IACpB,mBAAiB,MAAM,QAAQ,UAAU,KAAA;IACzC,OAAK,eAAE,MAAA,iBAAgB,CAAC,aAAA,OAAc,MAAM,MAAK,CAAA;IACjD,uBAAkB,OAAA,OAAA,OAAA,MAAA,WAAE,UAAM,QAAY,KAAI,qBAAsB,OAAO,OAAM,CAAA;;2BAMrD;KAHjB,MAAM,SAAA,WAAA,EADd,mBAIyB,QAAA;;MAFtB,IAAI;MACL,OAAM;wBACJ,MAAM,MAAK,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;KACf,mBAUM,OAVN,YAUM,CATY,MAAM,SAAA,UAAA,KAAA,EACpB,mBAKuC,UAAA,EAAA,KAAA,GAAA,EAAA,WAJtB,MAAM,QAAd,SAAI;0BADb,YAKuC,eAAA;OAHpC,KAAK,KAAK;OACV,OAAO,KAAK;OACZ,eAAa,KAAK;;8BACU,CAAA,gBAAA,gBAA3B,KAAK,SAAS,KAAK,MAAK,EAAA,EAAA,CAAA,CAAA;;;iBAE9B,WAAe,KAAA,QAAA,WAAA,EAAA,KAAA,GAAA,CAAA,CAAA,CAAA;KAGT,MAAM,aAAa,MAAM,gBAAA,WAAA,EADjC,mBAGgC,QAHhC,YAGgC,gBAA5B,MAAM,aAAY,EAAA,EAAA,IAET,MAAM,eAAA,WAAA,EADnB,mBAG+B,QAH/B,YAG+B,gBAA3B,MAAM,YAAW,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"RangeCalendar.js","names":[],"sources":["../../../src/components/range-calendar/RangeCalendar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, shallowRef } from 'vue'\nimport {\n RangeCalendarRoot,\n RangeCalendarHeader,\n RangeCalendarHeading,\n RangeCalendarGrid,\n RangeCalendarGridHead,\n RangeCalendarGridRow,\n RangeCalendarHeadCell,\n RangeCalendarGridBody,\n RangeCalendarCell,\n RangeCalendarCellTrigger,\n RangeCalendarNext,\n RangeCalendarPrev,\n MonthPickerRoot,\n MonthPickerHeader,\n MonthPickerHeading,\n MonthPickerPrev,\n MonthPickerNext,\n MonthPickerGrid,\n MonthPickerGridBody,\n MonthPickerGridRow,\n MonthPickerCell,\n MonthPickerCellTrigger,\n YearPickerRoot,\n YearPickerHeader,\n YearPickerHeading,\n YearPickerPrev,\n YearPickerNext,\n YearPickerGrid,\n YearPickerGridBody,\n YearPickerGridRow,\n YearPickerCell,\n YearPickerCellTrigger,\n} from 'reka-ui'\nimport { today, getLocalTimeZone, type DateValue } from '@internationalized/date'\nimport { rangeCalendarVariants } 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 isDateDisabled?: (date: DateValue) => boolean\n isDateUnavailable?: (date: DateValue) => boolean\n locale?: string\n weekdayFormat?: 'narrow' | 'short' | 'long'\n fixedWeeks?: boolean\n numberOfMonths?: number\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6\n pagedNavigation?: boolean\n preventDeselect?: boolean\n allowNonContiguousRanges?: boolean\n readonly?: boolean\n disabled?: boolean\n calendarLabel?: string\n /** Initial focus state. */\n initialFocus?: boolean\n /** Whether a date is highlightable in the range. */\n isDateHighlightable?: (date: DateValue) => 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 /** Disable days outside the current view. */\n disableDaysOutsideCurrentView?: boolean\n /** Fix one end of the range. */\n fixedDate?: 'start' | 'end'\n /** Maximum number of days in the range. */\n maximumDays?: number\n /** Render as a different element or component. */\n as?: string\n /** Render child as root element. */\n asChild?: boolean\n class?: ClassValue\n /** Override classes for named slots */\n classNames?: Partial<{\n base: ClassValue\n header: ClassValue\n navButton: ClassValue\n navButtonIcon: ClassValue\n heading: ClassValue\n headingButton: ClassValue\n grid: ClassValue\n gridHeader: ClassValue\n gridRow: ClassValue\n headerCell: ClassValue\n gridBody: ClassValue\n cell: ClassValue\n cellButton: ClassValue\n monthGrid: ClassValue\n monthGridBody: ClassValue\n monthGridRow: ClassValue\n monthCell: ClassValue\n yearGrid: ClassValue\n yearGridBody: ClassValue\n yearGridRow: ClassValue\n yearCell: ClassValue\n }>\n}>(), {\n weekdayFormat: 'narrow',\n fixedWeeks: false,\n numberOfMonths: 1,\n pagedNavigation: false,\n preventDeselect: false,\n allowNonContiguousRanges: false,\n readonly: false,\n disabled: false,\n})\n\nconst emit = defineEmits<{\n 'update:valid-model-value': [value: DateRange | undefined]\n 'update:start-value': [value: DateValue | undefined]\n}>()\n\nconst modelValue = defineModel<DateRange | null>()\n\nconst slotFns = computed(() => rangeCalendarVariants())\n\n// View-switcher state: 'date' (default 7-col calendar), 'month' (3x4 months), 'year' (3x4 years)\ntype View = 'date' | 'month' | 'year'\nconst view = ref<View>('date')\n\n// Shared placeholder synced with RangeCalendarRoot/MonthPickerRoot/YearPickerRoot.\n// shallowRef preserves reka-ui's `DateValue` discriminated union.\nconst placeholder = shallowRef<DateValue>(\n (props.defaultValue?.start ?? props.defaultPlaceholder ?? today(getLocalTimeZone())) as DateValue\n)\n\nfunction cycleView(): void {\n view.value = view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n}\n\nfunction onMonthSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'date'\n}\n\nfunction onYearSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'month'\n}\n\nconst nextViewLabel = computed(() =>\n view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n)\n</script>\n\n<template>\n <RangeCalendarRoot\n v-model=\"modelValue\"\n v-model:placeholder=\"placeholder\"\n :default-value=\"defaultValue ?? undefined\"\n :default-placeholder=\"defaultPlaceholder\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :is-date-disabled=\"isDateDisabled\"\n :is-date-unavailable=\"isDateUnavailable\"\n :locale=\"locale\"\n :weekday-format=\"weekdayFormat\"\n :fixed-weeks=\"fixedWeeks\"\n :number-of-months=\"numberOfMonths\"\n :week-starts-on=\"weekStartsOn\"\n :paged-navigation=\"pagedNavigation\"\n :prevent-deselect=\"preventDeselect\"\n :allow-non-contiguous-ranges=\"allowNonContiguousRanges\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :calendar-label=\"calendarLabel\"\n :initial-focus=\"initialFocus\"\n :is-date-highlightable=\"isDateHighlightable\"\n :dir=\"dir\"\n :next-page=\"nextPage\"\n :prev-page=\"prevPage\"\n :disable-days-outside-current-view=\"disableDaysOutsideCurrentView\"\n :fixed-date=\"fixedDate\"\n :maximum-days=\"maximumDays\"\n :as=\"as\"\n :as-child=\"asChild\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:valid-model-value=\"emit('update:valid-model-value', $event as DateRange)\"\n @update:start-value=\"emit('update:start-value', $event)\"\n >\n <template #default=\"{ grid, weekDays }\">\n <template v-if=\"view === 'date'\">\n <RangeCalendarHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <RangeCalendarPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous month\"\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 </RangeCalendarPrev>\n\n <RangeCalendarHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </RangeCalendarHeading>\n\n <RangeCalendarNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next month\"\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 </RangeCalendarNext>\n </RangeCalendarHeader>\n\n <RangeCalendarGrid\n v-for=\"month in grid\"\n :key=\"month.value.toString()\"\n :class=\"composeClassName(slotFns.grid(), props.classNames?.grid)\"\n >\n <RangeCalendarGridHead :class=\"composeClassName(slotFns.gridHeader(), props.classNames?.gridHeader)\">\n <RangeCalendarGridRow :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\">\n <RangeCalendarHeadCell\n v-for=\"day in weekDays\"\n :key=\"day\"\n :class=\"composeClassName(slotFns.headerCell(), props.classNames?.headerCell)\"\n >\n {{ day }}\n </RangeCalendarHeadCell>\n </RangeCalendarGridRow>\n </RangeCalendarGridHead>\n <RangeCalendarGridBody :class=\"composeClassName(slotFns.gridBody(), props.classNames?.gridBody)\">\n <RangeCalendarGridRow\n v-for=\"(week, weekIndex) in month.rows\"\n :key=\"weekIndex\"\n :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\"\n >\n <RangeCalendarCell\n v-for=\"day in week\"\n :key=\"day.toString()\"\n :date=\"day\"\n :class=\"composeClassName(slotFns.cell(), props.classNames?.cell)\"\n >\n <RangeCalendarCellTrigger\n :day=\"day\"\n :month=\"month.value\"\n :class=\"composeClassName(slotFns.cellButton(), props.classNames?.cellButton)\"\n />\n </RangeCalendarCell>\n </RangeCalendarGridRow>\n </RangeCalendarGridBody>\n </RangeCalendarGrid>\n </template>\n </template>\n </RangeCalendarRoot>\n\n <MonthPickerRoot\n v-if=\"view === 'month'\"\n :placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:model-value=\"onMonthSelect\"\n @update:placeholder=\"(val: DateValue | undefined) => { if (val) placeholder = val }\"\n >\n <template #default=\"{ grid: monthGrid }\">\n <MonthPickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <MonthPickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous year\"\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 </MonthPickerPrev>\n\n <MonthPickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </MonthPickerHeading>\n\n <MonthPickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next year\"\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 </MonthPickerNext>\n </MonthPickerHeader>\n\n <MonthPickerGrid :class=\"composeClassName(slotFns.monthGrid(), props.classNames?.monthGrid)\">\n <MonthPickerGridBody :class=\"composeClassName(slotFns.monthGridBody(), props.classNames?.monthGridBody)\">\n <MonthPickerGridRow\n v-for=\"(row, i) in monthGrid.rows\"\n :key=\"i\"\n :class=\"composeClassName(slotFns.monthGridRow(), props.classNames?.monthGridRow)\"\n >\n <MonthPickerCell\n v-for=\"monthValue in row\"\n :key=\"monthValue.toString()\"\n :date=\"monthValue\"\n >\n <MonthPickerCellTrigger\n :month=\"monthValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.monthCell(), props.classNames?.monthCell)\"\n />\n </MonthPickerCell>\n </MonthPickerGridRow>\n </MonthPickerGridBody>\n </MonthPickerGrid>\n </template>\n </MonthPickerRoot>\n\n <YearPickerRoot\n v-if=\"view === 'year'\"\n :placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:model-value=\"onYearSelect\"\n @update:placeholder=\"(val: DateValue | undefined) => { if (val) placeholder = val }\"\n >\n <template #default=\"{ grid: yearGrid }\">\n <YearPickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <YearPickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous decade\"\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 </YearPickerPrev>\n\n <YearPickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </YearPickerHeading>\n\n <YearPickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next decade\"\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 </YearPickerNext>\n </YearPickerHeader>\n\n <YearPickerGrid :class=\"composeClassName(slotFns.yearGrid(), props.classNames?.yearGrid)\">\n <YearPickerGridBody :class=\"composeClassName(slotFns.yearGridBody(), props.classNames?.yearGridBody)\">\n <YearPickerGridRow\n v-for=\"(row, i) in yearGrid.rows\"\n :key=\"i\"\n :class=\"composeClassName(slotFns.yearGridRow(), props.classNames?.yearGridRow)\"\n >\n <YearPickerCell\n v-for=\"yearValue in row\"\n :key=\"yearValue.toString()\"\n :date=\"yearValue\"\n >\n <YearPickerCellTrigger\n :year=\"yearValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.yearCell(), props.classNames?.yearCell)\"\n />\n </YearPickerCell>\n </YearPickerGridRow>\n </YearPickerGridBody>\n </YearPickerGrid>\n </template>\n </YearPickerRoot>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"RangeCalendar.js","names":[],"sources":["../../../src/components/range-calendar/RangeCalendar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, shallowRef } from 'vue'\nimport {\n RangeCalendarRoot,\n RangeCalendarHeader,\n RangeCalendarHeading,\n RangeCalendarGrid,\n RangeCalendarGridHead,\n RangeCalendarGridRow,\n RangeCalendarHeadCell,\n RangeCalendarGridBody,\n RangeCalendarCell,\n RangeCalendarCellTrigger,\n RangeCalendarNext,\n RangeCalendarPrev,\n MonthPickerRoot,\n MonthPickerHeader,\n MonthPickerHeading,\n MonthPickerPrev,\n MonthPickerNext,\n MonthPickerGrid,\n MonthPickerGridBody,\n MonthPickerGridRow,\n MonthPickerCell,\n MonthPickerCellTrigger,\n YearPickerRoot,\n YearPickerHeader,\n YearPickerHeading,\n YearPickerPrev,\n YearPickerNext,\n YearPickerGrid,\n YearPickerGridBody,\n YearPickerGridRow,\n YearPickerCell,\n YearPickerCellTrigger,\n} from 'reka-ui'\nimport { today, getLocalTimeZone, type DateValue } from '@internationalized/date'\nimport { rangeCalendarVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useDeprecatedBooleanProp } from '../../composables/useDeprecatedBooleanProp'\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 isDateDisabled?: (date: DateValue) => boolean\n isDateUnavailable?: (date: DateValue) => boolean\n locale?: string\n weekdayFormat?: 'narrow' | 'short' | 'long'\n fixedWeeks?: boolean\n numberOfMonths?: number\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6\n pagedNavigation?: boolean\n preventDeselect?: boolean\n allowNonContiguousRanges?: boolean\n isReadOnly?: boolean\n /** @deprecated Use isReadOnly instead. */\n readonly?: boolean\n isDisabled?: boolean\n /** @deprecated Use isDisabled instead. */\n disabled?: boolean\n calendarLabel?: string\n /** Initial focus state. */\n initialFocus?: boolean\n /** Whether a date is highlightable in the range. */\n isDateHighlightable?: (date: DateValue) => 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 /** Disable days outside the current view. */\n disableDaysOutsideCurrentView?: boolean\n /** Fix one end of the range. */\n fixedDate?: 'start' | 'end'\n /** Maximum number of days in the range. */\n maximumDays?: number\n /** Render as a different element or component. */\n as?: string\n /** Render child as root element. */\n asChild?: boolean\n class?: ClassValue\n /** Override classes for named slots */\n classNames?: Partial<{\n base: ClassValue\n header: ClassValue\n navButton: ClassValue\n navButtonIcon: ClassValue\n heading: ClassValue\n headingButton: ClassValue\n grid: ClassValue\n gridHeader: ClassValue\n gridRow: ClassValue\n headerCell: ClassValue\n gridBody: ClassValue\n cell: ClassValue\n cellButton: ClassValue\n monthGrid: ClassValue\n monthGridBody: ClassValue\n monthGridRow: ClassValue\n monthCell: ClassValue\n yearGrid: ClassValue\n yearGridBody: ClassValue\n yearGridRow: ClassValue\n yearCell: ClassValue\n }>\n}>(), {\n weekdayFormat: 'narrow',\n fixedWeeks: false,\n numberOfMonths: 1,\n pagedNavigation: false,\n preventDeselect: false,\n allowNonContiguousRanges: false,\n isReadOnly: undefined,\n readonly: undefined,\n isDisabled: undefined,\n disabled: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:valid-model-value': [value: DateRange | undefined]\n 'update:start-value': [value: DateValue | undefined]\n}>()\n\nconst modelValue = defineModel<DateRange | null>()\n\nconst isReadOnly = useDeprecatedBooleanProp(\n 'RangeCalendar', 'isReadOnly', () => props.isReadOnly, 'readonly', () => props.readonly,\n)\n\nconst isDisabled = useDeprecatedBooleanProp(\n 'RangeCalendar', 'isDisabled', () => props.isDisabled, 'disabled', () => props.disabled,\n)\n\nconst slotFns = computed(() => rangeCalendarVariants())\n\n// View-switcher state: 'date' (default 7-col calendar), 'month' (3x4 months), 'year' (3x4 years)\ntype View = 'date' | 'month' | 'year'\nconst view = ref<View>('date')\n\n// Shared placeholder synced with RangeCalendarRoot/MonthPickerRoot/YearPickerRoot.\n// shallowRef preserves reka-ui's `DateValue` discriminated union.\nconst placeholder = shallowRef<DateValue>(\n (props.defaultValue?.start ?? props.defaultPlaceholder ?? today(getLocalTimeZone())) as DateValue\n)\n\nfunction cycleView(): void {\n view.value = view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n}\n\nfunction onMonthSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'date'\n}\n\nfunction onYearSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'month'\n}\n\nconst nextViewLabel = computed(() =>\n view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n)\n</script>\n\n<template>\n <RangeCalendarRoot\n v-model=\"modelValue\"\n v-model:placeholder=\"placeholder\"\n :default-value=\"defaultValue ?? undefined\"\n :default-placeholder=\"defaultPlaceholder\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :is-date-disabled=\"isDateDisabled\"\n :is-date-unavailable=\"isDateUnavailable\"\n :locale=\"locale\"\n :weekday-format=\"weekdayFormat\"\n :fixed-weeks=\"fixedWeeks\"\n :number-of-months=\"numberOfMonths\"\n :week-starts-on=\"weekStartsOn\"\n :paged-navigation=\"pagedNavigation\"\n :prevent-deselect=\"preventDeselect\"\n :allow-non-contiguous-ranges=\"allowNonContiguousRanges\"\n :readonly=\"isReadOnly\"\n :disabled=\"isDisabled\"\n :calendar-label=\"calendarLabel\"\n :initial-focus=\"initialFocus\"\n :is-date-highlightable=\"isDateHighlightable\"\n :dir=\"dir\"\n :next-page=\"nextPage\"\n :prev-page=\"prevPage\"\n :disable-days-outside-current-view=\"disableDaysOutsideCurrentView\"\n :fixed-date=\"fixedDate\"\n :maximum-days=\"maximumDays\"\n :as=\"as\"\n :as-child=\"asChild\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:valid-model-value=\"emit('update:valid-model-value', $event as DateRange)\"\n @update:start-value=\"emit('update:start-value', $event)\"\n >\n <template #default=\"{ grid, weekDays }\">\n <template v-if=\"view === 'date'\">\n <RangeCalendarHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <RangeCalendarPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous month\"\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 </RangeCalendarPrev>\n\n <RangeCalendarHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </RangeCalendarHeading>\n\n <RangeCalendarNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next month\"\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 </RangeCalendarNext>\n </RangeCalendarHeader>\n\n <RangeCalendarGrid\n v-for=\"month in grid\"\n :key=\"month.value.toString()\"\n :class=\"composeClassName(slotFns.grid(), props.classNames?.grid)\"\n >\n <RangeCalendarGridHead :class=\"composeClassName(slotFns.gridHeader(), props.classNames?.gridHeader)\">\n <RangeCalendarGridRow :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\">\n <RangeCalendarHeadCell\n v-for=\"day in weekDays\"\n :key=\"day\"\n :class=\"composeClassName(slotFns.headerCell(), props.classNames?.headerCell)\"\n >\n {{ day }}\n </RangeCalendarHeadCell>\n </RangeCalendarGridRow>\n </RangeCalendarGridHead>\n <RangeCalendarGridBody :class=\"composeClassName(slotFns.gridBody(), props.classNames?.gridBody)\">\n <RangeCalendarGridRow\n v-for=\"(week, weekIndex) in month.rows\"\n :key=\"weekIndex\"\n :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\"\n >\n <RangeCalendarCell\n v-for=\"day in week\"\n :key=\"day.toString()\"\n :date=\"day\"\n :class=\"composeClassName(slotFns.cell(), props.classNames?.cell)\"\n >\n <RangeCalendarCellTrigger\n :day=\"day\"\n :month=\"month.value\"\n :class=\"composeClassName(slotFns.cellButton(), props.classNames?.cellButton)\"\n />\n </RangeCalendarCell>\n </RangeCalendarGridRow>\n </RangeCalendarGridBody>\n </RangeCalendarGrid>\n </template>\n </template>\n </RangeCalendarRoot>\n\n <MonthPickerRoot\n v-if=\"view === 'month'\"\n :placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"isReadOnly\"\n :disabled=\"isDisabled\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:model-value=\"onMonthSelect\"\n @update:placeholder=\"(val: DateValue | undefined) => { if (val) placeholder = val }\"\n >\n <template #default=\"{ grid: monthGrid }\">\n <MonthPickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <MonthPickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous year\"\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 </MonthPickerPrev>\n\n <MonthPickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </MonthPickerHeading>\n\n <MonthPickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next year\"\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 </MonthPickerNext>\n </MonthPickerHeader>\n\n <MonthPickerGrid :class=\"composeClassName(slotFns.monthGrid(), props.classNames?.monthGrid)\">\n <MonthPickerGridBody :class=\"composeClassName(slotFns.monthGridBody(), props.classNames?.monthGridBody)\">\n <MonthPickerGridRow\n v-for=\"(row, i) in monthGrid.rows\"\n :key=\"i\"\n :class=\"composeClassName(slotFns.monthGridRow(), props.classNames?.monthGridRow)\"\n >\n <MonthPickerCell\n v-for=\"monthValue in row\"\n :key=\"monthValue.toString()\"\n :date=\"monthValue\"\n >\n <MonthPickerCellTrigger\n :month=\"monthValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.monthCell(), props.classNames?.monthCell)\"\n />\n </MonthPickerCell>\n </MonthPickerGridRow>\n </MonthPickerGridBody>\n </MonthPickerGrid>\n </template>\n </MonthPickerRoot>\n\n <YearPickerRoot\n v-if=\"view === 'year'\"\n :placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"isReadOnly\"\n :disabled=\"isDisabled\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:model-value=\"onYearSelect\"\n @update:placeholder=\"(val: DateValue | undefined) => { if (val) placeholder = val }\"\n >\n <template #default=\"{ grid: yearGrid }\">\n <YearPickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <YearPickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous decade\"\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 </YearPickerPrev>\n\n <YearPickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </YearPickerHeading>\n\n <YearPickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next decade\"\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 </YearPickerNext>\n </YearPickerHeader>\n\n <YearPickerGrid :class=\"composeClassName(slotFns.yearGrid(), props.classNames?.yearGrid)\">\n <YearPickerGridBody :class=\"composeClassName(slotFns.yearGridBody(), props.classNames?.yearGridBody)\">\n <YearPickerGridRow\n v-for=\"(row, i) in yearGrid.rows\"\n :key=\"i\"\n :class=\"composeClassName(slotFns.yearGridRow(), props.classNames?.yearGridRow)\"\n >\n <YearPickerCell\n v-for=\"yearValue in row\"\n :key=\"yearValue.toString()\"\n :date=\"yearValue\"\n >\n <YearPickerCellTrigger\n :year=\"yearValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.yearCell(), props.classNames?.yearCell)\"\n />\n </YearPickerCell>\n </YearPickerGridRow>\n </YearPickerGridBody>\n </YearPickerGrid>\n </template>\n </YearPickerRoot>\n</template>\n"],"mappings":""}
@@ -1,4 +1,5 @@
1
1
  import { composeClassName } from "../../utils/composeClassName.js";
2
+ import { useDeprecatedBooleanProp } from "../../composables/useDeprecatedBooleanProp.js";
2
3
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeModels, normalizeClass, openBlock, ref, renderList, shallowRef, toDisplayString, unref, useModel, withCtx } from "vue";
3
4
  import { rangeCalendarVariants } from "@auronui/styles";
4
5
  import { MonthPickerCell, MonthPickerCellTrigger, MonthPickerGrid, MonthPickerGridBody, MonthPickerGridRow, MonthPickerHeader, MonthPickerHeading, MonthPickerNext, MonthPickerPrev, MonthPickerRoot, RangeCalendarCell, RangeCalendarCellTrigger, RangeCalendarGrid, RangeCalendarGridBody, RangeCalendarGridHead, RangeCalendarGridRow, RangeCalendarHeadCell, RangeCalendarHeader, RangeCalendarHeading, RangeCalendarNext, RangeCalendarPrev, RangeCalendarRoot, YearPickerCell, YearPickerCellTrigger, YearPickerGrid, YearPickerGridBody, YearPickerGridRow, YearPickerHeader, YearPickerHeading, YearPickerNext, YearPickerPrev, YearPickerRoot } from "reka-ui";
@@ -36,13 +37,21 @@ var RangeCalendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
36
37
  type: Boolean,
37
38
  default: false
38
39
  },
40
+ isReadOnly: {
41
+ type: Boolean,
42
+ default: void 0
43
+ },
39
44
  readonly: {
40
45
  type: Boolean,
41
- default: false
46
+ default: void 0
47
+ },
48
+ isDisabled: {
49
+ type: Boolean,
50
+ default: void 0
42
51
  },
43
52
  disabled: {
44
53
  type: Boolean,
45
- default: false
54
+ default: void 0
46
55
  },
47
56
  calendarLabel: {},
48
57
  initialFocus: { type: Boolean },
@@ -72,6 +81,8 @@ var RangeCalendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
72
81
  const props = __props;
73
82
  const emit = __emit;
74
83
  const modelValue = useModel(__props, "modelValue");
84
+ const isReadOnly = useDeprecatedBooleanProp("RangeCalendar", "isReadOnly", () => props.isReadOnly, "readonly", () => props.readonly);
85
+ const isDisabled = useDeprecatedBooleanProp("RangeCalendar", "isDisabled", () => props.isDisabled, "disabled", () => props.disabled);
75
86
  const slotFns = computed(() => rangeCalendarVariants());
76
87
  const view = ref("date");
77
88
  const placeholder = shallowRef(props.defaultValue?.start ?? props.defaultPlaceholder ?? today(getLocalTimeZone()));
@@ -114,8 +125,8 @@ var RangeCalendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
114
125
  "paged-navigation": __props.pagedNavigation,
115
126
  "prevent-deselect": __props.preventDeselect,
116
127
  "allow-non-contiguous-ranges": __props.allowNonContiguousRanges,
117
- readonly: __props.readonly,
118
- disabled: __props.disabled,
128
+ readonly: unref(isReadOnly),
129
+ disabled: unref(isDisabled),
119
130
  "calendar-label": __props.calendarLabel,
120
131
  "initial-focus": __props.initialFocus,
121
132
  "is-date-highlightable": __props.isDateHighlightable,
@@ -272,8 +283,8 @@ var RangeCalendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
272
283
  locale: __props.locale,
273
284
  "min-value": __props.minValue,
274
285
  "max-value": __props.maxValue,
275
- readonly: __props.readonly,
276
- disabled: __props.disabled,
286
+ readonly: unref(isReadOnly),
287
+ disabled: unref(isDisabled),
277
288
  class: normalizeClass(unref(composeClassName)(slotFns.value.base(), props.class, props.classNames?.base)),
278
289
  "onUpdate:modelValue": onMonthSelect,
279
290
  "onUpdate:placeholder": _cache[4] || (_cache[4] = (val) => {
@@ -374,8 +385,8 @@ var RangeCalendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
374
385
  locale: __props.locale,
375
386
  "min-value": __props.minValue,
376
387
  "max-value": __props.maxValue,
377
- readonly: __props.readonly,
378
- disabled: __props.disabled,
388
+ readonly: unref(isReadOnly),
389
+ disabled: unref(isDisabled),
379
390
  class: normalizeClass(unref(composeClassName)(slotFns.value.base(), props.class, props.classNames?.base)),
380
391
  "onUpdate:modelValue": onYearSelect,
381
392
  "onUpdate:placeholder": _cache[5] || (_cache[5] = (val) => {
@@ -1 +1 @@
1
- {"version":3,"file":"RangeCalendar.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/range-calendar/RangeCalendar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, shallowRef } from 'vue'\nimport {\n RangeCalendarRoot,\n RangeCalendarHeader,\n RangeCalendarHeading,\n RangeCalendarGrid,\n RangeCalendarGridHead,\n RangeCalendarGridRow,\n RangeCalendarHeadCell,\n RangeCalendarGridBody,\n RangeCalendarCell,\n RangeCalendarCellTrigger,\n RangeCalendarNext,\n RangeCalendarPrev,\n MonthPickerRoot,\n MonthPickerHeader,\n MonthPickerHeading,\n MonthPickerPrev,\n MonthPickerNext,\n MonthPickerGrid,\n MonthPickerGridBody,\n MonthPickerGridRow,\n MonthPickerCell,\n MonthPickerCellTrigger,\n YearPickerRoot,\n YearPickerHeader,\n YearPickerHeading,\n YearPickerPrev,\n YearPickerNext,\n YearPickerGrid,\n YearPickerGridBody,\n YearPickerGridRow,\n YearPickerCell,\n YearPickerCellTrigger,\n} from 'reka-ui'\nimport { today, getLocalTimeZone, type DateValue } from '@internationalized/date'\nimport { rangeCalendarVariants } 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 isDateDisabled?: (date: DateValue) => boolean\n isDateUnavailable?: (date: DateValue) => boolean\n locale?: string\n weekdayFormat?: 'narrow' | 'short' | 'long'\n fixedWeeks?: boolean\n numberOfMonths?: number\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6\n pagedNavigation?: boolean\n preventDeselect?: boolean\n allowNonContiguousRanges?: boolean\n readonly?: boolean\n disabled?: boolean\n calendarLabel?: string\n /** Initial focus state. */\n initialFocus?: boolean\n /** Whether a date is highlightable in the range. */\n isDateHighlightable?: (date: DateValue) => 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 /** Disable days outside the current view. */\n disableDaysOutsideCurrentView?: boolean\n /** Fix one end of the range. */\n fixedDate?: 'start' | 'end'\n /** Maximum number of days in the range. */\n maximumDays?: number\n /** Render as a different element or component. */\n as?: string\n /** Render child as root element. */\n asChild?: boolean\n class?: ClassValue\n /** Override classes for named slots */\n classNames?: Partial<{\n base: ClassValue\n header: ClassValue\n navButton: ClassValue\n navButtonIcon: ClassValue\n heading: ClassValue\n headingButton: ClassValue\n grid: ClassValue\n gridHeader: ClassValue\n gridRow: ClassValue\n headerCell: ClassValue\n gridBody: ClassValue\n cell: ClassValue\n cellButton: ClassValue\n monthGrid: ClassValue\n monthGridBody: ClassValue\n monthGridRow: ClassValue\n monthCell: ClassValue\n yearGrid: ClassValue\n yearGridBody: ClassValue\n yearGridRow: ClassValue\n yearCell: ClassValue\n }>\n}>(), {\n weekdayFormat: 'narrow',\n fixedWeeks: false,\n numberOfMonths: 1,\n pagedNavigation: false,\n preventDeselect: false,\n allowNonContiguousRanges: false,\n readonly: false,\n disabled: false,\n})\n\nconst emit = defineEmits<{\n 'update:valid-model-value': [value: DateRange | undefined]\n 'update:start-value': [value: DateValue | undefined]\n}>()\n\nconst modelValue = defineModel<DateRange | null>()\n\nconst slotFns = computed(() => rangeCalendarVariants())\n\n// View-switcher state: 'date' (default 7-col calendar), 'month' (3x4 months), 'year' (3x4 years)\ntype View = 'date' | 'month' | 'year'\nconst view = ref<View>('date')\n\n// Shared placeholder synced with RangeCalendarRoot/MonthPickerRoot/YearPickerRoot.\n// shallowRef preserves reka-ui's `DateValue` discriminated union.\nconst placeholder = shallowRef<DateValue>(\n (props.defaultValue?.start ?? props.defaultPlaceholder ?? today(getLocalTimeZone())) as DateValue\n)\n\nfunction cycleView(): void {\n view.value = view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n}\n\nfunction onMonthSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'date'\n}\n\nfunction onYearSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'month'\n}\n\nconst nextViewLabel = computed(() =>\n view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n)\n</script>\n\n<template>\n <RangeCalendarRoot\n v-model=\"modelValue\"\n v-model:placeholder=\"placeholder\"\n :default-value=\"defaultValue ?? undefined\"\n :default-placeholder=\"defaultPlaceholder\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :is-date-disabled=\"isDateDisabled\"\n :is-date-unavailable=\"isDateUnavailable\"\n :locale=\"locale\"\n :weekday-format=\"weekdayFormat\"\n :fixed-weeks=\"fixedWeeks\"\n :number-of-months=\"numberOfMonths\"\n :week-starts-on=\"weekStartsOn\"\n :paged-navigation=\"pagedNavigation\"\n :prevent-deselect=\"preventDeselect\"\n :allow-non-contiguous-ranges=\"allowNonContiguousRanges\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :calendar-label=\"calendarLabel\"\n :initial-focus=\"initialFocus\"\n :is-date-highlightable=\"isDateHighlightable\"\n :dir=\"dir\"\n :next-page=\"nextPage\"\n :prev-page=\"prevPage\"\n :disable-days-outside-current-view=\"disableDaysOutsideCurrentView\"\n :fixed-date=\"fixedDate\"\n :maximum-days=\"maximumDays\"\n :as=\"as\"\n :as-child=\"asChild\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:valid-model-value=\"emit('update:valid-model-value', $event as DateRange)\"\n @update:start-value=\"emit('update:start-value', $event)\"\n >\n <template #default=\"{ grid, weekDays }\">\n <template v-if=\"view === 'date'\">\n <RangeCalendarHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <RangeCalendarPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous month\"\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 </RangeCalendarPrev>\n\n <RangeCalendarHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </RangeCalendarHeading>\n\n <RangeCalendarNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next month\"\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 </RangeCalendarNext>\n </RangeCalendarHeader>\n\n <RangeCalendarGrid\n v-for=\"month in grid\"\n :key=\"month.value.toString()\"\n :class=\"composeClassName(slotFns.grid(), props.classNames?.grid)\"\n >\n <RangeCalendarGridHead :class=\"composeClassName(slotFns.gridHeader(), props.classNames?.gridHeader)\">\n <RangeCalendarGridRow :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\">\n <RangeCalendarHeadCell\n v-for=\"day in weekDays\"\n :key=\"day\"\n :class=\"composeClassName(slotFns.headerCell(), props.classNames?.headerCell)\"\n >\n {{ day }}\n </RangeCalendarHeadCell>\n </RangeCalendarGridRow>\n </RangeCalendarGridHead>\n <RangeCalendarGridBody :class=\"composeClassName(slotFns.gridBody(), props.classNames?.gridBody)\">\n <RangeCalendarGridRow\n v-for=\"(week, weekIndex) in month.rows\"\n :key=\"weekIndex\"\n :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\"\n >\n <RangeCalendarCell\n v-for=\"day in week\"\n :key=\"day.toString()\"\n :date=\"day\"\n :class=\"composeClassName(slotFns.cell(), props.classNames?.cell)\"\n >\n <RangeCalendarCellTrigger\n :day=\"day\"\n :month=\"month.value\"\n :class=\"composeClassName(slotFns.cellButton(), props.classNames?.cellButton)\"\n />\n </RangeCalendarCell>\n </RangeCalendarGridRow>\n </RangeCalendarGridBody>\n </RangeCalendarGrid>\n </template>\n </template>\n </RangeCalendarRoot>\n\n <MonthPickerRoot\n v-if=\"view === 'month'\"\n :placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:model-value=\"onMonthSelect\"\n @update:placeholder=\"(val: DateValue | undefined) => { if (val) placeholder = val }\"\n >\n <template #default=\"{ grid: monthGrid }\">\n <MonthPickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <MonthPickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous year\"\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 </MonthPickerPrev>\n\n <MonthPickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </MonthPickerHeading>\n\n <MonthPickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next year\"\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 </MonthPickerNext>\n </MonthPickerHeader>\n\n <MonthPickerGrid :class=\"composeClassName(slotFns.monthGrid(), props.classNames?.monthGrid)\">\n <MonthPickerGridBody :class=\"composeClassName(slotFns.monthGridBody(), props.classNames?.monthGridBody)\">\n <MonthPickerGridRow\n v-for=\"(row, i) in monthGrid.rows\"\n :key=\"i\"\n :class=\"composeClassName(slotFns.monthGridRow(), props.classNames?.monthGridRow)\"\n >\n <MonthPickerCell\n v-for=\"monthValue in row\"\n :key=\"monthValue.toString()\"\n :date=\"monthValue\"\n >\n <MonthPickerCellTrigger\n :month=\"monthValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.monthCell(), props.classNames?.monthCell)\"\n />\n </MonthPickerCell>\n </MonthPickerGridRow>\n </MonthPickerGridBody>\n </MonthPickerGrid>\n </template>\n </MonthPickerRoot>\n\n <YearPickerRoot\n v-if=\"view === 'year'\"\n :placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:model-value=\"onYearSelect\"\n @update:placeholder=\"(val: DateValue | undefined) => { if (val) placeholder = val }\"\n >\n <template #default=\"{ grid: yearGrid }\">\n <YearPickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <YearPickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous decade\"\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 </YearPickerPrev>\n\n <YearPickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </YearPickerHeading>\n\n <YearPickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next decade\"\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 </YearPickerNext>\n </YearPickerHeader>\n\n <YearPickerGrid :class=\"composeClassName(slotFns.yearGrid(), props.classNames?.yearGrid)\">\n <YearPickerGridBody :class=\"composeClassName(slotFns.yearGridBody(), props.classNames?.yearGridBody)\">\n <YearPickerGridRow\n v-for=\"(row, i) in yearGrid.rows\"\n :key=\"i\"\n :class=\"composeClassName(slotFns.yearGridRow(), props.classNames?.yearGridRow)\"\n >\n <YearPickerCell\n v-for=\"yearValue in row\"\n :key=\"yearValue.toString()\"\n :date=\"yearValue\"\n >\n <YearPickerCellTrigger\n :year=\"yearValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.yearCell(), props.classNames?.yearCell)\"\n />\n </YearPickerCell>\n </YearPickerGridRow>\n </YearPickerGridBody>\n </YearPickerGrid>\n </template>\n </YearPickerRoot>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"RangeCalendar.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/range-calendar/RangeCalendar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, shallowRef } from 'vue'\nimport {\n RangeCalendarRoot,\n RangeCalendarHeader,\n RangeCalendarHeading,\n RangeCalendarGrid,\n RangeCalendarGridHead,\n RangeCalendarGridRow,\n RangeCalendarHeadCell,\n RangeCalendarGridBody,\n RangeCalendarCell,\n RangeCalendarCellTrigger,\n RangeCalendarNext,\n RangeCalendarPrev,\n MonthPickerRoot,\n MonthPickerHeader,\n MonthPickerHeading,\n MonthPickerPrev,\n MonthPickerNext,\n MonthPickerGrid,\n MonthPickerGridBody,\n MonthPickerGridRow,\n MonthPickerCell,\n MonthPickerCellTrigger,\n YearPickerRoot,\n YearPickerHeader,\n YearPickerHeading,\n YearPickerPrev,\n YearPickerNext,\n YearPickerGrid,\n YearPickerGridBody,\n YearPickerGridRow,\n YearPickerCell,\n YearPickerCellTrigger,\n} from 'reka-ui'\nimport { today, getLocalTimeZone, type DateValue } from '@internationalized/date'\nimport { rangeCalendarVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useDeprecatedBooleanProp } from '../../composables/useDeprecatedBooleanProp'\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 isDateDisabled?: (date: DateValue) => boolean\n isDateUnavailable?: (date: DateValue) => boolean\n locale?: string\n weekdayFormat?: 'narrow' | 'short' | 'long'\n fixedWeeks?: boolean\n numberOfMonths?: number\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6\n pagedNavigation?: boolean\n preventDeselect?: boolean\n allowNonContiguousRanges?: boolean\n isReadOnly?: boolean\n /** @deprecated Use isReadOnly instead. */\n readonly?: boolean\n isDisabled?: boolean\n /** @deprecated Use isDisabled instead. */\n disabled?: boolean\n calendarLabel?: string\n /** Initial focus state. */\n initialFocus?: boolean\n /** Whether a date is highlightable in the range. */\n isDateHighlightable?: (date: DateValue) => 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 /** Disable days outside the current view. */\n disableDaysOutsideCurrentView?: boolean\n /** Fix one end of the range. */\n fixedDate?: 'start' | 'end'\n /** Maximum number of days in the range. */\n maximumDays?: number\n /** Render as a different element or component. */\n as?: string\n /** Render child as root element. */\n asChild?: boolean\n class?: ClassValue\n /** Override classes for named slots */\n classNames?: Partial<{\n base: ClassValue\n header: ClassValue\n navButton: ClassValue\n navButtonIcon: ClassValue\n heading: ClassValue\n headingButton: ClassValue\n grid: ClassValue\n gridHeader: ClassValue\n gridRow: ClassValue\n headerCell: ClassValue\n gridBody: ClassValue\n cell: ClassValue\n cellButton: ClassValue\n monthGrid: ClassValue\n monthGridBody: ClassValue\n monthGridRow: ClassValue\n monthCell: ClassValue\n yearGrid: ClassValue\n yearGridBody: ClassValue\n yearGridRow: ClassValue\n yearCell: ClassValue\n }>\n}>(), {\n weekdayFormat: 'narrow',\n fixedWeeks: false,\n numberOfMonths: 1,\n pagedNavigation: false,\n preventDeselect: false,\n allowNonContiguousRanges: false,\n isReadOnly: undefined,\n readonly: undefined,\n isDisabled: undefined,\n disabled: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:valid-model-value': [value: DateRange | undefined]\n 'update:start-value': [value: DateValue | undefined]\n}>()\n\nconst modelValue = defineModel<DateRange | null>()\n\nconst isReadOnly = useDeprecatedBooleanProp(\n 'RangeCalendar', 'isReadOnly', () => props.isReadOnly, 'readonly', () => props.readonly,\n)\n\nconst isDisabled = useDeprecatedBooleanProp(\n 'RangeCalendar', 'isDisabled', () => props.isDisabled, 'disabled', () => props.disabled,\n)\n\nconst slotFns = computed(() => rangeCalendarVariants())\n\n// View-switcher state: 'date' (default 7-col calendar), 'month' (3x4 months), 'year' (3x4 years)\ntype View = 'date' | 'month' | 'year'\nconst view = ref<View>('date')\n\n// Shared placeholder synced with RangeCalendarRoot/MonthPickerRoot/YearPickerRoot.\n// shallowRef preserves reka-ui's `DateValue` discriminated union.\nconst placeholder = shallowRef<DateValue>(\n (props.defaultValue?.start ?? props.defaultPlaceholder ?? today(getLocalTimeZone())) as DateValue\n)\n\nfunction cycleView(): void {\n view.value = view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n}\n\nfunction onMonthSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'date'\n}\n\nfunction onYearSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'month'\n}\n\nconst nextViewLabel = computed(() =>\n view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n)\n</script>\n\n<template>\n <RangeCalendarRoot\n v-model=\"modelValue\"\n v-model:placeholder=\"placeholder\"\n :default-value=\"defaultValue ?? undefined\"\n :default-placeholder=\"defaultPlaceholder\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :is-date-disabled=\"isDateDisabled\"\n :is-date-unavailable=\"isDateUnavailable\"\n :locale=\"locale\"\n :weekday-format=\"weekdayFormat\"\n :fixed-weeks=\"fixedWeeks\"\n :number-of-months=\"numberOfMonths\"\n :week-starts-on=\"weekStartsOn\"\n :paged-navigation=\"pagedNavigation\"\n :prevent-deselect=\"preventDeselect\"\n :allow-non-contiguous-ranges=\"allowNonContiguousRanges\"\n :readonly=\"isReadOnly\"\n :disabled=\"isDisabled\"\n :calendar-label=\"calendarLabel\"\n :initial-focus=\"initialFocus\"\n :is-date-highlightable=\"isDateHighlightable\"\n :dir=\"dir\"\n :next-page=\"nextPage\"\n :prev-page=\"prevPage\"\n :disable-days-outside-current-view=\"disableDaysOutsideCurrentView\"\n :fixed-date=\"fixedDate\"\n :maximum-days=\"maximumDays\"\n :as=\"as\"\n :as-child=\"asChild\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:valid-model-value=\"emit('update:valid-model-value', $event as DateRange)\"\n @update:start-value=\"emit('update:start-value', $event)\"\n >\n <template #default=\"{ grid, weekDays }\">\n <template v-if=\"view === 'date'\">\n <RangeCalendarHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <RangeCalendarPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous month\"\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 </RangeCalendarPrev>\n\n <RangeCalendarHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </RangeCalendarHeading>\n\n <RangeCalendarNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next month\"\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 </RangeCalendarNext>\n </RangeCalendarHeader>\n\n <RangeCalendarGrid\n v-for=\"month in grid\"\n :key=\"month.value.toString()\"\n :class=\"composeClassName(slotFns.grid(), props.classNames?.grid)\"\n >\n <RangeCalendarGridHead :class=\"composeClassName(slotFns.gridHeader(), props.classNames?.gridHeader)\">\n <RangeCalendarGridRow :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\">\n <RangeCalendarHeadCell\n v-for=\"day in weekDays\"\n :key=\"day\"\n :class=\"composeClassName(slotFns.headerCell(), props.classNames?.headerCell)\"\n >\n {{ day }}\n </RangeCalendarHeadCell>\n </RangeCalendarGridRow>\n </RangeCalendarGridHead>\n <RangeCalendarGridBody :class=\"composeClassName(slotFns.gridBody(), props.classNames?.gridBody)\">\n <RangeCalendarGridRow\n v-for=\"(week, weekIndex) in month.rows\"\n :key=\"weekIndex\"\n :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\"\n >\n <RangeCalendarCell\n v-for=\"day in week\"\n :key=\"day.toString()\"\n :date=\"day\"\n :class=\"composeClassName(slotFns.cell(), props.classNames?.cell)\"\n >\n <RangeCalendarCellTrigger\n :day=\"day\"\n :month=\"month.value\"\n :class=\"composeClassName(slotFns.cellButton(), props.classNames?.cellButton)\"\n />\n </RangeCalendarCell>\n </RangeCalendarGridRow>\n </RangeCalendarGridBody>\n </RangeCalendarGrid>\n </template>\n </template>\n </RangeCalendarRoot>\n\n <MonthPickerRoot\n v-if=\"view === 'month'\"\n :placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"isReadOnly\"\n :disabled=\"isDisabled\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:model-value=\"onMonthSelect\"\n @update:placeholder=\"(val: DateValue | undefined) => { if (val) placeholder = val }\"\n >\n <template #default=\"{ grid: monthGrid }\">\n <MonthPickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <MonthPickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous year\"\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 </MonthPickerPrev>\n\n <MonthPickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </MonthPickerHeading>\n\n <MonthPickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next year\"\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 </MonthPickerNext>\n </MonthPickerHeader>\n\n <MonthPickerGrid :class=\"composeClassName(slotFns.monthGrid(), props.classNames?.monthGrid)\">\n <MonthPickerGridBody :class=\"composeClassName(slotFns.monthGridBody(), props.classNames?.monthGridBody)\">\n <MonthPickerGridRow\n v-for=\"(row, i) in monthGrid.rows\"\n :key=\"i\"\n :class=\"composeClassName(slotFns.monthGridRow(), props.classNames?.monthGridRow)\"\n >\n <MonthPickerCell\n v-for=\"monthValue in row\"\n :key=\"monthValue.toString()\"\n :date=\"monthValue\"\n >\n <MonthPickerCellTrigger\n :month=\"monthValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.monthCell(), props.classNames?.monthCell)\"\n />\n </MonthPickerCell>\n </MonthPickerGridRow>\n </MonthPickerGridBody>\n </MonthPickerGrid>\n </template>\n </MonthPickerRoot>\n\n <YearPickerRoot\n v-if=\"view === 'year'\"\n :placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"isReadOnly\"\n :disabled=\"isDisabled\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:model-value=\"onYearSelect\"\n @update:placeholder=\"(val: DateValue | undefined) => { if (val) placeholder = val }\"\n >\n <template #default=\"{ grid: yearGrid }\">\n <YearPickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <YearPickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous decade\"\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 </YearPickerPrev>\n\n <YearPickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </YearPickerHeading>\n\n <YearPickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next decade\"\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 </YearPickerNext>\n </YearPickerHeader>\n\n <YearPickerGrid :class=\"composeClassName(slotFns.yearGrid(), props.classNames?.yearGrid)\">\n <YearPickerGridBody :class=\"composeClassName(slotFns.yearGridBody(), props.classNames?.yearGridBody)\">\n <YearPickerGridRow\n v-for=\"(row, i) in yearGrid.rows\"\n :key=\"i\"\n :class=\"composeClassName(slotFns.yearGridRow(), props.classNames?.yearGridRow)\"\n >\n <YearPickerCell\n v-for=\"yearValue in row\"\n :key=\"yearValue.toString()\"\n :date=\"yearValue\"\n >\n <YearPickerCellTrigger\n :year=\"yearValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.yearCell(), props.classNames?.yearCell)\"\n />\n </YearPickerCell>\n </YearPickerGridRow>\n </YearPickerGridBody>\n </YearPickerGrid>\n </template>\n </YearPickerRoot>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","names":[],"sources":["../../../src/components/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, reactive, toRef, useAttrs, useId, useSlots } from 'vue'\nimport { SelectRoot } from 'reka-ui'\nimport { selectVariants, type SelectVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useSelectProvide, type SelectItemValue, type SelectItemData } from './Select.context'\nimport { hasSlotComponent } from '../../utils/hasSlotComponent'\nimport SelectTrigger from './SelectTrigger.vue'\nimport SelectValue from './SelectValue.vue'\nimport SelectContent from './SelectContent.vue'\nimport SelectItem from './SelectItem.vue'\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 multiple: false,\n modelValue: undefined,\n defaultValue: undefined,\n open: undefined,\n defaultOpen: undefined,\n by: undefined,\n dir: undefined,\n autocomplete: undefined,\n items: () => [],\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: SelectItemValue | SelectItemValue[]]\n 'update:open': [value: boolean]\n}>()\n\ntype Props = {\n /** Visual style of the field. @default 'flat' */\n variant?: SelectVariants['variant']\n /** Field height. @default 'md' */\n size?: SelectVariants['size']\n /** Accent color applied to focus ring + floating label. @default 'default' */\n color?: SelectVariants['color']\n /**\n * Where the `label` is rendered relative to the field.\n * - `inside`: floats above the trigger (shrinks when focused/filled)\n * - `outside`: sits above the field, static\n * - `outside-left`: sits to the left, horizontal layout\n * @default 'inside'\n */\n labelPlacement?: SelectVariants['labelPlacement']\n /** Stretches root wrapper to 100% width. @default false */\n fullWidth?: boolean\n /** Marks the field as invalid. Triggers danger styling and enables `errorMessage`. @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 /** Placeholder shown when no value is selected. */\n placeholder?: string\n /** Form field name, for native form submission. */\n name?: string\n /** Field label. When omitted, the floating-label behavior is skipped. */\n label?: string\n /** Helper text displayed below the field. Suppressed when `isInvalid && errorMessage` is shown. */\n description?: string\n /** Error text displayed below the field. Only rendered when `isInvalid` is also true. */\n errorMessage?: string\n /** Extra classes merged onto the root wrapper via `composeClassName`. */\n class?: ClassValue\n /** Per-slot class name overrides via `composeClassName`. */\n classNames?: Partial<{\n base: ClassValue\n label: ClassValue\n mainWrapper: ClassValue\n helperWrapper: ClassValue\n errorMessage: ClassValue\n description: ClassValue\n }>\n\n /* ─── Select-specific ─────────────────────────────────────── */\n /** Two-way bound selected value. Accepts string or numeric keys. */\n modelValue?: SelectItemValue | SelectItemValue[]\n /** Initial selected value (uncontrolled). Accepts string or numeric keys. */\n defaultValue?: SelectItemValue | SelectItemValue[]\n /** Allow selecting multiple values. modelValue becomes string[]. @default false */\n multiple?: boolean\n /** Controls open state of the dropdown. */\n open?: boolean\n /** Initial open state of the dropdown (uncontrolled). */\n defaultOpen?: boolean\n /** Comparison key or function for value matching. */\n by?: string | ((a: SelectItemValue, b: SelectItemValue) => boolean)\n /** Text direction for the select. */\n dir?: 'ltr' | 'rtl'\n /** Native autocomplete attribute for the hidden input. */\n autocomplete?: string\n /**\n * Data-driven items for the terse API. When provided (and no SelectTrigger /\n * SelectContent is passed as a child), the trigger, value, and popover are\n * rendered internally. Use the `#item` slot to customize per-item rendering.\n */\n items?: SelectItemData[]\n}\n\nconst attrs = useAttrs()\nconst generatedId = useId()\nconst triggerId = computed(() => (attrs.id as string | undefined) ?? generatedId)\n\nconst hasLabel = computed(() => !!props.label)\n\nconst slots = useSlots()\n// Tier 3 (advanced): consumer supplied explicit compound chrome → pass through.\n// Tier 1/2 (terse): render trigger/value/content internally.\nconst usesCustomChrome = computed(() =>\n hasSlotComponent(slots.default?.({}), [SelectTrigger, SelectContent]),\n)\n\n// Helper IDs / aria wiring\nconst descriptionId = computed(() => `${triggerId.value}-description`)\nconst errorMessageId = computed(() => `${triggerId.value}-error`)\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 slotFns = computed(() =>\n selectVariants({\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)\n\n// Persistent item registry. SelectItem populates on first mount; entries\n// survive SelectContent unmount so SelectValue can render the label while\n// the popover is closed.\nconst itemRegistry = reactive(new Map<SelectItemValue, string>())\nconst registerItem = (value: SelectItemValue, label: string) => {\n itemRegistry.set(value, label)\n}\nconst itemLabel = (value: SelectItemValue | SelectItemValue[] | undefined | null): string => {\n if (value == null) return ''\n if (Array.isArray(value)) {\n // Fall back to the stringified value (handles numeric keys) when no label is\n // registered. Filter empty strings only — never use filter(Boolean), which\n // would drop a registered label for the numeric key 0.\n return value\n .map(v => String(itemRegistry.get(v) ?? v))\n .filter(s => s.length > 0)\n .join(', ')\n }\n return itemRegistry.get(value) ?? String(value)\n}\n\nfunction removeValue(value: SelectItemValue) {\n const current = Array.isArray(props.modelValue) ? props.modelValue : []\n emit('update:modelValue', current.filter(v => v !== value))\n}\n\nuseSelectProvide({\n isDisabled: toRef(props, 'isDisabled'),\n isInvalid: toRef(props, 'isInvalid'),\n isReadonly: toRef(props, 'isReadonly'),\n isRequired: toRef(props, 'isRequired'),\n fullWidth: toRef(props, 'fullWidth'),\n hasLabel,\n labelPlacement: toRef(props, 'labelPlacement'),\n triggerId,\n label: toRef(props, 'label'),\n ariaDescribedBy,\n slots: slotFns,\n multiple: toRef(props, 'multiple'),\n registerItem,\n itemLabel,\n removeValue,\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 >\n <label\n v-if=\"showOutsideLabel\"\n :for=\"triggerId\"\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 <SelectRoot\n :model-value=\"props.modelValue\"\n :default-value=\"props.defaultValue\"\n :multiple=\"props.multiple\"\n :open=\"props.open\"\n :default-open=\"props.defaultOpen\"\n :by=\"props.by\"\n :dir=\"props.dir\"\n :autocomplete=\"props.autocomplete\"\n :disabled=\"props.isDisabled\"\n :required=\"props.isRequired\"\n :name=\"props.name\"\n @update:model-value=\"emit('update:modelValue', $event as SelectItemValue | SelectItemValue[])\"\n @update:open=\"emit('update:open', $event)\"\n >\n <!-- Tier 3: consumer-provided compound chrome -->\n <slot v-if=\"usesCustomChrome\" />\n <!-- Tier 1/2: internally rendered chrome -->\n <template v-else>\n <SelectTrigger>\n <SelectValue :placeholder=\"props.placeholder\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :text-value=\"item.textValue ?? item.label\"\n :is-disabled=\"item.isDisabled\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n >{{ item.label ?? String(item.value) }}</slot>\n </SelectItem>\n <slot />\n </SelectContent>\n </template>\n </SelectRoot>\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 >\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":""}
1
+ {"version":3,"file":"Select.js","names":[],"sources":["../../../src/components/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, reactive, toRef, useAttrs, useId, useSlots } from 'vue'\nimport { SelectRoot } from 'reka-ui'\nimport { selectVariants, type SelectVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useSelectProvide, type SelectItemValue, type SelectItemData } from './Select.context'\nimport { hasSlotComponent } from '../../utils/hasSlotComponent'\nimport SelectTrigger from './SelectTrigger.vue'\nimport SelectValue from './SelectValue.vue'\nimport SelectContent from './SelectContent.vue'\nimport SelectItem from './SelectItem.vue'\nimport { useDeprecatedBooleanProp } from '../../composables/useDeprecatedBooleanProp'\nimport { useFormField } from '../../composables/useFormField'\nimport FieldLabel from '../_shared/FieldLabel.vue'\nimport FormFieldHelper from '../_shared/FormFieldHelper.vue'\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: undefined,\n isReadonly: undefined,\n isRequired: false,\n multiple: false,\n modelValue: undefined,\n defaultValue: undefined,\n open: undefined,\n defaultOpen: undefined,\n by: undefined,\n dir: undefined,\n autocomplete: undefined,\n items: () => [],\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: SelectItemValue | SelectItemValue[]]\n 'update:open': [value: boolean]\n}>()\n\nconst isReadOnly = useDeprecatedBooleanProp(\n 'Select', 'isReadOnly', () => props.isReadOnly, 'isReadonly', () => props.isReadonly,\n)\n\ntype Props = {\n /** Visual style of the field. @default 'flat' */\n variant?: SelectVariants['variant']\n /** Field height. @default 'md' */\n size?: SelectVariants['size']\n /** Accent color applied to focus ring + floating label. @default 'default' */\n color?: SelectVariants['color']\n /**\n * Where the `label` is rendered relative to the field.\n * - `inside`: floats above the trigger (shrinks when focused/filled)\n * - `outside`: sits above the field, static\n * - `outside-left`: sits to the left, horizontal layout\n * @default 'inside'\n */\n labelPlacement?: SelectVariants['labelPlacement']\n /** Stretches root wrapper to 100% width. @default false */\n fullWidth?: boolean\n /** Marks the field as invalid. Triggers danger styling and enables `errorMessage`. @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 /** @deprecated Use isReadOnly instead. */\n isReadonly?: boolean\n /** Adds a required asterisk next to the label. @default false */\n isRequired?: boolean\n /** Placeholder shown when no value is selected. */\n placeholder?: string\n /** Form field name, for native form submission. */\n name?: string\n /** Field label. When omitted, the floating-label behavior is skipped. */\n label?: string\n /** Helper text displayed below the field. Suppressed when `isInvalid && errorMessage` is shown. */\n description?: string\n /** Error text displayed below the field. Only rendered when `isInvalid` is also true. */\n errorMessage?: string\n /** Extra classes merged onto the root wrapper via `composeClassName`. */\n class?: ClassValue\n /** Per-slot class name overrides via `composeClassName`. */\n classNames?: Partial<{\n base: ClassValue\n label: ClassValue\n mainWrapper: ClassValue\n helperWrapper: ClassValue\n errorMessage: ClassValue\n description: ClassValue\n }>\n\n /* ─── Select-specific ─────────────────────────────────────── */\n /** Two-way bound selected value. Accepts string or numeric keys. */\n modelValue?: SelectItemValue | SelectItemValue[]\n /** Initial selected value (uncontrolled). Accepts string or numeric keys. */\n defaultValue?: SelectItemValue | SelectItemValue[]\n /** Allow selecting multiple values. modelValue becomes string[]. @default false */\n multiple?: boolean\n /** Controls open state of the dropdown. */\n open?: boolean\n /** Initial open state of the dropdown (uncontrolled). */\n defaultOpen?: boolean\n /** Comparison key or function for value matching. */\n by?: string | ((a: SelectItemValue, b: SelectItemValue) => boolean)\n /** Text direction for the select. */\n dir?: 'ltr' | 'rtl'\n /** Native autocomplete attribute for the hidden input. */\n autocomplete?: string\n /**\n * Data-driven items for the terse API. When provided (and no SelectTrigger /\n * SelectContent is passed as a child), the trigger, value, and popover are\n * rendered internally. Use the `#item` slot to customize per-item rendering.\n */\n items?: SelectItemData[]\n}\n\nconst attrs = useAttrs()\nconst generatedId = useId()\nconst triggerId = computed(() => (attrs.id as string | undefined) ?? generatedId)\n\nconst slots = useSlots()\n// Tier 3 (advanced): consumer supplied explicit compound chrome → pass through.\n// Tier 1/2 (terse): render trigger/value/content internally.\nconst usesCustomChrome = computed(() =>\n hasSlotComponent(slots.default?.({}), [SelectTrigger, SelectContent]),\n)\n\nconst {\n descriptionId,\n errorMessageId,\n showError,\n showDescription,\n hasHelper,\n ariaDescribedBy,\n hasLabel,\n showOutsideLabel,\n rootDataAttrs,\n} = useFormField({\n fieldId: () => triggerId.value,\n label: () => props.label,\n description: () => props.description,\n errorMessage: () => props.errorMessage,\n isInvalid: () => props.isInvalid,\n isDisabled: () => props.isDisabled,\n isReadOnly: () => isReadOnly.value,\n isRequired: () => props.isRequired,\n labelPlacement: () => props.labelPlacement,\n})\n\nconst slotFns = computed(() =>\n selectVariants({\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: isReadOnly.value,\n hasLabel: hasLabel.value,\n labelPlacement: props.labelPlacement,\n }),\n)\n\n// Persistent item registry. SelectItem populates on first mount; entries\n// survive SelectContent unmount so SelectValue can render the label while\n// the popover is closed.\nconst itemRegistry = reactive(new Map<SelectItemValue, string>())\nconst registerItem = (value: SelectItemValue, label: string) => {\n itemRegistry.set(value, label)\n}\nconst itemLabel = (value: SelectItemValue | SelectItemValue[] | undefined | null): string => {\n if (value == null) return ''\n if (Array.isArray(value)) {\n // Fall back to the stringified value (handles numeric keys) when no label is\n // registered. Filter empty strings only — never use filter(Boolean), which\n // would drop a registered label for the numeric key 0.\n return value\n .map(v => String(itemRegistry.get(v) ?? v))\n .filter(s => s.length > 0)\n .join(', ')\n }\n return itemRegistry.get(value) ?? String(value)\n}\n\nfunction removeValue(value: SelectItemValue) {\n const current = Array.isArray(props.modelValue) ? props.modelValue : []\n emit('update:modelValue', current.filter(v => v !== value))\n}\n\nuseSelectProvide({\n isDisabled: toRef(props, 'isDisabled'),\n isInvalid: toRef(props, 'isInvalid'),\n isReadonly: isReadOnly,\n isRequired: toRef(props, 'isRequired'),\n fullWidth: toRef(props, 'fullWidth'),\n hasLabel,\n labelPlacement: toRef(props, 'labelPlacement'),\n triggerId,\n label: toRef(props, 'label'),\n ariaDescribedBy,\n slots: slotFns,\n multiple: toRef(props, 'multiple'),\n registerItem,\n itemLabel,\n removeValue,\n})\n</script>\n\n<template>\n <div\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n v-bind=\"rootDataAttrs\"\n >\n <FieldLabel\n v-if=\"showOutsideLabel\"\n :for=\"triggerId\"\n :label=\"label\"\n :is-required=\"isRequired\"\n :class=\"composeClassName(slotFns.label(), props.classNames?.label)\"\n />\n\n <div :class=\"composeClassName(slotFns.mainWrapper(), props.classNames?.mainWrapper)\">\n <SelectRoot\n :model-value=\"props.modelValue\"\n :default-value=\"props.defaultValue\"\n :multiple=\"props.multiple\"\n :open=\"props.open\"\n :default-open=\"props.defaultOpen\"\n :by=\"props.by\"\n :dir=\"props.dir\"\n :autocomplete=\"props.autocomplete\"\n :disabled=\"props.isDisabled\"\n :required=\"props.isRequired\"\n :name=\"props.name\"\n @update:model-value=\"emit('update:modelValue', $event as SelectItemValue | SelectItemValue[])\"\n @update:open=\"emit('update:open', $event)\"\n >\n <!-- Tier 3: consumer-provided compound chrome -->\n <slot v-if=\"usesCustomChrome\" />\n <!-- Tier 1/2: internally rendered chrome -->\n <template v-else>\n <SelectTrigger>\n <SelectValue :placeholder=\"props.placeholder\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :text-value=\"item.textValue ?? item.label\"\n :is-disabled=\"item.isDisabled\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n >{{ item.label ?? String(item.value) }}</slot>\n </SelectItem>\n <slot />\n </SelectContent>\n </template>\n </SelectRoot>\n\n <FormFieldHelper\n :has-helper=\"hasHelper\"\n :show-error=\"showError\"\n :show-description=\"showDescription\"\n :error-message=\"errorMessage\"\n :description=\"description\"\n :error-message-id=\"errorMessageId\"\n :description-id=\"descriptionId\"\n :wrapper-class=\"composeClassName(slotFns.helperWrapper(), props.classNames?.helperWrapper)\"\n :error-class=\"composeClassName(slotFns.errorMessage(), props.classNames?.errorMessage)\"\n :description-class=\"composeClassName(slotFns.description(), props.classNames?.description)\"\n />\n </div>\n </div>\n</template>\n"],"mappings":""}