@auronui/vue 1.3.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (286) hide show
  1. package/ai-rules.md +139 -1
  2. package/dist/cjs/index.cjs +1816 -932
  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 +56 -52
  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/ContextMenuCheckboxItem.js.map +1 -1
  100. package/dist/components/context-menu/ContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang.js +4 -2
  101. package/dist/components/context-menu/ContextMenuCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  102. package/dist/components/context-menu/ContextMenuItem.js.map +1 -1
  103. package/dist/components/context-menu/ContextMenuItem.vue_vue_type_script_setup_true_lang.js +4 -2
  104. package/dist/components/context-menu/ContextMenuItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  105. package/dist/components/context-menu/ContextMenuRadioItem.js.map +1 -1
  106. package/dist/components/context-menu/ContextMenuRadioItem.vue_vue_type_script_setup_true_lang.js +4 -2
  107. package/dist/components/context-menu/ContextMenuRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  108. package/dist/components/context-menu/ContextMenuSubTrigger.js.map +1 -1
  109. package/dist/components/context-menu/ContextMenuSubTrigger.vue_vue_type_script_setup_true_lang.js +4 -2
  110. package/dist/components/context-menu/ContextMenuSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  111. package/dist/components/context-menu/ContextMenuTrigger.js.map +1 -1
  112. package/dist/components/context-menu/ContextMenuTrigger.vue_vue_type_script_setup_true_lang.js +7 -1
  113. package/dist/components/context-menu/ContextMenuTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  114. package/dist/components/date-input/DateInput.js.map +1 -1
  115. package/dist/components/date-input/DateInput.vue_vue_type_script_setup_true_lang.js +61 -60
  116. package/dist/components/date-input/DateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  117. package/dist/components/date-range-field/DateRangeField.js.map +1 -1
  118. package/dist/components/date-range-field/DateRangeField.vue_vue_type_script_setup_true_lang.js +61 -61
  119. package/dist/components/date-range-field/DateRangeField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  120. package/dist/components/date-time-picker/DateTimePicker.js.map +1 -1
  121. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +13 -13
  122. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  123. package/dist/components/dropdown/DropdownCheckboxItem.js.map +1 -1
  124. package/dist/components/dropdown/DropdownCheckboxItem.vue_vue_type_script_setup_true_lang.js +4 -2
  125. package/dist/components/dropdown/DropdownCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  126. package/dist/components/dropdown/DropdownItem.js.map +1 -1
  127. package/dist/components/dropdown/DropdownItem.vue_vue_type_script_setup_true_lang.js +4 -2
  128. package/dist/components/dropdown/DropdownItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  129. package/dist/components/dropdown/DropdownRadioItem.js.map +1 -1
  130. package/dist/components/dropdown/DropdownRadioItem.vue_vue_type_script_setup_true_lang.js +4 -2
  131. package/dist/components/dropdown/DropdownRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  132. package/dist/components/dropdown/DropdownSubTrigger.js.map +1 -1
  133. package/dist/components/dropdown/DropdownSubTrigger.vue_vue_type_script_setup_true_lang.js +4 -2
  134. package/dist/components/dropdown/DropdownSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  135. package/dist/components/dropdown/DropdownTrigger.js.map +1 -1
  136. package/dist/components/dropdown/DropdownTrigger.vue_vue_type_script_setup_true_lang.js +7 -1
  137. package/dist/components/dropdown/DropdownTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  138. package/dist/components/editable/Editable.js.map +1 -1
  139. package/dist/components/editable/Editable.vue_vue_type_script_setup_true_lang.js +28 -6
  140. package/dist/components/editable/Editable.vue_vue_type_script_setup_true_lang.js.map +1 -1
  141. package/dist/components/fieldset/Fieldset.js.map +1 -1
  142. package/dist/components/fieldset/Fieldset.vue_vue_type_script_setup_true_lang.js +8 -2
  143. package/dist/components/fieldset/Fieldset.vue_vue_type_script_setup_true_lang.js.map +1 -1
  144. package/dist/components/input/Input.js.map +1 -1
  145. package/dist/components/input/Input.vue_vue_type_script_setup_true_lang.js +76 -71
  146. package/dist/components/input/Input.vue_vue_type_script_setup_true_lang.js.map +1 -1
  147. package/dist/components/input-otp/InputOTP.js.map +1 -1
  148. package/dist/components/input-otp/InputOTP.vue_vue_type_script_setup_true_lang.js +15 -4
  149. package/dist/components/input-otp/InputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -1
  150. package/dist/components/link/Link.js.map +1 -1
  151. package/dist/components/link/Link.vue_vue_type_script_setup_true_lang.js +8 -2
  152. package/dist/components/link/Link.vue_vue_type_script_setup_true_lang.js.map +1 -1
  153. package/dist/components/list-box/ListBox.js.map +1 -1
  154. package/dist/components/list-box/ListBox.vue_vue_type_script_setup_true_lang.js +7 -1
  155. package/dist/components/list-box/ListBox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  156. package/dist/components/menubar/MenubarCheckboxItem.js.map +1 -1
  157. package/dist/components/menubar/MenubarCheckboxItem.vue_vue_type_script_setup_true_lang.js +4 -2
  158. package/dist/components/menubar/MenubarCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  159. package/dist/components/menubar/MenubarItem.js.map +1 -1
  160. package/dist/components/menubar/MenubarItem.vue_vue_type_script_setup_true_lang.js +4 -2
  161. package/dist/components/menubar/MenubarItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  162. package/dist/components/menubar/MenubarRadioItem.js.map +1 -1
  163. package/dist/components/menubar/MenubarRadioItem.vue_vue_type_script_setup_true_lang.js +4 -2
  164. package/dist/components/menubar/MenubarRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  165. package/dist/components/menubar/MenubarSubTrigger.js.map +1 -1
  166. package/dist/components/menubar/MenubarSubTrigger.vue_vue_type_script_setup_true_lang.js +4 -2
  167. package/dist/components/menubar/MenubarSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  168. package/dist/components/menubar/MenubarTrigger.js.map +1 -1
  169. package/dist/components/menubar/MenubarTrigger.vue_vue_type_script_setup_true_lang.js +7 -1
  170. package/dist/components/menubar/MenubarTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  171. package/dist/components/meter/Meter.js.map +1 -1
  172. package/dist/components/meter/Meter.vue_vue_type_script_setup_true_lang.js.map +1 -1
  173. package/dist/components/month-picker/MonthPicker.js.map +1 -1
  174. package/dist/components/month-picker/MonthPicker.vue_vue_type_script_setup_true_lang.js +15 -4
  175. package/dist/components/month-picker/MonthPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  176. package/dist/components/month-range-picker/MonthRangePicker.js.map +1 -1
  177. package/dist/components/month-range-picker/MonthRangePicker.vue_vue_type_script_setup_true_lang.js +15 -4
  178. package/dist/components/month-range-picker/MonthRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  179. package/dist/components/navigation-menu/NavigationMenuTrigger.js.map +1 -1
  180. package/dist/components/navigation-menu/NavigationMenuTrigger.vue_vue_type_script_setup_true_lang.js +7 -1
  181. package/dist/components/navigation-menu/NavigationMenuTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  182. package/dist/components/number-field/NumberField.js.map +1 -1
  183. package/dist/components/number-field/NumberField.vue_vue_type_script_setup_true_lang.js +19 -5
  184. package/dist/components/number-field/NumberField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  185. package/dist/components/pagination/Pagination.js.map +1 -1
  186. package/dist/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js +9 -3
  187. package/dist/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  188. package/dist/components/popover/PopoverClose.js.map +1 -1
  189. package/dist/components/popover/PopoverClose.vue_vue_type_script_setup_true_lang.js +11 -2
  190. package/dist/components/popover/PopoverClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  191. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  192. package/dist/components/progress-bar/ProgressBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  193. package/dist/components/progress-circle/ProgressCircle.js.map +1 -1
  194. package/dist/components/progress-circle/ProgressCircle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  195. package/dist/components/radio/Radio.js.map +1 -1
  196. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js +16 -5
  197. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  198. package/dist/components/radio/RadioGroup.js.map +1 -1
  199. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js +18 -7
  200. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  201. package/dist/components/range-calendar/RangeCalendar.js.map +1 -1
  202. package/dist/components/range-calendar/RangeCalendar.vue_vue_type_script_setup_true_lang.js +19 -8
  203. package/dist/components/range-calendar/RangeCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  204. package/dist/components/select/Select.js.map +1 -1
  205. package/dist/components/select/Select.vue_vue_type_script_setup_true_lang.js +55 -51
  206. package/dist/components/select/Select.vue_vue_type_script_setup_true_lang.js.map +1 -1
  207. package/dist/components/select/SelectItem.js.map +1 -1
  208. package/dist/components/select/SelectItem.vue_vue_type_script_setup_true_lang.js +4 -2
  209. package/dist/components/select/SelectItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  210. package/dist/components/select/SelectTrigger.js.map +1 -1
  211. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js +18 -9
  212. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  213. package/dist/components/slider/Slider.js.map +1 -1
  214. package/dist/components/slider/Slider.vue_vue_type_script_setup_true_lang.js +16 -5
  215. package/dist/components/slider/Slider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  216. package/dist/components/splitter/SplitterResizeHandle.js.map +1 -1
  217. package/dist/components/splitter/SplitterResizeHandle.vue_vue_type_script_setup_true_lang.js +8 -2
  218. package/dist/components/splitter/SplitterResizeHandle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  219. package/dist/components/switch/Switch.js.map +1 -1
  220. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js +16 -5
  221. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  222. package/dist/components/switch/SwitchGroup.js.map +1 -1
  223. package/dist/components/switch/SwitchGroup.vue_vue_type_script_setup_true_lang.js +10 -4
  224. package/dist/components/switch/SwitchGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  225. package/dist/components/table/Table.js.map +1 -1
  226. package/dist/components/table/Table.vue_vue_type_script_setup_true_lang.js +1 -0
  227. package/dist/components/table/Table.vue_vue_type_script_setup_true_lang.js.map +1 -1
  228. package/dist/components/table/TableBody.js.map +1 -1
  229. package/dist/components/table/TableBody.vue_vue_type_script_setup_true_lang.js.map +1 -1
  230. package/dist/components/table/TableCheckboxCell.js.map +1 -1
  231. package/dist/components/table/TableCheckboxCell.vue_vue_type_script_setup_true_lang.js.map +1 -1
  232. package/dist/components/table/TableVirtualBody.js.map +1 -1
  233. package/dist/components/table/TableVirtualBody.vue_vue_type_script_setup_true_lang.js.map +1 -1
  234. package/dist/components/table/table.context.js.map +1 -1
  235. package/dist/components/tabs/Tab.js.map +1 -1
  236. package/dist/components/tabs/Tab.vue_vue_type_script_setup_true_lang.js +11 -2
  237. package/dist/components/tabs/Tab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  238. package/dist/components/tabs/TabList.js.map +1 -1
  239. package/dist/components/tabs/TabList.vue_vue_type_script_setup_true_lang.js +2 -2
  240. package/dist/components/tabs/TabList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  241. package/dist/components/tabs/Tabs.js.map +1 -1
  242. package/dist/components/tabs/Tabs.vue_vue_type_script_setup_true_lang.js +2 -2
  243. package/dist/components/tabs/Tabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  244. package/dist/components/textarea/Textarea.js.map +1 -1
  245. package/dist/components/textarea/Textarea.vue_vue_type_script_setup_true_lang.js +70 -65
  246. package/dist/components/textarea/Textarea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  247. package/dist/components/time-field/TimeField.js.map +1 -1
  248. package/dist/components/time-field/TimeField.vue_vue_type_script_setup_true_lang.js +61 -60
  249. package/dist/components/time-field/TimeField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  250. package/dist/components/time-picker/TimePicker.js +7 -0
  251. package/dist/components/time-picker/TimePicker.js.map +1 -0
  252. package/dist/components/time-picker/TimePicker.vue_vue_type_script_setup_true_lang.js +320 -0
  253. package/dist/components/time-picker/TimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -0
  254. package/dist/components/time-range-field/TimeRangeField.js.map +1 -1
  255. package/dist/components/time-range-field/TimeRangeField.vue_vue_type_script_setup_true_lang.js +61 -61
  256. package/dist/components/time-range-field/TimeRangeField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  257. package/dist/components/toolbar/ToolbarButton.js.map +1 -1
  258. package/dist/components/toolbar/ToolbarButton.vue_vue_type_script_setup_true_lang.js +11 -2
  259. package/dist/components/toolbar/ToolbarButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  260. package/dist/components/toolbar/ToolbarToggleGroup.js.map +1 -1
  261. package/dist/components/toolbar/ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js +23 -6
  262. package/dist/components/toolbar/ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  263. package/dist/components/toolbar/ToolbarToggleItem.js.map +1 -1
  264. package/dist/components/toolbar/ToolbarToggleItem.vue_vue_type_script_setup_true_lang.js +11 -2
  265. package/dist/components/toolbar/ToolbarToggleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  266. package/dist/components/tooltip/TooltipProvider.js.map +1 -1
  267. package/dist/components/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js +8 -2
  268. package/dist/components/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  269. package/dist/components/tree/Tree.js.map +1 -1
  270. package/dist/components/tree/Tree.vue_vue_type_script_setup_true_lang.js +11 -2
  271. package/dist/components/tree/Tree.vue_vue_type_script_setup_true_lang.js.map +1 -1
  272. package/dist/components/year-range-picker/YearRangePicker.js.map +1 -1
  273. package/dist/components/year-range-picker/YearRangePicker.vue_vue_type_script_setup_true_lang.js +15 -4
  274. package/dist/components/year-range-picker/YearRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  275. package/dist/composables/useDeprecatedBooleanProp.js +43 -0
  276. package/dist/composables/useDeprecatedBooleanProp.js.map +1 -0
  277. package/dist/composables/useFormField.js +50 -0
  278. package/dist/composables/useFormField.js.map +1 -0
  279. package/dist/index.d.ts +845 -580
  280. package/dist/index.js +2 -1
  281. package/dist/utils/warnDeprecated.js +2 -1
  282. package/dist/utils/warnDeprecated.js.map +1 -1
  283. package/package.json +4 -4
  284. package/dist/components/date-time-picker/DateTimePickerTimeScroller.js +0 -7
  285. package/dist/components/date-time-picker/DateTimePickerTimeScroller.js.map +0 -1
  286. package/dist/components/date-time-picker/DateTimePickerTimeScroller.vue_vue_type_script_setup_true_lang.js.map +0 -1
