@auronui/vue 1.0.21 → 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 (352) hide show
  1. package/dist/cjs/index.cjs +3680 -406
  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 +8 -2
  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 +8 -2
  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/ToggleButton.js.map +1 -1
  61. package/dist/components/button/ToggleButton.vue_vue_type_script_setup_true_lang.js +16 -2
  62. package/dist/components/button/ToggleButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  63. package/dist/components/calendar/Calendar.js.map +1 -1
  64. package/dist/components/calendar/Calendar.vue_vue_type_script_setup_true_lang.js +44 -0
  65. package/dist/components/calendar/Calendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  66. package/dist/components/calendar-year-picker/CalendarYearPicker.js.map +1 -1
  67. package/dist/components/calendar-year-picker/CalendarYearPicker.vue_vue_type_script_setup_true_lang.js +21 -0
  68. package/dist/components/calendar-year-picker/CalendarYearPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  69. package/dist/components/checkbox/Checkbox.js.map +1 -1
  70. package/dist/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js +60 -3
  71. package/dist/components/checkbox/Checkbox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  72. package/dist/components/collapsible/Collapsible.js.map +1 -1
  73. package/dist/components/collapsible/Collapsible.vue_vue_type_script_setup_true_lang.js +9 -0
  74. package/dist/components/collapsible/Collapsible.vue_vue_type_script_setup_true_lang.js.map +1 -1
  75. package/dist/components/collapsible/CollapsibleContent.js.map +1 -1
  76. package/dist/components/collapsible/CollapsibleContent.vue_vue_type_script_setup_true_lang.js +15 -4
  77. package/dist/components/collapsible/CollapsibleContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  78. package/dist/components/collapsible/CollapsibleTrigger.js.map +1 -1
  79. package/dist/components/collapsible/CollapsibleTrigger.vue_vue_type_script_setup_true_lang.js +13 -3
  80. package/dist/components/collapsible/CollapsibleTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  81. package/dist/components/color-area/ColorArea.js.map +1 -1
  82. package/dist/components/color-area/ColorArea.vue_vue_type_script_setup_true_lang.js +34 -3
  83. package/dist/components/color-area/ColorArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  84. package/dist/components/color-field/ColorField.js.map +1 -1
  85. package/dist/components/color-field/ColorField.vue_vue_type_script_setup_true_lang.js +39 -2
  86. package/dist/components/color-field/ColorField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  87. package/dist/components/color-input-group/ColorInputGroup.js.map +1 -1
  88. package/dist/components/color-input-group/ColorInputGroup.vue_vue_type_script_setup_true_lang.js +39 -2
  89. package/dist/components/color-input-group/ColorInputGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  90. package/dist/components/color-slider/ColorSlider.js.map +1 -1
  91. package/dist/components/color-slider/ColorSlider.vue_vue_type_script_setup_true_lang.js +40 -3
  92. package/dist/components/color-slider/ColorSlider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  93. package/dist/components/color-swatch/ColorSwatch.js.map +1 -1
  94. package/dist/components/color-swatch/ColorSwatch.vue_vue_type_script_setup_true_lang.js +9 -2
  95. package/dist/components/color-swatch/ColorSwatch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  96. package/dist/components/color-swatch-picker/ColorSwatchPicker.js.map +1 -1
  97. package/dist/components/color-swatch-picker/ColorSwatchPicker.vue_vue_type_script_setup_true_lang.js +60 -4
  98. package/dist/components/color-swatch-picker/ColorSwatchPicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  99. package/dist/components/combo-box/ComboBox.js.map +1 -1
  100. package/dist/components/combo-box/ComboBox.vue_vue_type_script_setup_true_lang.js +74 -3
  101. package/dist/components/combo-box/ComboBox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  102. package/dist/components/combo-box/ComboBoxContent.js.map +1 -1
  103. package/dist/components/combo-box/ComboBoxContent.vue_vue_type_script_setup_true_lang.js +168 -10
  104. package/dist/components/combo-box/ComboBoxContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  105. package/dist/components/combo-box/ComboBoxEmpty.js.map +1 -1
  106. package/dist/components/combo-box/ComboBoxEmpty.vue_vue_type_script_setup_true_lang.js +11 -1
  107. package/dist/components/combo-box/ComboBoxEmpty.vue_vue_type_script_setup_true_lang.js.map +1 -1
  108. package/dist/components/combo-box/ComboBoxInput.js.map +1 -1
  109. package/dist/components/combo-box/ComboBoxInput.vue_vue_type_script_setup_true_lang.js +78 -11
  110. package/dist/components/combo-box/ComboBoxInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  111. package/dist/components/combo-box/ComboBoxItem.js.map +1 -1
  112. package/dist/components/combo-box/ComboBoxItem.vue_vue_type_script_setup_true_lang.js +31 -7
  113. package/dist/components/combo-box/ComboBoxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  114. package/dist/components/date-input/DateInput.js.map +1 -1
  115. package/dist/components/date-input/DateInput.vue_vue_type_script_setup_true_lang.js +30 -3
  116. package/dist/components/date-input/DateInput.vue_vue_type_script_setup_true_lang.js.map +1 -1
  117. package/dist/components/date-picker/DatePicker.js.map +1 -1
  118. package/dist/components/date-picker/DatePicker.vue_vue_type_script_setup_true_lang.js +140 -10
  119. package/dist/components/date-picker/DatePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  120. package/dist/components/date-range-field/DateRangeField.js.map +1 -1
  121. package/dist/components/date-range-field/DateRangeField.vue_vue_type_script_setup_true_lang.js +24 -3
  122. package/dist/components/date-range-field/DateRangeField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  123. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  124. package/dist/components/date-range-picker/DateRangePicker.vue_vue_type_script_setup_true_lang.js +146 -9
  125. package/dist/components/date-range-picker/DateRangePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  126. package/dist/components/date-time-picker/DateTimePicker.js.map +1 -1
  127. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js +143 -11
  128. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  129. package/dist/components/drawer/DrawerClose.js.map +1 -1
  130. package/dist/components/drawer/DrawerClose.vue_vue_type_script_setup_true_lang.js +13 -3
  131. package/dist/components/drawer/DrawerClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  132. package/dist/components/drawer/DrawerContent.js.map +1 -1
  133. package/dist/components/drawer/DrawerContent.vue_vue_type_script_setup_true_lang.js +68 -8
  134. package/dist/components/drawer/DrawerContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  135. package/dist/components/drawer/DrawerOverlay.js.map +1 -1
  136. package/dist/components/drawer/DrawerOverlay.vue_vue_type_script_setup_true_lang.js +25 -1
  137. package/dist/components/drawer/DrawerOverlay.vue_vue_type_script_setup_true_lang.js.map +1 -1
  138. package/dist/components/drawer/DrawerTitle.js.map +1 -1
  139. package/dist/components/drawer/DrawerTitle.vue_vue_type_script_setup_true_lang.js +27 -3
  140. package/dist/components/drawer/DrawerTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  141. package/dist/components/drawer/DrawerTrigger.js.map +1 -1
  142. package/dist/components/drawer/DrawerTrigger.vue_vue_type_script_setup_true_lang.js +11 -7
  143. package/dist/components/drawer/DrawerTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  144. package/dist/components/dropdown/Dropdown.js.map +1 -1
  145. package/dist/components/dropdown/Dropdown.vue_vue_type_script_setup_true_lang.js +15 -5
  146. package/dist/components/dropdown/Dropdown.vue_vue_type_script_setup_true_lang.js.map +1 -1
  147. package/dist/components/dropdown/DropdownCheckboxItem.js.map +1 -1
  148. package/dist/components/dropdown/DropdownCheckboxItem.vue_vue_type_script_setup_true_lang.js +29 -7
  149. package/dist/components/dropdown/DropdownCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  150. package/dist/components/dropdown/DropdownItem.js.map +1 -1
  151. package/dist/components/dropdown/DropdownItem.vue_vue_type_script_setup_true_lang.js +15 -2
  152. package/dist/components/dropdown/DropdownItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  153. package/dist/components/dropdown/DropdownMenu.js.map +1 -1
  154. package/dist/components/dropdown/DropdownMenu.vue_vue_type_script_setup_true_lang.js +121 -5
  155. package/dist/components/dropdown/DropdownMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  156. package/dist/components/dropdown/DropdownRadioGroup.js.map +1 -1
  157. package/dist/components/dropdown/DropdownRadioGroup.vue_vue_type_script_setup_true_lang.js +17 -4
  158. package/dist/components/dropdown/DropdownRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  159. package/dist/components/dropdown/DropdownRadioItem.js.map +1 -1
  160. package/dist/components/dropdown/DropdownRadioItem.vue_vue_type_script_setup_true_lang.js +21 -5
  161. package/dist/components/dropdown/DropdownRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  162. package/dist/components/dropdown/DropdownSection.js.map +1 -1
  163. package/dist/components/dropdown/DropdownSection.vue_vue_type_script_setup_true_lang.js +16 -3
  164. package/dist/components/dropdown/DropdownSection.vue_vue_type_script_setup_true_lang.js.map +1 -1
  165. package/dist/components/dropdown/DropdownSubContent.js.map +1 -1
  166. package/dist/components/dropdown/DropdownSubContent.vue_vue_type_script_setup_true_lang.js +125 -5
  167. package/dist/components/dropdown/DropdownSubContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  168. package/dist/components/dropdown/DropdownSubTrigger.js.map +1 -1
  169. package/dist/components/dropdown/DropdownSubTrigger.vue_vue_type_script_setup_true_lang.js +15 -2
  170. package/dist/components/dropdown/DropdownSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  171. package/dist/components/dropdown/DropdownTrigger.js.map +1 -1
  172. package/dist/components/dropdown/DropdownTrigger.vue_vue_type_script_setup_true_lang.js +22 -2
  173. package/dist/components/dropdown/DropdownTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  174. package/dist/components/input-otp/InputOTP.js.map +1 -1
  175. package/dist/components/input-otp/InputOTP.vue_vue_type_script_setup_true_lang.js +34 -1
  176. package/dist/components/input-otp/InputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -1
  177. package/dist/components/list-box/ListBox.js.map +1 -1
  178. package/dist/components/list-box/ListBox.vue_vue_type_script_setup_true_lang.js +67 -8
  179. package/dist/components/list-box/ListBox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  180. package/dist/components/list-box/ListBoxItem.js.map +1 -1
  181. package/dist/components/list-box/ListBoxItem.vue_vue_type_script_setup_true_lang.js +36 -7
  182. package/dist/components/list-box/ListBoxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  183. package/dist/components/list-box/ListBoxSection.js.map +1 -1
  184. package/dist/components/list-box/ListBoxSection.vue_vue_type_script_setup_true_lang.js +31 -4
  185. package/dist/components/list-box/ListBoxSection.vue_vue_type_script_setup_true_lang.js.map +1 -1
  186. package/dist/components/modal/ModalClose.js.map +1 -1
  187. package/dist/components/modal/ModalClose.vue_vue_type_script_setup_true_lang.js +7 -1
  188. package/dist/components/modal/ModalClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  189. package/dist/components/modal/ModalContent.js.map +1 -1
  190. package/dist/components/modal/ModalContent.vue_vue_type_script_setup_true_lang.js +49 -5
  191. package/dist/components/modal/ModalContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  192. package/dist/components/modal/ModalDescription.js.map +1 -1
  193. package/dist/components/modal/ModalDescription.vue_vue_type_script_setup_true_lang.js +10 -1
  194. package/dist/components/modal/ModalDescription.vue_vue_type_script_setup_true_lang.js.map +1 -1
  195. package/dist/components/modal/ModalOverlay.js.map +1 -1
  196. package/dist/components/modal/ModalOverlay.vue_vue_type_script_setup_true_lang.js +23 -2
  197. package/dist/components/modal/ModalOverlay.vue_vue_type_script_setup_true_lang.js.map +1 -1
  198. package/dist/components/modal/ModalTitle.js.map +1 -1
  199. package/dist/components/modal/ModalTitle.vue_vue_type_script_setup_true_lang.js +10 -1
  200. package/dist/components/modal/ModalTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  201. package/dist/components/modal/ModalTrigger.js.map +1 -1
  202. package/dist/components/modal/ModalTrigger.vue_vue_type_script_setup_true_lang.js +12 -6
  203. package/dist/components/modal/ModalTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  204. package/dist/components/number-field/NumberField.js.map +1 -1
  205. package/dist/components/number-field/NumberField.vue_vue_type_script_setup_true_lang.js +24 -4
  206. package/dist/components/number-field/NumberField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  207. package/dist/components/pagination/Pagination.js.map +1 -1
  208. package/dist/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js +7 -1
  209. package/dist/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  210. package/dist/components/pagination/PaginationContent.js.map +1 -1
  211. package/dist/components/pagination/PaginationContent.vue_vue_type_script_setup_true_lang.js +12 -2
  212. package/dist/components/pagination/PaginationContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  213. package/dist/components/pagination/PaginationEllipsis.js.map +1 -1
  214. package/dist/components/pagination/PaginationEllipsis.vue_vue_type_script_setup_true_lang.js +12 -2
  215. package/dist/components/pagination/PaginationEllipsis.vue_vue_type_script_setup_true_lang.js.map +1 -1
  216. package/dist/components/pagination/PaginationFirst.js.map +1 -1
  217. package/dist/components/pagination/PaginationFirst.vue_vue_type_script_setup_true_lang.js +9 -1
  218. package/dist/components/pagination/PaginationFirst.vue_vue_type_script_setup_true_lang.js.map +1 -1
  219. package/dist/components/pagination/PaginationItem.js.map +1 -1
  220. package/dist/components/pagination/PaginationItem.vue_vue_type_script_setup_true_lang.js +11 -2
  221. package/dist/components/pagination/PaginationItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  222. package/dist/components/pagination/PaginationLast.js.map +1 -1
  223. package/dist/components/pagination/PaginationLast.vue_vue_type_script_setup_true_lang.js +9 -1
  224. package/dist/components/pagination/PaginationLast.vue_vue_type_script_setup_true_lang.js.map +1 -1
  225. package/dist/components/pagination/PaginationNext.js.map +1 -1
  226. package/dist/components/pagination/PaginationNext.vue_vue_type_script_setup_true_lang.js +9 -1
  227. package/dist/components/pagination/PaginationNext.vue_vue_type_script_setup_true_lang.js.map +1 -1
  228. package/dist/components/pagination/PaginationPrev.js.map +1 -1
  229. package/dist/components/pagination/PaginationPrev.vue_vue_type_script_setup_true_lang.js +9 -1
  230. package/dist/components/pagination/PaginationPrev.vue_vue_type_script_setup_true_lang.js.map +1 -1
  231. package/dist/components/popover/PopoverContent.js.map +1 -1
  232. package/dist/components/popover/PopoverContent.vue_vue_type_script_setup_true_lang.js +6 -2
  233. package/dist/components/popover/PopoverContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  234. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  235. package/dist/components/progress-bar/ProgressBar.vue_vue_type_script_setup_true_lang.js +37 -5
  236. package/dist/components/progress-bar/ProgressBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  237. package/dist/components/progress-circle/ProgressCircle.js.map +1 -1
  238. package/dist/components/progress-circle/ProgressCircle.vue_vue_type_script_setup_true_lang.js +21 -0
  239. package/dist/components/progress-circle/ProgressCircle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  240. package/dist/components/radio/Radio.js.map +1 -1
  241. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js +46 -3
  242. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  243. package/dist/components/radio/RadioGroup.js.map +1 -1
  244. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js +24 -0
  245. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  246. package/dist/components/range-calendar/RangeCalendar.js.map +1 -1
  247. package/dist/components/range-calendar/RangeCalendar.vue_vue_type_script_setup_true_lang.js +44 -11
  248. package/dist/components/range-calendar/RangeCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  249. package/dist/components/scroll-area/ScrollArea.js.map +1 -1
  250. package/dist/components/scroll-area/ScrollArea.vue_vue_type_script_setup_true_lang.js +61 -8
  251. package/dist/components/scroll-area/ScrollArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  252. package/dist/components/select/Select.js.map +1 -1
  253. package/dist/components/select/Select.vue_vue_type_script_setup_true_lang.js +12 -0
  254. package/dist/components/select/Select.vue_vue_type_script_setup_true_lang.js.map +1 -1
  255. package/dist/components/select/SelectContent.js.map +1 -1
  256. package/dist/components/select/SelectContent.vue_vue_type_script_setup_true_lang.js +140 -8
  257. package/dist/components/select/SelectContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  258. package/dist/components/select/SelectItem.js.map +1 -1
  259. package/dist/components/select/SelectItem.vue_vue_type_script_setup_true_lang.js +22 -6
  260. package/dist/components/select/SelectItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  261. package/dist/components/select/SelectTrigger.js.map +1 -1
  262. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js +23 -2
  263. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  264. package/dist/components/select/SelectValue.js.map +1 -1
  265. package/dist/components/select/SelectValue.vue_vue_type_script_setup_true_lang.js +14 -2
  266. package/dist/components/select/SelectValue.vue_vue_type_script_setup_true_lang.js.map +1 -1
  267. package/dist/components/slider/Slider.js.map +1 -1
  268. package/dist/components/slider/Slider.vue_vue_type_script_setup_true_lang.js +69 -6
  269. package/dist/components/slider/Slider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  270. package/dist/components/splitter/SplitterGroup.js.map +1 -1
  271. package/dist/components/splitter/SplitterGroup.vue_vue_type_script_setup_true_lang.js +18 -3
  272. package/dist/components/splitter/SplitterGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  273. package/dist/components/splitter/SplitterPanel.js.map +1 -1
  274. package/dist/components/splitter/SplitterPanel.vue_vue_type_script_setup_true_lang.js +20 -5
  275. package/dist/components/splitter/SplitterPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  276. package/dist/components/splitter/SplitterResizeHandle.js.map +1 -1
  277. package/dist/components/splitter/SplitterResizeHandle.vue_vue_type_script_setup_true_lang.js +16 -1
  278. package/dist/components/splitter/SplitterResizeHandle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  279. package/dist/components/switch/Switch.js.map +1 -1
  280. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js +53 -2
  281. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  282. package/dist/components/tabs/Tab.js.map +1 -1
  283. package/dist/components/tabs/Tab.vue_vue_type_script_setup_true_lang.js +7 -1
  284. package/dist/components/tabs/Tab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  285. package/dist/components/tabs/TabIndicator.js.map +1 -1
  286. package/dist/components/tabs/TabIndicator.vue_vue_type_script_setup_true_lang.js +12 -2
  287. package/dist/components/tabs/TabIndicator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  288. package/dist/components/tabs/TabList.js.map +1 -1
  289. package/dist/components/tabs/TabList.vue_vue_type_script_setup_true_lang.js +27 -4
  290. package/dist/components/tabs/TabList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  291. package/dist/components/tabs/TabPanel.js.map +1 -1
  292. package/dist/components/tabs/TabPanel.vue_vue_type_script_setup_true_lang.js +7 -1
  293. package/dist/components/tabs/TabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  294. package/dist/components/tabs/Tabs.js.map +1 -1
  295. package/dist/components/tabs/Tabs.vue_vue_type_script_setup_true_lang.js +13 -1
  296. package/dist/components/tabs/Tabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  297. package/dist/components/time-field/TimeField.js.map +1 -1
  298. package/dist/components/time-field/TimeField.vue_vue_type_script_setup_true_lang.js +22 -1
  299. package/dist/components/time-field/TimeField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  300. package/dist/components/toast/Toast.js.map +1 -1
  301. package/dist/components/toast/Toast.vue_vue_type_script_setup_true_lang.js +39 -4
  302. package/dist/components/toast/Toast.vue_vue_type_script_setup_true_lang.js.map +1 -1
  303. package/dist/components/toast/ToastAction.js.map +1 -1
  304. package/dist/components/toast/ToastAction.vue_vue_type_script_setup_true_lang.js +3 -1
  305. package/dist/components/toast/ToastAction.vue_vue_type_script_setup_true_lang.js.map +1 -1
  306. package/dist/components/toast/ToastClose.js.map +1 -1
  307. package/dist/components/toast/ToastClose.vue_vue_type_script_setup_true_lang.js +3 -1
  308. package/dist/components/toast/ToastClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  309. package/dist/components/toast/ToastDescription.js.map +1 -1
  310. package/dist/components/toast/ToastDescription.vue_vue_type_script_setup_true_lang.js +15 -3
  311. package/dist/components/toast/ToastDescription.vue_vue_type_script_setup_true_lang.js.map +1 -1
  312. package/dist/components/toast/ToastTitle.js.map +1 -1
  313. package/dist/components/toast/ToastTitle.vue_vue_type_script_setup_true_lang.js +15 -3
  314. package/dist/components/toast/ToastTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  315. package/dist/components/toast/ToastViewport.js.map +1 -1
  316. package/dist/components/toast/ToastViewport.vue_vue_type_script_setup_true_lang.js +22 -3
  317. package/dist/components/toast/ToastViewport.vue_vue_type_script_setup_true_lang.js.map +1 -1
  318. package/dist/components/toolbar/Toolbar.js.map +1 -1
  319. package/dist/components/toolbar/Toolbar.vue_vue_type_script_setup_true_lang.js +10 -1
  320. package/dist/components/toolbar/Toolbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  321. package/dist/components/toolbar/ToolbarButton.js.map +1 -1
  322. package/dist/components/toolbar/ToolbarButton.vue_vue_type_script_setup_true_lang.js +11 -2
  323. package/dist/components/toolbar/ToolbarButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  324. package/dist/components/toolbar/ToolbarLink.js.map +1 -1
  325. package/dist/components/toolbar/ToolbarLink.vue_vue_type_script_setup_true_lang.js +11 -2
  326. package/dist/components/toolbar/ToolbarLink.vue_vue_type_script_setup_true_lang.js.map +1 -1
  327. package/dist/components/toolbar/ToolbarSeparator.js.map +1 -1
  328. package/dist/components/toolbar/ToolbarSeparator.vue_vue_type_script_setup_true_lang.js +14 -2
  329. package/dist/components/toolbar/ToolbarSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  330. package/dist/components/toolbar/ToolbarToggleGroup.js.map +1 -1
  331. package/dist/components/toolbar/ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js +22 -1
  332. package/dist/components/toolbar/ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  333. package/dist/components/toolbar/ToolbarToggleItem.js.map +1 -1
  334. package/dist/components/toolbar/ToolbarToggleItem.vue_vue_type_script_setup_true_lang.js +7 -1
  335. package/dist/components/toolbar/ToolbarToggleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  336. package/dist/components/tooltip/Tooltip.js.map +1 -1
  337. package/dist/components/tooltip/Tooltip.vue_vue_type_script_lang.js +20 -0
  338. package/dist/components/tooltip/Tooltip.vue_vue_type_script_lang.js.map +1 -1
  339. package/dist/components/tooltip/TooltipContent.js.map +1 -1
  340. package/dist/components/tooltip/TooltipContent.vue_vue_type_script_setup_true_lang.js +7 -2
  341. package/dist/components/tooltip/TooltipContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  342. package/dist/components/tooltip/TooltipProvider.js.map +1 -1
  343. package/dist/components/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js +24 -3
  344. package/dist/components/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  345. package/dist/components/tree/Tree.js.map +1 -1
  346. package/dist/components/tree/Tree.vue_vue_type_script_setup_true_lang.js +16 -1
  347. package/dist/components/tree/Tree.vue_vue_type_script_setup_true_lang.js.map +1 -1
  348. package/dist/components/tree/TreeItem.js.map +1 -1
  349. package/dist/components/tree/TreeItem.vue_vue_type_script_setup_true_lang.js +7 -1
  350. package/dist/components/tree/TreeItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  351. package/dist/index.d.ts +2276 -364
  352. package/package.json +2 -2
@@ -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":"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, {
@@ -1 +1 @@
1
- {"version":3,"file":"Calendar.vue_vue_type_script_setup_true_lang.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":"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"}
1
+ {"version":3,"file":"Calendar.vue_vue_type_script_setup_true_lang.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":"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"}