@auronui/vue 1.0.20 → 1.0.22

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 (371) hide show
  1. package/dist/cjs/index.cjs +3951 -502
  2. package/dist/cjs/index.cjs.map +1 -1
  3. package/dist/components/accordion/Accordion.js.map +1 -1
  4. package/dist/components/accordion/Accordion.vue_vue_type_script_setup_true_lang.js +15 -0
  5. package/dist/components/accordion/Accordion.vue_vue_type_script_setup_true_lang.js.map +1 -1
  6. package/dist/components/accordion/AccordionContent.js.map +1 -1
  7. package/dist/components/accordion/AccordionContent.vue_vue_type_script_setup_true_lang.js +10 -2
  8. package/dist/components/accordion/AccordionContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  9. package/dist/components/accordion/AccordionHeader.js.map +1 -1
  10. package/dist/components/accordion/AccordionHeader.vue_vue_type_script_setup_true_lang.js +13 -3
  11. package/dist/components/accordion/AccordionHeader.vue_vue_type_script_setup_true_lang.js.map +1 -1
  12. package/dist/components/accordion/AccordionItem.js.map +1 -1
  13. package/dist/components/accordion/AccordionItem.vue_vue_type_script_setup_true_lang.js +9 -0
  14. package/dist/components/accordion/AccordionItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  15. package/dist/components/accordion/AccordionTrigger.js.map +1 -1
  16. package/dist/components/accordion/AccordionTrigger.vue_vue_type_script_setup_true_lang.js +13 -3
  17. package/dist/components/accordion/AccordionTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  18. package/dist/components/alert-dialog/AlertDialogAction.js.map +1 -1
  19. package/dist/components/alert-dialog/AlertDialogAction.vue_vue_type_script_setup_true_lang.js +33 -7
  20. package/dist/components/alert-dialog/AlertDialogAction.vue_vue_type_script_setup_true_lang.js.map +1 -1
  21. package/dist/components/alert-dialog/AlertDialogCancel.js.map +1 -1
  22. package/dist/components/alert-dialog/AlertDialogCancel.vue_vue_type_script_setup_true_lang.js +33 -7
  23. package/dist/components/alert-dialog/AlertDialogCancel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  24. package/dist/components/alert-dialog/AlertDialogContent.js.map +1 -1
  25. package/dist/components/alert-dialog/AlertDialogContent.vue_vue_type_script_setup_true_lang.js +42 -6
  26. package/dist/components/alert-dialog/AlertDialogContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  27. package/dist/components/alert-dialog/AlertDialogDescription.js.map +1 -1
  28. package/dist/components/alert-dialog/AlertDialogDescription.vue_vue_type_script_setup_true_lang.js +11 -2
  29. package/dist/components/alert-dialog/AlertDialogDescription.vue_vue_type_script_setup_true_lang.js.map +1 -1
  30. package/dist/components/alert-dialog/AlertDialogOverlay.js.map +1 -1
  31. package/dist/components/alert-dialog/AlertDialogOverlay.vue_vue_type_script_setup_true_lang.js +23 -2
  32. package/dist/components/alert-dialog/AlertDialogOverlay.vue_vue_type_script_setup_true_lang.js.map +1 -1
  33. package/dist/components/alert-dialog/AlertDialogTitle.js.map +1 -1
  34. package/dist/components/alert-dialog/AlertDialogTitle.vue_vue_type_script_setup_true_lang.js +10 -1
  35. package/dist/components/alert-dialog/AlertDialogTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  36. package/dist/components/alert-dialog/AlertDialogTrigger.js.map +1 -1
  37. package/dist/components/alert-dialog/AlertDialogTrigger.vue_vue_type_script_setup_true_lang.js +12 -6
  38. package/dist/components/alert-dialog/AlertDialogTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  39. package/dist/components/aspect-ratio/AspectRatio.js.map +1 -1
  40. package/dist/components/aspect-ratio/AspectRatio.vue_vue_type_script_setup_true_lang.js +10 -1
  41. package/dist/components/aspect-ratio/AspectRatio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  42. package/dist/components/autocomplete/Autocomplete.js.map +1 -1
  43. package/dist/components/autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js +29 -4
  44. package/dist/components/autocomplete/Autocomplete.vue_vue_type_script_setup_true_lang.js.map +1 -1
  45. package/dist/components/autocomplete/AutocompleteContent.js.map +1 -1
  46. package/dist/components/autocomplete/AutocompleteContent.vue_vue_type_script_setup_true_lang.js +151 -9
  47. package/dist/components/autocomplete/AutocompleteContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  48. package/dist/components/autocomplete/AutocompleteCreateItem.js.map +1 -1
  49. package/dist/components/autocomplete/AutocompleteCreateItem.vue_vue_type_script_setup_true_lang.js +24 -4
  50. package/dist/components/autocomplete/AutocompleteCreateItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  51. package/dist/components/autocomplete/AutocompleteInput.js.map +1 -1
  52. package/dist/components/autocomplete/AutocompleteInput.vue_vue_type_script_setup_true_lang.js +75 -9
  53. package/dist/components/autocomplete/AutocompleteInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  54. package/dist/components/autocomplete/AutocompleteItem.js.map +1 -1
  55. package/dist/components/autocomplete/AutocompleteItem.vue_vue_type_script_setup_true_lang.js +29 -5
  56. package/dist/components/autocomplete/AutocompleteItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  57. package/dist/components/avatar/Avatar.js.map +1 -1
  58. package/dist/components/avatar/Avatar.vue_vue_type_script_setup_true_lang.js +39 -5
  59. package/dist/components/avatar/Avatar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  60. package/dist/components/button/Button.js.map +1 -1
  61. package/dist/components/button/Button.vue_vue_type_script_setup_true_lang.js +2 -0
  62. package/dist/components/button/Button.vue_vue_type_script_setup_true_lang.js.map +1 -1
  63. package/dist/components/button/ToggleButton.js.map +1 -1
  64. package/dist/components/button/ToggleButton.vue_vue_type_script_setup_true_lang.js +16 -2
  65. package/dist/components/button/ToggleButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  66. package/dist/components/calendar/Calendar.js.map +1 -1
  67. package/dist/components/calendar/Calendar.vue_vue_type_script_setup_true_lang.js +44 -0
  68. package/dist/components/calendar/Calendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  69. package/dist/components/calendar-year-picker/CalendarYearPicker.js.map +1 -1
  70. package/dist/components/calendar-year-picker/CalendarYearPicker.vue_vue_type_script_setup_true_lang.js +21 -0
  71. package/dist/components/calendar-year-picker/CalendarYearPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  72. package/dist/components/checkbox/Checkbox.js.map +1 -1
  73. package/dist/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +60 -3
  74. package/dist/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  75. package/dist/components/chip/Chip.js.map +1 -1
  76. package/dist/components/chip/Chip.vue_vue_type_script_setup_true_lang.js +6 -1
  77. package/dist/components/chip/Chip.vue_vue_type_script_setup_true_lang.js.map +1 -1
  78. package/dist/components/collapsible/Collapsible.js.map +1 -1
  79. package/dist/components/collapsible/Collapsible.vue_vue_type_script_setup_true_lang.js +9 -0
  80. package/dist/components/collapsible/Collapsible.vue_vue_type_script_setup_true_lang.js.map +1 -1
  81. package/dist/components/collapsible/CollapsibleContent.js.map +1 -1
  82. package/dist/components/collapsible/CollapsibleContent.vue_vue_type_script_setup_true_lang.js +15 -4
  83. package/dist/components/collapsible/CollapsibleContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  84. package/dist/components/collapsible/CollapsibleTrigger.js.map +1 -1
  85. package/dist/components/collapsible/CollapsibleTrigger.vue_vue_type_script_setup_true_lang.js +13 -3
  86. package/dist/components/collapsible/CollapsibleTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  87. package/dist/components/color-area/ColorArea.js.map +1 -1
  88. package/dist/components/color-area/ColorArea.vue_vue_type_script_setup_true_lang.js +34 -3
  89. package/dist/components/color-area/ColorArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  90. package/dist/components/color-field/ColorField.js.map +1 -1
  91. package/dist/components/color-field/ColorField.vue_vue_type_script_setup_true_lang.js +39 -2
  92. package/dist/components/color-field/ColorField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  93. package/dist/components/color-input-group/ColorInputGroup.js.map +1 -1
  94. package/dist/components/color-input-group/ColorInputGroup.vue_vue_type_script_setup_true_lang.js +39 -2
  95. package/dist/components/color-input-group/ColorInputGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  96. package/dist/components/color-slider/ColorSlider.js.map +1 -1
  97. package/dist/components/color-slider/ColorSlider.vue_vue_type_script_setup_true_lang.js +40 -3
  98. package/dist/components/color-slider/ColorSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  99. package/dist/components/color-swatch/ColorSwatch.js.map +1 -1
  100. package/dist/components/color-swatch/ColorSwatch.vue_vue_type_script_setup_true_lang.js +9 -2
  101. package/dist/components/color-swatch/ColorSwatch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  102. package/dist/components/color-swatch-picker/ColorSwatchPicker.js.map +1 -1
  103. package/dist/components/color-swatch-picker/ColorSwatchPicker.vue_vue_type_script_setup_true_lang.js +60 -4
  104. package/dist/components/color-swatch-picker/ColorSwatchPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  105. package/dist/components/combo-box/ComboBox.js.map +1 -1
  106. package/dist/components/combo-box/ComboBox.vue_vue_type_script_setup_true_lang.js +74 -3
  107. package/dist/components/combo-box/ComboBox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  108. package/dist/components/combo-box/ComboBoxContent.js.map +1 -1
  109. package/dist/components/combo-box/ComboBoxContent.vue_vue_type_script_setup_true_lang.js +168 -10
  110. package/dist/components/combo-box/ComboBoxContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  111. package/dist/components/combo-box/ComboBoxEmpty.js.map +1 -1
  112. package/dist/components/combo-box/ComboBoxEmpty.vue_vue_type_script_setup_true_lang.js +11 -1
  113. package/dist/components/combo-box/ComboBoxEmpty.vue_vue_type_script_setup_true_lang.js.map +1 -1
  114. package/dist/components/combo-box/ComboBoxInput.js.map +1 -1
  115. package/dist/components/combo-box/ComboBoxInput.vue_vue_type_script_setup_true_lang.js +78 -11
  116. package/dist/components/combo-box/ComboBoxInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  117. package/dist/components/combo-box/ComboBoxItem.js.map +1 -1
  118. package/dist/components/combo-box/ComboBoxItem.vue_vue_type_script_setup_true_lang.js +31 -7
  119. package/dist/components/combo-box/ComboBoxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  120. package/dist/components/date-input/DateInput.js.map +1 -1
  121. package/dist/components/date-input/DateInput.vue_vue_type_script_setup_true_lang.js +30 -3
  122. package/dist/components/date-input/DateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  123. package/dist/components/date-picker/DatePicker.js.map +1 -1
  124. package/dist/components/date-picker/DatePicker.vue_vue_type_script_setup_true_lang.js +140 -10
  125. package/dist/components/date-picker/DatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  126. package/dist/components/date-range-field/DateRangeField.js.map +1 -1
  127. package/dist/components/date-range-field/DateRangeField.vue_vue_type_script_setup_true_lang.js +24 -3
  128. package/dist/components/date-range-field/DateRangeField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  129. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  130. package/dist/components/date-range-picker/DateRangePicker.vue_vue_type_script_setup_true_lang.js +146 -9
  131. package/dist/components/date-range-picker/DateRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  132. package/dist/components/date-time-picker/DateTimePicker.js.map +1 -1
  133. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +143 -11
  134. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  135. package/dist/components/drawer/Drawer.js.map +1 -1
  136. package/dist/components/drawer/Drawer.vue_vue_type_script_lang.js +42 -4
  137. package/dist/components/drawer/Drawer.vue_vue_type_script_lang.js.map +1 -1
  138. package/dist/components/drawer/DrawerClose.js.map +1 -1
  139. package/dist/components/drawer/DrawerClose.vue_vue_type_script_setup_true_lang.js +25 -3
  140. package/dist/components/drawer/DrawerClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  141. package/dist/components/drawer/DrawerContent.js.map +1 -1
  142. package/dist/components/drawer/DrawerContent.vue_vue_type_script_setup_true_lang.js +124 -12
  143. package/dist/components/drawer/DrawerContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  144. package/dist/components/drawer/DrawerMain.js +7 -0
  145. package/dist/components/drawer/DrawerMain.js.map +1 -0
  146. package/dist/components/drawer/DrawerMain.vue_vue_type_script_setup_true_lang.js +32 -0
  147. package/dist/components/drawer/DrawerMain.vue_vue_type_script_setup_true_lang.js.map +1 -0
  148. package/dist/components/drawer/DrawerOverlay.js.map +1 -1
  149. package/dist/components/drawer/DrawerOverlay.vue_vue_type_script_setup_true_lang.js +25 -1
  150. package/dist/components/drawer/DrawerOverlay.vue_vue_type_script_setup_true_lang.js.map +1 -1
  151. package/dist/components/drawer/DrawerTitle.js.map +1 -1
  152. package/dist/components/drawer/DrawerTitle.vue_vue_type_script_setup_true_lang.js +27 -3
  153. package/dist/components/drawer/DrawerTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  154. package/dist/components/drawer/DrawerTrigger.js.map +1 -1
  155. package/dist/components/drawer/DrawerTrigger.vue_vue_type_script_setup_true_lang.js +24 -7
  156. package/dist/components/drawer/DrawerTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  157. package/dist/components/drawer/drawer.context.js.map +1 -1
  158. package/dist/components/dropdown/Dropdown.js.map +1 -1
  159. package/dist/components/dropdown/Dropdown.vue_vue_type_script_setup_true_lang.js +15 -5
  160. package/dist/components/dropdown/Dropdown.vue_vue_type_script_setup_true_lang.js.map +1 -1
  161. package/dist/components/dropdown/DropdownCheckboxItem.js.map +1 -1
  162. package/dist/components/dropdown/DropdownCheckboxItem.vue_vue_type_script_setup_true_lang.js +29 -7
  163. package/dist/components/dropdown/DropdownCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  164. package/dist/components/dropdown/DropdownItem.js.map +1 -1
  165. package/dist/components/dropdown/DropdownItem.vue_vue_type_script_setup_true_lang.js +15 -2
  166. package/dist/components/dropdown/DropdownItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  167. package/dist/components/dropdown/DropdownMenu.js.map +1 -1
  168. package/dist/components/dropdown/DropdownMenu.vue_vue_type_script_setup_true_lang.js +121 -5
  169. package/dist/components/dropdown/DropdownMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  170. package/dist/components/dropdown/DropdownRadioGroup.js.map +1 -1
  171. package/dist/components/dropdown/DropdownRadioGroup.vue_vue_type_script_setup_true_lang.js +17 -4
  172. package/dist/components/dropdown/DropdownRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  173. package/dist/components/dropdown/DropdownRadioItem.js.map +1 -1
  174. package/dist/components/dropdown/DropdownRadioItem.vue_vue_type_script_setup_true_lang.js +21 -5
  175. package/dist/components/dropdown/DropdownRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  176. package/dist/components/dropdown/DropdownSection.js.map +1 -1
  177. package/dist/components/dropdown/DropdownSection.vue_vue_type_script_setup_true_lang.js +16 -3
  178. package/dist/components/dropdown/DropdownSection.vue_vue_type_script_setup_true_lang.js.map +1 -1
  179. package/dist/components/dropdown/DropdownSubContent.js.map +1 -1
  180. package/dist/components/dropdown/DropdownSubContent.vue_vue_type_script_setup_true_lang.js +125 -5
  181. package/dist/components/dropdown/DropdownSubContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  182. package/dist/components/dropdown/DropdownSubTrigger.js.map +1 -1
  183. package/dist/components/dropdown/DropdownSubTrigger.vue_vue_type_script_setup_true_lang.js +15 -2
  184. package/dist/components/dropdown/DropdownSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  185. package/dist/components/dropdown/DropdownTrigger.js.map +1 -1
  186. package/dist/components/dropdown/DropdownTrigger.vue_vue_type_script_setup_true_lang.js +22 -2
  187. package/dist/components/dropdown/DropdownTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  188. package/dist/components/input-otp/InputOTP.js.map +1 -1
  189. package/dist/components/input-otp/InputOTP.vue_vue_type_script_setup_true_lang.js +34 -1
  190. package/dist/components/input-otp/InputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -1
  191. package/dist/components/list-box/ListBox.js.map +1 -1
  192. package/dist/components/list-box/ListBox.vue_vue_type_script_setup_true_lang.js +67 -8
  193. package/dist/components/list-box/ListBox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  194. package/dist/components/list-box/ListBoxItem.js.map +1 -1
  195. package/dist/components/list-box/ListBoxItem.vue_vue_type_script_setup_true_lang.js +36 -7
  196. package/dist/components/list-box/ListBoxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  197. package/dist/components/list-box/ListBoxSection.js.map +1 -1
  198. package/dist/components/list-box/ListBoxSection.vue_vue_type_script_setup_true_lang.js +31 -4
  199. package/dist/components/list-box/ListBoxSection.vue_vue_type_script_setup_true_lang.js.map +1 -1
  200. package/dist/components/modal/ModalClose.js.map +1 -1
  201. package/dist/components/modal/ModalClose.vue_vue_type_script_setup_true_lang.js +7 -1
  202. package/dist/components/modal/ModalClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  203. package/dist/components/modal/ModalContent.js.map +1 -1
  204. package/dist/components/modal/ModalContent.vue_vue_type_script_setup_true_lang.js +49 -5
  205. package/dist/components/modal/ModalContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  206. package/dist/components/modal/ModalDescription.js.map +1 -1
  207. package/dist/components/modal/ModalDescription.vue_vue_type_script_setup_true_lang.js +10 -1
  208. package/dist/components/modal/ModalDescription.vue_vue_type_script_setup_true_lang.js.map +1 -1
  209. package/dist/components/modal/ModalOverlay.js.map +1 -1
  210. package/dist/components/modal/ModalOverlay.vue_vue_type_script_setup_true_lang.js +23 -2
  211. package/dist/components/modal/ModalOverlay.vue_vue_type_script_setup_true_lang.js.map +1 -1
  212. package/dist/components/modal/ModalTitle.js.map +1 -1
  213. package/dist/components/modal/ModalTitle.vue_vue_type_script_setup_true_lang.js +10 -1
  214. package/dist/components/modal/ModalTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  215. package/dist/components/modal/ModalTrigger.js.map +1 -1
  216. package/dist/components/modal/ModalTrigger.vue_vue_type_script_setup_true_lang.js +12 -6
  217. package/dist/components/modal/ModalTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  218. package/dist/components/number-field/NumberField.js.map +1 -1
  219. package/dist/components/number-field/NumberField.vue_vue_type_script_setup_true_lang.js +24 -4
  220. package/dist/components/number-field/NumberField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  221. package/dist/components/pagination/Pagination.js.map +1 -1
  222. package/dist/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js +7 -1
  223. package/dist/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  224. package/dist/components/pagination/PaginationContent.js.map +1 -1
  225. package/dist/components/pagination/PaginationContent.vue_vue_type_script_setup_true_lang.js +12 -2
  226. package/dist/components/pagination/PaginationContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  227. package/dist/components/pagination/PaginationEllipsis.js.map +1 -1
  228. package/dist/components/pagination/PaginationEllipsis.vue_vue_type_script_setup_true_lang.js +12 -2
  229. package/dist/components/pagination/PaginationEllipsis.vue_vue_type_script_setup_true_lang.js.map +1 -1
  230. package/dist/components/pagination/PaginationFirst.js.map +1 -1
  231. package/dist/components/pagination/PaginationFirst.vue_vue_type_script_setup_true_lang.js +9 -1
  232. package/dist/components/pagination/PaginationFirst.vue_vue_type_script_setup_true_lang.js.map +1 -1
  233. package/dist/components/pagination/PaginationItem.js.map +1 -1
  234. package/dist/components/pagination/PaginationItem.vue_vue_type_script_setup_true_lang.js +11 -2
  235. package/dist/components/pagination/PaginationItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  236. package/dist/components/pagination/PaginationLast.js.map +1 -1
  237. package/dist/components/pagination/PaginationLast.vue_vue_type_script_setup_true_lang.js +9 -1
  238. package/dist/components/pagination/PaginationLast.vue_vue_type_script_setup_true_lang.js.map +1 -1
  239. package/dist/components/pagination/PaginationNext.js.map +1 -1
  240. package/dist/components/pagination/PaginationNext.vue_vue_type_script_setup_true_lang.js +9 -1
  241. package/dist/components/pagination/PaginationNext.vue_vue_type_script_setup_true_lang.js.map +1 -1
  242. package/dist/components/pagination/PaginationPrev.js.map +1 -1
  243. package/dist/components/pagination/PaginationPrev.vue_vue_type_script_setup_true_lang.js +9 -1
  244. package/dist/components/pagination/PaginationPrev.vue_vue_type_script_setup_true_lang.js.map +1 -1
  245. package/dist/components/popover/PopoverContent.js.map +1 -1
  246. package/dist/components/popover/PopoverContent.vue_vue_type_script_setup_true_lang.js +6 -2
  247. package/dist/components/popover/PopoverContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  248. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  249. package/dist/components/progress-bar/ProgressBar.vue_vue_type_script_setup_true_lang.js +37 -5
  250. package/dist/components/progress-bar/ProgressBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  251. package/dist/components/progress-circle/ProgressCircle.js.map +1 -1
  252. package/dist/components/progress-circle/ProgressCircle.vue_vue_type_script_setup_true_lang.js +21 -0
  253. package/dist/components/progress-circle/ProgressCircle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  254. package/dist/components/radio/Radio.js.map +1 -1
  255. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js +46 -3
  256. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  257. package/dist/components/radio/RadioGroup.js.map +1 -1
  258. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js +24 -0
  259. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  260. package/dist/components/range-calendar/RangeCalendar.js.map +1 -1
  261. package/dist/components/range-calendar/RangeCalendar.vue_vue_type_script_setup_true_lang.js +44 -11
  262. package/dist/components/range-calendar/RangeCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  263. package/dist/components/scroll-area/ScrollArea.js.map +1 -1
  264. package/dist/components/scroll-area/ScrollArea.vue_vue_type_script_setup_true_lang.js +61 -8
  265. package/dist/components/scroll-area/ScrollArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  266. package/dist/components/select/Select.js.map +1 -1
  267. package/dist/components/select/Select.vue_vue_type_script_setup_true_lang.js +12 -0
  268. package/dist/components/select/Select.vue_vue_type_script_setup_true_lang.js.map +1 -1
  269. package/dist/components/select/SelectContent.js.map +1 -1
  270. package/dist/components/select/SelectContent.vue_vue_type_script_setup_true_lang.js +140 -8
  271. package/dist/components/select/SelectContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  272. package/dist/components/select/SelectItem.js.map +1 -1
  273. package/dist/components/select/SelectItem.vue_vue_type_script_setup_true_lang.js +22 -6
  274. package/dist/components/select/SelectItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  275. package/dist/components/select/SelectTrigger.js.map +1 -1
  276. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js +23 -2
  277. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  278. package/dist/components/select/SelectValue.js.map +1 -1
  279. package/dist/components/select/SelectValue.vue_vue_type_script_setup_true_lang.js +14 -2
  280. package/dist/components/select/SelectValue.vue_vue_type_script_setup_true_lang.js.map +1 -1
  281. package/dist/components/slider/Slider.js.map +1 -1
  282. package/dist/components/slider/Slider.vue_vue_type_script_setup_true_lang.js +69 -6
  283. package/dist/components/slider/Slider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  284. package/dist/components/splitter/SplitterGroup.js.map +1 -1
  285. package/dist/components/splitter/SplitterGroup.vue_vue_type_script_setup_true_lang.js +18 -3
  286. package/dist/components/splitter/SplitterGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  287. package/dist/components/splitter/SplitterPanel.js.map +1 -1
  288. package/dist/components/splitter/SplitterPanel.vue_vue_type_script_setup_true_lang.js +20 -5
  289. package/dist/components/splitter/SplitterPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  290. package/dist/components/splitter/SplitterResizeHandle.js.map +1 -1
  291. package/dist/components/splitter/SplitterResizeHandle.vue_vue_type_script_setup_true_lang.js +16 -1
  292. package/dist/components/splitter/SplitterResizeHandle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  293. package/dist/components/switch/Switch.js.map +1 -1
  294. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js +53 -2
  295. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  296. package/dist/components/tabs/Tab.js.map +1 -1
  297. package/dist/components/tabs/Tab.vue_vue_type_script_setup_true_lang.js +7 -1
  298. package/dist/components/tabs/Tab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  299. package/dist/components/tabs/TabIndicator.js.map +1 -1
  300. package/dist/components/tabs/TabIndicator.vue_vue_type_script_setup_true_lang.js +12 -2
  301. package/dist/components/tabs/TabIndicator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  302. package/dist/components/tabs/TabList.js.map +1 -1
  303. package/dist/components/tabs/TabList.vue_vue_type_script_setup_true_lang.js +27 -4
  304. package/dist/components/tabs/TabList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  305. package/dist/components/tabs/TabPanel.js.map +1 -1
  306. package/dist/components/tabs/TabPanel.vue_vue_type_script_setup_true_lang.js +7 -1
  307. package/dist/components/tabs/TabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  308. package/dist/components/tabs/Tabs.js.map +1 -1
  309. package/dist/components/tabs/Tabs.vue_vue_type_script_setup_true_lang.js +13 -1
  310. package/dist/components/tabs/Tabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  311. package/dist/components/time-field/TimeField.js.map +1 -1
  312. package/dist/components/time-field/TimeField.vue_vue_type_script_setup_true_lang.js +22 -1
  313. package/dist/components/time-field/TimeField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  314. package/dist/components/toast/Toast.js.map +1 -1
  315. package/dist/components/toast/Toast.vue_vue_type_script_setup_true_lang.js +39 -4
  316. package/dist/components/toast/Toast.vue_vue_type_script_setup_true_lang.js.map +1 -1
  317. package/dist/components/toast/ToastAction.js.map +1 -1
  318. package/dist/components/toast/ToastAction.vue_vue_type_script_setup_true_lang.js +3 -1
  319. package/dist/components/toast/ToastAction.vue_vue_type_script_setup_true_lang.js.map +1 -1
  320. package/dist/components/toast/ToastClose.js.map +1 -1
  321. package/dist/components/toast/ToastClose.vue_vue_type_script_setup_true_lang.js +3 -1
  322. package/dist/components/toast/ToastClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  323. package/dist/components/toast/ToastDescription.js.map +1 -1
  324. package/dist/components/toast/ToastDescription.vue_vue_type_script_setup_true_lang.js +15 -3
  325. package/dist/components/toast/ToastDescription.vue_vue_type_script_setup_true_lang.js.map +1 -1
  326. package/dist/components/toast/ToastTitle.js.map +1 -1
  327. package/dist/components/toast/ToastTitle.vue_vue_type_script_setup_true_lang.js +15 -3
  328. package/dist/components/toast/ToastTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  329. package/dist/components/toast/ToastViewport.js.map +1 -1
  330. package/dist/components/toast/ToastViewport.vue_vue_type_script_setup_true_lang.js +22 -3
  331. package/dist/components/toast/ToastViewport.vue_vue_type_script_setup_true_lang.js.map +1 -1
  332. package/dist/components/toolbar/Toolbar.js.map +1 -1
  333. package/dist/components/toolbar/Toolbar.vue_vue_type_script_setup_true_lang.js +10 -1
  334. package/dist/components/toolbar/Toolbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  335. package/dist/components/toolbar/ToolbarButton.js.map +1 -1
  336. package/dist/components/toolbar/ToolbarButton.vue_vue_type_script_setup_true_lang.js +11 -2
  337. package/dist/components/toolbar/ToolbarButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  338. package/dist/components/toolbar/ToolbarLink.js.map +1 -1
  339. package/dist/components/toolbar/ToolbarLink.vue_vue_type_script_setup_true_lang.js +11 -2
  340. package/dist/components/toolbar/ToolbarLink.vue_vue_type_script_setup_true_lang.js.map +1 -1
  341. package/dist/components/toolbar/ToolbarSeparator.js.map +1 -1
  342. package/dist/components/toolbar/ToolbarSeparator.vue_vue_type_script_setup_true_lang.js +14 -2
  343. package/dist/components/toolbar/ToolbarSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  344. package/dist/components/toolbar/ToolbarToggleGroup.js.map +1 -1
  345. package/dist/components/toolbar/ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js +22 -1
  346. package/dist/components/toolbar/ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  347. package/dist/components/toolbar/ToolbarToggleItem.js.map +1 -1
  348. package/dist/components/toolbar/ToolbarToggleItem.vue_vue_type_script_setup_true_lang.js +7 -1
  349. package/dist/components/toolbar/ToolbarToggleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  350. package/dist/components/tooltip/Tooltip.js.map +1 -1
  351. package/dist/components/tooltip/Tooltip.vue_vue_type_script_lang.js +20 -0
  352. package/dist/components/tooltip/Tooltip.vue_vue_type_script_lang.js.map +1 -1
  353. package/dist/components/tooltip/TooltipContent.js.map +1 -1
  354. package/dist/components/tooltip/TooltipContent.vue_vue_type_script_setup_true_lang.js +7 -2
  355. package/dist/components/tooltip/TooltipContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  356. package/dist/components/tooltip/TooltipProvider.js.map +1 -1
  357. package/dist/components/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js +24 -3
  358. package/dist/components/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  359. package/dist/components/tree/Tree.js.map +1 -1
  360. package/dist/components/tree/Tree.vue_vue_type_script_setup_true_lang.js +16 -1
  361. package/dist/components/tree/Tree.vue_vue_type_script_setup_true_lang.js.map +1 -1
  362. package/dist/components/tree/TreeItem.js.map +1 -1
  363. package/dist/components/tree/TreeItem.vue_vue_type_script_setup_true_lang.js +7 -1
  364. package/dist/components/tree/TreeItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  365. package/dist/index.d.ts +2659 -664
  366. package/dist/index.js +2 -1
  367. package/dist/packages/styles/src/components/drawer/drawer.styles.js +13 -5
  368. package/dist/packages/styles/src/components/drawer/drawer.styles.js.map +1 -1
  369. package/dist/utils/warnDeprecated.js +6 -0
  370. package/dist/utils/warnDeprecated.js.map +1 -0
  371. package/package.json +4 -4