@@ -1,29 +1,18 @@
1
1
  import { composeClassName } from "../../utils/composeClassName.js";
2
+ import { useDeprecatedBooleanProp } from "../../composables/useDeprecatedBooleanProp.js";
3
+ import { useFormField } from "../../composables/useFormField.js";
4
+ import FieldLabel_default from "../_shared/FieldLabel.js";
5
+ import FormFieldHelper_default from "../_shared/FormFieldHelper.js";
2
6
  import { useSelectProvide } from "./Select.context.js";
3
7
  import { hasSlotComponent } from "../../utils/hasSlotComponent.js";
4
8
  import SelectTrigger_default from "./SelectTrigger.js";
5
9
  import SelectValue_default from "./SelectValue.js";
6
10
  import SelectContent_default from "./SelectContent.js";
7
11
  import SelectItem_default from "./SelectItem.js";
8
- import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, reactive, renderList, renderSlot, toDisplayString, toRef, unref, useAttrs, useId, useSlots, withCtx } from "vue";
12
+ import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, mergeProps, normalizeClass, openBlock, reactive, renderList, renderSlot, toDisplayString, toRef, unref, useAttrs, useId, useSlots, withCtx } from "vue";
9
13
  import { selectVariants } from "@auronui/styles";
10
14
  import { SelectRoot } from "reka-ui";
11
15
  //#region src/components/select/Select.vue?vue&type=script&setup=true&lang.ts
12
- var _hoisted_1 = [
13
- "data-invalid",
14
- "data-disabled",
15
- "data-readonly",
16
- "data-required",
17
- "data-has-label",
18
- "data-has-helper"
19
- ];
20
- var _hoisted_2 = ["for"];
21
- var _hoisted_3 = {
22
- key: 0,
23
- "aria-hidden": "true"
24
- };
25
- var _hoisted_4 = ["id"];
26
- var _hoisted_5 = ["id"];
27
16
  var Select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
28
17
  inheritAttrs: false,
29
18
  __name: "Select",
@@ -44,9 +33,13 @@ var Select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
44
33
  type: Boolean,
45
34
  default: false
46
35
  },
36
+ isReadOnly: {
37
+ type: Boolean,
38
+ default: void 0
39
+ },
47
40
  isReadonly: {
48
41
  type: Boolean,
49
- default: false
42
+ default: void 0
50
43
  },
51
44
  isRequired: {
52
45
  type: Boolean,
@@ -91,20 +84,22 @@ var Select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
91
84
  setup(__props, { emit: __emit }) {
92
85
  const props = __props;
93
86
  const emit = __emit;
87
+ const isReadOnly = useDeprecatedBooleanProp("Select", "isReadOnly", () => props.isReadOnly, "isReadonly", () => props.isReadonly);
94
88
  const attrs = useAttrs();
95
89
  const generatedId = useId();
96
90
  const triggerId = computed(() => attrs.id ?? generatedId);
97
- const hasLabel = computed(() => !!props.label);
98
91
  const slots = useSlots();
99
92
  const usesCustomChrome = computed(() => hasSlotComponent(slots.default?.({}), [SelectTrigger_default, SelectContent_default]));
100
- const descriptionId = computed(() => `${triggerId.value}-description`);
101
- const errorMessageId = computed(() => `${triggerId.value}-error`);
102
- const showError = computed(() => props.isInvalid && !!props.errorMessage);
103
- const showDescription = computed(() => !!props.description && !showError.value);
104
- const hasHelper = computed(() => showError.value || showDescription.value);
105
- const ariaDescribedBy = computed(() => {
106
- if (showError.value) return errorMessageId.value;
107
- if (showDescription.value) return descriptionId.value;
93
+ const { descriptionId, errorMessageId, showError, showDescription, hasHelper, ariaDescribedBy, hasLabel, showOutsideLabel, rootDataAttrs } = useFormField({
94
+ fieldId: () => triggerId.value,
95
+ label: () => props.label,
96
+ description: () => props.description,
97
+ errorMessage: () => props.errorMessage,
98
+ isInvalid: () => props.isInvalid,
99
+ isDisabled: () => props.isDisabled,
100
+ isReadOnly: () => isReadOnly.value,
101
+ isRequired: () => props.isRequired,
102
+ labelPlacement: () => props.labelPlacement
108
103
  });
109
104
  const slotFns = computed(() => selectVariants({
110
105
  variant: props.variant,
@@ -113,11 +108,10 @@ var Select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
113
108
  fullWidth: props.fullWidth,
114
109
  isInvalid: props.isInvalid,
115
110
  isDisabled: props.isDisabled,
116
- isReadonly: props.isReadonly,
111
+ isReadonly: isReadOnly.value,
117
112
  hasLabel: hasLabel.value,
118
113
  labelPlacement: props.labelPlacement
119
114
  }));
120
- const showOutsideLabel = computed(() => hasLabel.value && props.labelPlacement !== "inside");
121
115
  const itemRegistry = reactive(/* @__PURE__ */ new Map());
122
116
  const registerItem = (value, label) => {
123
117
  itemRegistry.set(value, label);
@@ -133,7 +127,7 @@ var Select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
133
127
  useSelectProvide({
134
128
  isDisabled: toRef(props, "isDisabled"),
135
129
  isInvalid: toRef(props, "isInvalid"),
136
- isReadonly: toRef(props, "isReadonly"),
130
+ isReadonly: isReadOnly,
137
131
  isRequired: toRef(props, "isRequired"),
138
132
  fullWidth: toRef(props, "fullWidth"),
139
133
  hasLabel,
@@ -148,19 +142,18 @@ var Select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
148
142
  removeValue
149
143
  });
150
144
  return (_ctx, _cache) => {
151
- return openBlock(), createElementBlock("div", {
152
- class: normalizeClass(unref(composeClassName)(slotFns.value.base(), props.class, props.classNames?.base)),
153
- "data-invalid": __props.isInvalid || void 0,
154
- "data-disabled": __props.isDisabled || void 0,
155
- "data-readonly": __props.isReadonly || void 0,
156
- "data-required": __props.isRequired || void 0,
157
- "data-has-label": hasLabel.value || void 0,
158
- "data-has-helper": hasHelper.value || void 0
159
- }, [showOutsideLabel.value ? (openBlock(), createElementBlock("label", {
145
+ return openBlock(), createElementBlock("div", mergeProps({ class: unref(composeClassName)(slotFns.value.base(), props.class, props.classNames?.base) }, unref(rootDataAttrs)), [unref(showOutsideLabel) ? (openBlock(), createBlock(FieldLabel_default, {
160
146
  key: 0,
161
147
  for: triggerId.value,
148
+ label: __props.label,
149
+ "is-required": __props.isRequired,
162
150
  class: normalizeClass(unref(composeClassName)(slotFns.value.label(), props.classNames?.label))
163
- }, [createTextVNode(toDisplayString(__props.label), 1), __props.isRequired ? (openBlock(), createElementBlock("span", _hoisted_3, " *")) : createCommentVNode("", true)], 10, _hoisted_2)) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(unref(composeClassName)(slotFns.value.mainWrapper(), props.classNames?.mainWrapper)) }, [createVNode(unref(SelectRoot), {
151
+ }, null, 8, [
152
+ "for",
153
+ "label",
154
+ "is-required",
155
+ "class"
156
+ ])) : createCommentVNode("", true), createElementVNode("div", { class: normalizeClass(unref(composeClassName)(slotFns.value.mainWrapper(), props.classNames?.mainWrapper)) }, [createVNode(unref(SelectRoot), {
164
157
  "model-value": props.modelValue,
165
158
  "default-value": props.defaultValue,
166
159
  multiple: props.multiple,
@@ -209,18 +202,29 @@ var Select_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
209
202
  "disabled",
210
203
  "required",
211
204
  "name"
212
- ]), hasHelper.value ? (openBlock(), createElementBlock("div", {
213
- key: 0,
214
- class: normalizeClass(unref(composeClassName)(slotFns.value.helperWrapper(), props.classNames?.helperWrapper))
215
- }, [showError.value ? (openBlock(), createElementBlock("div", {
216
- key: 0,
217
- id: errorMessageId.value,
218
- class: normalizeClass(unref(composeClassName)(slotFns.value.errorMessage(), props.classNames?.errorMessage))
219
- }, toDisplayString(__props.errorMessage), 11, _hoisted_4)) : showDescription.value ? (openBlock(), createElementBlock("div", {
220
- key: 1,
221
- id: descriptionId.value,
222
- class: normalizeClass(unref(composeClassName)(slotFns.value.description(), props.classNames?.description))
223
- }, toDisplayString(__props.description), 11, _hoisted_5)) : createCommentVNode("", true)], 2)) : createCommentVNode("", true)], 2)], 10, _hoisted_1);
205
+ ]), createVNode(FormFieldHelper_default, {
206
+ "has-helper": unref(hasHelper),
207
+ "show-error": unref(showError),
208
+ "show-description": unref(showDescription),
209
+ "error-message": __props.errorMessage,
210
+ description: __props.description,
211
+ "error-message-id": unref(errorMessageId),
212
+ "description-id": unref(descriptionId),
213
+ "wrapper-class": unref(composeClassName)(slotFns.value.helperWrapper(), props.classNames?.helperWrapper),
214
+ "error-class": unref(composeClassName)(slotFns.value.errorMessage(), props.classNames?.errorMessage),
215
+ "description-class": unref(composeClassName)(slotFns.value.description(), props.classNames?.description)
216
+ }, null, 8, [
217
+ "has-helper",
218
+ "show-error",
219
+ "show-description",
220
+ "error-message",
221
+ "description",
222
+ "error-message-id",
223
+ "description-id",
224
+ "wrapper-class",
225
+ "error-class",
226
+ "description-class"
227
+ ])], 2)], 16);
224
228
  };
225
229
  }
226
230
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Select.vue_vue_type_script_setup_true_lang.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":"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"}
1
+ {"version":3,"file":"Select.vue_vue_type_script_setup_true_lang.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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectItem.js","names":[],"sources":["../../../src/components/select/SelectItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, useTemplateRef } from 'vue'\nimport { SelectItem, SelectItemText, SelectItemIndicator } from 'reka-ui'\nimport { useSelectInject, type SelectItemValue } from './Select.context'\n\nconst props = withDefaults(defineProps<{\n value: SelectItemValue\n /**\n * Explicit human-readable label for this item. When provided, the registry is\n * populated immediately at setup time (before the dropdown is ever opened),\n * so SelectValue can display the correct label for a pre-set modelValue.\n * When omitted, the label is read from slot DOM text on first mount.\n */\n textValue?: string\n isDisabled?: boolean\n class?: string\n /** Whether this item is disabled. */\n disabled?: boolean\n /** Render as a different element or component. */\n as?: string\n /** Merge props onto child element instead of rendering a wrapper. */\n asChild?: boolean\n}>(), {\n textValue: undefined,\n isDisabled: false,\n class: undefined,\n disabled: undefined,\n as: undefined,\n asChild: false,\n})\n\nconst emit = defineEmits<{\n select: [event: Event]\n}>()\n\nconst ctx = useSelectInject()\nconst textRef = useTemplateRef<HTMLElement>('textRef')\n\n// Register immediately with textValue if provided — this runs at setup time,\n// before mount, so SelectValue shows the correct label for a pre-set modelValue\n// even before the dropdown has ever been opened.\nif (props.textValue !== undefined) {\n ctx.registerItem(props.value, props.textValue)\n}\n\nonMounted(() => {\n // textRef points to the SelectItemText component instance (not a DOM element).\n // Access $el to get the underlying span element and read its text content.\n // This refines the registry entry with actual DOM text (handles slot-text items\n // that don't have an explicit textValue prop).\n const el = (textRef.value as { $el?: HTMLElement } | null)?.$el\n const label = props.textValue ?? el?.textContent?.trim() ?? String(props.value)\n ctx.registerItem(props.value, label)\n})\n</script>\n\n<template>\n <SelectItem\n :value=\"props.value\"\n :disabled=\"props.disabled ?? props.isDisabled\"\n :text-value=\"props.textValue ?? String(props.value)\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n class=\"list-box-item list-box-item--default\"\n data-slot=\"list-box-item\"\n @select=\"emit('select', $event)\"\n >\n <slot name=\"startContent\" />\n <SelectItemText ref=\"textRef\">\n <slot />\n </SelectItemText>\n <SelectItemIndicator\n class=\"list-box-item__indicator\"\n data-slot=\"list-box-item-indicator\"\n >\n <slot name=\"selectedIcon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n data-slot=\"list-box-item-indicator--checkmark\"\n aria-hidden=\"true\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </slot>\n </SelectItemIndicator>\n <slot name=\"endContent\" />\n </SelectItem>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"SelectItem.js","names":[],"sources":["../../../src/components/select/SelectItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, useTemplateRef } from 'vue'\nimport { SelectItem, SelectItemText, SelectItemIndicator } from 'reka-ui'\nimport { useSelectInject, type SelectItemValue } from './Select.context'\nimport { useDeprecatedBooleanProp } from '../../composables/useDeprecatedBooleanProp'\n\nconst props = withDefaults(defineProps<{\n value: SelectItemValue\n /**\n * Explicit human-readable label for this item. When provided, the registry is\n * populated immediately at setup time (before the dropdown is ever opened),\n * so SelectValue can display the correct label for a pre-set modelValue.\n * When omitted, the label is read from slot DOM text on first mount.\n */\n textValue?: string\n isDisabled?: boolean\n class?: string\n /** @deprecated Use isDisabled instead. */\n disabled?: boolean\n /** Render as a different element or component. */\n as?: string\n /** Merge props onto child element instead of rendering a wrapper. */\n asChild?: boolean\n}>(), {\n textValue: undefined,\n isDisabled: undefined,\n class: undefined,\n disabled: undefined,\n as: undefined,\n asChild: false,\n})\n\nconst emit = defineEmits<{\n select: [event: Event]\n}>()\n\nconst isDisabled = useDeprecatedBooleanProp(\n 'SelectItem', 'isDisabled', () => props.isDisabled, 'disabled', () => props.disabled,\n)\n\nconst ctx = useSelectInject()\nconst textRef = useTemplateRef<HTMLElement>('textRef')\n\n// Register immediately with textValue if provided — this runs at setup time,\n// before mount, so SelectValue shows the correct label for a pre-set modelValue\n// even before the dropdown has ever been opened.\nif (props.textValue !== undefined) {\n ctx.registerItem(props.value, props.textValue)\n}\n\nonMounted(() => {\n // textRef points to the SelectItemText component instance (not a DOM element).\n // Access $el to get the underlying span element and read its text content.\n // This refines the registry entry with actual DOM text (handles slot-text items\n // that don't have an explicit textValue prop).\n const el = (textRef.value as { $el?: HTMLElement } | null)?.$el\n const label = props.textValue ?? el?.textContent?.trim() ?? String(props.value)\n ctx.registerItem(props.value, label)\n})\n</script>\n\n<template>\n <SelectItem\n :value=\"props.value\"\n :disabled=\"isDisabled\"\n :text-value=\"props.textValue ?? String(props.value)\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n class=\"list-box-item list-box-item--default\"\n data-slot=\"list-box-item\"\n @select=\"emit('select', $event)\"\n >\n <slot name=\"startContent\" />\n <SelectItemText ref=\"textRef\">\n <slot />\n </SelectItemText>\n <SelectItemIndicator\n class=\"list-box-item__indicator\"\n data-slot=\"list-box-item-indicator\"\n >\n <slot name=\"selectedIcon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n data-slot=\"list-box-item-indicator--checkmark\"\n aria-hidden=\"true\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </slot>\n </SelectItemIndicator>\n <slot name=\"endContent\" />\n </SelectItem>\n</template>\n"],"mappings":""}
@@ -1,3 +1,4 @@
1
+ import { useDeprecatedBooleanProp } from "../../composables/useDeprecatedBooleanProp.js";
1
2
  import { useSelectInject } from "./Select.context.js";
2
3
  import { createBlock, createElementVNode, createVNode, defineComponent, onMounted, openBlock, renderSlot, unref, useTemplateRef, withCtx } from "vue";
3
4
  import { SelectItem, SelectItemIndicator, SelectItemText } from "reka-ui";
@@ -9,7 +10,7 @@ var SelectItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
9
10
  textValue: { default: void 0 },
10
11
  isDisabled: {
11
12
  type: Boolean,
12
- default: false
13
+ default: void 0
13
14
  },
14
15
  class: { default: void 0 },
15
16
  disabled: {
@@ -26,6 +27,7 @@ var SelectItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
26
27
  setup(__props, { emit: __emit }) {
27
28
  const props = __props;
28
29
  const emit = __emit;
30
+ const isDisabled = useDeprecatedBooleanProp("SelectItem", "isDisabled", () => props.isDisabled, "disabled", () => props.disabled);
29
31
  const ctx = useSelectInject();
30
32
  const textRef = useTemplateRef("textRef");
31
33
  if (props.textValue !== void 0) ctx.registerItem(props.value, props.textValue);
@@ -37,7 +39,7 @@ var SelectItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ def
37
39
  return (_ctx, _cache) => {
38
40
  return openBlock(), createBlock(unref(SelectItem), {
39
41
  value: props.value,
40
- disabled: props.disabled ?? props.isDisabled,
42
+ disabled: unref(isDisabled),
41
43
  "text-value": props.textValue ?? String(props.value),
42
44
  as: props.as,
43
45
  "as-child": props.asChild,
@@ -1 +1 @@
1
- {"version":3,"file":"SelectItem.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/select/SelectItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, useTemplateRef } from 'vue'\nimport { SelectItem, SelectItemText, SelectItemIndicator } from 'reka-ui'\nimport { useSelectInject, type SelectItemValue } from './Select.context'\n\nconst props = withDefaults(defineProps<{\n value: SelectItemValue\n /**\n * Explicit human-readable label for this item. When provided, the registry is\n * populated immediately at setup time (before the dropdown is ever opened),\n * so SelectValue can display the correct label for a pre-set modelValue.\n * When omitted, the label is read from slot DOM text on first mount.\n */\n textValue?: string\n isDisabled?: boolean\n class?: string\n /** Whether this item is disabled. */\n disabled?: boolean\n /** Render as a different element or component. */\n as?: string\n /** Merge props onto child element instead of rendering a wrapper. */\n asChild?: boolean\n}>(), {\n textValue: undefined,\n isDisabled: false,\n class: undefined,\n disabled: undefined,\n as: undefined,\n asChild: false,\n})\n\nconst emit = defineEmits<{\n select: [event: Event]\n}>()\n\nconst ctx = useSelectInject()\nconst textRef = useTemplateRef<HTMLElement>('textRef')\n\n// Register immediately with textValue if provided — this runs at setup time,\n// before mount, so SelectValue shows the correct label for a pre-set modelValue\n// even before the dropdown has ever been opened.\nif (props.textValue !== undefined) {\n ctx.registerItem(props.value, props.textValue)\n}\n\nonMounted(() => {\n // textRef points to the SelectItemText component instance (not a DOM element).\n // Access $el to get the underlying span element and read its text content.\n // This refines the registry entry with actual DOM text (handles slot-text items\n // that don't have an explicit textValue prop).\n const el = (textRef.value as { $el?: HTMLElement } | null)?.$el\n const label = props.textValue ?? el?.textContent?.trim() ?? String(props.value)\n ctx.registerItem(props.value, label)\n})\n</script>\n\n<template>\n <SelectItem\n :value=\"props.value\"\n :disabled=\"props.disabled ?? props.isDisabled\"\n :text-value=\"props.textValue ?? String(props.value)\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n class=\"list-box-item list-box-item--default\"\n data-slot=\"list-box-item\"\n @select=\"emit('select', $event)\"\n >\n <slot name=\"startContent\" />\n <SelectItemText ref=\"textRef\">\n <slot />\n </SelectItemText>\n <SelectItemIndicator\n class=\"list-box-item__indicator\"\n data-slot=\"list-box-item-indicator\"\n >\n <slot name=\"selectedIcon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n data-slot=\"list-box-item-indicator--checkmark\"\n aria-hidden=\"true\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </slot>\n </SelectItemIndicator>\n <slot name=\"endContent\" />\n </SelectItem>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAKA,MAAM,QAAQ;EA0Bd,MAAM,OAAO;EAIb,MAAM,MAAM,iBAAgB;EAC5B,MAAM,UAAU,eAA4B,UAAS;AAKrD,MAAI,MAAM,cAAc,KAAA,EACtB,KAAI,aAAa,MAAM,OAAO,MAAM,UAAS;AAG/C,kBAAgB;GAKd,MAAM,KAAM,QAAQ,OAAwC;GAC5D,MAAM,QAAQ,MAAM,aAAa,IAAI,aAAa,MAAM,IAAI,OAAO,MAAM,MAAK;AAC9E,OAAI,aAAa,MAAM,OAAO,MAAK;IACpC;;uBAIC,YAqCa,MAAA,WAAA,EAAA;IApCV,OAAO,MAAM;IACb,UAAU,MAAM,YAAY,MAAM;IAClC,cAAY,MAAM,aAAa,OAAO,MAAM,MAAK;IACjD,IAAI,MAAM;IACV,YAAU,MAAM;IACjB,OAAM;IACN,aAAU;IACT,UAAM,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,UAAW,OAAM;;2BAEF;KAA5B,WAA4B,KAAA,QAAA,eAAA;KAC5B,YAEiB,MAAA,eAAA,EAAA;eAFG;MAAJ,KAAI;;6BACV,CAAR,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA;;;KAEV,YAqBsB,MAAA,oBAAA,EAAA;MApBpB,OAAM;MACN,aAAU;;6BAkBH,CAhBP,WAgBO,KAAA,QAAA,gBAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAfL,mBAcM,OAAA;OAbJ,OAAM;OACN,OAAM;OACN,QAAO;OACP,SAAQ;OACR,MAAK;OACL,QAAO;OACP,gBAAa;OACb,kBAAe;OACf,mBAAgB;OAChB,aAAU;OACV,eAAY;UAEZ,mBAAoC,YAAA,EAA1B,QAAO,kBAAgB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;KAIvC,WAA0B,KAAA,QAAA,aAAA"}
1
+ {"version":3,"file":"SelectItem.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/select/SelectItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { onMounted, useTemplateRef } from 'vue'\nimport { SelectItem, SelectItemText, SelectItemIndicator } from 'reka-ui'\nimport { useSelectInject, type SelectItemValue } from './Select.context'\nimport { useDeprecatedBooleanProp } from '../../composables/useDeprecatedBooleanProp'\n\nconst props = withDefaults(defineProps<{\n value: SelectItemValue\n /**\n * Explicit human-readable label for this item. When provided, the registry is\n * populated immediately at setup time (before the dropdown is ever opened),\n * so SelectValue can display the correct label for a pre-set modelValue.\n * When omitted, the label is read from slot DOM text on first mount.\n */\n textValue?: string\n isDisabled?: boolean\n class?: string\n /** @deprecated Use isDisabled instead. */\n disabled?: boolean\n /** Render as a different element or component. */\n as?: string\n /** Merge props onto child element instead of rendering a wrapper. */\n asChild?: boolean\n}>(), {\n textValue: undefined,\n isDisabled: undefined,\n class: undefined,\n disabled: undefined,\n as: undefined,\n asChild: false,\n})\n\nconst emit = defineEmits<{\n select: [event: Event]\n}>()\n\nconst isDisabled = useDeprecatedBooleanProp(\n 'SelectItem', 'isDisabled', () => props.isDisabled, 'disabled', () => props.disabled,\n)\n\nconst ctx = useSelectInject()\nconst textRef = useTemplateRef<HTMLElement>('textRef')\n\n// Register immediately with textValue if provided — this runs at setup time,\n// before mount, so SelectValue shows the correct label for a pre-set modelValue\n// even before the dropdown has ever been opened.\nif (props.textValue !== undefined) {\n ctx.registerItem(props.value, props.textValue)\n}\n\nonMounted(() => {\n // textRef points to the SelectItemText component instance (not a DOM element).\n // Access $el to get the underlying span element and read its text content.\n // This refines the registry entry with actual DOM text (handles slot-text items\n // that don't have an explicit textValue prop).\n const el = (textRef.value as { $el?: HTMLElement } | null)?.$el\n const label = props.textValue ?? el?.textContent?.trim() ?? String(props.value)\n ctx.registerItem(props.value, label)\n})\n</script>\n\n<template>\n <SelectItem\n :value=\"props.value\"\n :disabled=\"isDisabled\"\n :text-value=\"props.textValue ?? String(props.value)\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n class=\"list-box-item list-box-item--default\"\n data-slot=\"list-box-item\"\n @select=\"emit('select', $event)\"\n >\n <slot name=\"startContent\" />\n <SelectItemText ref=\"textRef\">\n <slot />\n </SelectItemText>\n <SelectItemIndicator\n class=\"list-box-item__indicator\"\n data-slot=\"list-box-item-indicator\"\n >\n <slot name=\"selectedIcon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"3\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n data-slot=\"list-box-item-indicator--checkmark\"\n aria-hidden=\"true\"\n >\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n </slot>\n </SelectItemIndicator>\n <slot name=\"endContent\" />\n </SelectItem>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;EAMA,MAAM,QAAQ;EA0Bd,MAAM,OAAO;EAIb,MAAM,aAAa,yBACjB,cAAc,oBAAoB,MAAM,YAAY,kBAAkB,MAAM,SAC9E;EAEA,MAAM,MAAM,iBAAgB;EAC5B,MAAM,UAAU,eAA4B,UAAS;AAKrD,MAAI,MAAM,cAAc,KAAA,EACtB,KAAI,aAAa,MAAM,OAAO,MAAM,UAAS;AAG/C,kBAAgB;GAKd,MAAM,KAAM,QAAQ,OAAwC;GAC5D,MAAM,QAAQ,MAAM,aAAa,IAAI,aAAa,MAAM,IAAI,OAAO,MAAM,MAAK;AAC9E,OAAI,aAAa,MAAM,OAAO,MAAK;IACpC;;uBAIC,YAqCa,MAAA,WAAA,EAAA;IApCV,OAAO,MAAM;IACb,UAAU,MAAA,WAAU;IACpB,cAAY,MAAM,aAAa,OAAO,MAAM,MAAK;IACjD,IAAI,MAAM;IACV,YAAU,MAAM;IACjB,OAAM;IACN,aAAU;IACT,UAAM,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,UAAW,OAAM;;2BAEF;KAA5B,WAA4B,KAAA,QAAA,eAAA;KAC5B,YAEiB,MAAA,eAAA,EAAA;eAFG;MAAJ,KAAI;;6BACV,CAAR,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA;;;KAEV,YAqBsB,MAAA,oBAAA,EAAA;MApBpB,OAAM;MACN,aAAU;;6BAkBH,CAhBP,WAgBO,KAAA,QAAA,gBAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAfL,mBAcM,OAAA;OAbJ,OAAM;OACN,OAAM;OACN,QAAO;OACP,SAAQ;OACR,MAAK;OACL,QAAO;OACP,gBAAa;OACb,kBAAe;OACf,mBAAgB;OAChB,aAAU;OACV,eAAY;UAEZ,mBAAoC,YAAA,EAA1B,QAAO,kBAAgB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA;;;KAIvC,WAA0B,KAAA,QAAA,aAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTrigger.js","names":[],"sources":["../../../src/components/select/SelectTrigger.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { SelectTrigger, SelectIcon, injectSelectRootContext } from 'reka-ui'\nimport { useSelectInject } from './Select.context'\n\nconst props = withDefaults(defineProps<{\n class?: string\n /** Whether the trigger is disabled. */\n disabled?: boolean\n /** Virtual or DOM reference element to position against. */\n reference?: object | null\n /** Render as a different element or component. */\n as?: string\n /** Merge props onto child element instead of rendering a wrapper. */\n asChild?: boolean\n}>(), {\n class: undefined,\n disabled: undefined,\n reference: undefined,\n as: undefined,\n asChild: false,\n})\n\nconst ctx = useSelectInject()\nconst rootContext = injectSelectRootContext()\n\nconst isFilled = computed(() => {\n const v = rootContext?.modelValue?.value\n if (v == null) return false\n if (Array.isArray(v)) return v.length > 0\n return v !== ''\n})\n\nconst showInsideLabel = computed(\n () => ctx.hasLabel.value && ctx.labelPlacement.value === 'inside',\n)\n\n// Guard re-open when Reka returns focus to the trigger after close (value\n// selection, Escape, Tab). Set to true whenever open transitions true→false,\n// reset after a microtask once the focus-return event has been processed.\nconst skipNextFocus = ref(false)\n\n// flush:'sync' fires the moment open.value changes (synchronously, before any\n// Vue scheduling), so skipNextFocus is true before Reka's FocusScope can call\n// trigger.focus(). setTimeout defers the reset until after all pending\n// microtasks (render + focus-return) have flushed.\nwatch(() => rootContext.open.value, (open, wasOpen) => {\n if (!open && wasOpen) {\n skipNextFocus.value = true\n setTimeout(() => { skipNextFocus.value = false }, 0)\n }\n}, { flush: 'sync' })\n\nfunction handleFocus() {\n if (ctx.isDisabled.value || ctx.isReadonly.value || skipNextFocus.value || rootContext.open.value) return\n rootContext.onOpenChange(true)\n}\n</script>\n\n<template>\n <SelectTrigger\n :id=\"ctx.triggerId.value\"\n :class=\"ctx.slots.value.trigger()\"\n :data-filled=\"isFilled || undefined\"\n :data-invalid=\"ctx.isInvalid.value || undefined\"\n :data-readonly=\"ctx.isReadonly.value || undefined\"\n :aria-invalid=\"ctx.isInvalid.value || undefined\"\n :aria-describedby=\"ctx.ariaDescribedBy.value\"\n :disabled=\"props.disabled\"\n :reference=\"(props.reference as any)\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n data-slot=\"trigger\"\n @focus=\"handleFocus\"\n >\n <label\n v-if=\"showInsideLabel\"\n :for=\"ctx.triggerId.value\"\n :class=\"ctx.slots.value.label()\"\n >{{ ctx.label.value }}<span\n v-if=\"ctx.isRequired.value\"\n aria-hidden=\"true\"\n > *</span></label>\n <span\n v-if=\"$slots.startContent\"\n :class=\"ctx.slots.value.startContent()\"\n data-slot=\"start-content\"\n >\n <slot name=\"startContent\" />\n </span>\n <slot />\n <SelectIcon\n :class=\"ctx.slots.value.indicator()\"\n data-slot=\"select-default-indicator\"\n >\n <slot name=\"selectorIcon\">\n <svg\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=\"6 9 12 15 18 9\" />\n </svg>\n </slot>\n </SelectIcon>\n </SelectTrigger>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"SelectTrigger.js","names":[],"sources":["../../../src/components/select/SelectTrigger.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { SelectTrigger, SelectIcon, injectSelectRootContext } from 'reka-ui'\nimport { useSelectInject } from './Select.context'\nimport { useDeprecatedBooleanProp } from '../../composables/useDeprecatedBooleanProp'\nimport FieldLabel from '../_shared/FieldLabel.vue'\n\nconst props = withDefaults(defineProps<{\n class?: string\n /** Whether the trigger is disabled. */\n isDisabled?: boolean\n /** @deprecated Use isDisabled instead. */\n disabled?: boolean\n /** Virtual or DOM reference element to position against. */\n reference?: object | null\n /** Render as a different element or component. */\n as?: string\n /** Merge props onto child element instead of rendering a wrapper. */\n asChild?: boolean\n}>(), {\n class: undefined,\n isDisabled: undefined,\n disabled: undefined,\n reference: undefined,\n as: undefined,\n asChild: false,\n})\n\nconst isDisabled = useDeprecatedBooleanProp(\n 'SelectTrigger', 'isDisabled', () => props.isDisabled, 'disabled', () => props.disabled,\n)\n\nconst ctx = useSelectInject()\nconst rootContext = injectSelectRootContext()\n\nconst isFilled = computed(() => {\n const v = rootContext?.modelValue?.value\n if (v == null) return false\n if (Array.isArray(v)) return v.length > 0\n return v !== ''\n})\n\nconst showInsideLabel = computed(\n () => ctx.hasLabel.value && ctx.labelPlacement.value === 'inside',\n)\n\n// Guard re-open when Reka returns focus to the trigger after close (value\n// selection, Escape, Tab). Set to true whenever open transitions true→false,\n// reset after a microtask once the focus-return event has been processed.\nconst skipNextFocus = ref(false)\n\n// flush:'sync' fires the moment open.value changes (synchronously, before any\n// Vue scheduling), so skipNextFocus is true before Reka's FocusScope can call\n// trigger.focus(). setTimeout defers the reset until after all pending\n// microtasks (render + focus-return) have flushed.\nwatch(() => rootContext.open.value, (open, wasOpen) => {\n if (!open && wasOpen) {\n skipNextFocus.value = true\n setTimeout(() => { skipNextFocus.value = false }, 0)\n }\n}, { flush: 'sync' })\n\nfunction handleFocus() {\n if (ctx.isDisabled.value || ctx.isReadonly.value || skipNextFocus.value || rootContext.open.value) return\n rootContext.onOpenChange(true)\n}\n</script>\n\n<template>\n <SelectTrigger\n :id=\"ctx.triggerId.value\"\n :class=\"ctx.slots.value.trigger()\"\n :data-filled=\"isFilled || undefined\"\n :data-invalid=\"ctx.isInvalid.value || undefined\"\n :data-readonly=\"ctx.isReadonly.value || undefined\"\n :aria-invalid=\"ctx.isInvalid.value || undefined\"\n :aria-describedby=\"ctx.ariaDescribedBy.value\"\n :disabled=\"isDisabled\"\n :reference=\"(props.reference as any)\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n data-slot=\"trigger\"\n @focus=\"handleFocus\"\n >\n <FieldLabel\n v-if=\"showInsideLabel\"\n :for=\"ctx.triggerId.value\"\n :label=\"ctx.label.value\"\n :is-required=\"ctx.isRequired.value\"\n :class=\"ctx.slots.value.label()\"\n />\n <span\n v-if=\"$slots.startContent\"\n :class=\"ctx.slots.value.startContent()\"\n data-slot=\"start-content\"\n >\n <slot name=\"startContent\" />\n </span>\n <slot />\n <SelectIcon\n :class=\"ctx.slots.value.indicator()\"\n data-slot=\"select-default-indicator\"\n >\n <slot name=\"selectorIcon\">\n <svg\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=\"6 9 12 15 18 9\" />\n </svg>\n </slot>\n </SelectIcon>\n </SelectTrigger>\n</template>\n"],"mappings":""}
@@ -1,16 +1,17 @@
1
+ import { useDeprecatedBooleanProp } from "../../composables/useDeprecatedBooleanProp.js";
2
+ import FieldLabel_default from "../_shared/FieldLabel.js";
1
3
  import { useSelectInject } from "./Select.context.js";
2
- import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createTextVNode, createVNode, defineComponent, normalizeClass, openBlock, ref, renderSlot, toDisplayString, unref, watch, withCtx } from "vue";
4
+ import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, normalizeClass, openBlock, ref, renderSlot, unref, watch, withCtx } from "vue";
3
5
  import { SelectIcon, SelectTrigger, injectSelectRootContext } from "reka-ui";
4
6
  //#region src/components/select/SelectTrigger.vue?vue&type=script&setup=true&lang.ts
5
- var _hoisted_1 = ["for"];
6
- var _hoisted_2 = {
7
- key: 0,
8
- "aria-hidden": "true"
9
- };
10
7
  var SelectTrigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
11
8
  __name: "SelectTrigger",
12
9
  props: {
13
10
  class: { default: void 0 },
11
+ isDisabled: {
12
+ type: Boolean,
13
+ default: void 0
14
+ },
14
15
  disabled: {
15
16
  type: Boolean,
16
17
  default: void 0
@@ -24,6 +25,7 @@ var SelectTrigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
24
25
  },
25
26
  setup(__props) {
26
27
  const props = __props;
28
+ const isDisabled = useDeprecatedBooleanProp("SelectTrigger", "isDisabled", () => props.isDisabled, "disabled", () => props.disabled);
27
29
  const ctx = useSelectInject();
28
30
  const rootContext = injectSelectRootContext();
29
31
  const isFilled = computed(() => {
@@ -55,7 +57,7 @@ var SelectTrigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
55
57
  "data-readonly": unref(ctx).isReadonly.value || void 0,
56
58
  "aria-invalid": unref(ctx).isInvalid.value || void 0,
57
59
  "aria-describedby": unref(ctx).ariaDescribedBy.value,
58
- disabled: props.disabled,
60
+ disabled: unref(isDisabled),
59
61
  reference: props.reference,
60
62
  as: props.as,
61
63
  "as-child": props.asChild,
@@ -63,11 +65,18 @@ var SelectTrigger_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
63
65
  onFocus: handleFocus
64
66
  }, {
65
67
  default: withCtx(() => [
66
- showInsideLabel.value ? (openBlock(), createElementBlock("label", {
68
+ showInsideLabel.value ? (openBlock(), createBlock(FieldLabel_default, {
67
69
  key: 0,
68
70
  for: unref(ctx).triggerId.value,
71
+ label: unref(ctx).label.value,
72
+ "is-required": unref(ctx).isRequired.value,
69
73
  class: normalizeClass(unref(ctx).slots.value.label())
70
- }, [createTextVNode(toDisplayString(unref(ctx).label.value), 1), unref(ctx).isRequired.value ? (openBlock(), createElementBlock("span", _hoisted_2, " *")) : createCommentVNode("", true)], 10, _hoisted_1)) : createCommentVNode("", true),
74
+ }, null, 8, [
75
+ "for",
76
+ "label",
77
+ "is-required",
78
+ "class"
79
+ ])) : createCommentVNode("", true),
71
80
  _ctx.$slots.startContent ? (openBlock(), createElementBlock("span", {
72
81
  key: 1,
73
82
  class: normalizeClass(unref(ctx).slots.value.startContent()),
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTrigger.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../src/components/select/SelectTrigger.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { SelectTrigger, SelectIcon, injectSelectRootContext } from 'reka-ui'\nimport { useSelectInject } from './Select.context'\n\nconst props = withDefaults(defineProps<{\n class?: string\n /** Whether the trigger is disabled. */\n disabled?: boolean\n /** Virtual or DOM reference element to position against. */\n reference?: object | null\n /** Render as a different element or component. */\n as?: string\n /** Merge props onto child element instead of rendering a wrapper. */\n asChild?: boolean\n}>(), {\n class: undefined,\n disabled: undefined,\n reference: undefined,\n as: undefined,\n asChild: false,\n})\n\nconst ctx = useSelectInject()\nconst rootContext = injectSelectRootContext()\n\nconst isFilled = computed(() => {\n const v = rootContext?.modelValue?.value\n if (v == null) return false\n if (Array.isArray(v)) return v.length > 0\n return v !== ''\n})\n\nconst showInsideLabel = computed(\n () => ctx.hasLabel.value && ctx.labelPlacement.value === 'inside',\n)\n\n// Guard re-open when Reka returns focus to the trigger after close (value\n// selection, Escape, Tab). Set to true whenever open transitions true→false,\n// reset after a microtask once the focus-return event has been processed.\nconst skipNextFocus = ref(false)\n\n// flush:'sync' fires the moment open.value changes (synchronously, before any\n// Vue scheduling), so skipNextFocus is true before Reka's FocusScope can call\n// trigger.focus(). setTimeout defers the reset until after all pending\n// microtasks (render + focus-return) have flushed.\nwatch(() => rootContext.open.value, (open, wasOpen) => {\n if (!open && wasOpen) {\n skipNextFocus.value = true\n setTimeout(() => { skipNextFocus.value = false }, 0)\n }\n}, { flush: 'sync' })\n\nfunction handleFocus() {\n if (ctx.isDisabled.value || ctx.isReadonly.value || skipNextFocus.value || rootContext.open.value) return\n rootContext.onOpenChange(true)\n}\n</script>\n\n<template>\n <SelectTrigger\n :id=\"ctx.triggerId.value\"\n :class=\"ctx.slots.value.trigger()\"\n :data-filled=\"isFilled || undefined\"\n :data-invalid=\"ctx.isInvalid.value || undefined\"\n :data-readonly=\"ctx.isReadonly.value || undefined\"\n :aria-invalid=\"ctx.isInvalid.value || undefined\"\n :aria-describedby=\"ctx.ariaDescribedBy.value\"\n :disabled=\"props.disabled\"\n :reference=\"(props.reference as any)\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n data-slot=\"trigger\"\n @focus=\"handleFocus\"\n >\n <label\n v-if=\"showInsideLabel\"\n :for=\"ctx.triggerId.value\"\n :class=\"ctx.slots.value.label()\"\n >{{ ctx.label.value }}<span\n v-if=\"ctx.isRequired.value\"\n aria-hidden=\"true\"\n > *</span></label>\n <span\n v-if=\"$slots.startContent\"\n :class=\"ctx.slots.value.startContent()\"\n data-slot=\"start-content\"\n >\n <slot name=\"startContent\" />\n </span>\n <slot />\n <SelectIcon\n :class=\"ctx.slots.value.indicator()\"\n data-slot=\"select-default-indicator\"\n >\n <slot name=\"selectorIcon\">\n <svg\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=\"6 9 12 15 18 9\" />\n </svg>\n </slot>\n </SelectIcon>\n </SelectTrigger>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;EAKA,MAAM,QAAQ;EAkBd,MAAM,MAAM,iBAAgB;EAC5B,MAAM,cAAc,yBAAwB;EAE5C,MAAM,WAAW,eAAe;GAC9B,MAAM,IAAI,aAAa,YAAY;AACnC,OAAI,KAAK,KAAM,QAAO;AACtB,OAAI,MAAM,QAAQ,EAAE,CAAE,QAAO,EAAE,SAAS;AACxC,UAAO,MAAM;IACd;EAED,MAAM,kBAAkB,eAChB,IAAI,SAAS,SAAS,IAAI,eAAe,UAAU,SAC3D;EAKA,MAAM,gBAAgB,IAAI,MAAK;AAM/B,cAAY,YAAY,KAAK,QAAQ,MAAM,YAAY;AACrD,OAAI,CAAC,QAAQ,SAAS;AACpB,kBAAc,QAAQ;AACtB,qBAAiB;AAAE,mBAAc,QAAQ;OAAS,EAAC;;KAEpD,EAAE,OAAO,QAAQ,CAAA;EAEpB,SAAS,cAAc;AACrB,OAAI,IAAI,WAAW,SAAS,IAAI,WAAW,SAAS,cAAc,SAAS,YAAY,KAAK,MAAO;AACnG,eAAY,aAAa,KAAI;;;uBAK7B,YAoDgB,MAAA,cAAA,EAAA;IAnDb,IAAI,MAAA,IAAG,CAAC,UAAU;IAClB,OAAK,eAAE,MAAA,IAAG,CAAC,MAAM,MAAM,SAAO,CAAA;IAC9B,eAAa,SAAA,SAAY,KAAA;IACzB,gBAAc,MAAA,IAAG,CAAC,UAAU,SAAS,KAAA;IACrC,iBAAe,MAAA,IAAG,CAAC,WAAW,SAAS,KAAA;IACvC,gBAAc,MAAA,IAAG,CAAC,UAAU,SAAS,KAAA;IACrC,oBAAkB,MAAA,IAAG,CAAC,gBAAgB;IACtC,UAAU,MAAM;IAChB,WAAY,MAAM;IAClB,IAAI,MAAM;IACV,YAAU,MAAM;IACjB,aAAU;IACT,SAAO;;2BASU;KANV,gBAAA,SAAA,WAAA,EADR,mBAOkB,SAAA;;MALf,KAAK,MAAA,IAAG,CAAC,UAAU;MACnB,OAAK,eAAE,MAAA,IAAG,CAAC,MAAM,MAAM,OAAK,CAAA;yCAC3B,MAAA,IAAG,CAAC,MAAM,MAAK,EAAA,EAAA,EACX,MAAA,IAAG,CAAC,WAAW,SAAA,WAAA,EADD,mBAGZ,QAHY,YAGrB,KAAE,IAAA,mBAAA,IAAA,KAAA,CAAA,EAAA,IAAA,WAAA,IAAA,mBAAA,IAAA,KAAA;KAEKA,KAAAA,OAAO,gBAAA,WAAA,EADf,mBAMO,QAAA;;MAJJ,OAAK,eAAE,MAAA,IAAG,CAAC,MAAM,MAAM,cAAY,CAAA;MACpC,aAAU;SAEV,WAA4B,KAAA,QAAA,eAAA,CAAA,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;KAE9B,WAAQ,KAAA,QAAA,UAAA;KACR,YAoBa,MAAA,WAAA,EAAA;MAnBV,OAAK,eAAE,MAAA,IAAG,CAAC,MAAM,MAAM,WAAS,CAAA;MACjC,aAAU;;6BAiBH,CAfP,WAeO,KAAA,QAAA,gBAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAdL,mBAaM,OAAA;OAZJ,OAAM;OACN,OAAM;OACN,QAAO;OACP,SAAQ;OACR,MAAK;OACL,QAAO;OACP,gBAAa;OACb,kBAAe;OACf,mBAAgB;OAChB,eAAY;UAEZ,mBAAoC,YAAA,EAA1B,QAAO,kBAAgB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"SelectTrigger.vue_vue_type_script_setup_true_lang.js","names":["$slots"],"sources":["../../../src/components/select/SelectTrigger.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue'\nimport { SelectTrigger, SelectIcon, injectSelectRootContext } from 'reka-ui'\nimport { useSelectInject } from './Select.context'\nimport { useDeprecatedBooleanProp } from '../../composables/useDeprecatedBooleanProp'\nimport FieldLabel from '../_shared/FieldLabel.vue'\n\nconst props = withDefaults(defineProps<{\n class?: string\n /** Whether the trigger is disabled. */\n isDisabled?: boolean\n /** @deprecated Use isDisabled instead. */\n disabled?: boolean\n /** Virtual or DOM reference element to position against. */\n reference?: object | null\n /** Render as a different element or component. */\n as?: string\n /** Merge props onto child element instead of rendering a wrapper. */\n asChild?: boolean\n}>(), {\n class: undefined,\n isDisabled: undefined,\n disabled: undefined,\n reference: undefined,\n as: undefined,\n asChild: false,\n})\n\nconst isDisabled = useDeprecatedBooleanProp(\n 'SelectTrigger', 'isDisabled', () => props.isDisabled, 'disabled', () => props.disabled,\n)\n\nconst ctx = useSelectInject()\nconst rootContext = injectSelectRootContext()\n\nconst isFilled = computed(() => {\n const v = rootContext?.modelValue?.value\n if (v == null) return false\n if (Array.isArray(v)) return v.length > 0\n return v !== ''\n})\n\nconst showInsideLabel = computed(\n () => ctx.hasLabel.value && ctx.labelPlacement.value === 'inside',\n)\n\n// Guard re-open when Reka returns focus to the trigger after close (value\n// selection, Escape, Tab). Set to true whenever open transitions true→false,\n// reset after a microtask once the focus-return event has been processed.\nconst skipNextFocus = ref(false)\n\n// flush:'sync' fires the moment open.value changes (synchronously, before any\n// Vue scheduling), so skipNextFocus is true before Reka's FocusScope can call\n// trigger.focus(). setTimeout defers the reset until after all pending\n// microtasks (render + focus-return) have flushed.\nwatch(() => rootContext.open.value, (open, wasOpen) => {\n if (!open && wasOpen) {\n skipNextFocus.value = true\n setTimeout(() => { skipNextFocus.value = false }, 0)\n }\n}, { flush: 'sync' })\n\nfunction handleFocus() {\n if (ctx.isDisabled.value || ctx.isReadonly.value || skipNextFocus.value || rootContext.open.value) return\n rootContext.onOpenChange(true)\n}\n</script>\n\n<template>\n <SelectTrigger\n :id=\"ctx.triggerId.value\"\n :class=\"ctx.slots.value.trigger()\"\n :data-filled=\"isFilled || undefined\"\n :data-invalid=\"ctx.isInvalid.value || undefined\"\n :data-readonly=\"ctx.isReadonly.value || undefined\"\n :aria-invalid=\"ctx.isInvalid.value || undefined\"\n :aria-describedby=\"ctx.ariaDescribedBy.value\"\n :disabled=\"isDisabled\"\n :reference=\"(props.reference as any)\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n data-slot=\"trigger\"\n @focus=\"handleFocus\"\n >\n <FieldLabel\n v-if=\"showInsideLabel\"\n :for=\"ctx.triggerId.value\"\n :label=\"ctx.label.value\"\n :is-required=\"ctx.isRequired.value\"\n :class=\"ctx.slots.value.label()\"\n />\n <span\n v-if=\"$slots.startContent\"\n :class=\"ctx.slots.value.startContent()\"\n data-slot=\"start-content\"\n >\n <slot name=\"startContent\" />\n </span>\n <slot />\n <SelectIcon\n :class=\"ctx.slots.value.indicator()\"\n data-slot=\"select-default-indicator\"\n >\n <slot name=\"selectorIcon\">\n <svg\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=\"6 9 12 15 18 9\" />\n </svg>\n </slot>\n </SelectIcon>\n </SelectTrigger>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;EAOA,MAAM,QAAQ;EAqBd,MAAM,aAAa,yBACjB,iBAAiB,oBAAoB,MAAM,YAAY,kBAAkB,MAAM,SACjF;EAEA,MAAM,MAAM,iBAAgB;EAC5B,MAAM,cAAc,yBAAwB;EAE5C,MAAM,WAAW,eAAe;GAC9B,MAAM,IAAI,aAAa,YAAY;AACnC,OAAI,KAAK,KAAM,QAAO;AACtB,OAAI,MAAM,QAAQ,EAAE,CAAE,QAAO,EAAE,SAAS;AACxC,UAAO,MAAM;IACd;EAED,MAAM,kBAAkB,eAChB,IAAI,SAAS,SAAS,IAAI,eAAe,UAAU,SAC3D;EAKA,MAAM,gBAAgB,IAAI,MAAK;AAM/B,cAAY,YAAY,KAAK,QAAQ,MAAM,YAAY;AACrD,OAAI,CAAC,QAAQ,SAAS;AACpB,kBAAc,QAAQ;AACtB,qBAAiB;AAAE,mBAAc,QAAQ;OAAS,EAAC;;KAEpD,EAAE,OAAO,QAAQ,CAAA;EAEpB,SAAS,cAAc;AACrB,OAAI,IAAI,WAAW,SAAS,IAAI,WAAW,SAAS,cAAc,SAAS,YAAY,KAAK,MAAO;AACnG,eAAY,aAAa,KAAI;;;uBAK7B,YAmDgB,MAAA,cAAA,EAAA;IAlDb,IAAI,MAAA,IAAG,CAAC,UAAU;IAClB,OAAK,eAAE,MAAA,IAAG,CAAC,MAAM,MAAM,SAAO,CAAA;IAC9B,eAAa,SAAA,SAAY,KAAA;IACzB,gBAAc,MAAA,IAAG,CAAC,UAAU,SAAS,KAAA;IACrC,iBAAe,MAAA,IAAG,CAAC,WAAW,SAAS,KAAA;IACvC,gBAAc,MAAA,IAAG,CAAC,UAAU,SAAS,KAAA;IACrC,oBAAkB,MAAA,IAAG,CAAC,gBAAgB;IACtC,UAAU,MAAA,WAAU;IACpB,WAAY,MAAM;IAClB,IAAI,MAAM;IACV,YAAU,MAAM;IACjB,aAAU;IACT,SAAO;;2BAQN;KALM,gBAAA,SAAA,WAAA,EADR,YAME,oBAAA;;MAJC,KAAK,MAAA,IAAG,CAAC,UAAU;MACnB,OAAO,MAAA,IAAG,CAAC,MAAM;MACjB,eAAa,MAAA,IAAG,CAAC,WAAW;MAC5B,OAAK,eAAE,MAAA,IAAG,CAAC,MAAM,MAAM,OAAK,CAAA;;;;;;;KAGvBA,KAAAA,OAAO,gBAAA,WAAA,EADf,mBAMO,QAAA;;MAJJ,OAAK,eAAE,MAAA,IAAG,CAAC,MAAM,MAAM,cAAY,CAAA;MACpC,aAAU;SAEV,WAA4B,KAAA,QAAA,eAAA,CAAA,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;KAE9B,WAAQ,KAAA,QAAA,UAAA;KACR,YAoBa,MAAA,WAAA,EAAA;MAnBV,OAAK,eAAE,MAAA,IAAG,CAAC,MAAM,MAAM,WAAS,CAAA;MACjC,aAAU;;6BAiBH,CAfP,WAeO,KAAA,QAAA,gBAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAdL,mBAaM,OAAA;OAZJ,OAAM;OACN,OAAM;OACN,QAAO;OACP,SAAQ;OACR,MAAK;OACL,QAAO;OACP,gBAAa;OACb,kBAAe;OACf,mBAAgB;OAChB,eAAY;UAEZ,mBAAoC,YAAA,EAA1B,QAAO,kBAAgB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","names":[],"sources":["../../../src/components/slider/Slider.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { SliderRoot, SliderTrack, SliderRange, SliderThumb } from 'reka-ui'\nimport { sliderVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\n\nconst props = withDefaults(defineProps<{\n modelValue?: number | number[]\n defaultValue?: number | number[]\n min?: number\n max?: number\n step?: number\n minStepsBetweenThumbs?: number\n orientation?: 'horizontal' | 'vertical'\n size?: 'sm' | 'md' | 'lg'\n color?: 'primary' | 'secondary' | 'success' | 'warning' | 'danger'\n radius?: 'none' | 'sm' | 'md' | 'lg' | 'full'\n label?: string\n showSteps?: boolean\n marks?: Array<{ value: number; label?: string }>\n formatOptions?: Intl.NumberFormatOptions\n hideValue?: boolean\n hideThumb?: boolean\n disabled?: boolean\n inverted?: boolean\n /** Text direction forwarded to SliderRoot. */\n dir?: 'ltr' | 'rtl'\n /** How the thumbs align relative to the track ends. */\n thumbAlignment?: 'contain' | 'overflow'\n /** Whether SliderRoot renders as a child element. */\n asChild?: boolean\n /** Element or component to render SliderRoot as. */\n as?: string\n /** HTML name attribute forwarded to SliderRoot. */\n name?: string\n /** Whether the slider is required. */\n required?: boolean\n /** Whether SliderTrack renders as a child element. */\n trackAsChild?: boolean\n /** Element or component to render SliderTrack as. */\n trackAs?: string\n /** Whether SliderRange renders as a child element. */\n rangeAsChild?: boolean\n /** Element or component to render SliderRange as. */\n rangeAs?: string\n /** Whether SliderThumb renders as a child element. */\n thumbAsChild?: boolean\n /** Element or component to render SliderThumb as. */\n thumbAs?: string\n class?: ClassValue\n /**\n * Per-slot class overrides. Keys map to internal slot names (base, output, track, fill, marks, thumb).\n */\n classNames?: Partial<{\n base: ClassValue\n output: ClassValue\n track: ClassValue\n fill: ClassValue\n marks: ClassValue\n thumb: ClassValue\n }>\n}>(), {\n min: 0,\n max: 100,\n step: 1,\n minStepsBetweenThumbs: 0,\n orientation: 'horizontal',\n showSteps: false,\n hideValue: false,\n hideThumb: false,\n disabled: false,\n inverted: false,\n dir: undefined,\n thumbAlignment: 'overflow',\n asChild: false,\n as: undefined,\n name: undefined,\n required: false,\n trackAsChild: false,\n trackAs: undefined,\n rangeAsChild: false,\n rangeAs: undefined,\n thumbAsChild: false,\n thumbAs: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: number | number[]): void\n (e: 'value-commit', value: number | number[]): void\n}>()\n\n// FIX: Also check defaultValue so uncontrolled range mode is detected correctly.\nconst isRange = computed(() =>\n Array.isArray(props.modelValue) || Array.isArray(props.defaultValue)\n)\n\n// Reka UI SliderRoot always uses number[]. Wrap scalar -> [v] for Reka.\nconst internalValue = computed({\n get(): number[] {\n if (props.modelValue === undefined) {\n return props.defaultValue !== undefined\n ? Array.isArray(props.defaultValue)\n ? props.defaultValue\n : [props.defaultValue]\n : [Math.round((props.min + props.max) / 2)]\n }\n return Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue]\n },\n set(val: number[]) {\n // Unwrap: if original prop was scalar, emit scalar; otherwise emit array\n if (isRange.value) {\n emit('update:modelValue', val)\n } else {\n emit('update:modelValue', val[0])\n }\n },\n})\n\n// FIX: Pass size, color, radius so variants are applied.\nconst slotFns = computed(() =>\n sliderVariants({ size: props.size, color: props.color, radius: props.radius })\n)\n\n// Show the label/output wrapper if label prop is provided or hideValue is false\nconst showLabelWrapper = computed(() =>\n !!props.label || !props.hideValue\n)\n\n// Format a single value\nfunction formatValue(v: number): string {\n if (props.formatOptions) {\n return new Intl.NumberFormat(undefined, props.formatOptions).format(v)\n }\n return String(v)\n}\n\n// Formatted output string: joined with \" - \" for ranges\nconst formatted = computed(() => {\n return internalValue.value.map(formatValue).join(' \\u2013 ')\n})\n\n// Compute % position for a value within [min, max]\nfunction toPercent(v: number): number {\n const range = props.max - props.min\n if (range === 0) return 0\n return ((v - props.min) / range) * 100\n}\n\n// Tick positions (percentages) for showSteps\nconst tickPositions = computed<number[]>(() => {\n if (!props.showSteps) return []\n const positions: number[] = []\n let v = props.min\n while (v <= props.max) {\n positions.push(toPercent(v))\n v = Math.round((v + props.step) * 1e10) / 1e10 // avoid floating-point drift\n }\n return positions\n})\n\n// Determine which axis to use for positioning (left/bottom)\nconst positionAxis = computed(() =>\n props.orientation === 'vertical' ? 'bottom' : 'left'\n)\n</script>\n\n<template>\n <div\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :data-orientation=\"orientation\"\n :data-disabled=\"disabled || undefined\"\n >\n <!-- Label + output row -->\n <template v-if=\"showLabelWrapper\">\n <!--\n FIX: label does NOT get a class from slotFns.\n The CSS rule `.slider [data-slot=\"label\"]` targets it via data-slot attribute.\n Previously used :class=\"slotFns.base()\" which returned \"slider\" (root class) — wrong.\n -->\n <label\n v-if=\"label\"\n data-slot=\"label\"\n >{{ label }}</label>\n <output\n v-if=\"!hideValue\"\n :class=\"composeClassName(slotFns.output(), props.classNames?.output)\"\n >{{ formatted }}</output>\n </template>\n\n <!-- Slider body -->\n <div class=\"relative flex items-center gap-2\">\n <!-- Start content slot -->\n <slot name=\"startContent\" />\n\n <SliderRoot\n v-model=\"internalValue\"\n :min=\"min\"\n :max=\"max\"\n :step=\"step\"\n :min-steps-between-thumbs=\"minStepsBetweenThumbs\"\n :orientation=\"orientation\"\n :disabled=\"disabled\"\n :inverted=\"inverted\"\n :dir=\"props.dir\"\n :thumb-alignment=\"props.thumbAlignment\"\n :as-child=\"props.asChild\"\n :as=\"props.as\"\n :name=\"props.name\"\n :required=\"props.required\"\n class=\"relative flex items-center select-none touch-none w-full\"\n :data-orientation=\"orientation\"\n @value-commit=\"emit('value-commit', isRange ? $event : $event[0])\"\n >\n <SliderTrack\n :as-child=\"props.trackAsChild\"\n :as=\"props.trackAs\"\n :class=\"composeClassName(slotFns.track(), props.classNames?.track)\"\n >\n <SliderRange\n :as-child=\"props.rangeAsChild\"\n :as=\"props.rangeAs\"\n :class=\"composeClassName(slotFns.fill(), props.classNames?.fill)\"\n />\n\n <!--\n FIX: tick spans have NO class from slotFns (was :class=\"slotFns.base()\" = \"slider\" — wrong).\n Ticks are purely positional; identified by data-slider-tick attribute only.\n -->\n <span\n v-for=\"(pct, i) in tickPositions\"\n :key=\"`tick-${i}`\"\n :style=\"{ [positionAxis]: pct + '%' }\"\n aria-hidden=\"true\"\n data-slider-tick\n class=\"absolute pointer-events-none\"\n />\n\n <!-- Labeled marks -->\n <span\n v-for=\"mark in (marks || [])\"\n :key=\"`mark-${mark.value}`\"\n :class=\"composeClassName(slotFns.marks(), props.classNames?.marks)\"\n :style=\"{ [positionAxis]: toPercent(mark.value) + '%' }\"\n data-slider-mark\n class=\"absolute\"\n >{{ mark.label }}</span>\n </SliderTrack>\n\n <!-- Thumbs -->\n <SliderThumb\n v-for=\"(_, idx) in internalValue\"\n :key=\"idx\"\n :as-child=\"props.thumbAsChild\"\n :as=\"props.thumbAs\"\n :class=\"composeClassName(slotFns.thumb(), props.classNames?.thumb)\"\n :aria-label=\"label || 'Value'\"\n />\n </SliderRoot>\n\n <!-- End content slot -->\n <slot name=\"endContent\" />\n </div>\n </div>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"Slider.js","names":[],"sources":["../../../src/components/slider/Slider.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue'\nimport { SliderRoot, SliderTrack, SliderRange, SliderThumb } from 'reka-ui'\nimport { sliderVariants, type SliderVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useDeprecatedBooleanProp } from '../../composables/useDeprecatedBooleanProp'\n\nconst props = withDefaults(defineProps<{\n modelValue?: number | number[]\n defaultValue?: number | number[]\n min?: number\n max?: number\n step?: number\n minStepsBetweenThumbs?: number\n orientation?: 'horizontal' | 'vertical'\n size?: SliderVariants['size']\n color?: SliderVariants['color']\n radius?: SliderVariants['radius']\n label?: string\n showSteps?: boolean\n marks?: Array<{ value: number; label?: string }>\n formatOptions?: Intl.NumberFormatOptions\n hideValue?: boolean\n hideThumb?: boolean\n isDisabled?: boolean\n /** @deprecated Use isDisabled instead. */\n disabled?: boolean\n inverted?: boolean\n /** Text direction forwarded to SliderRoot. */\n dir?: 'ltr' | 'rtl'\n /** How the thumbs align relative to the track ends. */\n thumbAlignment?: 'contain' | 'overflow'\n /** Whether SliderRoot renders as a child element. */\n asChild?: boolean\n /** Element or component to render SliderRoot as. */\n as?: string\n /** HTML name attribute forwarded to SliderRoot. */\n name?: string\n isRequired?: boolean\n /**\n * Whether the slider is required.\n * @deprecated Use isRequired instead.\n */\n required?: boolean\n /** Whether SliderTrack renders as a child element. */\n trackAsChild?: boolean\n /** Element or component to render SliderTrack as. */\n trackAs?: string\n /** Whether SliderRange renders as a child element. */\n rangeAsChild?: boolean\n /** Element or component to render SliderRange as. */\n rangeAs?: string\n /** Whether SliderThumb renders as a child element. */\n thumbAsChild?: boolean\n /** Element or component to render SliderThumb as. */\n thumbAs?: string\n class?: ClassValue\n /**\n * Per-slot class overrides. Keys map to internal slot names (base, output, track, fill, marks, thumb).\n */\n classNames?: Partial<{\n base: ClassValue\n output: ClassValue\n track: ClassValue\n fill: ClassValue\n marks: ClassValue\n thumb: ClassValue\n }>\n}>(), {\n min: 0,\n max: 100,\n step: 1,\n minStepsBetweenThumbs: 0,\n orientation: 'horizontal',\n showSteps: false,\n hideValue: false,\n hideThumb: false,\n isDisabled: undefined,\n disabled: undefined,\n inverted: false,\n dir: undefined,\n thumbAlignment: 'overflow',\n asChild: false,\n as: undefined,\n name: undefined,\n isRequired: undefined,\n required: undefined,\n trackAsChild: false,\n trackAs: undefined,\n rangeAsChild: false,\n rangeAs: undefined,\n thumbAsChild: false,\n thumbAs: undefined,\n})\n\nconst emit = defineEmits<{\n (e: 'update:modelValue', value: number | number[]): void\n (e: 'value-commit', value: number | number[]): void\n}>()\n\nconst isDisabled = useDeprecatedBooleanProp(\n 'Slider', 'isDisabled', () => props.isDisabled, 'disabled', () => props.disabled,\n)\n\nconst isRequired = useDeprecatedBooleanProp(\n 'Slider', 'isRequired', () => props.isRequired, 'required', () => props.required,\n)\n\n// FIX: Also check defaultValue so uncontrolled range mode is detected correctly.\nconst isRange = computed(() =>\n Array.isArray(props.modelValue) || Array.isArray(props.defaultValue)\n)\n\n// Reka UI SliderRoot always uses number[]. Wrap scalar -> [v] for Reka.\nconst internalValue = computed({\n get(): number[] {\n if (props.modelValue === undefined) {\n return props.defaultValue !== undefined\n ? Array.isArray(props.defaultValue)\n ? props.defaultValue\n : [props.defaultValue]\n : [Math.round((props.min + props.max) / 2)]\n }\n return Array.isArray(props.modelValue) ? props.modelValue : [props.modelValue]\n },\n set(val: number[]) {\n // Unwrap: if original prop was scalar, emit scalar; otherwise emit array\n if (isRange.value) {\n emit('update:modelValue', val)\n } else {\n emit('update:modelValue', val[0])\n }\n },\n})\n\n// FIX: Pass size, color, radius so variants are applied.\nconst slotFns = computed(() =>\n sliderVariants({ size: props.size, color: props.color, radius: props.radius })\n)\n\n// Show the label/output wrapper if label prop is provided or hideValue is false\nconst showLabelWrapper = computed(() =>\n !!props.label || !props.hideValue\n)\n\n// Format a single value\nfunction formatValue(v: number): string {\n if (props.formatOptions) {\n return new Intl.NumberFormat(undefined, props.formatOptions).format(v)\n }\n return String(v)\n}\n\n// Formatted output string: joined with \" - \" for ranges\nconst formatted = computed(() => {\n return internalValue.value.map(formatValue).join(' \\u2013 ')\n})\n\n// Compute % position for a value within [min, max]\nfunction toPercent(v: number): number {\n const range = props.max - props.min\n if (range === 0) return 0\n return ((v - props.min) / range) * 100\n}\n\n// Tick positions (percentages) for showSteps\nconst tickPositions = computed<number[]>(() => {\n if (!props.showSteps) return []\n const positions: number[] = []\n let v = props.min\n while (v <= props.max) {\n positions.push(toPercent(v))\n v = Math.round((v + props.step) * 1e10) / 1e10 // avoid floating-point drift\n }\n return positions\n})\n\n// Determine which axis to use for positioning (left/bottom)\nconst positionAxis = computed(() =>\n props.orientation === 'vertical' ? 'bottom' : 'left'\n)\n</script>\n\n<template>\n <div\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :data-orientation=\"orientation\"\n :data-disabled=\"isDisabled || undefined\"\n >\n <!-- Label + output row -->\n <template v-if=\"showLabelWrapper\">\n <!--\n FIX: label does NOT get a class from slotFns.\n The CSS rule `.slider [data-slot=\"label\"]` targets it via data-slot attribute.\n Previously used :class=\"slotFns.base()\" which returned \"slider\" (root class) — wrong.\n -->\n <label\n v-if=\"label\"\n data-slot=\"label\"\n >{{ label }}</label>\n <output\n v-if=\"!hideValue\"\n :class=\"composeClassName(slotFns.output(), props.classNames?.output)\"\n >{{ formatted }}</output>\n </template>\n\n <!-- Slider body -->\n <div class=\"relative flex items-center gap-2\">\n <!-- Start content slot -->\n <slot name=\"startContent\" />\n\n <SliderRoot\n v-model=\"internalValue\"\n :min=\"min\"\n :max=\"max\"\n :step=\"step\"\n :min-steps-between-thumbs=\"minStepsBetweenThumbs\"\n :orientation=\"orientation\"\n :disabled=\"isDisabled\"\n :inverted=\"inverted\"\n :dir=\"props.dir\"\n :thumb-alignment=\"props.thumbAlignment\"\n :as-child=\"props.asChild\"\n :as=\"props.as\"\n :name=\"props.name\"\n :required=\"isRequired\"\n class=\"relative flex items-center select-none touch-none w-full\"\n :data-orientation=\"orientation\"\n @value-commit=\"emit('value-commit', isRange ? $event : $event[0])\"\n >\n <SliderTrack\n :as-child=\"props.trackAsChild\"\n :as=\"props.trackAs\"\n :class=\"composeClassName(slotFns.track(), props.classNames?.track)\"\n >\n <SliderRange\n :as-child=\"props.rangeAsChild\"\n :as=\"props.rangeAs\"\n :class=\"composeClassName(slotFns.fill(), props.classNames?.fill)\"\n />\n\n <!--\n FIX: tick spans have NO class from slotFns (was :class=\"slotFns.base()\" = \"slider\" — wrong).\n Ticks are purely positional; identified by data-slider-tick attribute only.\n -->\n <span\n v-for=\"(pct, i) in tickPositions\"\n :key=\"`tick-${i}`\"\n :style=\"{ [positionAxis]: pct + '%' }\"\n aria-hidden=\"true\"\n data-slider-tick\n class=\"absolute pointer-events-none\"\n />\n\n <!-- Labeled marks -->\n <span\n v-for=\"mark in (marks || [])\"\n :key=\"`mark-${mark.value}`\"\n :class=\"composeClassName(slotFns.marks(), props.classNames?.marks)\"\n :style=\"{ [positionAxis]: toPercent(mark.value) + '%' }\"\n data-slider-mark\n class=\"absolute\"\n >{{ mark.label }}</span>\n </SliderTrack>\n\n <!-- Thumbs -->\n <SliderThumb\n v-for=\"(_, idx) in internalValue\"\n :key=\"idx\"\n :as-child=\"props.thumbAsChild\"\n :as=\"props.thumbAs\"\n :class=\"composeClassName(slotFns.thumb(), props.classNames?.thumb)\"\n :aria-label=\"label || 'Value'\"\n />\n </SliderRoot>\n\n <!-- End content slot -->\n <slot name=\"endContent\" />\n </div>\n </div>\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, createVNode, defineComponent, normalizeClass, normalizeStyle, openBlock, renderList, renderSlot, toDisplayString, unref, withCtx } from "vue";
3
4
  import { sliderVariants } from "@auronui/styles";
4
5
  import { SliderRange, SliderRoot, SliderThumb, SliderTrack } from "reka-ui";
@@ -37,9 +38,13 @@ var Slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
37
38
  type: Boolean,
38
39
  default: false
39
40
  },
41
+ isDisabled: {
42
+ type: Boolean,
43
+ default: void 0
44
+ },
40
45
  disabled: {
41
46
  type: Boolean,
42
- default: false
47
+ default: void 0
43
48
  },
44
49
  inverted: {
45
50
  type: Boolean,
@@ -53,9 +58,13 @@ var Slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
53
58
  },
54
59
  as: { default: void 0 },
55
60
  name: { default: void 0 },
61
+ isRequired: {
62
+ type: Boolean,
63
+ default: void 0
64
+ },
56
65
  required: {
57
66
  type: Boolean,
58
- default: false
67
+ default: void 0
59
68
  },
60
69
  trackAsChild: {
61
70
  type: Boolean,
@@ -85,6 +94,8 @@ var Slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
85
94
  setup(__props, { emit: __emit }) {
86
95
  const props = __props;
87
96
  const emit = __emit;
97
+ const isDisabled = useDeprecatedBooleanProp("Slider", "isDisabled", () => props.isDisabled, "disabled", () => props.disabled);
98
+ const isRequired = useDeprecatedBooleanProp("Slider", "isRequired", () => props.isRequired, "required", () => props.required);
88
99
  const isRange = computed(() => Array.isArray(props.modelValue) || Array.isArray(props.defaultValue));
89
100
  const internalValue = computed({
90
101
  get() {
@@ -129,7 +140,7 @@ var Slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
129
140
  return openBlock(), createElementBlock("div", {
130
141
  class: normalizeClass(unref(composeClassName)(slotFns.value.base(), props.class, props.classNames?.base)),
131
142
  "data-orientation": __props.orientation,
132
- "data-disabled": __props.disabled || void 0
143
+ "data-disabled": unref(isDisabled) || void 0
133
144
  }, [showLabelWrapper.value ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [__props.label ? (openBlock(), createElementBlock("label", _hoisted_2, toDisplayString(__props.label), 1)) : createCommentVNode("", true), !__props.hideValue ? (openBlock(), createElementBlock("output", {
134
145
  key: 1,
135
146
  class: normalizeClass(unref(composeClassName)(slotFns.value.output(), props.classNames?.output))
@@ -143,14 +154,14 @@ var Slider_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
143
154
  step: __props.step,
144
155
  "min-steps-between-thumbs": __props.minStepsBetweenThumbs,
145
156
  orientation: __props.orientation,
146
- disabled: __props.disabled,
157
+ disabled: unref(isDisabled),
147
158
  inverted: __props.inverted,
148
159
  dir: props.dir,
149
160
  "thumb-alignment": props.thumbAlignment,
150
161
  "as-child": props.asChild,
151
162
  as: props.as,
152
163
  name: props.name,
153
- required: props.required,
164
+ required: unref(isRequired),
154
165
  class: "relative flex items-center select-none touch-none w-full",
155
166
  "data-orientation": __props.orientation,
156
167
  onValueCommit: _cache[1] || (_cache[1] = ($event) => emit("value-commit", isRange.value ? $event : $event[0]))