@@ -19,10 +19,27 @@ var AutocompleteItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
19
19
  type: Boolean,
20
20
  default: false
21
21
  },
22
- class: { default: void 0 }
22
+ class: { default: void 0 },
23
+ textValue: { default: void 0 },
24
+ disabled: {
25
+ type: Boolean,
26
+ default: void 0
27
+ },
28
+ as: { default: void 0 },
29
+ asChild: {
30
+ type: Boolean,
31
+ default: false
32
+ },
33
+ indicatorAs: { default: void 0 },
34
+ indicatorAsChild: {
35
+ type: Boolean,
36
+ default: false
37
+ }
23
38
  },
24
- setup(__props) {
39
+ emits: ["select"],
40
+ setup(__props, { emit: __emit }) {
25
41
  const props = __props;
42
+ const emit = __emit;
26
43
  const slots = useSlots();
27
44
  const ctx = useAutocompleteInject();
28
45
  function extractText(nodes) {
@@ -45,6 +62,7 @@ var AutocompleteItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
45
62
  ctx.unregisterItem(props.value);
46
63
  });
47
64
  function handleSelect(event) {
65
+ emit("select", event);
48
66
  if (ctx.multiple.value) {
49
67
  event.preventDefault();
50
68
  ctx.onMultipleSelect(props.value);
@@ -53,8 +71,10 @@ var AutocompleteItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
53
71
  return (_ctx, _cache) => {
54
72
  return openBlock(), createBlock(unref(AutocompleteItem), {
55
73
  value: displayText.value,
56
- "text-value": displayText.value,
57
- disabled: props.isDisabled,
74
+ "text-value": props.textValue ?? displayText.value,
75
+ disabled: props.disabled ?? props.isDisabled,
76
+ as: props.as,
77
+ "as-child": props.asChild,
58
78
  "data-item-value": props.value,
59
79
  "data-selected": isChecked.value || void 0,
60
80
  class: "list-box-item list-box-item--default",
@@ -66,6 +86,8 @@ var AutocompleteItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
66
86
  createElementVNode("span", _hoisted_1, [renderSlot(_ctx.$slots, "default")]),
67
87
  !unref(ctx).multiple.value ? (openBlock(), createBlock(unref(ComboboxItemIndicator), {
68
88
  key: 0,
89
+ as: props.indicatorAs,
90
+ "as-child": props.indicatorAsChild,
69
91
  class: "list-box-item__indicator",
70
92
  "data-slot": "list-box-item-indicator"
71
93
  }, {
@@ -83,7 +105,7 @@ var AutocompleteItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
83
105
  "aria-hidden": "true"
84
106
  }, [createElementVNode("polyline", { points: "20 6 9 17 4 12" })], -1))])]),
85
107
  _: 3
86
- })) : isChecked.value ? (openBlock(), createElementBlock("span", _hoisted_2, [renderSlot(_ctx.$slots, "selectedIcon", {}, () => [_cache[1] || (_cache[1] = createElementVNode("svg", {
108
+ }, 8, ["as", "as-child"])) : isChecked.value ? (openBlock(), createElementBlock("span", _hoisted_2, [renderSlot(_ctx.$slots, "selectedIcon", {}, () => [_cache[1] || (_cache[1] = createElementVNode("svg", {
87
109
  xmlns: "http://www.w3.org/2000/svg",
88
110
  width: "12",
89
111
  height: "12",
@@ -103,6 +125,8 @@ var AutocompleteItem_vue_vue_type_script_setup_true_lang_default = /* @__PURE__
103
125
  "value",
104
126
  "text-value",
105
127
  "disabled",
128
+ "as",
129
+ "as-child",
106
130
  "data-item-value",
107
131
  "data-selected"
108
132
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"AutocompleteItem.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/autocomplete/AutocompleteItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, useSlots, type Slots, type VNode } from 'vue'\nimport { AutocompleteItem, ComboboxItemIndicator } from 'reka-ui'\nimport { useAutocompleteInject } from './Autocomplete.context'\n\nconst props = withDefaults(defineProps<{\n value: string\n isDisabled?: boolean\n class?: string\n}>(), {\n isDisabled: false,\n class: undefined,\n})\n\nconst slots: Slots = useSlots()\nconst ctx = useAutocompleteInject()\n\nfunction extractText(nodes: VNode[]): string {\n return nodes.map(n => {\n if (typeof n.children === 'string') return n.children\n if (Array.isArray(n.children)) return extractText(n.children as VNode[])\n return ''\n }).join('')\n}\n\nconst displayText = computed((): string => {\n const vnodes: VNode[] | undefined = (slots.default as (() => VNode[]) | undefined)?.()\n if (!vnodes) return props.value\n return extractText(vnodes).trim() || props.value\n})\n\n// In multiple mode, track whether this item is in the selected array\nconst isChecked = computed(() => ctx.multiple.value && ctx.isSelected(props.value))\n\nonMounted(() => {\n ctx.registerItem(props.value, displayText.value)\n})\n\nonUnmounted(() => {\n ctx.unregisterItem(props.value)\n})\n\nfunction handleSelect(event: Event) {\n if (ctx.multiple.value) {\n // Prevent Reka from overwriting the combobox value with the selected item's text.\n // Without this, Reka's internal handler fires after ours and sets searchTerm = displayText.\n event.preventDefault()\n ctx.onMultipleSelect(props.value)\n }\n}\n</script>\n\n<template>\n <AutocompleteItem\n :value=\"displayText\"\n :text-value=\"displayText\"\n :disabled=\"props.isDisabled\"\n :data-item-value=\"props.value\"\n :data-selected=\"isChecked || undefined\"\n class=\"list-box-item list-box-item--default\"\n data-slot=\"list-box-item\"\n @select=\"handleSelect\"\n >\n <slot name=\"startContent\" />\n <span\n class=\"autocomplete-item__text\"\n data-slot=\"item-text\"\n ><slot /></span>\n <!-- Single mode: Reka's ComboboxItemIndicator handles the checkmark natively -->\n <ComboboxItemIndicator\n v-if=\"!ctx.multiple.value\"\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 </ComboboxItemIndicator>\n <!-- Multiple mode: check against our selectedValues array instead -->\n <span\n v-else-if=\"isChecked\"\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 </span>\n <slot name=\"endContent\" />\n </AutocompleteItem>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;EAKA,MAAM,QAAQ;EASd,MAAM,QAAe,UAAS;EAC9B,MAAM,MAAM,uBAAsB;EAElC,SAAS,YAAY,OAAwB;AAC3C,UAAO,MAAM,KAAI,MAAK;AACpB,QAAI,OAAO,EAAE,aAAa,SAAU,QAAO,EAAE;AAC7C,QAAI,MAAM,QAAQ,EAAE,SAAS,CAAE,QAAO,YAAY,EAAE,SAAmB;AACvE,WAAO;KACP,CAAC,KAAK,GAAE;;EAGZ,MAAM,cAAc,eAAuB;GACzC,MAAM,SAA+B,MAAM,WAA0C;AACrF,OAAI,CAAC,OAAQ,QAAO,MAAM;AAC1B,UAAO,YAAY,OAAO,CAAC,MAAM,IAAI,MAAM;IAC5C;EAGD,MAAM,YAAY,eAAe,IAAI,SAAS,SAAS,IAAI,WAAW,MAAM,MAAM,CAAA;AAElF,kBAAgB;AACd,OAAI,aAAa,MAAM,OAAO,YAAY,MAAK;IAChD;AAED,oBAAkB;AAChB,OAAI,eAAe,MAAM,MAAK;IAC/B;EAED,SAAS,aAAa,OAAc;AAClC,OAAI,IAAI,SAAS,OAAO;AAGtB,UAAM,gBAAe;AACrB,QAAI,iBAAiB,MAAM,MAAK;;;;uBAMlC,YAgEmB,MAAA,iBAAA,EAAA;IA/DhB,OAAO,YAAA;IACP,cAAY,YAAA;IACZ,UAAU,MAAM;IAChB,mBAAiB,MAAM;IACvB,iBAAe,UAAA,SAAa,KAAA;IAC7B,OAAM;IACN,aAAU;IACT,UAAQ;;2BAEmB;KAA5B,WAA4B,KAAA,QAAA,eAAA;KAC5B,mBAGgB,QAHhB,YAGgB,CAAf,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA;MAGA,MAAA,IAAG,CAAC,SAAS,SAAA,WAAA,EADtB,YAsBwB,MAAA,sBAAA,EAAA;;MApBtB,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;;WAM1B,UAAA,SAAA,WAAA,EADb,mBAsBO,QAtBP,YAsBO,CAjBL,WAgBO,KAAA,QAAA,gBAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAfL,mBAcM,OAAA;MAbJ,OAAM;MACN,OAAM;MACN,QAAO;MACP,SAAQ;MACR,MAAK;MACL,QAAO;MACP,gBAAa;MACb,kBAAe;MACf,mBAAgB;MAChB,aAAU;MACV,eAAY;SAEZ,mBAAoC,YAAA,EAA1B,QAAO,kBAAgB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;KAIvC,WAA0B,KAAA,QAAA,aAAA"}
1
+ {"version":3,"file":"AutocompleteItem.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/autocomplete/AutocompleteItem.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, onMounted, onUnmounted, useSlots, type Slots, type VNode } from 'vue'\nimport { AutocompleteItem, ComboboxItemIndicator } from 'reka-ui'\nimport { useAutocompleteInject } from './Autocomplete.context'\n\nconst props = withDefaults(defineProps<{\n value: string\n isDisabled?: boolean\n class?: string\n /** A string value for typeahead matching. Defaults to display text. */\n textValue?: string\n /** Whether the item is disabled. Alias for isDisabled. */\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 /** Render the ComboboxItemIndicator as a different element. */\n indicatorAs?: string\n /** Merge indicator props onto child element. */\n indicatorAsChild?: boolean\n}>(), {\n isDisabled: false,\n class: undefined,\n textValue: undefined,\n disabled: undefined,\n as: undefined,\n asChild: false,\n indicatorAs: undefined,\n indicatorAsChild: false,\n})\n\nconst emit = defineEmits<{\n 'select': [event: Event]\n}>()\n\nconst slots: Slots = useSlots()\nconst ctx = useAutocompleteInject()\n\nfunction extractText(nodes: VNode[]): string {\n return nodes.map(n => {\n if (typeof n.children === 'string') return n.children\n if (Array.isArray(n.children)) return extractText(n.children as VNode[])\n return ''\n }).join('')\n}\n\nconst displayText = computed((): string => {\n const vnodes: VNode[] | undefined = (slots.default as (() => VNode[]) | undefined)?.()\n if (!vnodes) return props.value\n return extractText(vnodes).trim() || props.value\n})\n\n// In multiple mode, track whether this item is in the selected array\nconst isChecked = computed(() => ctx.multiple.value && ctx.isSelected(props.value))\n\nonMounted(() => {\n ctx.registerItem(props.value, displayText.value)\n})\n\nonUnmounted(() => {\n ctx.unregisterItem(props.value)\n})\n\nfunction handleSelect(event: Event) {\n emit('select', event)\n if (ctx.multiple.value) {\n // Prevent Reka from overwriting the combobox value with the selected item's text.\n // Without this, Reka's internal handler fires after ours and sets searchTerm = displayText.\n event.preventDefault()\n ctx.onMultipleSelect(props.value)\n }\n}\n</script>\n\n<template>\n <AutocompleteItem\n :value=\"displayText\"\n :text-value=\"props.textValue ?? displayText\"\n :disabled=\"props.disabled ?? props.isDisabled\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n :data-item-value=\"props.value\"\n :data-selected=\"isChecked || undefined\"\n class=\"list-box-item list-box-item--default\"\n data-slot=\"list-box-item\"\n @select=\"handleSelect\"\n >\n <slot name=\"startContent\" />\n <span\n class=\"autocomplete-item__text\"\n data-slot=\"item-text\"\n ><slot /></span>\n <!-- Single mode: Reka's ComboboxItemIndicator handles the checkmark natively -->\n <ComboboxItemIndicator\n v-if=\"!ctx.multiple.value\"\n :as=\"props.indicatorAs\"\n :as-child=\"props.indicatorAsChild\"\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 </ComboboxItemIndicator>\n <!-- Multiple mode: check against our selectedValues array instead -->\n <span\n v-else-if=\"isChecked\"\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 </span>\n <slot name=\"endContent\" />\n </AutocompleteItem>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKA,MAAM,QAAQ;EA2Bd,MAAM,OAAO;EAIb,MAAM,QAAe,UAAS;EAC9B,MAAM,MAAM,uBAAsB;EAElC,SAAS,YAAY,OAAwB;AAC3C,UAAO,MAAM,KAAI,MAAK;AACpB,QAAI,OAAO,EAAE,aAAa,SAAU,QAAO,EAAE;AAC7C,QAAI,MAAM,QAAQ,EAAE,SAAS,CAAE,QAAO,YAAY,EAAE,SAAmB;AACvE,WAAO;KACP,CAAC,KAAK,GAAE;;EAGZ,MAAM,cAAc,eAAuB;GACzC,MAAM,SAA+B,MAAM,WAA0C;AACrF,OAAI,CAAC,OAAQ,QAAO,MAAM;AAC1B,UAAO,YAAY,OAAO,CAAC,MAAM,IAAI,MAAM;IAC5C;EAGD,MAAM,YAAY,eAAe,IAAI,SAAS,SAAS,IAAI,WAAW,MAAM,MAAM,CAAA;AAElF,kBAAgB;AACd,OAAI,aAAa,MAAM,OAAO,YAAY,MAAK;IAChD;AAED,oBAAkB;AAChB,OAAI,eAAe,MAAM,MAAK;IAC/B;EAED,SAAS,aAAa,OAAc;AAClC,QAAK,UAAU,MAAK;AACpB,OAAI,IAAI,SAAS,OAAO;AAGtB,UAAM,gBAAe;AACrB,QAAI,iBAAiB,MAAM,MAAK;;;;uBAMlC,YAoEmB,MAAA,iBAAA,EAAA;IAnEhB,OAAO,YAAA;IACP,cAAY,MAAM,aAAa,YAAA;IAC/B,UAAU,MAAM,YAAY,MAAM;IAClC,IAAI,MAAM;IACV,YAAU,MAAM;IAChB,mBAAiB,MAAM;IACvB,iBAAe,UAAA,SAAa,KAAA;IAC7B,OAAM;IACN,aAAU;IACT,UAAQ;;2BAEmB;KAA5B,WAA4B,KAAA,QAAA,eAAA;KAC5B,mBAGgB,QAHhB,YAGgB,CAAf,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA;MAGA,MAAA,IAAG,CAAC,SAAS,SAAA,WAAA,EADtB,YAwBwB,MAAA,sBAAA,EAAA;;MAtBrB,IAAI,MAAM;MACV,YAAU,MAAM;MACjB,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;;kCAM1B,UAAA,SAAA,WAAA,EADb,mBAsBO,QAtBP,YAsBO,CAjBL,WAgBO,KAAA,QAAA,gBAAA,EAAA,QAAA,CAAA,OAAA,OAAA,OAAA,KAfL,mBAcM,OAAA;MAbJ,OAAM;MACN,OAAM;MACN,QAAO;MACP,SAAQ;MACR,MAAK;MACL,QAAO;MACP,gBAAa;MACb,kBAAe;MACf,mBAAgB;MAChB,aAAU;MACV,eAAY;SAEZ,mBAAoC,YAAA,EAA1B,QAAO,kBAAgB,CAAA,CAAA,EAAA,GAAA,EAAA,CAAA,CAAA,CAAA,IAAA,mBAAA,IAAA,KAAA;KAIvC,WAA0B,KAAA,QAAA,aAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.js","names":[],"sources":["../../../src/components/avatar/Avatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { AvatarRoot, AvatarImage, AvatarFallback } from 'reka-ui'\nimport { avatarVariants, type AvatarVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useAvatarGroupInject } from './avatar-group.context'\n\nconst props = withDefaults(defineProps<{\n src?: string\n alt?: string\n name?: string\n size?: AvatarVariants['size']\n color?: AvatarVariants['color']\n variant?: AvatarVariants['variant']\n isBordered?: boolean\n isDisabled?: boolean\n showFallback?: boolean\n class?: ClassValue\n /** Per-slot class name overrides */\n classNames?: Partial<{\n base: ClassValue\n image: ClassValue\n fallback: ClassValue\n }>\n}>(), {\n isBordered: false,\n isDisabled: false,\n showFallback: false,\n})\n\n// Inject AvatarGroup context with ref-based fallbacks (mirrors Button.vue pattern)\nconst groupCtx = useAvatarGroupInject({\n size: ref('md'),\n isBordered: ref(false),\n isDisabled: ref(false),\n isGrid: ref(false),\n isInGroup: ref(false),\n})\n\n// Prop precedence rules (matching ButtonGroup D-13):\n// - group disabled ALWAYS wins over child prop\n// - other props: child prop wins over group value (child ?? group)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalIsBordered = computed(() => props.isBordered || groupCtx.isBordered.value)\nconst isDisabled = computed(() => groupCtx.isDisabled.value || props.isDisabled)\nconst isInGroup = computed(() => groupCtx.isInGroup.value)\n\n// Compute initials from name: first letter of up to 2 words\nconst initials = computed(() => {\n if (!props.name) return ''\n const parts = props.name.trim().split(/\\s+/)\n if (parts.length === 1) return parts[0].charAt(0).toUpperCase()\n return (parts[0].charAt(0) + parts[parts.length - 1].charAt(0)).toUpperCase()\n})\n\nconst slotFns = computed(() =>\n avatarVariants({\n size: finalSize.value,\n color: props.color,\n variant: props.variant,\n })\n)\n\n// Border class applied manually since the styles don't have isBordered variant\nconst borderedClass = computed(() =>\n finalIsBordered.value ? 'ring-2 ring-offset-2 ring-default' : undefined\n)\n\n// InGroup class for negative margin overlap\nconst inGroupClass = computed(() =>\n isInGroup.value ? '-me-2' : undefined\n)\n</script>\n\n<template>\n <AvatarRoot\n :class=\"composeClassName(slotFns.base(), borderedClass, inGroupClass, props.class, props.classNames?.base)\"\n :data-disabled=\"isDisabled || undefined\"\n :data-bordered=\"finalIsBordered || undefined\"\n >\n <AvatarImage\n v-if=\"props.src && !props.showFallback\"\n :src=\"props.src\"\n :alt=\"props.alt ?? props.name ?? ''\"\n :class=\"composeClassName(slotFns.image(), props.classNames?.image)\"\n />\n <!--\n delayMs: only pass a value when we have a src — Reka UI treats delayMs=undefined\n as \"show immediately\" (canRender starts true). Passing delayMs=0 is falsy but\n not undefined, so the timeout never fires and fallback stays hidden forever.\n -->\n <AvatarFallback\n :class=\"composeClassName(slotFns.fallback(), props.classNames?.fallback)\"\n v-bind=\"props.src && !props.showFallback ? { 'delay-ms': 600 } : {}\"\n >\n <slot name=\"fallback\">\n <span\n v-if=\"initials\"\n :class=\"'avatar__name text-xs font-medium leading-none'\"\n >{{ initials }}</span>\n <svg\n v-else\n class=\"avatar__icon size-4/5\"\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z\" />\n </svg>\n </slot>\n </AvatarFallback>\n </AvatarRoot>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"Avatar.js","names":[],"sources":["../../../src/components/avatar/Avatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { AvatarRoot, AvatarImage, AvatarFallback } from 'reka-ui'\nimport { avatarVariants, type AvatarVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useAvatarGroupInject } from './avatar-group.context'\n\nconst props = withDefaults(defineProps<{\n src?: string\n alt?: string\n name?: string\n size?: AvatarVariants['size']\n color?: AvatarVariants['color']\n variant?: AvatarVariants['variant']\n isBordered?: boolean\n isDisabled?: boolean\n showFallback?: boolean\n /** AvatarRoot props */\n as?: string\n asChild?: boolean\n /** AvatarImage props */\n referrerPolicy?: string\n crossOrigin?: string\n imageAs?: string\n imageAsChild?: boolean\n /** AvatarFallback props */\n delayMs?: number\n fallbackAs?: string\n fallbackAsChild?: boolean\n class?: ClassValue\n /** Per-slot class name overrides */\n classNames?: Partial<{\n base: ClassValue\n image: ClassValue\n fallback: ClassValue\n }>\n}>(), {\n isBordered: false,\n isDisabled: false,\n showFallback: false,\n})\n\nconst emit = defineEmits<{\n 'loading-status-change': [status: string]\n}>()\n\n// Inject AvatarGroup context with ref-based fallbacks (mirrors Button.vue pattern)\nconst groupCtx = useAvatarGroupInject({\n size: ref('md'),\n isBordered: ref(false),\n isDisabled: ref(false),\n isGrid: ref(false),\n isInGroup: ref(false),\n})\n\n// Prop precedence rules (matching ButtonGroup D-13):\n// - group disabled ALWAYS wins over child prop\n// - other props: child prop wins over group value (child ?? group)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalIsBordered = computed(() => props.isBordered || groupCtx.isBordered.value)\nconst isDisabled = computed(() => groupCtx.isDisabled.value || props.isDisabled)\nconst isInGroup = computed(() => groupCtx.isInGroup.value)\n\n// Compute initials from name: first letter of up to 2 words\nconst initials = computed(() => {\n if (!props.name) return ''\n const parts = props.name.trim().split(/\\s+/)\n if (parts.length === 1) return parts[0].charAt(0).toUpperCase()\n return (parts[0].charAt(0) + parts[parts.length - 1].charAt(0)).toUpperCase()\n})\n\nconst slotFns = computed(() =>\n avatarVariants({\n size: finalSize.value,\n color: props.color,\n variant: props.variant,\n })\n)\n\n// Border class applied manually since the styles don't have isBordered variant\nconst borderedClass = computed(() =>\n finalIsBordered.value ? 'ring-2 ring-offset-2 ring-default' : undefined\n)\n\n// InGroup class for negative margin overlap\nconst inGroupClass = computed(() =>\n isInGroup.value ? '-me-2' : undefined\n)\n</script>\n\n<template>\n <AvatarRoot\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n :class=\"composeClassName(slotFns.base(), borderedClass, inGroupClass, props.class, props.classNames?.base)\"\n :data-disabled=\"isDisabled || undefined\"\n :data-bordered=\"finalIsBordered || undefined\"\n >\n <AvatarImage\n v-if=\"props.src && !props.showFallback\"\n :src=\"props.src\"\n :alt=\"props.alt ?? props.name ?? ''\"\n :as=\"props.imageAs\"\n :as-child=\"props.imageAsChild\"\n :referrer-policy=\"(props.referrerPolicy as any)\"\n :cross-origin=\"(props.crossOrigin as any)\"\n :class=\"composeClassName(slotFns.image(), props.classNames?.image)\"\n @loading-status-change=\"emit('loading-status-change', $event)\"\n />\n <!--\n delayMs: only pass a value when we have a src — Reka UI treats delayMs=undefined\n as \"show immediately\" (canRender starts true). Passing delayMs=0 is falsy but\n not undefined, so the timeout never fires and fallback stays hidden forever.\n -->\n <AvatarFallback\n :as=\"props.fallbackAs\"\n :as-child=\"props.fallbackAsChild\"\n :delay-ms=\"props.delayMs\"\n :class=\"composeClassName(slotFns.fallback(), props.classNames?.fallback)\"\n v-bind=\"props.src && !props.showFallback && props.delayMs === undefined ? { 'delay-ms': 600 } : {}\"\n >\n <slot name=\"fallback\">\n <span\n v-if=\"initials\"\n :class=\"'avatar__name text-xs font-medium leading-none'\"\n >{{ initials }}</span>\n <svg\n v-else\n class=\"avatar__icon size-4/5\"\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z\" />\n </svg>\n </slot>\n </AvatarFallback>\n </AvatarRoot>\n</template>\n"],"mappings":""}
@@ -37,6 +37,15 @@ var Avatar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
37
37
  type: Boolean,
38
38
  default: false
39
39
  },
40
+ as: {},
41
+ asChild: { type: Boolean },
42
+ referrerPolicy: {},
43
+ crossOrigin: {},
44
+ imageAs: {},
45
+ imageAsChild: { type: Boolean },
46
+ delayMs: {},
47
+ fallbackAs: {},
48
+ fallbackAsChild: { type: Boolean },
40
49
  class: { type: [
41
50
  String,
42
51
  Boolean,
@@ -46,8 +55,10 @@ var Avatar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
46
55
  ] },
47
56
  classNames: {}
48
57
  },
49
- setup(__props) {
58
+ emits: ["loading-status-change"],
59
+ setup(__props, { emit: __emit }) {
50
60
  const props = __props;
61
+ const emit = __emit;
51
62
  const groupCtx = useAvatarGroupInject({
52
63
  size: ref("md"),
53
64
  isBordered: ref(false),
@@ -74,6 +85,8 @@ var Avatar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
74
85
  const inGroupClass = computed(() => isInGroup.value ? "-me-2" : void 0);
75
86
  return (_ctx, _cache) => {
76
87
  return openBlock(), createBlock(unref(AvatarRoot), {
88
+ as: props.as,
89
+ "as-child": props.asChild,
77
90
  class: normalizeClass(unref(composeClassName)(slotFns.value.base(), borderedClass.value, inGroupClass.value, props.class, props.classNames?.base)),
78
91
  "data-disabled": isDisabled.value || void 0,
79
92
  "data-bordered": finalIsBordered.value || void 0
@@ -82,17 +95,38 @@ var Avatar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
82
95
  key: 0,
83
96
  src: props.src,
84
97
  alt: props.alt ?? props.name ?? "",
85
- class: normalizeClass(unref(composeClassName)(slotFns.value.image(), props.classNames?.image))
98
+ as: props.imageAs,
99
+ "as-child": props.imageAsChild,
100
+ "referrer-policy": props.referrerPolicy,
101
+ "cross-origin": props.crossOrigin,
102
+ class: normalizeClass(unref(composeClassName)(slotFns.value.image(), props.classNames?.image)),
103
+ onLoadingStatusChange: _cache[0] || (_cache[0] = ($event) => emit("loading-status-change", $event))
86
104
  }, null, 8, [
87
105
  "src",
88
106
  "alt",
107
+ "as",
108
+ "as-child",
109
+ "referrer-policy",
110
+ "cross-origin",
89
111
  "class"
90
- ])) : createCommentVNode("", true), createVNode(unref(AvatarFallback), mergeProps({ class: unref(composeClassName)(slotFns.value.fallback(), props.classNames?.fallback) }, props.src && !props.showFallback ? { "delay-ms": 600 } : {}), {
91
- default: withCtx(() => [renderSlot(_ctx.$slots, "fallback", {}, () => [initials.value ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(initials.value), 1)) : (openBlock(), createElementBlock("svg", _hoisted_2, [..._cache[0] || (_cache[0] = [createElementVNode("path", { d: "M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z" }, null, -1)])]))])]),
112
+ ])) : createCommentVNode("", true), createVNode(unref(AvatarFallback), mergeProps({
113
+ as: props.fallbackAs,
114
+ "as-child": props.fallbackAsChild,
115
+ "delay-ms": props.delayMs,
116
+ class: unref(composeClassName)(slotFns.value.fallback(), props.classNames?.fallback)
117
+ }, props.src && !props.showFallback && props.delayMs === void 0 ? { "delay-ms": 600 } : {}), {
118
+ default: withCtx(() => [renderSlot(_ctx.$slots, "fallback", {}, () => [initials.value ? (openBlock(), createElementBlock("span", _hoisted_1, toDisplayString(initials.value), 1)) : (openBlock(), createElementBlock("svg", _hoisted_2, [..._cache[1] || (_cache[1] = [createElementVNode("path", { d: "M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z" }, null, -1)])]))])]),
92
119
  _: 3
93
- }, 16, ["class"])]),
120
+ }, 16, [
121
+ "as",
122
+ "as-child",
123
+ "delay-ms",
124
+ "class"
125
+ ])]),
94
126
  _: 3
95
127
  }, 8, [
128
+ "as",
129
+ "as-child",
96
130
  "class",
97
131
  "data-disabled",
98
132
  "data-bordered"
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/avatar/Avatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { AvatarRoot, AvatarImage, AvatarFallback } from 'reka-ui'\nimport { avatarVariants, type AvatarVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useAvatarGroupInject } from './avatar-group.context'\n\nconst props = withDefaults(defineProps<{\n src?: string\n alt?: string\n name?: string\n size?: AvatarVariants['size']\n color?: AvatarVariants['color']\n variant?: AvatarVariants['variant']\n isBordered?: boolean\n isDisabled?: boolean\n showFallback?: boolean\n class?: ClassValue\n /** Per-slot class name overrides */\n classNames?: Partial<{\n base: ClassValue\n image: ClassValue\n fallback: ClassValue\n }>\n}>(), {\n isBordered: false,\n isDisabled: false,\n showFallback: false,\n})\n\n// Inject AvatarGroup context with ref-based fallbacks (mirrors Button.vue pattern)\nconst groupCtx = useAvatarGroupInject({\n size: ref('md'),\n isBordered: ref(false),\n isDisabled: ref(false),\n isGrid: ref(false),\n isInGroup: ref(false),\n})\n\n// Prop precedence rules (matching ButtonGroup D-13):\n// - group disabled ALWAYS wins over child prop\n// - other props: child prop wins over group value (child ?? group)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalIsBordered = computed(() => props.isBordered || groupCtx.isBordered.value)\nconst isDisabled = computed(() => groupCtx.isDisabled.value || props.isDisabled)\nconst isInGroup = computed(() => groupCtx.isInGroup.value)\n\n// Compute initials from name: first letter of up to 2 words\nconst initials = computed(() => {\n if (!props.name) return ''\n const parts = props.name.trim().split(/\\s+/)\n if (parts.length === 1) return parts[0].charAt(0).toUpperCase()\n return (parts[0].charAt(0) + parts[parts.length - 1].charAt(0)).toUpperCase()\n})\n\nconst slotFns = computed(() =>\n avatarVariants({\n size: finalSize.value,\n color: props.color,\n variant: props.variant,\n })\n)\n\n// Border class applied manually since the styles don't have isBordered variant\nconst borderedClass = computed(() =>\n finalIsBordered.value ? 'ring-2 ring-offset-2 ring-default' : undefined\n)\n\n// InGroup class for negative margin overlap\nconst inGroupClass = computed(() =>\n isInGroup.value ? '-me-2' : undefined\n)\n</script>\n\n<template>\n <AvatarRoot\n :class=\"composeClassName(slotFns.base(), borderedClass, inGroupClass, props.class, props.classNames?.base)\"\n :data-disabled=\"isDisabled || undefined\"\n :data-bordered=\"finalIsBordered || undefined\"\n >\n <AvatarImage\n v-if=\"props.src && !props.showFallback\"\n :src=\"props.src\"\n :alt=\"props.alt ?? props.name ?? ''\"\n :class=\"composeClassName(slotFns.image(), props.classNames?.image)\"\n />\n <!--\n delayMs: only pass a value when we have a src — Reka UI treats delayMs=undefined\n as \"show immediately\" (canRender starts true). Passing delayMs=0 is falsy but\n not undefined, so the timeout never fires and fallback stays hidden forever.\n -->\n <AvatarFallback\n :class=\"composeClassName(slotFns.fallback(), props.classNames?.fallback)\"\n v-bind=\"props.src && !props.showFallback ? { 'delay-ms': 600 } : {}\"\n >\n <slot name=\"fallback\">\n <span\n v-if=\"initials\"\n :class=\"'avatar__name text-xs font-medium leading-none'\"\n >{{ initials }}</span>\n <svg\n v-else\n class=\"avatar__icon size-4/5\"\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z\" />\n </svg>\n </slot>\n </AvatarFallback>\n </AvatarRoot>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOA,MAAM,QAAQ;EAwBd,MAAM,WAAW,qBAAqB;GACpC,MAAM,IAAI,KAAK;GACf,YAAY,IAAI,MAAM;GACtB,YAAY,IAAI,MAAM;GACtB,QAAQ,IAAI,MAAM;GAClB,WAAW,IAAI,MAAM;GACtB,CAAA;EAKD,MAAM,YAAY,eAAe,MAAM,QAAQ,SAAS,KAAK,MAAK;EAClE,MAAM,kBAAkB,eAAe,MAAM,cAAc,SAAS,WAAW,MAAK;EACpF,MAAM,aAAa,eAAe,SAAS,WAAW,SAAS,MAAM,WAAU;EAC/E,MAAM,YAAY,eAAe,SAAS,UAAU,MAAK;EAGzD,MAAM,WAAW,eAAe;AAC9B,OAAI,CAAC,MAAM,KAAM,QAAO;GACxB,MAAM,QAAQ,MAAM,KAAK,MAAM,CAAC,MAAM,MAAK;AAC3C,OAAI,MAAM,WAAW,EAAG,QAAO,MAAM,GAAG,OAAO,EAAE,CAAC,aAAY;AAC9D,WAAQ,MAAM,GAAG,OAAO,EAAE,GAAG,MAAM,MAAM,SAAS,GAAG,OAAO,EAAE,EAAE,aAAY;IAC7E;EAED,MAAM,UAAU,eACd,eAAe;GACb,MAAM,UAAU;GAChB,OAAO,MAAM;GACb,SAAS,MAAM;GAChB,CAAA,CACH;EAGA,MAAM,gBAAgB,eACpB,gBAAgB,QAAQ,sCAAsC,KAAA,EAChE;EAGA,MAAM,eAAe,eACnB,UAAU,QAAQ,UAAU,KAAA,EAC9B;;uBAIE,YAqCa,MAAA,WAAA,EAAA;IApCV,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,MAAI,EAAI,cAAA,OAAe,aAAA,OAAc,MAAM,OAAO,MAAM,YAAY,KAAI,CAAA;IACxG,iBAAe,WAAA,SAAc,KAAA;IAC7B,iBAAe,gBAAA,SAAmB,KAAA;;2BAOjC,CAJM,MAAM,OAAG,CAAK,MAAM,gBAAA,WAAA,EAD5B,YAKE,MAAA,YAAA,EAAA;;KAHC,KAAK,MAAM;KACX,KAAK,MAAM,OAAO,MAAM,QAAI;KAC5B,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,OAAK,EAAI,MAAM,YAAY,MAAK,CAAA;;;;;wCAOnE,YAoBiB,MAAA,eAAA,EApBjB,WAoBiB,EAnBd,OAAO,MAAA,iBAAgB,CAAC,QAAA,MAAQ,UAAQ,EAAI,MAAM,YAAY,SAAQ,EAAA,EAC/D,MAAM,OAAG,CAAK,MAAM,eAAY,EAAA,YAAA,KAAA,GAAA,EAAA,CAAA,EAAA;4BAiBjC,CAfP,WAeO,KAAA,QAAA,YAAA,EAAA,QAAA,CAbG,SAAA,SAAA,WAAA,EADR,mBAGsB,QAHtB,YAGsB,gBAAlB,SAAA,MAAQ,EAAA,EAAA,KAAA,WAAA,EACZ,mBASM,OATN,YASM,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CADJ,mBAAyJ,QAAA,EAAnJ,GAAE,gJAA8I,EAAA,MAAA,GAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"Avatar.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/avatar/Avatar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { AvatarRoot, AvatarImage, AvatarFallback } from 'reka-ui'\nimport { avatarVariants, type AvatarVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useAvatarGroupInject } from './avatar-group.context'\n\nconst props = withDefaults(defineProps<{\n src?: string\n alt?: string\n name?: string\n size?: AvatarVariants['size']\n color?: AvatarVariants['color']\n variant?: AvatarVariants['variant']\n isBordered?: boolean\n isDisabled?: boolean\n showFallback?: boolean\n /** AvatarRoot props */\n as?: string\n asChild?: boolean\n /** AvatarImage props */\n referrerPolicy?: string\n crossOrigin?: string\n imageAs?: string\n imageAsChild?: boolean\n /** AvatarFallback props */\n delayMs?: number\n fallbackAs?: string\n fallbackAsChild?: boolean\n class?: ClassValue\n /** Per-slot class name overrides */\n classNames?: Partial<{\n base: ClassValue\n image: ClassValue\n fallback: ClassValue\n }>\n}>(), {\n isBordered: false,\n isDisabled: false,\n showFallback: false,\n})\n\nconst emit = defineEmits<{\n 'loading-status-change': [status: string]\n}>()\n\n// Inject AvatarGroup context with ref-based fallbacks (mirrors Button.vue pattern)\nconst groupCtx = useAvatarGroupInject({\n size: ref('md'),\n isBordered: ref(false),\n isDisabled: ref(false),\n isGrid: ref(false),\n isInGroup: ref(false),\n})\n\n// Prop precedence rules (matching ButtonGroup D-13):\n// - group disabled ALWAYS wins over child prop\n// - other props: child prop wins over group value (child ?? group)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalIsBordered = computed(() => props.isBordered || groupCtx.isBordered.value)\nconst isDisabled = computed(() => groupCtx.isDisabled.value || props.isDisabled)\nconst isInGroup = computed(() => groupCtx.isInGroup.value)\n\n// Compute initials from name: first letter of up to 2 words\nconst initials = computed(() => {\n if (!props.name) return ''\n const parts = props.name.trim().split(/\\s+/)\n if (parts.length === 1) return parts[0].charAt(0).toUpperCase()\n return (parts[0].charAt(0) + parts[parts.length - 1].charAt(0)).toUpperCase()\n})\n\nconst slotFns = computed(() =>\n avatarVariants({\n size: finalSize.value,\n color: props.color,\n variant: props.variant,\n })\n)\n\n// Border class applied manually since the styles don't have isBordered variant\nconst borderedClass = computed(() =>\n finalIsBordered.value ? 'ring-2 ring-offset-2 ring-default' : undefined\n)\n\n// InGroup class for negative margin overlap\nconst inGroupClass = computed(() =>\n isInGroup.value ? '-me-2' : undefined\n)\n</script>\n\n<template>\n <AvatarRoot\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n :class=\"composeClassName(slotFns.base(), borderedClass, inGroupClass, props.class, props.classNames?.base)\"\n :data-disabled=\"isDisabled || undefined\"\n :data-bordered=\"finalIsBordered || undefined\"\n >\n <AvatarImage\n v-if=\"props.src && !props.showFallback\"\n :src=\"props.src\"\n :alt=\"props.alt ?? props.name ?? ''\"\n :as=\"props.imageAs\"\n :as-child=\"props.imageAsChild\"\n :referrer-policy=\"(props.referrerPolicy as any)\"\n :cross-origin=\"(props.crossOrigin as any)\"\n :class=\"composeClassName(slotFns.image(), props.classNames?.image)\"\n @loading-status-change=\"emit('loading-status-change', $event)\"\n />\n <!--\n delayMs: only pass a value when we have a src — Reka UI treats delayMs=undefined\n as \"show immediately\" (canRender starts true). Passing delayMs=0 is falsy but\n not undefined, so the timeout never fires and fallback stays hidden forever.\n -->\n <AvatarFallback\n :as=\"props.fallbackAs\"\n :as-child=\"props.fallbackAsChild\"\n :delay-ms=\"props.delayMs\"\n :class=\"composeClassName(slotFns.fallback(), props.classNames?.fallback)\"\n v-bind=\"props.src && !props.showFallback && props.delayMs === undefined ? { 'delay-ms': 600 } : {}\"\n >\n <slot name=\"fallback\">\n <span\n v-if=\"initials\"\n :class=\"'avatar__name text-xs font-medium leading-none'\"\n >{{ initials }}</span>\n <svg\n v-else\n class=\"avatar__icon size-4/5\"\n aria-hidden=\"true\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M12 12c2.7 0 4.8-2.1 4.8-4.8S14.7 2.4 12 2.4 7.2 4.5 7.2 7.2 9.3 12 12 12zm0 2.4c-3.2 0-9.6 1.6-9.6 4.8v2.4h19.2v-2.4c0-3.2-6.4-4.8-9.6-4.8z\" />\n </svg>\n </slot>\n </AvatarFallback>\n </AvatarRoot>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOA,MAAM,QAAQ;EAmCd,MAAM,OAAO;EAKb,MAAM,WAAW,qBAAqB;GACpC,MAAM,IAAI,KAAK;GACf,YAAY,IAAI,MAAM;GACtB,YAAY,IAAI,MAAM;GACtB,QAAQ,IAAI,MAAM;GAClB,WAAW,IAAI,MAAM;GACtB,CAAA;EAKD,MAAM,YAAY,eAAe,MAAM,QAAQ,SAAS,KAAK,MAAK;EAClE,MAAM,kBAAkB,eAAe,MAAM,cAAc,SAAS,WAAW,MAAK;EACpF,MAAM,aAAa,eAAe,SAAS,WAAW,SAAS,MAAM,WAAU;EAC/E,MAAM,YAAY,eAAe,SAAS,UAAU,MAAK;EAGzD,MAAM,WAAW,eAAe;AAC9B,OAAI,CAAC,MAAM,KAAM,QAAO;GACxB,MAAM,QAAQ,MAAM,KAAK,MAAM,CAAC,MAAM,MAAK;AAC3C,OAAI,MAAM,WAAW,EAAG,QAAO,MAAM,GAAG,OAAO,EAAE,CAAC,aAAY;AAC9D,WAAQ,MAAM,GAAG,OAAO,EAAE,GAAG,MAAM,MAAM,SAAS,GAAG,OAAO,EAAE,EAAE,aAAY;IAC7E;EAED,MAAM,UAAU,eACd,eAAe;GACb,MAAM,UAAU;GAChB,OAAO,MAAM;GACb,SAAS,MAAM;GAChB,CAAA,CACH;EAGA,MAAM,gBAAgB,eACpB,gBAAgB,QAAQ,sCAAsC,KAAA,EAChE;EAGA,MAAM,eAAe,eACnB,UAAU,QAAQ,UAAU,KAAA,EAC9B;;uBAIE,YA+Ca,MAAA,WAAA,EAAA;IA9CV,IAAI,MAAM;IACV,YAAU,MAAM;IAChB,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,MAAI,EAAI,cAAA,OAAe,aAAA,OAAc,MAAM,OAAO,MAAM,YAAY,KAAI,CAAA;IACxG,iBAAe,WAAA,SAAc,KAAA;IAC7B,iBAAe,gBAAA,SAAmB,KAAA;;2BAYjC,CATM,MAAM,OAAG,CAAK,MAAM,gBAAA,WAAA,EAD5B,YAUE,MAAA,YAAA,EAAA;;KARC,KAAK,MAAM;KACX,KAAK,MAAM,OAAO,MAAM,QAAI;KAC5B,IAAI,MAAM;KACV,YAAU,MAAM;KAChB,mBAAkB,MAAM;KACxB,gBAAe,MAAM;KACrB,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,OAAK,EAAI,MAAM,YAAY,MAAK,CAAA;KAChE,uBAAqB,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,yBAA0B,OAAM;;;;;;;;;wCAO9D,YAuBiB,MAAA,eAAA,EAvBjB,WAuBiB;KAtBd,IAAI,MAAM;KACV,YAAU,MAAM;KAChB,YAAU,MAAM;KAChB,OAAO,MAAA,iBAAgB,CAAC,QAAA,MAAQ,UAAQ,EAAI,MAAM,YAAY,SAAQ;OAC/D,MAAM,OAAG,CAAK,MAAM,gBAAgB,MAAM,YAAY,KAAA,IAAS,EAAA,YAAA,KAAA,GAAA,EAAA,CAAA,EAAA;4BAiBhE,CAfP,WAeO,KAAA,QAAA,YAAA,EAAA,QAAA,CAbG,SAAA,SAAA,WAAA,EADR,mBAGsB,QAHtB,YAGsB,gBAAlB,SAAA,MAAQ,EAAA,EAAA,KAAA,WAAA,EACZ,mBASM,OATN,YASM,CAAA,GAAA,OAAA,OAAA,OAAA,KAAA,CADJ,mBAAyJ,QAAA,EAAnJ,GAAE,gJAA8I,EAAA,MAAA,GAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":[],"sources":["../../../src/components/button/Button.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Primitive } from 'reka-ui'\nimport { buttonVariants, type ButtonVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useButtonGroupInject } from './button-group.context'\nimport Spinner from '../spinner/Spinner.vue'\n\nconst props = withDefaults(defineProps<{\n variant?: ButtonVariants['variant']\n color?: ButtonVariants['color']\n size?: ButtonVariants['size']\n radius?: ButtonVariants['radius']\n isIconOnly?: boolean\n fullWidth?: boolean\n disabled?: boolean\n isLoading?: boolean\n as?: string | object\n class?: ClassValue\n /** Override classes for individual slots (base, startContent, label, endContent, spinner) */\n classNames?: Partial<{\n base: ClassValue\n startContent: ClassValue\n label: ClassValue\n endContent: ClassValue\n spinner: ClassValue\n }>\n value?: string | number\n}>(), {\n variant: undefined,\n color: undefined,\n size: undefined,\n radius: undefined,\n isIconOnly: false,\n fullWidth: false,\n disabled: false,\n isLoading: false,\n as: 'button',\n value: undefined,\n})\n\n// Inject ButtonGroup context unconditionally with fallback defaults (D-12)\n// When no ButtonGroup is present, inject returns these fallback values (no-op)\nconst groupCtx = useButtonGroupInject({\n variant: ref('solid'),\n color: ref('primary'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('single'),\n selectedValue: ref(null),\n isValueSelected: () => false,\n selectValue: () => {},\n})\n\nconst isSelected = computed(() => groupCtx.isValueSelected(props.value))\n\nfunction handleClick() {\n if (props.value !== undefined) groupCtx.selectValue(props.value)\n}\n\n// Prop precedence rules (D-13):\n// - group disabled ALWAYS wins over child prop\n// - all other props: child prop wins over group value (child ?? group)\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalColor = computed(() => props.color ?? groupCtx.color.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalFullWidth = computed(() => props.fullWidth || groupCtx.fullWidth.value)\n\n// Map legacy variant names to new variant+color so old usage keeps working\nconst LEGACY_VARIANTS: Record<string, { variant: string; color: string }> = {\n primary: { variant: 'solid', color: 'primary' },\n secondary: { variant: 'default', color: 'default' },\n tertiary: { variant: 'default', color: 'default' },\n danger: { variant: 'solid', color: 'danger' },\n 'danger-soft': { variant: 'soft', color: 'danger' },\n success: { variant: 'solid', color: 'success' },\n 'success-soft':{ variant: 'soft', color: 'success' },\n warning: { variant: 'solid', color: 'warning' },\n 'warning-soft':{ variant: 'soft', color: 'warning' },\n}\n\nconst resolvedVariant = computed(() => {\n const v = finalVariant.value\n if (!v) return v\n return (LEGACY_VARIANTS[v]?.variant ?? v) as ButtonVariants['variant']\n})\n\nconst resolvedColor = computed(() => {\n const v = finalVariant.value\n // If caller explicitly set color, respect it; otherwise infer from legacy variant\n if (props.color === undefined && v && LEGACY_VARIANTS[v]) return LEGACY_VARIANTS[v].color as ButtonVariants['color']\n return finalColor.value\n})\n\nconst slotFns = computed(() =>\n buttonVariants({\n variant: resolvedVariant.value,\n color: resolvedColor.value,\n size: finalSize.value,\n radius: props.radius,\n isIconOnly: props.isIconOnly,\n fullWidth: finalFullWidth.value,\n isLoading: props.isLoading,\n })\n)\n\n// Spinner size scales with button size\nconst spinnerSize = computed(() => {\n if (finalSize.value === 'xs' || finalSize.value === 'sm') return 'sm' as const\n if (finalSize.value === 'lg' || finalSize.value === 'xl') return 'lg' as const\n return 'md' as const\n})\n</script>\n\n<template>\n <Primitive\n :as=\"props.as\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :disabled=\"isDisabled || props.isLoading || undefined\"\n :data-disabled=\"isDisabled || undefined\"\n :data-loading=\"props.isLoading || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :data-selected=\"isSelected || undefined\"\n v-bind=\"$attrs\"\n @click=\"handleClick\"\n >\n <!-- startContent named slot -->\n <span\n v-if=\"$slots.startContent\"\n :class=\"composeClassName(slotFns.startContent(), props.classNames?.startContent)\"\n >\n <slot name=\"startContent\" />\n </span>\n\n <!-- default (label) slot -->\n <span :class=\"composeClassName(slotFns.label(), props.classNames?.label)\">\n <slot />\n </span>\n\n <!-- endContent named slot -->\n <span\n v-if=\"$slots.endContent\"\n :class=\"composeClassName(slotFns.endContent(), props.classNames?.endContent)\"\n >\n <slot name=\"endContent\" />\n </span>\n\n <!-- Loading spinner: absolute-centered, only rendered when isLoading=true (D-08, D-09) -->\n <!-- color=\"current\" inherits --button-fg so spinner contrasts with the button background -->\n <span\n v-if=\"props.isLoading\"\n :class=\"composeClassName(slotFns.spinner(), props.classNames?.spinner)\"\n aria-hidden=\"true\"\n data-slot=\"spinner\"\n >\n <Spinner\n :size=\"spinnerSize\"\n color=\"current\"\n />\n </span>\n </Primitive>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"Button.js","names":[],"sources":["../../../src/components/button/Button.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Primitive } from 'reka-ui'\nimport { buttonVariants, type ButtonVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useButtonGroupInject } from './button-group.context'\nimport Spinner from '../spinner/Spinner.vue'\nimport { warnDeprecatedVariant } from '../../utils/warnDeprecated'\n\nconst props = withDefaults(defineProps<{\n /**\n * Visual style of the button.\n * @deprecated 'outline' — use 'bordered' instead.\n */\n variant?: ButtonVariants['variant'] | 'outline'\n color?: ButtonVariants['color']\n size?: ButtonVariants['size']\n radius?: ButtonVariants['radius']\n isIconOnly?: boolean\n fullWidth?: boolean\n disabled?: boolean\n isLoading?: boolean\n as?: string | object\n class?: ClassValue\n /** Override classes for individual slots (base, startContent, label, endContent, spinner) */\n classNames?: Partial<{\n base: ClassValue\n startContent: ClassValue\n label: ClassValue\n endContent: ClassValue\n spinner: ClassValue\n }>\n value?: string | number\n}>(), {\n variant: undefined,\n color: undefined,\n size: undefined,\n radius: undefined,\n isIconOnly: false,\n fullWidth: false,\n disabled: false,\n isLoading: false,\n as: 'button',\n value: undefined,\n})\n\n// Inject ButtonGroup context unconditionally with fallback defaults (D-12)\n// When no ButtonGroup is present, inject returns these fallback values (no-op)\nconst groupCtx = useButtonGroupInject({\n variant: ref('solid'),\n color: ref('primary'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('single'),\n selectedValue: ref(null),\n isValueSelected: () => false,\n selectValue: () => {},\n})\n\nconst isSelected = computed(() => groupCtx.isValueSelected(props.value))\n\nfunction handleClick() {\n if (props.value !== undefined) groupCtx.selectValue(props.value)\n}\n\n// Prop precedence rules (D-13):\n// - group disabled ALWAYS wins over child prop\n// - all other props: child prop wins over group value (child ?? group)\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalColor = computed(() => props.color ?? groupCtx.color.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalFullWidth = computed(() => props.fullWidth || groupCtx.fullWidth.value)\n\n// Map legacy variant names to new variant+color so old usage keeps working\nconst LEGACY_VARIANTS: Record<string, { variant: string; color: string }> = {\n primary: { variant: 'solid', color: 'primary' },\n secondary: { variant: 'default', color: 'default' },\n tertiary: { variant: 'default', color: 'default' },\n danger: { variant: 'solid', color: 'danger' },\n 'danger-soft': { variant: 'soft', color: 'danger' },\n success: { variant: 'solid', color: 'success' },\n 'success-soft':{ variant: 'soft', color: 'success' },\n warning: { variant: 'solid', color: 'warning' },\n 'warning-soft':{ variant: 'soft', color: 'warning' },\n}\n\nconst resolvedVariant = computed(() => {\n const v = finalVariant.value\n if (!v) return v\n if (v === 'outline') {\n warnDeprecatedVariant('Button', 'outline', 'bordered')\n return 'bordered' as ButtonVariants['variant']\n }\n return (LEGACY_VARIANTS[v]?.variant ?? v) as ButtonVariants['variant']\n})\n\nconst resolvedColor = computed(() => {\n const v = finalVariant.value\n // If caller explicitly set color, respect it; otherwise infer from legacy variant\n if (props.color === undefined && v && LEGACY_VARIANTS[v]) return LEGACY_VARIANTS[v].color as ButtonVariants['color']\n return finalColor.value\n})\n\nconst slotFns = computed(() =>\n buttonVariants({\n variant: resolvedVariant.value,\n color: resolvedColor.value,\n size: finalSize.value,\n radius: props.radius,\n isIconOnly: props.isIconOnly,\n fullWidth: finalFullWidth.value,\n isLoading: props.isLoading,\n })\n)\n\n// Spinner size scales with button size\nconst spinnerSize = computed(() => {\n if (finalSize.value === 'xs' || finalSize.value === 'sm') return 'sm' as const\n if (finalSize.value === 'lg' || finalSize.value === 'xl') return 'lg' as const\n return 'md' as const\n})\n</script>\n\n<template>\n <Primitive\n :as=\"props.as\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :disabled=\"isDisabled || props.isLoading || undefined\"\n :data-disabled=\"isDisabled || undefined\"\n :data-loading=\"props.isLoading || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :data-selected=\"isSelected || undefined\"\n v-bind=\"$attrs\"\n @click=\"handleClick\"\n >\n <!-- startContent named slot -->\n <span\n v-if=\"$slots.startContent\"\n :class=\"composeClassName(slotFns.startContent(), props.classNames?.startContent)\"\n >\n <slot name=\"startContent\" />\n </span>\n\n <!-- default (label) slot -->\n <span :class=\"composeClassName(slotFns.label(), props.classNames?.label)\">\n <slot />\n </span>\n\n <!-- endContent named slot -->\n <span\n v-if=\"$slots.endContent\"\n :class=\"composeClassName(slotFns.endContent(), props.classNames?.endContent)\"\n >\n <slot name=\"endContent\" />\n </span>\n\n <!-- Loading spinner: absolute-centered, only rendered when isLoading=true (D-08, D-09) -->\n <!-- color=\"current\" inherits --button-fg so spinner contrasts with the button background -->\n <span\n v-if=\"props.isLoading\"\n :class=\"composeClassName(slotFns.spinner(), props.classNames?.spinner)\"\n aria-hidden=\"true\"\n data-slot=\"spinner\"\n >\n <Spinner\n :size=\"spinnerSize\"\n color=\"current\"\n />\n </span>\n </Primitive>\n</template>\n"],"mappings":""}
@@ -1,5 +1,6 @@
1
1
  import { composeClassName } from "../../utils/composeClassName.js";
2
2
  import Spinner_default from "../spinner/Spinner.js";
3
+ import "../../utils/warnDeprecated.js";
3
4
  import { useButtonGroupInject } from "./button-group.context.js";
4
5
  import { computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createVNode, defineComponent, mergeProps, normalizeClass, openBlock, ref, renderSlot, unref, withCtx } from "vue";
5
6
  import { buttonVariants } from "@auronui/styles";
@@ -103,6 +104,7 @@ var Button_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineC
103
104
  const resolvedVariant = computed(() => {
104
105
  const v = finalVariant.value;
105
106
  if (!v) return v;
107
+ if (v === "outline") return "bordered";
106
108
  return LEGACY_VARIANTS[v]?.variant ?? v;
107
109
  });
108
110
  const resolvedColor = computed(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Button.vue_vue_type_script_setup_true_lang.js","names":["$attrs","$slots"],"sources":["../../../src/components/button/Button.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Primitive } from 'reka-ui'\nimport { buttonVariants, type ButtonVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useButtonGroupInject } from './button-group.context'\nimport Spinner from '../spinner/Spinner.vue'\n\nconst props = withDefaults(defineProps<{\n variant?: ButtonVariants['variant']\n color?: ButtonVariants['color']\n size?: ButtonVariants['size']\n radius?: ButtonVariants['radius']\n isIconOnly?: boolean\n fullWidth?: boolean\n disabled?: boolean\n isLoading?: boolean\n as?: string | object\n class?: ClassValue\n /** Override classes for individual slots (base, startContent, label, endContent, spinner) */\n classNames?: Partial<{\n base: ClassValue\n startContent: ClassValue\n label: ClassValue\n endContent: ClassValue\n spinner: ClassValue\n }>\n value?: string | number\n}>(), {\n variant: undefined,\n color: undefined,\n size: undefined,\n radius: undefined,\n isIconOnly: false,\n fullWidth: false,\n disabled: false,\n isLoading: false,\n as: 'button',\n value: undefined,\n})\n\n// Inject ButtonGroup context unconditionally with fallback defaults (D-12)\n// When no ButtonGroup is present, inject returns these fallback values (no-op)\nconst groupCtx = useButtonGroupInject({\n variant: ref('solid'),\n color: ref('primary'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('single'),\n selectedValue: ref(null),\n isValueSelected: () => false,\n selectValue: () => {},\n})\n\nconst isSelected = computed(() => groupCtx.isValueSelected(props.value))\n\nfunction handleClick() {\n if (props.value !== undefined) groupCtx.selectValue(props.value)\n}\n\n// Prop precedence rules (D-13):\n// - group disabled ALWAYS wins over child prop\n// - all other props: child prop wins over group value (child ?? group)\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalColor = computed(() => props.color ?? groupCtx.color.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalFullWidth = computed(() => props.fullWidth || groupCtx.fullWidth.value)\n\n// Map legacy variant names to new variant+color so old usage keeps working\nconst LEGACY_VARIANTS: Record<string, { variant: string; color: string }> = {\n primary: { variant: 'solid', color: 'primary' },\n secondary: { variant: 'default', color: 'default' },\n tertiary: { variant: 'default', color: 'default' },\n danger: { variant: 'solid', color: 'danger' },\n 'danger-soft': { variant: 'soft', color: 'danger' },\n success: { variant: 'solid', color: 'success' },\n 'success-soft':{ variant: 'soft', color: 'success' },\n warning: { variant: 'solid', color: 'warning' },\n 'warning-soft':{ variant: 'soft', color: 'warning' },\n}\n\nconst resolvedVariant = computed(() => {\n const v = finalVariant.value\n if (!v) return v\n return (LEGACY_VARIANTS[v]?.variant ?? v) as ButtonVariants['variant']\n})\n\nconst resolvedColor = computed(() => {\n const v = finalVariant.value\n // If caller explicitly set color, respect it; otherwise infer from legacy variant\n if (props.color === undefined && v && LEGACY_VARIANTS[v]) return LEGACY_VARIANTS[v].color as ButtonVariants['color']\n return finalColor.value\n})\n\nconst slotFns = computed(() =>\n buttonVariants({\n variant: resolvedVariant.value,\n color: resolvedColor.value,\n size: finalSize.value,\n radius: props.radius,\n isIconOnly: props.isIconOnly,\n fullWidth: finalFullWidth.value,\n isLoading: props.isLoading,\n })\n)\n\n// Spinner size scales with button size\nconst spinnerSize = computed(() => {\n if (finalSize.value === 'xs' || finalSize.value === 'sm') return 'sm' as const\n if (finalSize.value === 'lg' || finalSize.value === 'xl') return 'lg' as const\n return 'md' as const\n})\n</script>\n\n<template>\n <Primitive\n :as=\"props.as\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :disabled=\"isDisabled || props.isLoading || undefined\"\n :data-disabled=\"isDisabled || undefined\"\n :data-loading=\"props.isLoading || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :data-selected=\"isSelected || undefined\"\n v-bind=\"$attrs\"\n @click=\"handleClick\"\n >\n <!-- startContent named slot -->\n <span\n v-if=\"$slots.startContent\"\n :class=\"composeClassName(slotFns.startContent(), props.classNames?.startContent)\"\n >\n <slot name=\"startContent\" />\n </span>\n\n <!-- default (label) slot -->\n <span :class=\"composeClassName(slotFns.label(), props.classNames?.label)\">\n <slot />\n </span>\n\n <!-- endContent named slot -->\n <span\n v-if=\"$slots.endContent\"\n :class=\"composeClassName(slotFns.endContent(), props.classNames?.endContent)\"\n >\n <slot name=\"endContent\" />\n </span>\n\n <!-- Loading spinner: absolute-centered, only rendered when isLoading=true (D-08, D-09) -->\n <!-- color=\"current\" inherits --button-fg so spinner contrasts with the button background -->\n <span\n v-if=\"props.isLoading\"\n :class=\"composeClassName(slotFns.spinner(), props.classNames?.spinner)\"\n aria-hidden=\"true\"\n data-slot=\"spinner\"\n >\n <Spinner\n :size=\"spinnerSize\"\n color=\"current\"\n />\n </span>\n </Primitive>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQA,MAAM,QAAQ;EAmCd,MAAM,WAAW,qBAAqB;GACpC,SAAS,IAAI,QAAQ;GACrB,OAAO,IAAI,UAAU;GACrB,MAAM,IAAI,KAAK;GACf,UAAU,IAAI,MAAM;GACpB,WAAW,IAAI,MAAM;GACrB,aAAa,IAAI,aAAa;GAC9B,eAAe,IAAI,SAAS;GAC5B,eAAe,IAAI,KAAK;GACxB,uBAAuB;GACvB,mBAAmB;GACpB,CAAA;EAED,MAAM,aAAa,eAAe,SAAS,gBAAgB,MAAM,MAAM,CAAA;EAEvE,SAAS,cAAc;AACrB,OAAI,MAAM,UAAU,KAAA,EAAW,UAAS,YAAY,MAAM,MAAK;;EAMjE,MAAM,aAAa,eAAe,SAAS,SAAS,SAAS,MAAM,SAAQ;EAC3E,MAAM,eAAe,eAAe,MAAM,WAAW,SAAS,QAAQ,MAAK;EAC3E,MAAM,aAAa,eAAe,MAAM,SAAS,SAAS,MAAM,MAAK;EACrE,MAAM,YAAY,eAAe,MAAM,QAAQ,SAAS,KAAK,MAAK;EAClE,MAAM,iBAAiB,eAAe,MAAM,aAAa,SAAS,UAAU,MAAK;EAGjF,MAAM,kBAAsE;GAC1E,SAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,WAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,UAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,QAAe;IAAE,SAAS;IAAW,OAAO;IAAU;GACtD,eAAe;IAAE,SAAS;IAAW,OAAO;IAAU;GACtD,SAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,gBAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,SAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,gBAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACzD;EAEA,MAAM,kBAAkB,eAAe;GACrC,MAAM,IAAI,aAAa;AACvB,OAAI,CAAC,EAAG,QAAO;AACf,UAAQ,gBAAgB,IAAI,WAAW;IACxC;EAED,MAAM,gBAAgB,eAAe;GACnC,MAAM,IAAI,aAAa;AAEvB,OAAI,MAAM,UAAU,KAAA,KAAa,KAAK,gBAAgB,GAAI,QAAO,gBAAgB,GAAG;AACpF,UAAO,WAAW;IACnB;EAED,MAAM,UAAU,eACd,eAAe;GACb,SAAS,gBAAgB;GACzB,OAAO,cAAc;GACrB,MAAM,UAAU;GAChB,QAAQ,MAAM;GACd,YAAY,MAAM;GAClB,WAAW,eAAe;GAC1B,WAAW,MAAM;GAClB,CAAA,CACH;EAGA,MAAM,cAAc,eAAe;AACjC,OAAI,UAAU,UAAU,QAAQ,UAAU,UAAU,KAAM,QAAO;AACjE,OAAI,UAAU,UAAU,QAAQ,UAAU,UAAU,KAAM,QAAO;AACjE,UAAO;IACR;;uBAIC,YA6CY,MAAA,UAAA,EA7CZ,WA6CY;IA5CT,IAAI,MAAM;IACV,OAAO,MAAA,iBAAgB,CAAC,QAAA,MAAQ,MAAI,EAAI,MAAM,OAAO,MAAM,YAAY,KAAI;IAC3E,UAAU,WAAA,SAAc,MAAM,aAAa,KAAA;IAC3C,iBAAe,WAAA,SAAc,KAAA;IAC7B,gBAAc,MAAM,aAAa,KAAA;IACjC,oBAAkB,MAAA,SAAQ,CAAC,YAAY;IACvC,iBAAe,WAAA,SAAc,KAAA;MACtBA,KAAAA,QAAM,EACb,SAAO,aAAW,CAAA,EAAA;2BAQZ;KAJCC,KAAAA,OAAO,gBAAA,WAAA,EADf,mBAKO,QAAA;;MAHJ,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,cAAY,EAAI,MAAM,YAAY,aAAY,CAAA;SAE/E,WAA4B,KAAA,QAAA,eAAA,CAAA,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;KAI9B,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,OAAK,EAAI,MAAM,YAAY,MAAK,CAAA,EAAA,EAAA,CACrE,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,EAAA;KAKFA,KAAAA,OAAO,cAAA,WAAA,EADf,mBAKO,QAAA;;MAHJ,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,YAAU,EAAI,MAAM,YAAY,WAAU,CAAA;SAE3E,WAA0B,KAAA,QAAA,aAAA,CAAA,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;KAMpB,MAAM,aAAA,WAAA,EADd,mBAUO,QAAA;;MARJ,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,SAAO,EAAI,MAAM,YAAY,QAAO,CAAA;MACrE,eAAY;MACZ,aAAU;SAEV,YAGE,iBAAA;MAFC,MAAM,YAAA;MACP,OAAM"}
1
+ {"version":3,"file":"Button.vue_vue_type_script_setup_true_lang.js","names":["$attrs","$slots"],"sources":["../../../src/components/button/Button.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Primitive } from 'reka-ui'\nimport { buttonVariants, type ButtonVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useButtonGroupInject } from './button-group.context'\nimport Spinner from '../spinner/Spinner.vue'\nimport { warnDeprecatedVariant } from '../../utils/warnDeprecated'\n\nconst props = withDefaults(defineProps<{\n /**\n * Visual style of the button.\n * @deprecated 'outline' — use 'bordered' instead.\n */\n variant?: ButtonVariants['variant'] | 'outline'\n color?: ButtonVariants['color']\n size?: ButtonVariants['size']\n radius?: ButtonVariants['radius']\n isIconOnly?: boolean\n fullWidth?: boolean\n disabled?: boolean\n isLoading?: boolean\n as?: string | object\n class?: ClassValue\n /** Override classes for individual slots (base, startContent, label, endContent, spinner) */\n classNames?: Partial<{\n base: ClassValue\n startContent: ClassValue\n label: ClassValue\n endContent: ClassValue\n spinner: ClassValue\n }>\n value?: string | number\n}>(), {\n variant: undefined,\n color: undefined,\n size: undefined,\n radius: undefined,\n isIconOnly: false,\n fullWidth: false,\n disabled: false,\n isLoading: false,\n as: 'button',\n value: undefined,\n})\n\n// Inject ButtonGroup context unconditionally with fallback defaults (D-12)\n// When no ButtonGroup is present, inject returns these fallback values (no-op)\nconst groupCtx = useButtonGroupInject({\n variant: ref('solid'),\n color: ref('primary'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('single'),\n selectedValue: ref(null),\n isValueSelected: () => false,\n selectValue: () => {},\n})\n\nconst isSelected = computed(() => groupCtx.isValueSelected(props.value))\n\nfunction handleClick() {\n if (props.value !== undefined) groupCtx.selectValue(props.value)\n}\n\n// Prop precedence rules (D-13):\n// - group disabled ALWAYS wins over child prop\n// - all other props: child prop wins over group value (child ?? group)\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalColor = computed(() => props.color ?? groupCtx.color.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\nconst finalFullWidth = computed(() => props.fullWidth || groupCtx.fullWidth.value)\n\n// Map legacy variant names to new variant+color so old usage keeps working\nconst LEGACY_VARIANTS: Record<string, { variant: string; color: string }> = {\n primary: { variant: 'solid', color: 'primary' },\n secondary: { variant: 'default', color: 'default' },\n tertiary: { variant: 'default', color: 'default' },\n danger: { variant: 'solid', color: 'danger' },\n 'danger-soft': { variant: 'soft', color: 'danger' },\n success: { variant: 'solid', color: 'success' },\n 'success-soft':{ variant: 'soft', color: 'success' },\n warning: { variant: 'solid', color: 'warning' },\n 'warning-soft':{ variant: 'soft', color: 'warning' },\n}\n\nconst resolvedVariant = computed(() => {\n const v = finalVariant.value\n if (!v) return v\n if (v === 'outline') {\n warnDeprecatedVariant('Button', 'outline', 'bordered')\n return 'bordered' as ButtonVariants['variant']\n }\n return (LEGACY_VARIANTS[v]?.variant ?? v) as ButtonVariants['variant']\n})\n\nconst resolvedColor = computed(() => {\n const v = finalVariant.value\n // If caller explicitly set color, respect it; otherwise infer from legacy variant\n if (props.color === undefined && v && LEGACY_VARIANTS[v]) return LEGACY_VARIANTS[v].color as ButtonVariants['color']\n return finalColor.value\n})\n\nconst slotFns = computed(() =>\n buttonVariants({\n variant: resolvedVariant.value,\n color: resolvedColor.value,\n size: finalSize.value,\n radius: props.radius,\n isIconOnly: props.isIconOnly,\n fullWidth: finalFullWidth.value,\n isLoading: props.isLoading,\n })\n)\n\n// Spinner size scales with button size\nconst spinnerSize = computed(() => {\n if (finalSize.value === 'xs' || finalSize.value === 'sm') return 'sm' as const\n if (finalSize.value === 'lg' || finalSize.value === 'xl') return 'lg' as const\n return 'md' as const\n})\n</script>\n\n<template>\n <Primitive\n :as=\"props.as\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :disabled=\"isDisabled || props.isLoading || undefined\"\n :data-disabled=\"isDisabled || undefined\"\n :data-loading=\"props.isLoading || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :data-selected=\"isSelected || undefined\"\n v-bind=\"$attrs\"\n @click=\"handleClick\"\n >\n <!-- startContent named slot -->\n <span\n v-if=\"$slots.startContent\"\n :class=\"composeClassName(slotFns.startContent(), props.classNames?.startContent)\"\n >\n <slot name=\"startContent\" />\n </span>\n\n <!-- default (label) slot -->\n <span :class=\"composeClassName(slotFns.label(), props.classNames?.label)\">\n <slot />\n </span>\n\n <!-- endContent named slot -->\n <span\n v-if=\"$slots.endContent\"\n :class=\"composeClassName(slotFns.endContent(), props.classNames?.endContent)\"\n >\n <slot name=\"endContent\" />\n </span>\n\n <!-- Loading spinner: absolute-centered, only rendered when isLoading=true (D-08, D-09) -->\n <!-- color=\"current\" inherits --button-fg so spinner contrasts with the button background -->\n <span\n v-if=\"props.isLoading\"\n :class=\"composeClassName(slotFns.spinner(), props.classNames?.spinner)\"\n aria-hidden=\"true\"\n data-slot=\"spinner\"\n >\n <Spinner\n :size=\"spinnerSize\"\n color=\"current\"\n />\n </span>\n </Primitive>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASA,MAAM,QAAQ;EAuCd,MAAM,WAAW,qBAAqB;GACpC,SAAS,IAAI,QAAQ;GACrB,OAAO,IAAI,UAAU;GACrB,MAAM,IAAI,KAAK;GACf,UAAU,IAAI,MAAM;GACpB,WAAW,IAAI,MAAM;GACrB,aAAa,IAAI,aAAa;GAC9B,eAAe,IAAI,SAAS;GAC5B,eAAe,IAAI,KAAK;GACxB,uBAAuB;GACvB,mBAAmB;GACpB,CAAA;EAED,MAAM,aAAa,eAAe,SAAS,gBAAgB,MAAM,MAAM,CAAA;EAEvE,SAAS,cAAc;AACrB,OAAI,MAAM,UAAU,KAAA,EAAW,UAAS,YAAY,MAAM,MAAK;;EAMjE,MAAM,aAAa,eAAe,SAAS,SAAS,SAAS,MAAM,SAAQ;EAC3E,MAAM,eAAe,eAAe,MAAM,WAAW,SAAS,QAAQ,MAAK;EAC3E,MAAM,aAAa,eAAe,MAAM,SAAS,SAAS,MAAM,MAAK;EACrE,MAAM,YAAY,eAAe,MAAM,QAAQ,SAAS,KAAK,MAAK;EAClE,MAAM,iBAAiB,eAAe,MAAM,aAAa,SAAS,UAAU,MAAK;EAGjF,MAAM,kBAAsE;GAC1E,SAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,WAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,UAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,QAAe;IAAE,SAAS;IAAW,OAAO;IAAU;GACtD,eAAe;IAAE,SAAS;IAAW,OAAO;IAAU;GACtD,SAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,gBAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,SAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACvD,gBAAe;IAAE,SAAS;IAAW,OAAO;IAAW;GACzD;EAEA,MAAM,kBAAkB,eAAe;GACrC,MAAM,IAAI,aAAa;AACvB,OAAI,CAAC,EAAG,QAAO;AACf,OAAI,MAAM,UAER,QAAO;AAET,UAAQ,gBAAgB,IAAI,WAAW;IACxC;EAED,MAAM,gBAAgB,eAAe;GACnC,MAAM,IAAI,aAAa;AAEvB,OAAI,MAAM,UAAU,KAAA,KAAa,KAAK,gBAAgB,GAAI,QAAO,gBAAgB,GAAG;AACpF,UAAO,WAAW;IACnB;EAED,MAAM,UAAU,eACd,eAAe;GACb,SAAS,gBAAgB;GACzB,OAAO,cAAc;GACrB,MAAM,UAAU;GAChB,QAAQ,MAAM;GACd,YAAY,MAAM;GAClB,WAAW,eAAe;GAC1B,WAAW,MAAM;GAClB,CAAA,CACH;EAGA,MAAM,cAAc,eAAe;AACjC,OAAI,UAAU,UAAU,QAAQ,UAAU,UAAU,KAAM,QAAO;AACjE,OAAI,UAAU,UAAU,QAAQ,UAAU,UAAU,KAAM,QAAO;AACjE,UAAO;IACR;;uBAIC,YA6CY,MAAA,UAAA,EA7CZ,WA6CY;IA5CT,IAAI,MAAM;IACV,OAAO,MAAA,iBAAgB,CAAC,QAAA,MAAQ,MAAI,EAAI,MAAM,OAAO,MAAM,YAAY,KAAI;IAC3E,UAAU,WAAA,SAAc,MAAM,aAAa,KAAA;IAC3C,iBAAe,WAAA,SAAc,KAAA;IAC7B,gBAAc,MAAM,aAAa,KAAA;IACjC,oBAAkB,MAAA,SAAQ,CAAC,YAAY;IACvC,iBAAe,WAAA,SAAc,KAAA;MACtBA,KAAAA,QAAM,EACb,SAAO,aAAW,CAAA,EAAA;2BAQZ;KAJCC,KAAAA,OAAO,gBAAA,WAAA,EADf,mBAKO,QAAA;;MAHJ,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,cAAY,EAAI,MAAM,YAAY,aAAY,CAAA;SAE/E,WAA4B,KAAA,QAAA,eAAA,CAAA,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;KAI9B,mBAEO,QAAA,EAFA,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,OAAK,EAAI,MAAM,YAAY,MAAK,CAAA,EAAA,EAAA,CACrE,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,EAAA;KAKFA,KAAAA,OAAO,cAAA,WAAA,EADf,mBAKO,QAAA;;MAHJ,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,YAAU,EAAI,MAAM,YAAY,WAAU,CAAA;SAE3E,WAA0B,KAAA,QAAA,aAAA,CAAA,EAAA,EAAA,IAAA,mBAAA,IAAA,KAAA;KAMpB,MAAM,aAAA,WAAA,EADd,mBAUO,QAAA;;MARJ,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,MAAQ,SAAO,EAAI,MAAM,YAAY,QAAO,CAAA;MACrE,eAAY;MACZ,aAAU;SAEV,YAGE,iBAAA;MAFC,MAAM,YAAA;MACP,OAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleButton.js","names":[],"sources":["../../../src/components/button/ToggleButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Toggle } from 'reka-ui'\nimport { toggleButtonVariants, type ToggleButtonVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useToggleButtonGroupInject } from './toggle-button-group.context'\n\nconst props = withDefaults(defineProps<{\n variant?: ToggleButtonVariants['variant']\n size?: ToggleButtonVariants['size']\n isIconOnly?: boolean\n disabled?: boolean\n modelValue?: boolean\n defaultValue?: boolean\n value?: string\n class?: string\n}>(), {\n variant: undefined,\n size: undefined,\n isIconOnly: false,\n disabled: false,\n modelValue: undefined,\n defaultValue: false,\n value: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean]\n}>()\n\n// Inject ToggleButtonGroup context with fallback defaults (mirrors Button → ButtonGroup pattern)\nconst groupCtx = useToggleButtonGroupInject({\n variant: ref('default'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('multiple'),\n selectedValues: ref([]),\n toggleValue: () => {},\n})\n\n// Prop precedence: group disabled wins; child prop wins for variant/size\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\n\n// When inside a group with selectionMode and a value prop, derive pressed from group state\nconst isGroupManaged = computed(() => props.value !== undefined)\nconst isPressed = computed(() => {\n if (isGroupManaged.value) {\n return groupCtx.selectedValues.value.includes(props.value!)\n }\n return props.modelValue\n})\n\nfunction handleUpdate(val: boolean) {\n if (isGroupManaged.value) {\n groupCtx.toggleValue(props.value!)\n } else {\n emit('update:modelValue', val)\n }\n}\n\nconst classes = computed(() =>\n toggleButtonVariants({\n variant: finalVariant.value,\n size: finalSize.value,\n isIconOnly: props.isIconOnly,\n })\n)\n</script>\n\n<template>\n <!--\n Use as-child so Reka's Toggle merges data-state / aria-pressed / onClick directly\n onto OUR <button> element instead of relying on a 2-level inheritAttrs chain\n (Toggle → Primitive → button). This guarantees the toggle-button CSS class and\n data-state=\"on\" are always on the same DOM element, so [data-state=\"on\"] selectors\n apply correctly.\n -->\n <Toggle\n as-child\n :disabled=\"isDisabled\"\n :model-value=\"isPressed\"\n :default-value=\"props.defaultValue\"\n @update:model-value=\"handleUpdate\"\n >\n <button\n :class=\"composeClassName(classes, props.class)\"\n :disabled=\"isDisabled || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :type=\"'button'\"\n >\n <slot />\n </button>\n </Toggle>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ToggleButton.js","names":[],"sources":["../../../src/components/button/ToggleButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Toggle } from 'reka-ui'\nimport { toggleButtonVariants, type ToggleButtonVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useToggleButtonGroupInject } from './toggle-button-group.context'\n\nconst props = withDefaults(defineProps<{\n variant?: ToggleButtonVariants['variant']\n size?: ToggleButtonVariants['size']\n isIconOnly?: boolean\n disabled?: boolean\n modelValue?: boolean\n defaultValue?: boolean\n value?: string\n class?: string\n as?: string\n asChild?: boolean\n name?: string\n required?: boolean\n}>(), {\n variant: undefined,\n size: undefined,\n isIconOnly: false,\n disabled: false,\n modelValue: undefined,\n defaultValue: false,\n value: undefined,\n as: undefined,\n asChild: false,\n name: undefined,\n required: false,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean]\n}>()\n\n// Inject ToggleButtonGroup context with fallback defaults (mirrors Button → ButtonGroup pattern)\nconst groupCtx = useToggleButtonGroupInject({\n variant: ref('default'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('multiple'),\n selectedValues: ref([]),\n toggleValue: () => {},\n})\n\n// Prop precedence: group disabled wins; child prop wins for variant/size\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\n\n// When inside a group with selectionMode and a value prop, derive pressed from group state\nconst isGroupManaged = computed(() => props.value !== undefined)\nconst isPressed = computed(() => {\n if (isGroupManaged.value) {\n return groupCtx.selectedValues.value.includes(props.value!)\n }\n return props.modelValue\n})\n\nfunction handleUpdate(val: boolean) {\n if (isGroupManaged.value) {\n groupCtx.toggleValue(props.value!)\n } else {\n emit('update:modelValue', val)\n }\n}\n\nconst classes = computed(() =>\n toggleButtonVariants({\n variant: finalVariant.value,\n size: finalSize.value,\n isIconOnly: props.isIconOnly,\n })\n)\n</script>\n\n<template>\n <!--\n Use as-child so Reka's Toggle merges data-state / aria-pressed / onClick directly\n onto OUR <button> element instead of relying on a 2-level inheritAttrs chain\n (Toggle → Primitive → button). This guarantees the toggle-button CSS class and\n data-state=\"on\" are always on the same DOM element, so [data-state=\"on\"] selectors\n apply correctly.\n -->\n <Toggle\n as-child\n :disabled=\"isDisabled\"\n :model-value=\"isPressed\"\n :default-value=\"props.defaultValue\"\n :name=\"props.name\"\n :required=\"props.required\"\n @update:model-value=\"handleUpdate\"\n >\n <button\n :class=\"composeClassName(classes, props.class)\"\n :disabled=\"isDisabled || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :type=\"'button'\"\n >\n <slot />\n </button>\n </Toggle>\n</template>\n"],"mappings":""}
@@ -27,7 +27,17 @@ var ToggleButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
27
27
  default: false
28
28
  },
29
29
  value: { default: void 0 },
30
- class: {}
30
+ class: {},
31
+ as: { default: void 0 },
32
+ asChild: {
33
+ type: Boolean,
34
+ default: false
35
+ },
36
+ name: { default: void 0 },
37
+ required: {
38
+ type: Boolean,
39
+ default: false
40
+ }
31
41
  },
32
42
  emits: ["update:modelValue"],
33
43
  setup(__props, { emit: __emit }) {
@@ -66,6 +76,8 @@ var ToggleButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
66
76
  disabled: isDisabled.value,
67
77
  "model-value": isPressed.value,
68
78
  "default-value": props.defaultValue,
79
+ name: props.name,
80
+ required: props.required,
69
81
  "onUpdate:modelValue": handleUpdate
70
82
  }, {
71
83
  default: withCtx(() => [createElementVNode("button", {
@@ -78,7 +90,9 @@ var ToggleButton_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ d
78
90
  }, 8, [
79
91
  "disabled",
80
92
  "model-value",
81
- "default-value"
93
+ "default-value",
94
+ "name",
95
+ "required"
82
96
  ]);
83
97
  };
84
98
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleButton.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/button/ToggleButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Toggle } from 'reka-ui'\nimport { toggleButtonVariants, type ToggleButtonVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useToggleButtonGroupInject } from './toggle-button-group.context'\n\nconst props = withDefaults(defineProps<{\n variant?: ToggleButtonVariants['variant']\n size?: ToggleButtonVariants['size']\n isIconOnly?: boolean\n disabled?: boolean\n modelValue?: boolean\n defaultValue?: boolean\n value?: string\n class?: string\n}>(), {\n variant: undefined,\n size: undefined,\n isIconOnly: false,\n disabled: false,\n modelValue: undefined,\n defaultValue: false,\n value: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean]\n}>()\n\n// Inject ToggleButtonGroup context with fallback defaults (mirrors Button → ButtonGroup pattern)\nconst groupCtx = useToggleButtonGroupInject({\n variant: ref('default'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('multiple'),\n selectedValues: ref([]),\n toggleValue: () => {},\n})\n\n// Prop precedence: group disabled wins; child prop wins for variant/size\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\n\n// When inside a group with selectionMode and a value prop, derive pressed from group state\nconst isGroupManaged = computed(() => props.value !== undefined)\nconst isPressed = computed(() => {\n if (isGroupManaged.value) {\n return groupCtx.selectedValues.value.includes(props.value!)\n }\n return props.modelValue\n})\n\nfunction handleUpdate(val: boolean) {\n if (isGroupManaged.value) {\n groupCtx.toggleValue(props.value!)\n } else {\n emit('update:modelValue', val)\n }\n}\n\nconst classes = computed(() =>\n toggleButtonVariants({\n variant: finalVariant.value,\n size: finalSize.value,\n isIconOnly: props.isIconOnly,\n })\n)\n</script>\n\n<template>\n <!--\n Use as-child so Reka's Toggle merges data-state / aria-pressed / onClick directly\n onto OUR <button> element instead of relying on a 2-level inheritAttrs chain\n (Toggle → Primitive → button). This guarantees the toggle-button CSS class and\n data-state=\"on\" are always on the same DOM element, so [data-state=\"on\"] selectors\n apply correctly.\n -->\n <Toggle\n as-child\n :disabled=\"isDisabled\"\n :model-value=\"isPressed\"\n :default-value=\"props.defaultValue\"\n @update:model-value=\"handleUpdate\"\n >\n <button\n :class=\"composeClassName(classes, props.class)\"\n :disabled=\"isDisabled || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :type=\"'button'\"\n >\n <slot />\n </button>\n </Toggle>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOA,MAAM,QAAQ;EAmBd,MAAM,OAAO;EAKb,MAAM,WAAW,2BAA2B;GAC1C,SAAS,IAAI,UAAU;GACvB,MAAM,IAAI,KAAK;GACf,UAAU,IAAI,MAAM;GACpB,WAAW,IAAI,MAAM;GACrB,aAAa,IAAI,aAAa;GAC9B,eAAe,IAAI,WAAW;GAC9B,gBAAgB,IAAI,EAAE,CAAC;GACvB,mBAAmB;GACpB,CAAA;EAGD,MAAM,aAAa,eAAe,SAAS,SAAS,SAAS,MAAM,SAAQ;EAC3E,MAAM,eAAe,eAAe,MAAM,WAAW,SAAS,QAAQ,MAAK;EAC3E,MAAM,YAAY,eAAe,MAAM,QAAQ,SAAS,KAAK,MAAK;EAGlE,MAAM,iBAAiB,eAAe,MAAM,UAAU,KAAA,EAAS;EAC/D,MAAM,YAAY,eAAe;AAC/B,OAAI,eAAe,MACjB,QAAO,SAAS,eAAe,MAAM,SAAS,MAAM,MAAM;AAE5D,UAAO,MAAM;IACd;EAED,SAAS,aAAa,KAAc;AAClC,OAAI,eAAe,MACjB,UAAS,YAAY,MAAM,MAAM;OAEjC,MAAK,qBAAqB,IAAG;;EAIjC,MAAM,UAAU,eACd,qBAAqB;GACnB,SAAS,aAAa;GACtB,MAAM,UAAU;GAChB,YAAY,MAAM;GACnB,CAAA,CACH;;uBAWE,YAeS,MAAA,OAAA,EAAA;IAdP,YAAA;IACC,UAAU,WAAA;IACV,eAAa,UAAA;IACb,iBAAe,MAAM;IACrB,uBAAoB;;2BASZ,CAPT,mBAOS,UAAA;KANN,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,OAAS,MAAM,MAAK,CAAA;KAC5C,UAAU,WAAA,SAAc,KAAA;KACxB,oBAAkB,MAAA,SAAQ,CAAC,YAAY;KACvC,MAAM;QAEP,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,IAAA,WAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"ToggleButton.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/button/ToggleButton.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref } from 'vue'\nimport { Toggle } from 'reka-ui'\nimport { toggleButtonVariants, type ToggleButtonVariants } from '@auronui/styles'\nimport { composeClassName } from '../../utils/composeClassName'\nimport { useToggleButtonGroupInject } from './toggle-button-group.context'\n\nconst props = withDefaults(defineProps<{\n variant?: ToggleButtonVariants['variant']\n size?: ToggleButtonVariants['size']\n isIconOnly?: boolean\n disabled?: boolean\n modelValue?: boolean\n defaultValue?: boolean\n value?: string\n class?: string\n as?: string\n asChild?: boolean\n name?: string\n required?: boolean\n}>(), {\n variant: undefined,\n size: undefined,\n isIconOnly: false,\n disabled: false,\n modelValue: undefined,\n defaultValue: false,\n value: undefined,\n as: undefined,\n asChild: false,\n name: undefined,\n required: false,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: boolean]\n}>()\n\n// Inject ToggleButtonGroup context with fallback defaults (mirrors Button → ButtonGroup pattern)\nconst groupCtx = useToggleButtonGroupInject({\n variant: ref('default'),\n size: ref('md'),\n disabled: ref(false),\n fullWidth: ref(false),\n orientation: ref('horizontal'),\n selectionMode: ref('multiple'),\n selectedValues: ref([]),\n toggleValue: () => {},\n})\n\n// Prop precedence: group disabled wins; child prop wins for variant/size\nconst isDisabled = computed(() => groupCtx.disabled.value || props.disabled)\nconst finalVariant = computed(() => props.variant ?? groupCtx.variant.value)\nconst finalSize = computed(() => props.size ?? groupCtx.size.value)\n\n// When inside a group with selectionMode and a value prop, derive pressed from group state\nconst isGroupManaged = computed(() => props.value !== undefined)\nconst isPressed = computed(() => {\n if (isGroupManaged.value) {\n return groupCtx.selectedValues.value.includes(props.value!)\n }\n return props.modelValue\n})\n\nfunction handleUpdate(val: boolean) {\n if (isGroupManaged.value) {\n groupCtx.toggleValue(props.value!)\n } else {\n emit('update:modelValue', val)\n }\n}\n\nconst classes = computed(() =>\n toggleButtonVariants({\n variant: finalVariant.value,\n size: finalSize.value,\n isIconOnly: props.isIconOnly,\n })\n)\n</script>\n\n<template>\n <!--\n Use as-child so Reka's Toggle merges data-state / aria-pressed / onClick directly\n onto OUR <button> element instead of relying on a 2-level inheritAttrs chain\n (Toggle → Primitive → button). This guarantees the toggle-button CSS class and\n data-state=\"on\" are always on the same DOM element, so [data-state=\"on\"] selectors\n apply correctly.\n -->\n <Toggle\n as-child\n :disabled=\"isDisabled\"\n :model-value=\"isPressed\"\n :default-value=\"props.defaultValue\"\n :name=\"props.name\"\n :required=\"props.required\"\n @update:model-value=\"handleUpdate\"\n >\n <button\n :class=\"composeClassName(classes, props.class)\"\n :disabled=\"isDisabled || undefined\"\n :data-orientation=\"groupCtx.orientation.value\"\n :type=\"'button'\"\n >\n <slot />\n </button>\n </Toggle>\n</template>\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOA,MAAM,QAAQ;EA2Bd,MAAM,OAAO;EAKb,MAAM,WAAW,2BAA2B;GAC1C,SAAS,IAAI,UAAU;GACvB,MAAM,IAAI,KAAK;GACf,UAAU,IAAI,MAAM;GACpB,WAAW,IAAI,MAAM;GACrB,aAAa,IAAI,aAAa;GAC9B,eAAe,IAAI,WAAW;GAC9B,gBAAgB,IAAI,EAAE,CAAC;GACvB,mBAAmB;GACpB,CAAA;EAGD,MAAM,aAAa,eAAe,SAAS,SAAS,SAAS,MAAM,SAAQ;EAC3E,MAAM,eAAe,eAAe,MAAM,WAAW,SAAS,QAAQ,MAAK;EAC3E,MAAM,YAAY,eAAe,MAAM,QAAQ,SAAS,KAAK,MAAK;EAGlE,MAAM,iBAAiB,eAAe,MAAM,UAAU,KAAA,EAAS;EAC/D,MAAM,YAAY,eAAe;AAC/B,OAAI,eAAe,MACjB,QAAO,SAAS,eAAe,MAAM,SAAS,MAAM,MAAM;AAE5D,UAAO,MAAM;IACd;EAED,SAAS,aAAa,KAAc;AAClC,OAAI,eAAe,MACjB,UAAS,YAAY,MAAM,MAAM;OAEjC,MAAK,qBAAqB,IAAG;;EAIjC,MAAM,UAAU,eACd,qBAAqB;GACnB,SAAS,aAAa;GACtB,MAAM,UAAU;GAChB,YAAY,MAAM;GACnB,CAAA,CACH;;uBAWE,YAiBS,MAAA,OAAA,EAAA;IAhBP,YAAA;IACC,UAAU,WAAA;IACV,eAAa,UAAA;IACb,iBAAe,MAAM;IACrB,MAAM,MAAM;IACZ,UAAU,MAAM;IAChB,uBAAoB;;2BASZ,CAPT,mBAOS,UAAA;KANN,OAAK,eAAE,MAAA,iBAAgB,CAAC,QAAA,OAAS,MAAM,MAAK,CAAA;KAC5C,UAAU,WAAA,SAAc,KAAA;KACxB,oBAAkB,MAAA,SAAQ,CAAC,YAAY;KACvC,MAAM;QAEP,WAAQ,KAAA,QAAA,UAAA,CAAA,EAAA,IAAA,WAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.js","names":[],"sources":["../../../src/components/calendar/Calendar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, shallowRef } from 'vue'\nimport {\n CalendarRoot,\n CalendarHeader,\n CalendarHeading,\n CalendarGrid,\n CalendarGridHead,\n CalendarGridRow,\n CalendarHeadCell,\n CalendarGridBody,\n CalendarCell,\n CalendarCellTrigger,\n CalendarNext,\n CalendarPrev,\n MonthPickerRoot,\n MonthPickerHeader,\n MonthPickerHeading,\n MonthPickerPrev,\n MonthPickerNext,\n MonthPickerGrid,\n MonthPickerGridBody,\n MonthPickerGridRow,\n MonthPickerCell,\n MonthPickerCellTrigger,\n} from 'reka-ui'\nimport { today, getLocalTimeZone, type DateValue } from '@internationalized/date'\nimport { calendarVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport CalendarYearPicker from '../calendar-year-picker/CalendarYearPicker.vue'\n\nconst props = withDefaults(defineProps<{\n defaultValue?: DateValue\n defaultPlaceholder?: DateValue\n minValue?: DateValue\n maxValue?: DateValue\n isDateDisabled?: (date: DateValue) => boolean\n isDateUnavailable?: (date: DateValue) => boolean\n locale?: string\n weekdayFormat?: 'narrow' | 'short' | 'long'\n fixedWeeks?: boolean\n numberOfMonths?: number\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6\n pagedNavigation?: boolean\n preventDeselect?: boolean\n readonly?: boolean\n disabled?: boolean\n calendarLabel?: string\n class?: ClassValue\n /** Override classes on any named slot */\n classNames?: Partial<{\n base: ClassValue\n header: ClassValue\n navButton: ClassValue\n navButtonIcon: ClassValue\n heading: ClassValue\n headingButton: ClassValue\n grid: ClassValue\n gridHeader: ClassValue\n gridRow: ClassValue\n headerCell: ClassValue\n gridBody: ClassValue\n cell: ClassValue\n cellButton: ClassValue\n monthGrid: ClassValue\n monthGridBody: ClassValue\n monthGridRow: ClassValue\n monthCell: ClassValue\n }>\n}>(), {\n weekdayFormat: 'narrow',\n fixedWeeks: false,\n numberOfMonths: 1,\n pagedNavigation: false,\n preventDeselect: false,\n readonly: false,\n disabled: false,\n})\n\nconst modelValue = defineModel<DateValue>()\n\nconst slotFns = computed(() => calendarVariants())\n\n// View-switcher state: 'date' (default 7-col calendar), 'month' (3x4 months), 'year' (3x4 years)\ntype View = 'date' | 'month' | 'year'\nconst view = ref<View>('date')\n\n// Shared placeholder synced with CalendarRoot/MonthPickerRoot/YearPickerRoot.\n// NOTE: shallowRef preserves reka-ui's `DateValue` discriminated-union without\n// deep reactive unwrapping that would break structural type matching on bind sites.\nconst placeholder = shallowRef<DateValue>(\n (props.defaultValue ?? props.defaultPlaceholder ?? today(getLocalTimeZone())) as DateValue\n)\n\nfunction cycleView(): void {\n view.value = view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n}\n\nfunction onMonthSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'date'\n}\n\nfunction onYearSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'month'\n}\n\nconst nextViewLabel = computed(() =>\n view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n)\n</script>\n\n<template>\n <CalendarRoot\n v-model=\"modelValue\"\n v-model:placeholder=\"placeholder\"\n :default-value=\"defaultValue\"\n :default-placeholder=\"defaultPlaceholder\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :is-date-disabled=\"isDateDisabled\"\n :is-date-unavailable=\"isDateUnavailable\"\n :locale=\"locale\"\n :weekday-format=\"weekdayFormat\"\n :fixed-weeks=\"fixedWeeks\"\n :number-of-months=\"numberOfMonths\"\n :week-starts-on=\"weekStartsOn\"\n :paged-navigation=\"pagedNavigation\"\n :prevent-deselect=\"preventDeselect\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :calendar-label=\"calendarLabel\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n >\n <template #default=\"{ grid, weekDays }\">\n <template v-if=\"view === 'date'\">\n <CalendarHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <CalendarPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous month\"\n >\n <svg\n :class=\"composeClassName(slotFns.navButtonIcon(), props.classNames?.navButtonIcon)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </CalendarPrev>\n\n <CalendarHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </CalendarHeading>\n\n <CalendarNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next month\"\n >\n <svg\n :class=\"composeClassName(slotFns.navButtonIcon(), props.classNames?.navButtonIcon)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </CalendarNext>\n </CalendarHeader>\n\n <CalendarGrid\n v-for=\"month in grid\"\n :key=\"month.value.toString()\"\n :class=\"composeClassName(slotFns.grid(), props.classNames?.grid)\"\n >\n <CalendarGridHead :class=\"composeClassName(slotFns.gridHeader(), props.classNames?.gridHeader)\">\n <CalendarGridRow :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\">\n <CalendarHeadCell\n v-for=\"day in weekDays\"\n :key=\"day\"\n :class=\"composeClassName(slotFns.headerCell(), props.classNames?.headerCell)\"\n >\n {{ day }}\n </CalendarHeadCell>\n </CalendarGridRow>\n </CalendarGridHead>\n <CalendarGridBody :class=\"composeClassName(slotFns.gridBody(), props.classNames?.gridBody)\">\n <CalendarGridRow\n v-for=\"(week, weekIndex) in month.rows\"\n :key=\"weekIndex\"\n :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\"\n >\n <CalendarCell\n v-for=\"day in week\"\n :key=\"day.toString()\"\n :date=\"day\"\n :class=\"composeClassName(slotFns.cell(), props.classNames?.cell)\"\n >\n <CalendarCellTrigger\n :day=\"day\"\n :month=\"month.value\"\n :class=\"composeClassName(slotFns.cellButton(), props.classNames?.cellButton)\"\n />\n </CalendarCell>\n </CalendarGridRow>\n </CalendarGridBody>\n </CalendarGrid>\n </template>\n </template>\n </CalendarRoot>\n\n <MonthPickerRoot\n v-if=\"view === 'month'\"\n :placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:model-value=\"onMonthSelect\"\n @update:placeholder=\"(val: DateValue | undefined) => { if (val) placeholder = val }\"\n >\n <template #default=\"{ grid: monthGrid }\">\n <MonthPickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <MonthPickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous year\"\n >\n <svg\n :class=\"composeClassName(slotFns.navButtonIcon(), props.classNames?.navButtonIcon)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </MonthPickerPrev>\n\n <MonthPickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </MonthPickerHeading>\n\n <MonthPickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next year\"\n >\n <svg\n :class=\"composeClassName(slotFns.navButtonIcon(), props.classNames?.navButtonIcon)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </MonthPickerNext>\n </MonthPickerHeader>\n\n <MonthPickerGrid :class=\"composeClassName(slotFns.monthGrid(), props.classNames?.monthGrid)\">\n <MonthPickerGridBody :class=\"composeClassName(slotFns.monthGridBody(), props.classNames?.monthGridBody)\">\n <MonthPickerGridRow\n v-for=\"(row, i) in monthGrid.rows\"\n :key=\"i\"\n :class=\"composeClassName(slotFns.monthGridRow(), props.classNames?.monthGridRow)\"\n >\n <MonthPickerCell\n v-for=\"monthValue in row\"\n :key=\"monthValue.toString()\"\n :date=\"monthValue\"\n >\n <MonthPickerCellTrigger\n :month=\"monthValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.monthCell(), props.classNames?.monthCell)\"\n />\n </MonthPickerCell>\n </MonthPickerGridRow>\n </MonthPickerGridBody>\n </MonthPickerGrid>\n </template>\n </MonthPickerRoot>\n\n <CalendarYearPicker\n v-if=\"view === 'year'\"\n v-model:placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :class=\"composeClassName(props.class, props.classNames?.base)\"\n @update:model-value=\"onYearSelect\"\n >\n <template #heading=\"{ headingValue }\">\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </template>\n </CalendarYearPicker>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"Calendar.js","names":[],"sources":["../../../src/components/calendar/Calendar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, shallowRef } from 'vue'\nimport {\n CalendarRoot,\n CalendarHeader,\n CalendarHeading,\n CalendarGrid,\n CalendarGridHead,\n CalendarGridRow,\n CalendarHeadCell,\n CalendarGridBody,\n CalendarCell,\n CalendarCellTrigger,\n CalendarNext,\n CalendarPrev,\n MonthPickerRoot,\n MonthPickerHeader,\n MonthPickerHeading,\n MonthPickerPrev,\n MonthPickerNext,\n MonthPickerGrid,\n MonthPickerGridBody,\n MonthPickerGridRow,\n MonthPickerCell,\n MonthPickerCellTrigger,\n} from 'reka-ui'\nimport { today, getLocalTimeZone, type DateValue } from '@internationalized/date'\nimport { calendarVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport CalendarYearPicker from '../calendar-year-picker/CalendarYearPicker.vue'\n\nconst props = withDefaults(defineProps<{\n defaultValue?: DateValue\n defaultPlaceholder?: DateValue\n minValue?: DateValue\n maxValue?: DateValue\n isDateDisabled?: (date: DateValue) => boolean\n isDateUnavailable?: (date: DateValue) => boolean\n locale?: string\n weekdayFormat?: 'narrow' | 'short' | 'long'\n fixedWeeks?: boolean\n numberOfMonths?: number\n weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6\n pagedNavigation?: boolean\n preventDeselect?: boolean\n readonly?: boolean\n disabled?: boolean\n calendarLabel?: string\n /** Initial focus state. */\n initialFocus?: boolean\n /** Text direction. */\n dir?: 'ltr' | 'rtl'\n /** Navigate to next page. */\n nextPage?: (placeholder: DateValue) => DateValue\n /** Navigate to previous page. */\n prevPage?: (placeholder: DateValue) => DateValue\n /** Allow multiple date selections. */\n multiple?: boolean\n /** Disable days outside the current view. */\n disableDaysOutsideCurrentView?: boolean\n /** Render as a different element or component. */\n as?: string\n /** Render child as root element. */\n asChild?: boolean\n /** MonthPicker: disable specific months. */\n isMonthDisabled?: (date: DateValue) => boolean\n /** MonthPicker: mark specific months as unavailable. */\n isMonthUnavailable?: (date: DateValue) => boolean\n class?: ClassValue\n /** Override classes on any named slot */\n classNames?: Partial<{\n base: ClassValue\n header: ClassValue\n navButton: ClassValue\n navButtonIcon: ClassValue\n heading: ClassValue\n headingButton: ClassValue\n grid: ClassValue\n gridHeader: ClassValue\n gridRow: ClassValue\n headerCell: ClassValue\n gridBody: ClassValue\n cell: ClassValue\n cellButton: ClassValue\n monthGrid: ClassValue\n monthGridBody: ClassValue\n monthGridRow: ClassValue\n monthCell: ClassValue\n }>\n}>(), {\n weekdayFormat: 'narrow',\n fixedWeeks: false,\n numberOfMonths: 1,\n pagedNavigation: false,\n preventDeselect: false,\n readonly: false,\n disabled: false,\n})\n\nconst modelValue = defineModel<DateValue>()\n\nconst slotFns = computed(() => calendarVariants())\n\n// View-switcher state: 'date' (default 7-col calendar), 'month' (3x4 months), 'year' (3x4 years)\ntype View = 'date' | 'month' | 'year'\nconst view = ref<View>('date')\n\n// Shared placeholder synced with CalendarRoot/MonthPickerRoot/YearPickerRoot.\n// NOTE: shallowRef preserves reka-ui's `DateValue` discriminated-union without\n// deep reactive unwrapping that would break structural type matching on bind sites.\nconst placeholder = shallowRef<DateValue>(\n (props.defaultValue ?? props.defaultPlaceholder ?? today(getLocalTimeZone())) as DateValue\n)\n\nfunction cycleView(): void {\n view.value = view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n}\n\nfunction onMonthSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'date'\n}\n\nfunction onYearSelect(val: DateValue | DateValue[] | undefined): void {\n if (!val) return\n const next = Array.isArray(val) ? val[val.length - 1] : val\n if (!next) return\n placeholder.value = next\n view.value = 'month'\n}\n\nconst nextViewLabel = computed(() =>\n view.value === 'date' ? 'month' : view.value === 'month' ? 'year' : 'date'\n)\n</script>\n\n<template>\n <CalendarRoot\n v-model=\"modelValue\"\n v-model:placeholder=\"placeholder\"\n :default-value=\"defaultValue\"\n :default-placeholder=\"defaultPlaceholder\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :is-date-disabled=\"isDateDisabled\"\n :is-date-unavailable=\"isDateUnavailable\"\n :locale=\"locale\"\n :weekday-format=\"weekdayFormat\"\n :fixed-weeks=\"fixedWeeks\"\n :number-of-months=\"numberOfMonths\"\n :week-starts-on=\"weekStartsOn\"\n :paged-navigation=\"pagedNavigation\"\n :prevent-deselect=\"preventDeselect\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :calendar-label=\"calendarLabel\"\n :initial-focus=\"initialFocus\"\n :dir=\"dir\"\n :next-page=\"nextPage\"\n :prev-page=\"prevPage\"\n :multiple=\"multiple\"\n :disable-days-outside-current-view=\"disableDaysOutsideCurrentView\"\n :as=\"as\"\n :as-child=\"asChild\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n >\n <template #default=\"{ grid, weekDays }\">\n <template v-if=\"view === 'date'\">\n <CalendarHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <CalendarPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous month\"\n >\n <svg\n :class=\"composeClassName(slotFns.navButtonIcon(), props.classNames?.navButtonIcon)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </CalendarPrev>\n\n <CalendarHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </CalendarHeading>\n\n <CalendarNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next month\"\n >\n <svg\n :class=\"composeClassName(slotFns.navButtonIcon(), props.classNames?.navButtonIcon)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </CalendarNext>\n </CalendarHeader>\n\n <CalendarGrid\n v-for=\"month in grid\"\n :key=\"month.value.toString()\"\n :class=\"composeClassName(slotFns.grid(), props.classNames?.grid)\"\n >\n <CalendarGridHead :class=\"composeClassName(slotFns.gridHeader(), props.classNames?.gridHeader)\">\n <CalendarGridRow :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\">\n <CalendarHeadCell\n v-for=\"day in weekDays\"\n :key=\"day\"\n :class=\"composeClassName(slotFns.headerCell(), props.classNames?.headerCell)\"\n >\n {{ day }}\n </CalendarHeadCell>\n </CalendarGridRow>\n </CalendarGridHead>\n <CalendarGridBody :class=\"composeClassName(slotFns.gridBody(), props.classNames?.gridBody)\">\n <CalendarGridRow\n v-for=\"(week, weekIndex) in month.rows\"\n :key=\"weekIndex\"\n :class=\"composeClassName(slotFns.gridRow(), props.classNames?.gridRow)\"\n >\n <CalendarCell\n v-for=\"day in week\"\n :key=\"day.toString()\"\n :date=\"day\"\n :class=\"composeClassName(slotFns.cell(), props.classNames?.cell)\"\n >\n <CalendarCellTrigger\n :day=\"day\"\n :month=\"month.value\"\n :class=\"composeClassName(slotFns.cellButton(), props.classNames?.cellButton)\"\n />\n </CalendarCell>\n </CalendarGridRow>\n </CalendarGridBody>\n </CalendarGrid>\n </template>\n </template>\n </CalendarRoot>\n\n <MonthPickerRoot\n v-if=\"view === 'month'\"\n :placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :initial-focus=\"initialFocus\"\n :dir=\"dir\"\n :next-page=\"nextPage\"\n :prev-page=\"prevPage\"\n :multiple=\"multiple\"\n :is-month-disabled=\"isMonthDisabled\"\n :is-month-unavailable=\"isMonthUnavailable\"\n :as=\"as\"\n :as-child=\"asChild\"\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n @update:model-value=\"onMonthSelect\"\n @update:placeholder=\"(val: DateValue | undefined) => { if (val) placeholder = val }\"\n >\n <template #default=\"{ grid: monthGrid }\">\n <MonthPickerHeader :class=\"composeClassName(slotFns.header(), props.classNames?.header)\">\n <MonthPickerPrev\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Previous year\"\n >\n <svg\n :class=\"composeClassName(slotFns.navButtonIcon(), props.classNames?.navButtonIcon)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </MonthPickerPrev>\n\n <MonthPickerHeading\n v-slot=\"{ headingValue }\"\n :class=\"composeClassName(slotFns.heading(), props.classNames?.heading)\"\n >\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </MonthPickerHeading>\n\n <MonthPickerNext\n :class=\"composeClassName(slotFns.navButton(), props.classNames?.navButton)\"\n aria-label=\"Next year\"\n >\n <svg\n :class=\"composeClassName(slotFns.navButtonIcon(), props.classNames?.navButtonIcon)\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </MonthPickerNext>\n </MonthPickerHeader>\n\n <MonthPickerGrid :class=\"composeClassName(slotFns.monthGrid(), props.classNames?.monthGrid)\">\n <MonthPickerGridBody :class=\"composeClassName(slotFns.monthGridBody(), props.classNames?.monthGridBody)\">\n <MonthPickerGridRow\n v-for=\"(row, i) in monthGrid.rows\"\n :key=\"i\"\n :class=\"composeClassName(slotFns.monthGridRow(), props.classNames?.monthGridRow)\"\n >\n <MonthPickerCell\n v-for=\"monthValue in row\"\n :key=\"monthValue.toString()\"\n :date=\"monthValue\"\n >\n <MonthPickerCellTrigger\n :month=\"monthValue\"\n as=\"button\"\n :class=\"composeClassName(slotFns.monthCell(), props.classNames?.monthCell)\"\n />\n </MonthPickerCell>\n </MonthPickerGridRow>\n </MonthPickerGridBody>\n </MonthPickerGrid>\n </template>\n </MonthPickerRoot>\n\n <CalendarYearPicker\n v-if=\"view === 'year'\"\n v-model:placeholder=\"placeholder\"\n :locale=\"locale\"\n :min-value=\"minValue\"\n :max-value=\"maxValue\"\n :readonly=\"readonly\"\n :disabled=\"disabled\"\n :class=\"composeClassName(props.class, props.classNames?.base)\"\n @update:model-value=\"onYearSelect\"\n >\n <template #heading=\"{ headingValue }\">\n <button\n type=\"button\"\n :class=\"composeClassName(slotFns.headingButton(), props.classNames?.headingButton)\"\n :aria-label=\"`Switch to ${nextViewLabel} view`\"\n @click=\"cycleView\"\n >\n {{ headingValue }}\n </button>\n </template>\n </CalendarYearPicker>\n</template>\n"],"mappings":""}
@@ -42,6 +42,16 @@ var Calendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
42
42
  default: false
43
43
  },
44
44
  calendarLabel: {},
45
+ initialFocus: { type: Boolean },
46
+ dir: {},
47
+ nextPage: {},
48
+ prevPage: {},
49
+ multiple: { type: Boolean },
50
+ disableDaysOutsideCurrentView: { type: Boolean },
51
+ as: {},
52
+ asChild: { type: Boolean },
53
+ isMonthDisabled: {},
54
+ isMonthUnavailable: {},
45
55
  class: { type: [
46
56
  String,
47
57
  Boolean,
@@ -102,6 +112,14 @@ var Calendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
102
112
  readonly: __props.readonly,
103
113
  disabled: __props.disabled,
104
114
  "calendar-label": __props.calendarLabel,
115
+ "initial-focus": __props.initialFocus,
116
+ dir: __props.dir,
117
+ "next-page": __props.nextPage,
118
+ "prev-page": __props.prevPage,
119
+ multiple: __props.multiple,
120
+ "disable-days-outside-current-view": __props.disableDaysOutsideCurrentView,
121
+ as: __props.as,
122
+ "as-child": __props.asChild,
105
123
  class: normalizeClass(unref(composeClassName)(slotFns.value.base(), props.class, props.classNames?.base))
106
124
  }, {
107
125
  default: withCtx(({ grid, weekDays }) => [view.value === "date" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [createVNode(unref(CalendarHeader), { class: normalizeClass(unref(composeClassName)(slotFns.value.header(), props.classNames?.header)) }, {
@@ -226,6 +244,14 @@ var Calendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
226
244
  "readonly",
227
245
  "disabled",
228
246
  "calendar-label",
247
+ "initial-focus",
248
+ "dir",
249
+ "next-page",
250
+ "prev-page",
251
+ "multiple",
252
+ "disable-days-outside-current-view",
253
+ "as",
254
+ "as-child",
229
255
  "class"
230
256
  ]),
231
257
  view.value === "month" ? (openBlock(), createBlock(unref(MonthPickerRoot), {
@@ -236,6 +262,15 @@ var Calendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
236
262
  "max-value": __props.maxValue,
237
263
  readonly: __props.readonly,
238
264
  disabled: __props.disabled,
265
+ "initial-focus": __props.initialFocus,
266
+ dir: __props.dir,
267
+ "next-page": __props.nextPage,
268
+ "prev-page": __props.prevPage,
269
+ multiple: __props.multiple,
270
+ "is-month-disabled": __props.isMonthDisabled,
271
+ "is-month-unavailable": __props.isMonthUnavailable,
272
+ as: __props.as,
273
+ "as-child": __props.asChild,
239
274
  class: normalizeClass(unref(composeClassName)(slotFns.value.base(), props.class, props.classNames?.base)),
240
275
  "onUpdate:modelValue": onMonthSelect,
241
276
  "onUpdate:placeholder": _cache[2] || (_cache[2] = (val) => {
@@ -328,6 +363,15 @@ var Calendar_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
328
363
  "max-value",
329
364
  "readonly",
330
365
  "disabled",
366
+ "initial-focus",
367
+ "dir",
368
+ "next-page",
369
+ "prev-page",
370
+ "multiple",
371
+ "is-month-disabled",
372
+ "is-month-unavailable",
373
+ "as",
374
+ "as-child",
331
375
  "class"
332
376
  ])) : createCommentVNode("", true),
333
377
  view.value === "year" ? (openBlock(), createBlock(CalendarYearPicker_default, {