@auronui/vue 1.0.21 → 1.0.23

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 (356) hide show
  1. package/dist/cjs/index.cjs +4046 -745
  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 +201 -149
  128. package/dist/components/date-time-picker/DateTimePicker.vue_vue_type_script_setup_true_lang.js.map +1 -1
  129. package/dist/components/date-time-picker/DateTimePickerTimeScroller.js.map +1 -1
  130. package/dist/components/date-time-picker/DateTimePickerTimeScroller.vue_vue_type_script_setup_true_lang.js +49 -54
  131. package/dist/components/date-time-picker/DateTimePickerTimeScroller.vue_vue_type_script_setup_true_lang.js.map +1 -1
  132. package/dist/components/drawer/DrawerClose.js.map +1 -1
  133. package/dist/components/drawer/DrawerClose.vue_vue_type_script_setup_true_lang.js +13 -3
  134. package/dist/components/drawer/DrawerClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  135. package/dist/components/drawer/DrawerContent.js.map +1 -1
  136. package/dist/components/drawer/DrawerContent.vue_vue_type_script_setup_true_lang.js +68 -8
  137. package/dist/components/drawer/DrawerContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  138. package/dist/components/drawer/DrawerOverlay.js.map +1 -1
  139. package/dist/components/drawer/DrawerOverlay.vue_vue_type_script_setup_true_lang.js +25 -1
  140. package/dist/components/drawer/DrawerOverlay.vue_vue_type_script_setup_true_lang.js.map +1 -1
  141. package/dist/components/drawer/DrawerTitle.js.map +1 -1
  142. package/dist/components/drawer/DrawerTitle.vue_vue_type_script_setup_true_lang.js +27 -3
  143. package/dist/components/drawer/DrawerTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  144. package/dist/components/drawer/DrawerTrigger.js.map +1 -1
  145. package/dist/components/drawer/DrawerTrigger.vue_vue_type_script_setup_true_lang.js +11 -7
  146. package/dist/components/drawer/DrawerTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  147. package/dist/components/dropdown/Dropdown.js.map +1 -1
  148. package/dist/components/dropdown/Dropdown.vue_vue_type_script_setup_true_lang.js +15 -5
  149. package/dist/components/dropdown/Dropdown.vue_vue_type_script_setup_true_lang.js.map +1 -1
  150. package/dist/components/dropdown/DropdownCheckboxItem.js.map +1 -1
  151. package/dist/components/dropdown/DropdownCheckboxItem.vue_vue_type_script_setup_true_lang.js +29 -7
  152. package/dist/components/dropdown/DropdownCheckboxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  153. package/dist/components/dropdown/DropdownItem.js.map +1 -1
  154. package/dist/components/dropdown/DropdownItem.vue_vue_type_script_setup_true_lang.js +15 -2
  155. package/dist/components/dropdown/DropdownItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  156. package/dist/components/dropdown/DropdownMenu.js.map +1 -1
  157. package/dist/components/dropdown/DropdownMenu.vue_vue_type_script_setup_true_lang.js +121 -5
  158. package/dist/components/dropdown/DropdownMenu.vue_vue_type_script_setup_true_lang.js.map +1 -1
  159. package/dist/components/dropdown/DropdownRadioGroup.js.map +1 -1
  160. package/dist/components/dropdown/DropdownRadioGroup.vue_vue_type_script_setup_true_lang.js +17 -4
  161. package/dist/components/dropdown/DropdownRadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  162. package/dist/components/dropdown/DropdownRadioItem.js.map +1 -1
  163. package/dist/components/dropdown/DropdownRadioItem.vue_vue_type_script_setup_true_lang.js +21 -5
  164. package/dist/components/dropdown/DropdownRadioItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  165. package/dist/components/dropdown/DropdownSection.js.map +1 -1
  166. package/dist/components/dropdown/DropdownSection.vue_vue_type_script_setup_true_lang.js +16 -3
  167. package/dist/components/dropdown/DropdownSection.vue_vue_type_script_setup_true_lang.js.map +1 -1
  168. package/dist/components/dropdown/DropdownSubContent.js.map +1 -1
  169. package/dist/components/dropdown/DropdownSubContent.vue_vue_type_script_setup_true_lang.js +125 -5
  170. package/dist/components/dropdown/DropdownSubContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  171. package/dist/components/dropdown/DropdownSubTrigger.js.map +1 -1
  172. package/dist/components/dropdown/DropdownSubTrigger.vue_vue_type_script_setup_true_lang.js +15 -2
  173. package/dist/components/dropdown/DropdownSubTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  174. package/dist/components/dropdown/DropdownTrigger.js.map +1 -1
  175. package/dist/components/dropdown/DropdownTrigger.vue_vue_type_script_setup_true_lang.js +22 -2
  176. package/dist/components/dropdown/DropdownTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  177. package/dist/components/input-otp/InputOTP.js.map +1 -1
  178. package/dist/components/input-otp/InputOTP.vue_vue_type_script_setup_true_lang.js +34 -1
  179. package/dist/components/input-otp/InputOTP.vue_vue_type_script_setup_true_lang.js.map +1 -1
  180. package/dist/components/list-box/ListBox.context.js.map +1 -1
  181. package/dist/components/list-box/ListBox.js.map +1 -1
  182. package/dist/components/list-box/ListBox.vue_vue_type_script_setup_true_lang.js +193 -28
  183. package/dist/components/list-box/ListBox.vue_vue_type_script_setup_true_lang.js.map +1 -1
  184. package/dist/components/list-box/ListBoxItem.js.map +1 -1
  185. package/dist/components/list-box/ListBoxItem.vue_vue_type_script_setup_true_lang.js +45 -9
  186. package/dist/components/list-box/ListBoxItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  187. package/dist/components/list-box/ListBoxSection.js.map +1 -1
  188. package/dist/components/list-box/ListBoxSection.vue_vue_type_script_setup_true_lang.js +31 -4
  189. package/dist/components/list-box/ListBoxSection.vue_vue_type_script_setup_true_lang.js.map +1 -1
  190. package/dist/components/modal/ModalClose.js.map +1 -1
  191. package/dist/components/modal/ModalClose.vue_vue_type_script_setup_true_lang.js +7 -1
  192. package/dist/components/modal/ModalClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  193. package/dist/components/modal/ModalContent.js.map +1 -1
  194. package/dist/components/modal/ModalContent.vue_vue_type_script_setup_true_lang.js +49 -5
  195. package/dist/components/modal/ModalContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  196. package/dist/components/modal/ModalDescription.js.map +1 -1
  197. package/dist/components/modal/ModalDescription.vue_vue_type_script_setup_true_lang.js +10 -1
  198. package/dist/components/modal/ModalDescription.vue_vue_type_script_setup_true_lang.js.map +1 -1
  199. package/dist/components/modal/ModalOverlay.js.map +1 -1
  200. package/dist/components/modal/ModalOverlay.vue_vue_type_script_setup_true_lang.js +23 -2
  201. package/dist/components/modal/ModalOverlay.vue_vue_type_script_setup_true_lang.js.map +1 -1
  202. package/dist/components/modal/ModalTitle.js.map +1 -1
  203. package/dist/components/modal/ModalTitle.vue_vue_type_script_setup_true_lang.js +10 -1
  204. package/dist/components/modal/ModalTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  205. package/dist/components/modal/ModalTrigger.js.map +1 -1
  206. package/dist/components/modal/ModalTrigger.vue_vue_type_script_setup_true_lang.js +12 -6
  207. package/dist/components/modal/ModalTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  208. package/dist/components/number-field/NumberField.js.map +1 -1
  209. package/dist/components/number-field/NumberField.vue_vue_type_script_setup_true_lang.js +24 -4
  210. package/dist/components/number-field/NumberField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  211. package/dist/components/pagination/Pagination.js.map +1 -1
  212. package/dist/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js +7 -1
  213. package/dist/components/pagination/Pagination.vue_vue_type_script_setup_true_lang.js.map +1 -1
  214. package/dist/components/pagination/PaginationContent.js.map +1 -1
  215. package/dist/components/pagination/PaginationContent.vue_vue_type_script_setup_true_lang.js +12 -2
  216. package/dist/components/pagination/PaginationContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  217. package/dist/components/pagination/PaginationEllipsis.js.map +1 -1
  218. package/dist/components/pagination/PaginationEllipsis.vue_vue_type_script_setup_true_lang.js +12 -2
  219. package/dist/components/pagination/PaginationEllipsis.vue_vue_type_script_setup_true_lang.js.map +1 -1
  220. package/dist/components/pagination/PaginationFirst.js.map +1 -1
  221. package/dist/components/pagination/PaginationFirst.vue_vue_type_script_setup_true_lang.js +9 -1
  222. package/dist/components/pagination/PaginationFirst.vue_vue_type_script_setup_true_lang.js.map +1 -1
  223. package/dist/components/pagination/PaginationItem.js.map +1 -1
  224. package/dist/components/pagination/PaginationItem.vue_vue_type_script_setup_true_lang.js +11 -2
  225. package/dist/components/pagination/PaginationItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  226. package/dist/components/pagination/PaginationLast.js.map +1 -1
  227. package/dist/components/pagination/PaginationLast.vue_vue_type_script_setup_true_lang.js +9 -1
  228. package/dist/components/pagination/PaginationLast.vue_vue_type_script_setup_true_lang.js.map +1 -1
  229. package/dist/components/pagination/PaginationNext.js.map +1 -1
  230. package/dist/components/pagination/PaginationNext.vue_vue_type_script_setup_true_lang.js +9 -1
  231. package/dist/components/pagination/PaginationNext.vue_vue_type_script_setup_true_lang.js.map +1 -1
  232. package/dist/components/pagination/PaginationPrev.js.map +1 -1
  233. package/dist/components/pagination/PaginationPrev.vue_vue_type_script_setup_true_lang.js +9 -1
  234. package/dist/components/pagination/PaginationPrev.vue_vue_type_script_setup_true_lang.js.map +1 -1
  235. package/dist/components/popover/PopoverContent.js.map +1 -1
  236. package/dist/components/popover/PopoverContent.vue_vue_type_script_setup_true_lang.js +6 -2
  237. package/dist/components/popover/PopoverContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  238. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  239. package/dist/components/progress-bar/ProgressBar.vue_vue_type_script_setup_true_lang.js +37 -5
  240. package/dist/components/progress-bar/ProgressBar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  241. package/dist/components/progress-circle/ProgressCircle.js.map +1 -1
  242. package/dist/components/progress-circle/ProgressCircle.vue_vue_type_script_setup_true_lang.js +21 -0
  243. package/dist/components/progress-circle/ProgressCircle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  244. package/dist/components/radio/Radio.js.map +1 -1
  245. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js +46 -3
  246. package/dist/components/radio/Radio.vue_vue_type_script_setup_true_lang.js.map +1 -1
  247. package/dist/components/radio/RadioGroup.js.map +1 -1
  248. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js +24 -0
  249. package/dist/components/radio/RadioGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  250. package/dist/components/range-calendar/RangeCalendar.js.map +1 -1
  251. package/dist/components/range-calendar/RangeCalendar.vue_vue_type_script_setup_true_lang.js +44 -11
  252. package/dist/components/range-calendar/RangeCalendar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  253. package/dist/components/scroll-area/ScrollArea.js.map +1 -1
  254. package/dist/components/scroll-area/ScrollArea.vue_vue_type_script_setup_true_lang.js +61 -8
  255. package/dist/components/scroll-area/ScrollArea.vue_vue_type_script_setup_true_lang.js.map +1 -1
  256. package/dist/components/select/Select.js.map +1 -1
  257. package/dist/components/select/Select.vue_vue_type_script_setup_true_lang.js +12 -0
  258. package/dist/components/select/Select.vue_vue_type_script_setup_true_lang.js.map +1 -1
  259. package/dist/components/select/SelectContent.js.map +1 -1
  260. package/dist/components/select/SelectContent.vue_vue_type_script_setup_true_lang.js +140 -8
  261. package/dist/components/select/SelectContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  262. package/dist/components/select/SelectItem.js.map +1 -1
  263. package/dist/components/select/SelectItem.vue_vue_type_script_setup_true_lang.js +22 -6
  264. package/dist/components/select/SelectItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  265. package/dist/components/select/SelectTrigger.js.map +1 -1
  266. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js +23 -2
  267. package/dist/components/select/SelectTrigger.vue_vue_type_script_setup_true_lang.js.map +1 -1
  268. package/dist/components/select/SelectValue.js.map +1 -1
  269. package/dist/components/select/SelectValue.vue_vue_type_script_setup_true_lang.js +14 -2
  270. package/dist/components/select/SelectValue.vue_vue_type_script_setup_true_lang.js.map +1 -1
  271. package/dist/components/slider/Slider.js.map +1 -1
  272. package/dist/components/slider/Slider.vue_vue_type_script_setup_true_lang.js +69 -6
  273. package/dist/components/slider/Slider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  274. package/dist/components/splitter/SplitterGroup.js.map +1 -1
  275. package/dist/components/splitter/SplitterGroup.vue_vue_type_script_setup_true_lang.js +18 -3
  276. package/dist/components/splitter/SplitterGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  277. package/dist/components/splitter/SplitterPanel.js.map +1 -1
  278. package/dist/components/splitter/SplitterPanel.vue_vue_type_script_setup_true_lang.js +20 -5
  279. package/dist/components/splitter/SplitterPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  280. package/dist/components/splitter/SplitterResizeHandle.js.map +1 -1
  281. package/dist/components/splitter/SplitterResizeHandle.vue_vue_type_script_setup_true_lang.js +16 -1
  282. package/dist/components/splitter/SplitterResizeHandle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  283. package/dist/components/switch/Switch.js.map +1 -1
  284. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js +53 -2
  285. package/dist/components/switch/Switch.vue_vue_type_script_setup_true_lang.js.map +1 -1
  286. package/dist/components/tabs/Tab.js.map +1 -1
  287. package/dist/components/tabs/Tab.vue_vue_type_script_setup_true_lang.js +7 -1
  288. package/dist/components/tabs/Tab.vue_vue_type_script_setup_true_lang.js.map +1 -1
  289. package/dist/components/tabs/TabIndicator.js.map +1 -1
  290. package/dist/components/tabs/TabIndicator.vue_vue_type_script_setup_true_lang.js +12 -2
  291. package/dist/components/tabs/TabIndicator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  292. package/dist/components/tabs/TabList.js.map +1 -1
  293. package/dist/components/tabs/TabList.vue_vue_type_script_setup_true_lang.js +27 -4
  294. package/dist/components/tabs/TabList.vue_vue_type_script_setup_true_lang.js.map +1 -1
  295. package/dist/components/tabs/TabPanel.js.map +1 -1
  296. package/dist/components/tabs/TabPanel.vue_vue_type_script_setup_true_lang.js +7 -1
  297. package/dist/components/tabs/TabPanel.vue_vue_type_script_setup_true_lang.js.map +1 -1
  298. package/dist/components/tabs/Tabs.js.map +1 -1
  299. package/dist/components/tabs/Tabs.vue_vue_type_script_setup_true_lang.js +13 -1
  300. package/dist/components/tabs/Tabs.vue_vue_type_script_setup_true_lang.js.map +1 -1
  301. package/dist/components/time-field/TimeField.js.map +1 -1
  302. package/dist/components/time-field/TimeField.vue_vue_type_script_setup_true_lang.js +22 -1
  303. package/dist/components/time-field/TimeField.vue_vue_type_script_setup_true_lang.js.map +1 -1
  304. package/dist/components/toast/Toast.js.map +1 -1
  305. package/dist/components/toast/Toast.vue_vue_type_script_setup_true_lang.js +39 -4
  306. package/dist/components/toast/Toast.vue_vue_type_script_setup_true_lang.js.map +1 -1
  307. package/dist/components/toast/ToastAction.js.map +1 -1
  308. package/dist/components/toast/ToastAction.vue_vue_type_script_setup_true_lang.js +3 -1
  309. package/dist/components/toast/ToastAction.vue_vue_type_script_setup_true_lang.js.map +1 -1
  310. package/dist/components/toast/ToastClose.js.map +1 -1
  311. package/dist/components/toast/ToastClose.vue_vue_type_script_setup_true_lang.js +3 -1
  312. package/dist/components/toast/ToastClose.vue_vue_type_script_setup_true_lang.js.map +1 -1
  313. package/dist/components/toast/ToastDescription.js.map +1 -1
  314. package/dist/components/toast/ToastDescription.vue_vue_type_script_setup_true_lang.js +15 -3
  315. package/dist/components/toast/ToastDescription.vue_vue_type_script_setup_true_lang.js.map +1 -1
  316. package/dist/components/toast/ToastTitle.js.map +1 -1
  317. package/dist/components/toast/ToastTitle.vue_vue_type_script_setup_true_lang.js +15 -3
  318. package/dist/components/toast/ToastTitle.vue_vue_type_script_setup_true_lang.js.map +1 -1
  319. package/dist/components/toast/ToastViewport.js.map +1 -1
  320. package/dist/components/toast/ToastViewport.vue_vue_type_script_setup_true_lang.js +22 -3
  321. package/dist/components/toast/ToastViewport.vue_vue_type_script_setup_true_lang.js.map +1 -1
  322. package/dist/components/toolbar/Toolbar.js.map +1 -1
  323. package/dist/components/toolbar/Toolbar.vue_vue_type_script_setup_true_lang.js +10 -1
  324. package/dist/components/toolbar/Toolbar.vue_vue_type_script_setup_true_lang.js.map +1 -1
  325. package/dist/components/toolbar/ToolbarButton.js.map +1 -1
  326. package/dist/components/toolbar/ToolbarButton.vue_vue_type_script_setup_true_lang.js +11 -2
  327. package/dist/components/toolbar/ToolbarButton.vue_vue_type_script_setup_true_lang.js.map +1 -1
  328. package/dist/components/toolbar/ToolbarLink.js.map +1 -1
  329. package/dist/components/toolbar/ToolbarLink.vue_vue_type_script_setup_true_lang.js +11 -2
  330. package/dist/components/toolbar/ToolbarLink.vue_vue_type_script_setup_true_lang.js.map +1 -1
  331. package/dist/components/toolbar/ToolbarSeparator.js.map +1 -1
  332. package/dist/components/toolbar/ToolbarSeparator.vue_vue_type_script_setup_true_lang.js +14 -2
  333. package/dist/components/toolbar/ToolbarSeparator.vue_vue_type_script_setup_true_lang.js.map +1 -1
  334. package/dist/components/toolbar/ToolbarToggleGroup.js.map +1 -1
  335. package/dist/components/toolbar/ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js +22 -1
  336. package/dist/components/toolbar/ToolbarToggleGroup.vue_vue_type_script_setup_true_lang.js.map +1 -1
  337. package/dist/components/toolbar/ToolbarToggleItem.js.map +1 -1
  338. package/dist/components/toolbar/ToolbarToggleItem.vue_vue_type_script_setup_true_lang.js +7 -1
  339. package/dist/components/toolbar/ToolbarToggleItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  340. package/dist/components/tooltip/Tooltip.js.map +1 -1
  341. package/dist/components/tooltip/Tooltip.vue_vue_type_script_lang.js +20 -0
  342. package/dist/components/tooltip/Tooltip.vue_vue_type_script_lang.js.map +1 -1
  343. package/dist/components/tooltip/TooltipContent.js.map +1 -1
  344. package/dist/components/tooltip/TooltipContent.vue_vue_type_script_setup_true_lang.js +7 -2
  345. package/dist/components/tooltip/TooltipContent.vue_vue_type_script_setup_true_lang.js.map +1 -1
  346. package/dist/components/tooltip/TooltipProvider.js.map +1 -1
  347. package/dist/components/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js +24 -3
  348. package/dist/components/tooltip/TooltipProvider.vue_vue_type_script_setup_true_lang.js.map +1 -1
  349. package/dist/components/tree/Tree.js.map +1 -1
  350. package/dist/components/tree/Tree.vue_vue_type_script_setup_true_lang.js +16 -1
  351. package/dist/components/tree/Tree.vue_vue_type_script_setup_true_lang.js.map +1 -1
  352. package/dist/components/tree/TreeItem.js.map +1 -1
  353. package/dist/components/tree/TreeItem.vue_vue_type_script_setup_true_lang.js +7 -1
  354. package/dist/components/tree/TreeItem.vue_vue_type_script_setup_true_lang.js.map +1 -1
  355. package/dist/index.d.ts +2419 -365
  356. package/package.json +4 -4
@@ -79,9 +79,53 @@ var ComboBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
79
79
  ],
80
80
  default: void 0
81
81
  },
82
- classNames: { default: void 0 }
82
+ classNames: { default: void 0 },
83
+ resetSearchTermOnBlur: {
84
+ type: Boolean,
85
+ default: void 0
86
+ },
87
+ resetSearchTermOnSelect: {
88
+ type: Boolean,
89
+ default: void 0
90
+ },
91
+ openOnFocus: {
92
+ type: Boolean,
93
+ default: void 0
94
+ },
95
+ openOnClick: {
96
+ type: Boolean,
97
+ default: void 0
98
+ },
99
+ ignoreFilter: {
100
+ type: Boolean,
101
+ default: void 0
102
+ },
103
+ resetModelValueOnClear: {
104
+ type: Boolean,
105
+ default: void 0
106
+ },
107
+ multiple: {
108
+ type: Boolean,
109
+ default: false
110
+ },
111
+ dir: { default: void 0 },
112
+ highlightOnHover: {
113
+ type: Boolean,
114
+ default: void 0
115
+ },
116
+ by: { default: void 0 },
117
+ as: { default: void 0 },
118
+ asChild: {
119
+ type: Boolean,
120
+ default: false
121
+ },
122
+ name: { default: void 0 }
83
123
  },
84
- emits: ["update:modelValue", "update:open"],
124
+ emits: [
125
+ "update:modelValue",
126
+ "update:open",
127
+ "highlight"
128
+ ],
85
129
  setup(__props, { emit: __emit }) {
86
130
  const props = __props;
87
131
  const emit = __emit;
@@ -159,8 +203,22 @@ var ComboBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
159
203
  "default-open": props.defaultOpen,
160
204
  disabled: props.isDisabled,
161
205
  required: props.isRequired,
206
+ multiple: props.multiple,
207
+ name: props.name,
208
+ dir: props.dir,
209
+ as: props.as,
210
+ "as-child": props.asChild,
211
+ "reset-search-term-on-blur": props.resetSearchTermOnBlur,
212
+ "reset-search-term-on-select": props.resetSearchTermOnSelect,
213
+ "open-on-focus": props.openOnFocus,
214
+ "open-on-click": props.openOnClick,
215
+ "ignore-filter": props.ignoreFilter,
216
+ "reset-model-value-on-clear": props.resetModelValueOnClear,
217
+ "highlight-on-hover": props.highlightOnHover,
218
+ by: props.by,
162
219
  "filter-function": effectiveFilter.value,
163
- "onUpdate:open": _cache[2] || (_cache[2] = ($event) => emit("update:open", $event))
220
+ "onUpdate:open": _cache[2] || (_cache[2] = ($event) => emit("update:open", $event)),
221
+ onHighlight: _cache[3] || (_cache[3] = ($event) => emit("highlight", $event))
164
222
  }, {
165
223
  default: withCtx(() => [usesCustomChrome.value ? renderSlot(_ctx.$slots, "default", { key: 0 }) : (openBlock(), createElementBlock(Fragment, { key: 1 }, [createVNode(ComboBoxInput_default, { placeholder: props.placeholder }, null, 8, ["placeholder"]), createVNode(ComboBoxContent_default, null, {
166
224
  default: withCtx(() => [(openBlock(true), createElementBlock(Fragment, null, renderList(props.items, (item) => {
@@ -183,6 +241,19 @@ var ComboBox_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defin
183
241
  "default-open",
184
242
  "disabled",
185
243
  "required",
244
+ "multiple",
245
+ "name",
246
+ "dir",
247
+ "as",
248
+ "as-child",
249
+ "reset-search-term-on-blur",
250
+ "reset-search-term-on-select",
251
+ "open-on-focus",
252
+ "open-on-click",
253
+ "ignore-filter",
254
+ "reset-model-value-on-clear",
255
+ "highlight-on-hover",
256
+ "by",
186
257
  "filter-function"
187
258
  ]),
188
259
  props.description || props.isInvalid && props.errorMessage ? (openBlock(), createElementBlock("div", _hoisted_4, [props.isInvalid && props.errorMessage ? (openBlock(), createElementBlock("p", _hoisted_5, toDisplayString(props.errorMessage), 1)) : props.description ? (openBlock(), createElementBlock("p", _hoisted_6, toDisplayString(props.description), 1)) : createCommentVNode("", true)])) : createCommentVNode("", true)
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBox.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/combo-box/ComboBox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, toRef, useId, useSlots, watch } from 'vue'\nimport { ComboboxRoot } from 'reka-ui'\nimport { comboBoxVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useComboBoxProvide } from './ComboBox.context'\nimport { hasSlotComponent } from '../../utils/hasSlotComponent'\nimport ComboBoxInput from './ComboBoxInput.vue'\nimport ComboBoxContent from './ComboBoxContent.vue'\nimport ComboBoxItem from './ComboBoxItem.vue'\n\nexport interface ComboBoxItem {\n value: string\n label?: string\n textValue?: string\n isDisabled?: boolean\n}\n\nconst props = withDefaults(defineProps<{\n modelValue?: string\n defaultValue?: string\n open?: boolean\n defaultOpen?: boolean\n items?: ComboBoxItem[]\n label?: string\n placeholder?: string\n description?: string\n errorMessage?: string\n isInvalid?: boolean\n isDisabled?: boolean\n isRequired?: boolean\n allowsCustomValue?: boolean\n fullWidth?: boolean\n /** Custom filter function: return true to include item */\n filterFunction?: (item: string, searchTerm: string) => boolean\n class?: ClassValue\n /** Override classes for individual slots */\n classNames?: Partial<{\n base: ClassValue\n }>\n}>(), {\n modelValue: undefined,\n defaultValue: undefined,\n open: undefined,\n defaultOpen: undefined,\n items: () => [],\n label: undefined,\n placeholder: undefined,\n description: undefined,\n errorMessage: undefined,\n isInvalid: false,\n isDisabled: false,\n isRequired: false,\n allowsCustomValue: false,\n fullWidth: false,\n filterFunction: undefined,\n class: undefined,\n classNames: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n 'update:open': [value: boolean]\n}>()\n\nconst labelId = useId()\n\nconst slots = useSlots()\n// Compound chrome present → pass slot through (advanced). Otherwise render the\n// input/content/items internally (short-form).\nconst usesCustomChrome = computed(() =>\n hasSlotComponent(slots.default?.(), [ComboBoxInput, ComboBoxContent]),\n)\n\nconst slotFns = computed(() =>\n comboBoxVariants({\n fullWidth: props.fullWidth,\n })\n)\n\n// Default filter: case-insensitive substring match\nconst effectiveFilter = computed(() => {\n if (props.filterFunction) return props.filterFunction\n return (itemText: string, searchTerm: string): boolean =>\n itemText.toLowerCase().includes(searchTerm.toLowerCase())\n})\n\n// Registry for slot-rendered items: value → label (populated by ComboBoxItem at mount).\n// Replaced with a new Map instance on each mutation so Vue's ref() reactivity tracks changes.\nconst slotItemRegistry = ref(new Map<string, string>())\n\nfunction registerItem(value: string, label: string) {\n const next = new Map(slotItemRegistry.value)\n next.set(value, label)\n slotItemRegistry.value = next\n}\n\nfunction unregisterItem(value: string) {\n const next = new Map(slotItemRegistry.value)\n next.delete(value)\n slotItemRegistry.value = next\n}\n\n// Resolve a user-facing value (\"us\") to the label text used internally by Reka.\n// Priority: items prop entry > slot registry > identity fallback\nfunction labelFor(value: string | undefined): string {\n if (!value) return ''\n const item = props.items.find(i => i.value === value)\n if (item) return item.label ?? item.textValue ?? value\n return slotItemRegistry.value.get(value) ?? value\n}\n\n// Resolve a Reka-internal label text back to the user-facing value.\nfunction valueFor(label: string): string {\n if (!label) return ''\n // Check items prop first\n const item = props.items.find(i => (i.label ?? i.textValue ?? i.value) === label)\n if (item) return item.value\n // Check slot registry\n for (const [value, lbl] of slotItemRegistry.value) {\n if (lbl === label) return value\n }\n return label\n}\n\n// internalValue holds the label text that Reka sees as its modelValue.\n// This lets Reka write the label directly into the input without a displayValue function.\nconst internalValue = ref(labelFor(props.modelValue))\n\n// Map a stored value back to its human-readable label for the input display.\n// Used as a no-op pass-through since internalValue already holds the label.\nconst displayValue = computed(() => (val: string): string => val)\n\n// Parent → internal: when the user's v-model changes, resolve to label text\nwatch(() => props.modelValue, (val) => {\n const next = labelFor(val)\n if (internalValue.value !== next) internalValue.value = next\n})\n\n// Internal → parent: when Reka emits a label text (after selection), translate to real value\nfunction handleModelValueUpdate(emitted: string) {\n internalValue.value = emitted\n emit('update:modelValue', valueFor(emitted))\n}\n\n// When slot items register (children mount after parent), re-resolve internalValue.\n// This covers the case where modelValue is set before children have mounted.\nwatch(slotItemRegistry, () => {\n const next = labelFor(props.modelValue)\n if (next !== internalValue.value && valueFor(internalValue.value) === (props.modelValue ?? '')) {\n internalValue.value = next\n }\n})\n\nuseComboBoxProvide({\n isDisabled: toRef(props, 'isDisabled'),\n isInvalid: toRef(props, 'isInvalid'),\n fullWidth: toRef(props, 'fullWidth'),\n slots: slotFns,\n displayValue,\n registerItem,\n unregisterItem,\n})\n</script>\n\n<template>\n <div\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :aria-invalid=\"props.isInvalid || undefined\"\n data-slot=\"combo-box\"\n >\n <label\n v-if=\"props.label\"\n :id=\"labelId\"\n data-slot=\"label\"\n >\n {{ props.label }}\n <span\n v-if=\"props.isRequired\"\n aria-hidden=\"true\"\n > *</span>\n </label>\n\n <ComboboxRoot\n v-model=\"internalValue\"\n :default-value=\"props.defaultValue ? labelFor(props.defaultValue) : undefined\"\n :open=\"props.open\"\n :default-open=\"props.defaultOpen\"\n :disabled=\"props.isDisabled\"\n :required=\"props.isRequired\"\n :filter-function=\"effectiveFilter\"\n @update:model-value=\"handleModelValueUpdate($event)\"\n @update:open=\"emit('update:open', $event)\"\n >\n <slot v-if=\"usesCustomChrome\" />\n <template v-else>\n <ComboBoxInput :placeholder=\"props.placeholder\" />\n <ComboBoxContent>\n <ComboBoxItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :is-disabled=\"item.isDisabled\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n >{{ item.label ?? item.textValue ?? item.value }}</slot>\n </ComboBoxItem>\n </ComboBoxContent>\n </template>\n </ComboboxRoot>\n\n <div\n v-if=\"props.description || (props.isInvalid && props.errorMessage)\"\n data-slot=\"helper-wrapper\"\n >\n <p\n v-if=\"props.isInvalid && props.errorMessage\"\n data-slot=\"error-message\"\n aria-live=\"polite\"\n >\n {{ props.errorMessage }}\n </p>\n <p\n v-else-if=\"props.description\"\n data-slot=\"description\"\n >\n {{ props.description }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
1
+ {"version":3,"file":"ComboBox.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/combo-box/ComboBox.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed, ref, toRef, useId, useSlots, watch } from 'vue'\nimport { ComboboxRoot } from 'reka-ui'\nimport { comboBoxVariants } from '@auronui/styles'\nimport { composeClassName , type ClassValue} from '../../utils/composeClassName'\nimport { useComboBoxProvide } from './ComboBox.context'\nimport { hasSlotComponent } from '../../utils/hasSlotComponent'\nimport ComboBoxInput from './ComboBoxInput.vue'\nimport ComboBoxContent from './ComboBoxContent.vue'\nimport ComboBoxItem from './ComboBoxItem.vue'\n\nexport interface ComboBoxItem {\n value: string\n label?: string\n textValue?: string\n isDisabled?: boolean\n}\n\nconst props = withDefaults(defineProps<{\n modelValue?: string\n defaultValue?: string\n open?: boolean\n defaultOpen?: boolean\n items?: ComboBoxItem[]\n label?: string\n placeholder?: string\n description?: string\n errorMessage?: string\n isInvalid?: boolean\n isDisabled?: boolean\n isRequired?: boolean\n allowsCustomValue?: boolean\n fullWidth?: boolean\n /** Custom filter function: return true to include item */\n filterFunction?: (item: string, searchTerm: string) => boolean\n class?: ClassValue\n /** Override classes for individual slots */\n classNames?: Partial<{\n base: ClassValue\n }>\n /** Reset search term when user blurs the input. */\n resetSearchTermOnBlur?: boolean\n /** Reset search term after an item is selected. */\n resetSearchTermOnSelect?: boolean\n /** Open dropdown when the input gains focus. */\n openOnFocus?: boolean\n /** Open dropdown when the input is clicked. */\n openOnClick?: boolean\n /** Disable Reka's built-in filter; handle filtering externally. */\n ignoreFilter?: boolean\n /** Reset modelValue when the input is cleared. */\n resetModelValueOnClear?: boolean\n /** Allow selecting multiple values. */\n multiple?: boolean\n /** Reading direction for the component. */\n dir?: 'ltr' | 'rtl'\n /** Highlight the matching item on hover. */\n highlightOnHover?: boolean\n /** Key to compare items by for selection equality. */\n by?: string\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 /** Form field name for native form submission. */\n name?: string\n}>(), {\n modelValue: undefined,\n defaultValue: undefined,\n open: undefined,\n defaultOpen: undefined,\n items: () => [],\n label: undefined,\n placeholder: undefined,\n description: undefined,\n errorMessage: undefined,\n isInvalid: false,\n isDisabled: false,\n isRequired: false,\n allowsCustomValue: false,\n fullWidth: false,\n filterFunction: undefined,\n class: undefined,\n classNames: undefined,\n resetSearchTermOnBlur: undefined,\n resetSearchTermOnSelect: undefined,\n openOnFocus: undefined,\n openOnClick: undefined,\n ignoreFilter: undefined,\n resetModelValueOnClear: undefined,\n multiple: false,\n dir: undefined,\n highlightOnHover: undefined,\n by: undefined,\n as: undefined,\n asChild: false,\n name: undefined,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n 'update:open': [value: boolean]\n 'highlight': [context: { ref: Element; value: string } | undefined]\n}>()\n\nconst labelId = useId()\n\nconst slots = useSlots()\n// Compound chrome present → pass slot through (advanced). Otherwise render the\n// input/content/items internally (short-form).\nconst usesCustomChrome = computed(() =>\n hasSlotComponent(slots.default?.(), [ComboBoxInput, ComboBoxContent]),\n)\n\nconst slotFns = computed(() =>\n comboBoxVariants({\n fullWidth: props.fullWidth,\n })\n)\n\n// Default filter: case-insensitive substring match\nconst effectiveFilter = computed(() => {\n if (props.filterFunction) return props.filterFunction\n return (itemText: string, searchTerm: string): boolean =>\n itemText.toLowerCase().includes(searchTerm.toLowerCase())\n})\n\n// Registry for slot-rendered items: value → label (populated by ComboBoxItem at mount).\n// Replaced with a new Map instance on each mutation so Vue's ref() reactivity tracks changes.\nconst slotItemRegistry = ref(new Map<string, string>())\n\nfunction registerItem(value: string, label: string) {\n const next = new Map(slotItemRegistry.value)\n next.set(value, label)\n slotItemRegistry.value = next\n}\n\nfunction unregisterItem(value: string) {\n const next = new Map(slotItemRegistry.value)\n next.delete(value)\n slotItemRegistry.value = next\n}\n\n// Resolve a user-facing value (\"us\") to the label text used internally by Reka.\n// Priority: items prop entry > slot registry > identity fallback\nfunction labelFor(value: string | undefined): string {\n if (!value) return ''\n const item = props.items.find(i => i.value === value)\n if (item) return item.label ?? item.textValue ?? value\n return slotItemRegistry.value.get(value) ?? value\n}\n\n// Resolve a Reka-internal label text back to the user-facing value.\nfunction valueFor(label: string): string {\n if (!label) return ''\n // Check items prop first\n const item = props.items.find(i => (i.label ?? i.textValue ?? i.value) === label)\n if (item) return item.value\n // Check slot registry\n for (const [value, lbl] of slotItemRegistry.value) {\n if (lbl === label) return value\n }\n return label\n}\n\n// internalValue holds the label text that Reka sees as its modelValue.\n// This lets Reka write the label directly into the input without a displayValue function.\nconst internalValue = ref(labelFor(props.modelValue))\n\n// Map a stored value back to its human-readable label for the input display.\n// Used as a no-op pass-through since internalValue already holds the label.\nconst displayValue = computed(() => (val: string): string => val)\n\n// Parent → internal: when the user's v-model changes, resolve to label text\nwatch(() => props.modelValue, (val) => {\n const next = labelFor(val)\n if (internalValue.value !== next) internalValue.value = next\n})\n\n// Internal → parent: when Reka emits a label text (after selection), translate to real value\nfunction handleModelValueUpdate(emitted: string) {\n internalValue.value = emitted\n emit('update:modelValue', valueFor(emitted))\n}\n\n// When slot items register (children mount after parent), re-resolve internalValue.\n// This covers the case where modelValue is set before children have mounted.\nwatch(slotItemRegistry, () => {\n const next = labelFor(props.modelValue)\n if (next !== internalValue.value && valueFor(internalValue.value) === (props.modelValue ?? '')) {\n internalValue.value = next\n }\n})\n\nuseComboBoxProvide({\n isDisabled: toRef(props, 'isDisabled'),\n isInvalid: toRef(props, 'isInvalid'),\n fullWidth: toRef(props, 'fullWidth'),\n slots: slotFns,\n displayValue,\n registerItem,\n unregisterItem,\n})\n</script>\n\n<template>\n <div\n :class=\"composeClassName(slotFns.base(), props.class, props.classNames?.base)\"\n :aria-invalid=\"props.isInvalid || undefined\"\n data-slot=\"combo-box\"\n >\n <label\n v-if=\"props.label\"\n :id=\"labelId\"\n data-slot=\"label\"\n >\n {{ props.label }}\n <span\n v-if=\"props.isRequired\"\n aria-hidden=\"true\"\n > *</span>\n </label>\n\n <ComboboxRoot\n v-model=\"internalValue\"\n :default-value=\"props.defaultValue ? labelFor(props.defaultValue) : undefined\"\n :open=\"props.open\"\n :default-open=\"props.defaultOpen\"\n :disabled=\"props.isDisabled\"\n :required=\"props.isRequired\"\n :multiple=\"props.multiple\"\n :name=\"props.name\"\n :dir=\"props.dir\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n :reset-search-term-on-blur=\"props.resetSearchTermOnBlur\"\n :reset-search-term-on-select=\"props.resetSearchTermOnSelect\"\n :open-on-focus=\"props.openOnFocus\"\n :open-on-click=\"props.openOnClick\"\n :ignore-filter=\"props.ignoreFilter\"\n :reset-model-value-on-clear=\"props.resetModelValueOnClear\"\n :highlight-on-hover=\"props.highlightOnHover\"\n :by=\"props.by\"\n :filter-function=\"effectiveFilter\"\n @update:model-value=\"handleModelValueUpdate($event)\"\n @update:open=\"emit('update:open', $event)\"\n @highlight=\"emit('highlight', $event)\"\n >\n <slot v-if=\"usesCustomChrome\" />\n <template v-else>\n <ComboBoxInput :placeholder=\"props.placeholder\" />\n <ComboBoxContent>\n <ComboBoxItem\n v-for=\"item in props.items\"\n :key=\"item.value\"\n :value=\"item.value\"\n :is-disabled=\"item.isDisabled\"\n >\n <slot\n name=\"item\"\n :item=\"item\"\n >{{ item.label ?? item.textValue ?? item.value }}</slot>\n </ComboBoxItem>\n </ComboBoxContent>\n </template>\n </ComboboxRoot>\n\n <div\n v-if=\"props.description || (props.isInvalid && props.errorMessage)\"\n data-slot=\"helper-wrapper\"\n >\n <p\n v-if=\"props.isInvalid && props.errorMessage\"\n data-slot=\"error-message\"\n aria-live=\"polite\"\n >\n {{ props.errorMessage }}\n </p>\n <p\n v-else-if=\"props.description\"\n data-slot=\"description\"\n >\n {{ props.description }}\n </p>\n </div>\n </div>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBoxContent.js","names":[],"sources":["../../../src/components/combo-box/ComboBoxContent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ComboboxPortal, ComboboxContent, ComboboxViewport, injectComboboxRootContext } from 'reka-ui'\nimport { motion, AnimatePresence } from 'motion-v'\nimport { useSlots, watchEffect, type VNode } from 'vue'\nimport { useComboBoxInject } from './ComboBox.context'\n\nconst props = withDefaults(defineProps<{\n sideOffset?: number\n class?: string\n}>(), {\n sideOffset: 8,\n class: undefined,\n})\n\nconst ctx = useComboBoxInject()\nconst comboboxRootContext = injectComboboxRootContext()\n\n// Pre-walk slot VNodes to extract value→label pairs synchronously.\n// This runs before the portal opens so the bridge can resolve labels on initial render.\nconst slots = useSlots()\n\nfunction extractNodeText(nodes: VNode[]): string {\n return nodes.map(n => {\n if (typeof n.children === 'string') return n.children\n if (Array.isArray(n.children)) return extractNodeText(n.children as VNode[])\n return ''\n }).join('')\n}\n\nfunction walkAndRegister(nodes: VNode[]) {\n for (const node of nodes) {\n // ComboBoxItem VNodes have a `value` prop; extract their text children\n if (node.props && typeof node.props.value === 'string') {\n const value = node.props.value as string\n const children = node.children\n if (children && typeof children === 'object' && 'default' in children) {\n const slotFn = (children as Record<string, () => VNode[]>).default\n if (typeof slotFn === 'function') {\n const text = extractNodeText(slotFn()).trim()\n if (text) ctx.registerItem(value, text)\n }\n } else if (typeof children === 'string') {\n const text = children.trim()\n if (text) ctx.registerItem(value, text)\n } else if (Array.isArray(children)) {\n const text = extractNodeText(children as VNode[]).trim()\n if (text) ctx.registerItem(value, text)\n }\n }\n // Recurse into children arrays\n if (Array.isArray(node.children)) {\n walkAndRegister(node.children as VNode[])\n }\n }\n}\n\n// Run synchronously at setup time and whenever the slot content changes\nwatchEffect(() => {\n const vnodes = (slots.default as (() => VNode[]) | undefined)?.()\n if (vnodes) walkAndRegister(vnodes)\n})\n</script>\n\n<template>\n <ComboboxPortal>\n <AnimatePresence>\n <ComboboxContent\n v-if=\"comboboxRootContext.open.value\"\n position=\"popper\"\n :side-offset=\"props.sideOffset\"\n as-child\n data-slot=\"popover\"\n >\n <motion.div\n :class=\"ctx.slots.value.popover()\"\n :initial=\"{ opacity: 0, scale: 0.95 }\"\n :animate=\"{ opacity: 1, scale: 1 }\"\n :exit=\"{ opacity: 0, scale: 0.95 }\"\n :transition=\"{ duration: 0.15 }\"\n >\n <ComboboxViewport data-slot=\"list-box\">\n <slot />\n <slot name=\"empty\" />\n </ComboboxViewport>\n </motion.div>\n </ComboboxContent>\n </AnimatePresence>\n </ComboboxPortal>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ComboBoxContent.js","names":[],"sources":["../../../src/components/combo-box/ComboBoxContent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ComboboxPortal, ComboboxContent, ComboboxViewport, injectComboboxRootContext } from 'reka-ui'\nimport { motion, AnimatePresence } from 'motion-v'\nimport { useSlots, watchEffect, type VNode } from 'vue'\nimport { useComboBoxInject } from './ComboBox.context'\n\nconst props = withDefaults(defineProps<{\n sideOffset?: number\n class?: string\n /** Portal target selector or element. */\n to?: string | HTMLElement\n /** Disable the portal. */\n portalDisabled?: boolean\n /** Defer portal rendering. */\n defer?: boolean\n /** Force-mount the portal even when closed. */\n portalForceMount?: boolean\n /** Force-mount the content even when closed. */\n forceMount?: boolean\n /** Positioning strategy: item-aligned or popper. */\n position?: 'inline' | 'popper'\n /** Lock body scroll when open. */\n bodyLock?: boolean\n /** Hide content when there are no items. */\n hideWhenEmpty?: boolean\n /** Side of the anchor to render on. */\n side?: 'top' | 'right' | 'bottom' | 'left'\n /** Flip side when colliding. */\n sideFlip?: boolean\n /** Side offset in pixels. */\n sideOffsetProp?: number\n /** Alignment relative to the anchor. */\n align?: 'start' | 'center' | 'end'\n /** Alignment offset in pixels. */\n alignOffset?: number\n /** Flip alignment when colliding. */\n alignFlip?: boolean\n /** Avoid collisions with boundary. */\n avoidCollisions?: boolean\n /** Boundary element(s) for collision detection. */\n collisionBoundary?: Element | null | Array<Element | null>\n /** Padding from collision boundary. */\n collisionPadding?: number | Partial<Record<'top' | 'right' | 'bottom' | 'left', number>>\n /** Padding from arrow. */\n arrowPadding?: number\n /** Hide arrow when shifted. */\n hideShiftedArrow?: boolean\n /** Sticky behavior on scroll. */\n sticky?: 'partial' | 'always'\n /** Hide when anchor is detached. */\n hideWhenDetached?: boolean\n /** CSS position strategy. */\n positionStrategy?: 'fixed' | 'absolute'\n /** When to update position. */\n updatePositionStrategy?: 'always' | 'optimized'\n /** Disable position updates on layout shift. */\n disableUpdateOnLayoutShift?: boolean\n /** Prioritize keeping content in view. */\n prioritizePosition?: boolean\n /** Custom reference element for positioning. */\n reference?: object | null\n /** Render content as a different element. */\n as?: string\n /** Merge content props onto child element. */\n asChild?: boolean\n /** Disable outside pointer events when open. */\n disableOutsidePointerEvents?: boolean\n /** Nonce for the viewport's inline style. */\n viewportNonce?: string\n /** Render the viewport as a different element. */\n viewportAs?: string\n /** Merge viewport props onto child element. */\n viewportAsChild?: boolean\n}>(), {\n sideOffset: 8,\n class: undefined,\n to: undefined,\n portalDisabled: undefined,\n defer: undefined,\n portalForceMount: undefined,\n forceMount: undefined,\n position: undefined,\n bodyLock: undefined,\n hideWhenEmpty: undefined,\n side: undefined,\n sideFlip: undefined,\n sideOffsetProp: undefined,\n align: undefined,\n alignOffset: undefined,\n alignFlip: undefined,\n avoidCollisions: undefined,\n collisionBoundary: undefined,\n collisionPadding: undefined,\n arrowPadding: undefined,\n hideShiftedArrow: undefined,\n sticky: undefined,\n hideWhenDetached: undefined,\n positionStrategy: undefined,\n updatePositionStrategy: undefined,\n disableUpdateOnLayoutShift: undefined,\n prioritizePosition: undefined,\n reference: undefined,\n as: undefined,\n asChild: false,\n disableOutsidePointerEvents: undefined,\n viewportNonce: undefined,\n viewportAs: undefined,\n viewportAsChild: false,\n})\n\nconst emit = defineEmits<{\n 'escape-key-down': [event: KeyboardEvent]\n 'pointer-down-outside': [event: Event]\n 'focus-outside': [event: Event]\n 'interact-outside': [event: Event]\n}>()\n\nconst ctx = useComboBoxInject()\nconst comboboxRootContext = injectComboboxRootContext()\n\n// Pre-walk slot VNodes to extract value→label pairs synchronously.\n// This runs before the portal opens so the bridge can resolve labels on initial render.\nconst slots = useSlots()\n\nfunction extractNodeText(nodes: VNode[]): string {\n return nodes.map(n => {\n if (typeof n.children === 'string') return n.children\n if (Array.isArray(n.children)) return extractNodeText(n.children as VNode[])\n return ''\n }).join('')\n}\n\nfunction walkAndRegister(nodes: VNode[]) {\n for (const node of nodes) {\n // ComboBoxItem VNodes have a `value` prop; extract their text children\n if (node.props && typeof node.props.value === 'string') {\n const value = node.props.value as string\n const children = node.children\n if (children && typeof children === 'object' && 'default' in children) {\n const slotFn = (children as Record<string, () => VNode[]>).default\n if (typeof slotFn === 'function') {\n const text = extractNodeText(slotFn()).trim()\n if (text) ctx.registerItem(value, text)\n }\n } else if (typeof children === 'string') {\n const text = children.trim()\n if (text) ctx.registerItem(value, text)\n } else if (Array.isArray(children)) {\n const text = extractNodeText(children as VNode[]).trim()\n if (text) ctx.registerItem(value, text)\n }\n }\n // Recurse into children arrays\n if (Array.isArray(node.children)) {\n walkAndRegister(node.children as VNode[])\n }\n }\n}\n\n// Run synchronously at setup time and whenever the slot content changes\nwatchEffect(() => {\n const vnodes = (slots.default as (() => VNode[]) | undefined)?.()\n if (vnodes) walkAndRegister(vnodes)\n})\n</script>\n\n<template>\n <ComboboxPortal\n :to=\"props.to\"\n :disabled=\"props.portalDisabled\"\n :defer=\"props.defer\"\n :force-mount=\"props.portalForceMount\"\n >\n <AnimatePresence>\n <ComboboxContent\n v-if=\"comboboxRootContext.open.value\"\n :position=\"props.position ?? 'popper'\"\n :side-offset=\"props.sideOffset\"\n :force-mount=\"props.forceMount\"\n :body-lock=\"props.bodyLock\"\n :hide-when-empty=\"props.hideWhenEmpty\"\n :side=\"props.side\"\n :side-flip=\"props.sideFlip\"\n :align=\"props.align\"\n :align-offset=\"props.alignOffset\"\n :align-flip=\"props.alignFlip\"\n :avoid-collisions=\"props.avoidCollisions\"\n :collision-boundary=\"props.collisionBoundary\"\n :collision-padding=\"props.collisionPadding\"\n :arrow-padding=\"props.arrowPadding\"\n :hide-shifted-arrow=\"props.hideShiftedArrow\"\n :sticky=\"props.sticky\"\n :hide-when-detached=\"props.hideWhenDetached\"\n :position-strategy=\"props.positionStrategy\"\n :update-position-strategy=\"props.updatePositionStrategy\"\n :disable-update-on-layout-shift=\"props.disableUpdateOnLayoutShift\"\n :prioritize-position=\"props.prioritizePosition\"\n :reference=\"(props.reference as any)\"\n :as=\"props.as\"\n :as-child=\"props.asChild ?? true\"\n :disable-outside-pointer-events=\"props.disableOutsidePointerEvents\"\n data-slot=\"popover\"\n @escape-key-down=\"emit('escape-key-down', $event)\"\n @pointer-down-outside=\"emit('pointer-down-outside', $event)\"\n @focus-outside=\"emit('focus-outside', $event)\"\n @interact-outside=\"emit('interact-outside', $event)\"\n >\n <motion.div\n :class=\"ctx.slots.value.popover()\"\n :initial=\"{ opacity: 0, scale: 0.95 }\"\n :animate=\"{ opacity: 1, scale: 1 }\"\n :exit=\"{ opacity: 0, scale: 0.95 }\"\n :transition=\"{ duration: 0.15 }\"\n >\n <ComboboxViewport\n :nonce=\"props.viewportNonce\"\n :as=\"props.viewportAs\"\n :as-child=\"props.viewportAsChild\"\n data-slot=\"list-box\"\n >\n <slot />\n <slot name=\"empty\" />\n </ComboboxViewport>\n </motion.div>\n </ComboboxContent>\n </AnimatePresence>\n </ComboboxPortal>\n</template>\n"],"mappings":""}
@@ -8,10 +8,97 @@ var ComboBoxContent_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
8
8
  __name: "ComboBoxContent",
9
9
  props: {
10
10
  sideOffset: { default: 8 },
11
- class: { default: void 0 }
11
+ class: { default: void 0 },
12
+ to: { default: void 0 },
13
+ portalDisabled: {
14
+ type: Boolean,
15
+ default: void 0
16
+ },
17
+ defer: {
18
+ type: Boolean,
19
+ default: void 0
20
+ },
21
+ portalForceMount: {
22
+ type: Boolean,
23
+ default: void 0
24
+ },
25
+ forceMount: {
26
+ type: Boolean,
27
+ default: void 0
28
+ },
29
+ position: { default: void 0 },
30
+ bodyLock: {
31
+ type: Boolean,
32
+ default: void 0
33
+ },
34
+ hideWhenEmpty: {
35
+ type: Boolean,
36
+ default: void 0
37
+ },
38
+ side: { default: void 0 },
39
+ sideFlip: {
40
+ type: Boolean,
41
+ default: void 0
42
+ },
43
+ sideOffsetProp: { default: void 0 },
44
+ align: { default: void 0 },
45
+ alignOffset: { default: void 0 },
46
+ alignFlip: {
47
+ type: Boolean,
48
+ default: void 0
49
+ },
50
+ avoidCollisions: {
51
+ type: Boolean,
52
+ default: void 0
53
+ },
54
+ collisionBoundary: { default: void 0 },
55
+ collisionPadding: { default: void 0 },
56
+ arrowPadding: { default: void 0 },
57
+ hideShiftedArrow: {
58
+ type: Boolean,
59
+ default: void 0
60
+ },
61
+ sticky: { default: void 0 },
62
+ hideWhenDetached: {
63
+ type: Boolean,
64
+ default: void 0
65
+ },
66
+ positionStrategy: { default: void 0 },
67
+ updatePositionStrategy: { default: void 0 },
68
+ disableUpdateOnLayoutShift: {
69
+ type: Boolean,
70
+ default: void 0
71
+ },
72
+ prioritizePosition: {
73
+ type: Boolean,
74
+ default: void 0
75
+ },
76
+ reference: { default: void 0 },
77
+ as: { default: void 0 },
78
+ asChild: {
79
+ type: Boolean,
80
+ default: false
81
+ },
82
+ disableOutsidePointerEvents: {
83
+ type: Boolean,
84
+ default: void 0
85
+ },
86
+ viewportNonce: { default: void 0 },
87
+ viewportAs: { default: void 0 },
88
+ viewportAsChild: {
89
+ type: Boolean,
90
+ default: false
91
+ }
12
92
  },
13
- setup(__props) {
93
+ emits: [
94
+ "escape-key-down",
95
+ "pointer-down-outside",
96
+ "focus-outside",
97
+ "interact-outside"
98
+ ],
99
+ setup(__props, { emit: __emit }) {
14
100
  const props = __props;
101
+ const emit = __emit;
15
102
  const ctx = useComboBoxInject();
16
103
  const comboboxRootContext = injectComboboxRootContext();
17
104
  const slots = useSlots();
@@ -49,14 +136,45 @@ var ComboBoxContent_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
49
136
  if (vnodes) walkAndRegister(vnodes);
50
137
  });
51
138
  return (_ctx, _cache) => {
52
- return openBlock(), createBlock(unref(ComboboxPortal), null, {
139
+ return openBlock(), createBlock(unref(ComboboxPortal), {
140
+ to: props.to,
141
+ disabled: props.portalDisabled,
142
+ defer: props.defer,
143
+ "force-mount": props.portalForceMount
144
+ }, {
53
145
  default: withCtx(() => [createVNode(unref(AnimatePresence_default), null, {
54
146
  default: withCtx(() => [unref(comboboxRootContext).open.value ? (openBlock(), createBlock(unref(ComboboxContent), {
55
147
  key: 0,
56
- position: "popper",
148
+ position: props.position ?? "popper",
57
149
  "side-offset": props.sideOffset,
58
- "as-child": "",
59
- "data-slot": "popover"
150
+ "force-mount": props.forceMount,
151
+ "body-lock": props.bodyLock,
152
+ "hide-when-empty": props.hideWhenEmpty,
153
+ side: props.side,
154
+ "side-flip": props.sideFlip,
155
+ align: props.align,
156
+ "align-offset": props.alignOffset,
157
+ "align-flip": props.alignFlip,
158
+ "avoid-collisions": props.avoidCollisions,
159
+ "collision-boundary": props.collisionBoundary,
160
+ "collision-padding": props.collisionPadding,
161
+ "arrow-padding": props.arrowPadding,
162
+ "hide-shifted-arrow": props.hideShiftedArrow,
163
+ sticky: props.sticky,
164
+ "hide-when-detached": props.hideWhenDetached,
165
+ "position-strategy": props.positionStrategy,
166
+ "update-position-strategy": props.updatePositionStrategy,
167
+ "disable-update-on-layout-shift": props.disableUpdateOnLayoutShift,
168
+ "prioritize-position": props.prioritizePosition,
169
+ reference: props.reference,
170
+ as: props.as,
171
+ "as-child": props.asChild ?? true,
172
+ "disable-outside-pointer-events": props.disableOutsidePointerEvents,
173
+ "data-slot": "popover",
174
+ onEscapeKeyDown: _cache[0] || (_cache[0] = ($event) => emit("escape-key-down", $event)),
175
+ onPointerDownOutside: _cache[1] || (_cache[1] = ($event) => emit("pointer-down-outside", $event)),
176
+ onFocusOutside: _cache[2] || (_cache[2] = ($event) => emit("focus-outside", $event)),
177
+ onInteractOutside: _cache[3] || (_cache[3] = ($event) => emit("interact-outside", $event))
60
178
  }, {
61
179
  default: withCtx(() => [createVNode(unref(motion).div, {
62
180
  class: normalizeClass(unref(ctx).slots.value.popover()),
@@ -74,18 +192,58 @@ var ComboBoxContent_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ *
74
192
  },
75
193
  transition: { duration: .15 }
76
194
  }, {
77
- default: withCtx(() => [createVNode(unref(ComboboxViewport), { "data-slot": "list-box" }, {
195
+ default: withCtx(() => [createVNode(unref(ComboboxViewport), {
196
+ nonce: props.viewportNonce,
197
+ as: props.viewportAs,
198
+ "as-child": props.viewportAsChild,
199
+ "data-slot": "list-box"
200
+ }, {
78
201
  default: withCtx(() => [renderSlot(_ctx.$slots, "default"), renderSlot(_ctx.$slots, "empty")]),
79
202
  _: 3
80
- })]),
203
+ }, 8, [
204
+ "nonce",
205
+ "as",
206
+ "as-child"
207
+ ])]),
81
208
  _: 3
82
209
  }, 8, ["class"])]),
83
210
  _: 3
84
- }, 8, ["side-offset"])) : createCommentVNode("", true)]),
211
+ }, 8, [
212
+ "position",
213
+ "side-offset",
214
+ "force-mount",
215
+ "body-lock",
216
+ "hide-when-empty",
217
+ "side",
218
+ "side-flip",
219
+ "align",
220
+ "align-offset",
221
+ "align-flip",
222
+ "avoid-collisions",
223
+ "collision-boundary",
224
+ "collision-padding",
225
+ "arrow-padding",
226
+ "hide-shifted-arrow",
227
+ "sticky",
228
+ "hide-when-detached",
229
+ "position-strategy",
230
+ "update-position-strategy",
231
+ "disable-update-on-layout-shift",
232
+ "prioritize-position",
233
+ "reference",
234
+ "as",
235
+ "as-child",
236
+ "disable-outside-pointer-events"
237
+ ])) : createCommentVNode("", true)]),
85
238
  _: 3
86
239
  })]),
87
240
  _: 3
88
- });
241
+ }, 8, [
242
+ "to",
243
+ "disabled",
244
+ "defer",
245
+ "force-mount"
246
+ ]);
89
247
  };
90
248
  }
91
249
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBoxContent.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/combo-box/ComboBoxContent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ComboboxPortal, ComboboxContent, ComboboxViewport, injectComboboxRootContext } from 'reka-ui'\nimport { motion, AnimatePresence } from 'motion-v'\nimport { useSlots, watchEffect, type VNode } from 'vue'\nimport { useComboBoxInject } from './ComboBox.context'\n\nconst props = withDefaults(defineProps<{\n sideOffset?: number\n class?: string\n}>(), {\n sideOffset: 8,\n class: undefined,\n})\n\nconst ctx = useComboBoxInject()\nconst comboboxRootContext = injectComboboxRootContext()\n\n// Pre-walk slot VNodes to extract value→label pairs synchronously.\n// This runs before the portal opens so the bridge can resolve labels on initial render.\nconst slots = useSlots()\n\nfunction extractNodeText(nodes: VNode[]): string {\n return nodes.map(n => {\n if (typeof n.children === 'string') return n.children\n if (Array.isArray(n.children)) return extractNodeText(n.children as VNode[])\n return ''\n }).join('')\n}\n\nfunction walkAndRegister(nodes: VNode[]) {\n for (const node of nodes) {\n // ComboBoxItem VNodes have a `value` prop; extract their text children\n if (node.props && typeof node.props.value === 'string') {\n const value = node.props.value as string\n const children = node.children\n if (children && typeof children === 'object' && 'default' in children) {\n const slotFn = (children as Record<string, () => VNode[]>).default\n if (typeof slotFn === 'function') {\n const text = extractNodeText(slotFn()).trim()\n if (text) ctx.registerItem(value, text)\n }\n } else if (typeof children === 'string') {\n const text = children.trim()\n if (text) ctx.registerItem(value, text)\n } else if (Array.isArray(children)) {\n const text = extractNodeText(children as VNode[]).trim()\n if (text) ctx.registerItem(value, text)\n }\n }\n // Recurse into children arrays\n if (Array.isArray(node.children)) {\n walkAndRegister(node.children as VNode[])\n }\n }\n}\n\n// Run synchronously at setup time and whenever the slot content changes\nwatchEffect(() => {\n const vnodes = (slots.default as (() => VNode[]) | undefined)?.()\n if (vnodes) walkAndRegister(vnodes)\n})\n</script>\n\n<template>\n <ComboboxPortal>\n <AnimatePresence>\n <ComboboxContent\n v-if=\"comboboxRootContext.open.value\"\n position=\"popper\"\n :side-offset=\"props.sideOffset\"\n as-child\n data-slot=\"popover\"\n >\n <motion.div\n :class=\"ctx.slots.value.popover()\"\n :initial=\"{ opacity: 0, scale: 0.95 }\"\n :animate=\"{ opacity: 1, scale: 1 }\"\n :exit=\"{ opacity: 0, scale: 0.95 }\"\n :transition=\"{ duration: 0.15 }\"\n >\n <ComboboxViewport data-slot=\"list-box\">\n <slot />\n <slot name=\"empty\" />\n </ComboboxViewport>\n </motion.div>\n </ComboboxContent>\n </AnimatePresence>\n </ComboboxPortal>\n</template>\n"],"mappings":";;;;;;;;;;;;;EAMA,MAAM,QAAQ;EAQd,MAAM,MAAM,mBAAkB;EAC9B,MAAM,sBAAsB,2BAA0B;EAItD,MAAM,QAAQ,UAAS;EAEvB,SAAS,gBAAgB,OAAwB;AAC/C,UAAO,MAAM,KAAI,MAAK;AACpB,QAAI,OAAO,EAAE,aAAa,SAAU,QAAO,EAAE;AAC7C,QAAI,MAAM,QAAQ,EAAE,SAAS,CAAE,QAAO,gBAAgB,EAAE,SAAmB;AAC3E,WAAO;KACP,CAAC,KAAK,GAAE;;EAGZ,SAAS,gBAAgB,OAAgB;AACvC,QAAK,MAAM,QAAQ,OAAO;AAExB,QAAI,KAAK,SAAS,OAAO,KAAK,MAAM,UAAU,UAAU;KACtD,MAAM,QAAQ,KAAK,MAAM;KACzB,MAAM,WAAW,KAAK;AACtB,SAAI,YAAY,OAAO,aAAa,YAAY,aAAa,UAAU;MACrE,MAAM,SAAU,SAA2C;AAC3D,UAAI,OAAO,WAAW,YAAY;OAChC,MAAM,OAAO,gBAAgB,QAAQ,CAAC,CAAC,MAAK;AAC5C,WAAI,KAAM,KAAI,aAAa,OAAO,KAAI;;gBAE/B,OAAO,aAAa,UAAU;MACvC,MAAM,OAAO,SAAS,MAAK;AAC3B,UAAI,KAAM,KAAI,aAAa,OAAO,KAAI;gBAC7B,MAAM,QAAQ,SAAS,EAAE;MAClC,MAAM,OAAO,gBAAgB,SAAoB,CAAC,MAAK;AACvD,UAAI,KAAM,KAAI,aAAa,OAAO,KAAI;;;AAI1C,QAAI,MAAM,QAAQ,KAAK,SAAS,CAC9B,iBAAgB,KAAK,SAAmB;;;AAM9C,oBAAkB;GAChB,MAAM,SAAU,MAAM,WAA0C;AAChE,OAAI,OAAQ,iBAAgB,OAAM;IACnC;;uBAIC,YAuBiB,MAAA,eAAA,EAAA,MAAA;2BADG,CArBlB,YAqBkB,MAAA,wBAAA,EAAA,MAAA;4BADE,CAlBV,MAAA,oBAAmB,CAAC,KAAK,SAAA,WAAA,EADjC,YAmBkB,MAAA,gBAAA,EAAA;;MAjBhB,UAAS;MACR,eAAa,MAAM;MACpB,YAAA;MACA,aAAU;;6BAaG,CAXb,YAWa,MAAA,OAAA,CAAA,KAAA;OAVV,OAAK,eAAE,MAAA,IAAG,CAAC,MAAM,MAAM,SAAO,CAAA;OAC9B,SAAS;QAAA,SAAA;QAAA,OAAA;QAA2B;OACpC,SAAS;QAAA,SAAA;QAAA,OAAA;QAAwB;OACjC,MAAM;QAAA,SAAA;QAAA,OAAA;QAA2B;OACjC,YAAY,EAAA,UAAA,KAAkB;;8BAKZ,CAHnB,YAGmB,MAAA,iBAAA,EAAA,EAHD,aAAU,YAAU,EAAA;+BAC5B,CAAR,WAAQ,KAAA,QAAA,UAAA,EACR,WAAqB,KAAA,QAAA,QAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"ComboBoxContent.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/combo-box/ComboBoxContent.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ComboboxPortal, ComboboxContent, ComboboxViewport, injectComboboxRootContext } from 'reka-ui'\nimport { motion, AnimatePresence } from 'motion-v'\nimport { useSlots, watchEffect, type VNode } from 'vue'\nimport { useComboBoxInject } from './ComboBox.context'\n\nconst props = withDefaults(defineProps<{\n sideOffset?: number\n class?: string\n /** Portal target selector or element. */\n to?: string | HTMLElement\n /** Disable the portal. */\n portalDisabled?: boolean\n /** Defer portal rendering. */\n defer?: boolean\n /** Force-mount the portal even when closed. */\n portalForceMount?: boolean\n /** Force-mount the content even when closed. */\n forceMount?: boolean\n /** Positioning strategy: item-aligned or popper. */\n position?: 'inline' | 'popper'\n /** Lock body scroll when open. */\n bodyLock?: boolean\n /** Hide content when there are no items. */\n hideWhenEmpty?: boolean\n /** Side of the anchor to render on. */\n side?: 'top' | 'right' | 'bottom' | 'left'\n /** Flip side when colliding. */\n sideFlip?: boolean\n /** Side offset in pixels. */\n sideOffsetProp?: number\n /** Alignment relative to the anchor. */\n align?: 'start' | 'center' | 'end'\n /** Alignment offset in pixels. */\n alignOffset?: number\n /** Flip alignment when colliding. */\n alignFlip?: boolean\n /** Avoid collisions with boundary. */\n avoidCollisions?: boolean\n /** Boundary element(s) for collision detection. */\n collisionBoundary?: Element | null | Array<Element | null>\n /** Padding from collision boundary. */\n collisionPadding?: number | Partial<Record<'top' | 'right' | 'bottom' | 'left', number>>\n /** Padding from arrow. */\n arrowPadding?: number\n /** Hide arrow when shifted. */\n hideShiftedArrow?: boolean\n /** Sticky behavior on scroll. */\n sticky?: 'partial' | 'always'\n /** Hide when anchor is detached. */\n hideWhenDetached?: boolean\n /** CSS position strategy. */\n positionStrategy?: 'fixed' | 'absolute'\n /** When to update position. */\n updatePositionStrategy?: 'always' | 'optimized'\n /** Disable position updates on layout shift. */\n disableUpdateOnLayoutShift?: boolean\n /** Prioritize keeping content in view. */\n prioritizePosition?: boolean\n /** Custom reference element for positioning. */\n reference?: object | null\n /** Render content as a different element. */\n as?: string\n /** Merge content props onto child element. */\n asChild?: boolean\n /** Disable outside pointer events when open. */\n disableOutsidePointerEvents?: boolean\n /** Nonce for the viewport's inline style. */\n viewportNonce?: string\n /** Render the viewport as a different element. */\n viewportAs?: string\n /** Merge viewport props onto child element. */\n viewportAsChild?: boolean\n}>(), {\n sideOffset: 8,\n class: undefined,\n to: undefined,\n portalDisabled: undefined,\n defer: undefined,\n portalForceMount: undefined,\n forceMount: undefined,\n position: undefined,\n bodyLock: undefined,\n hideWhenEmpty: undefined,\n side: undefined,\n sideFlip: undefined,\n sideOffsetProp: undefined,\n align: undefined,\n alignOffset: undefined,\n alignFlip: undefined,\n avoidCollisions: undefined,\n collisionBoundary: undefined,\n collisionPadding: undefined,\n arrowPadding: undefined,\n hideShiftedArrow: undefined,\n sticky: undefined,\n hideWhenDetached: undefined,\n positionStrategy: undefined,\n updatePositionStrategy: undefined,\n disableUpdateOnLayoutShift: undefined,\n prioritizePosition: undefined,\n reference: undefined,\n as: undefined,\n asChild: false,\n disableOutsidePointerEvents: undefined,\n viewportNonce: undefined,\n viewportAs: undefined,\n viewportAsChild: false,\n})\n\nconst emit = defineEmits<{\n 'escape-key-down': [event: KeyboardEvent]\n 'pointer-down-outside': [event: Event]\n 'focus-outside': [event: Event]\n 'interact-outside': [event: Event]\n}>()\n\nconst ctx = useComboBoxInject()\nconst comboboxRootContext = injectComboboxRootContext()\n\n// Pre-walk slot VNodes to extract value→label pairs synchronously.\n// This runs before the portal opens so the bridge can resolve labels on initial render.\nconst slots = useSlots()\n\nfunction extractNodeText(nodes: VNode[]): string {\n return nodes.map(n => {\n if (typeof n.children === 'string') return n.children\n if (Array.isArray(n.children)) return extractNodeText(n.children as VNode[])\n return ''\n }).join('')\n}\n\nfunction walkAndRegister(nodes: VNode[]) {\n for (const node of nodes) {\n // ComboBoxItem VNodes have a `value` prop; extract their text children\n if (node.props && typeof node.props.value === 'string') {\n const value = node.props.value as string\n const children = node.children\n if (children && typeof children === 'object' && 'default' in children) {\n const slotFn = (children as Record<string, () => VNode[]>).default\n if (typeof slotFn === 'function') {\n const text = extractNodeText(slotFn()).trim()\n if (text) ctx.registerItem(value, text)\n }\n } else if (typeof children === 'string') {\n const text = children.trim()\n if (text) ctx.registerItem(value, text)\n } else if (Array.isArray(children)) {\n const text = extractNodeText(children as VNode[]).trim()\n if (text) ctx.registerItem(value, text)\n }\n }\n // Recurse into children arrays\n if (Array.isArray(node.children)) {\n walkAndRegister(node.children as VNode[])\n }\n }\n}\n\n// Run synchronously at setup time and whenever the slot content changes\nwatchEffect(() => {\n const vnodes = (slots.default as (() => VNode[]) | undefined)?.()\n if (vnodes) walkAndRegister(vnodes)\n})\n</script>\n\n<template>\n <ComboboxPortal\n :to=\"props.to\"\n :disabled=\"props.portalDisabled\"\n :defer=\"props.defer\"\n :force-mount=\"props.portalForceMount\"\n >\n <AnimatePresence>\n <ComboboxContent\n v-if=\"comboboxRootContext.open.value\"\n :position=\"props.position ?? 'popper'\"\n :side-offset=\"props.sideOffset\"\n :force-mount=\"props.forceMount\"\n :body-lock=\"props.bodyLock\"\n :hide-when-empty=\"props.hideWhenEmpty\"\n :side=\"props.side\"\n :side-flip=\"props.sideFlip\"\n :align=\"props.align\"\n :align-offset=\"props.alignOffset\"\n :align-flip=\"props.alignFlip\"\n :avoid-collisions=\"props.avoidCollisions\"\n :collision-boundary=\"props.collisionBoundary\"\n :collision-padding=\"props.collisionPadding\"\n :arrow-padding=\"props.arrowPadding\"\n :hide-shifted-arrow=\"props.hideShiftedArrow\"\n :sticky=\"props.sticky\"\n :hide-when-detached=\"props.hideWhenDetached\"\n :position-strategy=\"props.positionStrategy\"\n :update-position-strategy=\"props.updatePositionStrategy\"\n :disable-update-on-layout-shift=\"props.disableUpdateOnLayoutShift\"\n :prioritize-position=\"props.prioritizePosition\"\n :reference=\"(props.reference as any)\"\n :as=\"props.as\"\n :as-child=\"props.asChild ?? true\"\n :disable-outside-pointer-events=\"props.disableOutsidePointerEvents\"\n data-slot=\"popover\"\n @escape-key-down=\"emit('escape-key-down', $event)\"\n @pointer-down-outside=\"emit('pointer-down-outside', $event)\"\n @focus-outside=\"emit('focus-outside', $event)\"\n @interact-outside=\"emit('interact-outside', $event)\"\n >\n <motion.div\n :class=\"ctx.slots.value.popover()\"\n :initial=\"{ opacity: 0, scale: 0.95 }\"\n :animate=\"{ opacity: 1, scale: 1 }\"\n :exit=\"{ opacity: 0, scale: 0.95 }\"\n :transition=\"{ duration: 0.15 }\"\n >\n <ComboboxViewport\n :nonce=\"props.viewportNonce\"\n :as=\"props.viewportAs\"\n :as-child=\"props.viewportAsChild\"\n data-slot=\"list-box\"\n >\n <slot />\n <slot name=\"empty\" />\n </ComboboxViewport>\n </motion.div>\n </ComboboxContent>\n </AnimatePresence>\n </ComboboxPortal>\n</template>\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBoxEmpty.js","names":[],"sources":["../../../src/components/combo-box/ComboBoxEmpty.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ComboboxEmpty } from 'reka-ui'\n</script>\n\n<template>\n <ComboboxEmpty\n class=\"py-3 text-center text-sm text-default-400\"\n data-slot=\"empty-content\"\n >\n <slot />\n </ComboboxEmpty>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ComboBoxEmpty.js","names":[],"sources":["../../../src/components/combo-box/ComboBoxEmpty.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ComboboxEmpty } from 'reka-ui'\n\nconst props = withDefaults(defineProps<{\n /** Render as a different element or component. */\n as?: string\n /** Merge props onto child element instead of rendering a wrapper. */\n asChild?: boolean\n}>(), {\n as: undefined,\n asChild: false,\n})\n</script>\n\n<template>\n <ComboboxEmpty\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n class=\"py-3 text-center text-sm text-default-400\"\n data-slot=\"empty-content\"\n >\n <slot />\n </ComboboxEmpty>\n</template>\n"],"mappings":""}
@@ -3,15 +3,25 @@ import { ComboboxEmpty } from "reka-ui";
3
3
  //#region src/components/combo-box/ComboBoxEmpty.vue?vue&type=script&setup=true&lang.ts
4
4
  var ComboBoxEmpty_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
5
5
  __name: "ComboBoxEmpty",
6
+ props: {
7
+ as: { default: void 0 },
8
+ asChild: {
9
+ type: Boolean,
10
+ default: false
11
+ }
12
+ },
6
13
  setup(__props) {
14
+ const props = __props;
7
15
  return (_ctx, _cache) => {
8
16
  return openBlock(), createBlock(unref(ComboboxEmpty), {
17
+ as: props.as,
18
+ "as-child": props.asChild,
9
19
  class: "py-3 text-center text-sm text-default-400",
10
20
  "data-slot": "empty-content"
11
21
  }, {
12
22
  default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
13
23
  _: 3
14
- });
24
+ }, 8, ["as", "as-child"]);
15
25
  };
16
26
  }
17
27
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBoxEmpty.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/combo-box/ComboBoxEmpty.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ComboboxEmpty } from 'reka-ui'\n</script>\n\n<template>\n <ComboboxEmpty\n class=\"py-3 text-center text-sm text-default-400\"\n data-slot=\"empty-content\"\n >\n <slot />\n </ComboboxEmpty>\n</template>\n"],"mappings":";;;;;;;uBAKE,YAKgB,MAAA,cAAA,EAAA;IAJd,OAAM;IACN,aAAU;;2BAEF,CAAR,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"ComboBoxEmpty.vue_vue_type_script_setup_true_lang.js","names":[],"sources":["../../../src/components/combo-box/ComboBoxEmpty.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ComboboxEmpty } from 'reka-ui'\n\nconst props = withDefaults(defineProps<{\n /** Render as a different element or component. */\n as?: string\n /** Merge props onto child element instead of rendering a wrapper. */\n asChild?: boolean\n}>(), {\n as: undefined,\n asChild: false,\n})\n</script>\n\n<template>\n <ComboboxEmpty\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n class=\"py-3 text-center text-sm text-default-400\"\n data-slot=\"empty-content\"\n >\n <slot />\n </ComboboxEmpty>\n</template>\n"],"mappings":";;;;;;;;;;;;;EAGA,MAAM,QAAQ;;uBAYZ,YAOgB,MAAA,cAAA,EAAA;IANb,IAAI,MAAM;IACV,YAAU,MAAM;IACjB,OAAM;IACN,aAAU;;2BAEF,CAAR,WAAQ,KAAA,QAAA,UAAA,CAAA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"ComboBoxInput.js","names":[],"sources":["../../../src/components/combo-box/ComboBoxInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxCancel } from 'reka-ui'\nimport { useComboBoxInject } from './ComboBox.context'\n\nconst props = withDefaults(defineProps<{\n placeholder?: string\n class?: string\n}>(), {\n placeholder: undefined,\n class: undefined,\n})\n\nconst ctx = useComboBoxInject()\n</script>\n\n<template>\n <ComboboxAnchor\n :class=\"ctx.slots.value.inputGroup()\"\n data-slot=\"input-group\"\n >\n <ComboboxInput\n :placeholder=\"props.placeholder\"\n :disabled=\"ctx.isDisabled.value\"\n :display-value=\"ctx.displayValue.value\"\n class=\"combo-box__input\"\n data-slot=\"input\"\n autocomplete=\"off\"\n />\n <!-- Clear button: shown when there's input -->\n <ComboboxCancel\n class=\"combo-box__clear-button\"\n data-slot=\"clear-button\"\n aria-label=\"Clear\"\n >\n <slot name=\"clearIcon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <line\n x1=\"18\"\n y1=\"6\"\n x2=\"6\"\n y2=\"18\"\n />\n <line\n x1=\"6\"\n y1=\"6\"\n x2=\"18\"\n y2=\"18\"\n />\n </svg>\n </slot>\n </ComboboxCancel>\n <!-- Dropdown trigger -->\n <ComboboxTrigger\n :class=\"ctx.slots.value.trigger()\"\n data-slot=\"selector-button\"\n aria-label=\"Toggle suggestions\"\n >\n <slot name=\"triggerIcon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n data-slot=\"combo-box-trigger-default-icon\"\n aria-hidden=\"true\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </slot>\n </ComboboxTrigger>\n </ComboboxAnchor>\n</template>\n"],"mappings":""}
1
+ {"version":3,"file":"ComboBoxInput.js","names":[],"sources":["../../../src/components/combo-box/ComboBoxInput.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxCancel } from 'reka-ui'\nimport { useComboBoxInject } from './ComboBox.context'\n\nconst props = withDefaults(defineProps<{\n placeholder?: string\n class?: string\n /** Custom reference element for the anchor. */\n anchorReference?: object | null\n /** Render the anchor as a different element. */\n anchorAs?: string\n /** Merge anchor props onto child element. */\n anchorAsChild?: boolean\n /** Function to compute the display value from the current model value. */\n displayValue?: (value: string) => string\n /** Two-way bound search input value. */\n modelValue?: string\n /** Auto-focus the input on mount. */\n autoFocus?: boolean\n /** Disable the input. Falls back to context isDisabled. */\n disabled?: boolean\n /** Render the input as a different element. */\n as?: string\n /** Merge input props onto child element. */\n asChild?: boolean\n /** Disable the trigger button. */\n triggerDisabled?: boolean\n /** Render the trigger as a different element. */\n triggerAs?: string\n /** Merge trigger props onto child element. */\n triggerAsChild?: boolean\n /** Render the cancel button as a different element. */\n cancelAs?: string\n /** Merge cancel props onto child element. */\n cancelAsChild?: boolean\n}>(), {\n placeholder: undefined,\n class: undefined,\n anchorReference: undefined,\n anchorAs: undefined,\n anchorAsChild: false,\n displayValue: undefined,\n modelValue: undefined,\n autoFocus: false,\n disabled: undefined,\n as: undefined,\n asChild: false,\n triggerDisabled: undefined,\n triggerAs: undefined,\n triggerAsChild: false,\n cancelAs: undefined,\n cancelAsChild: false,\n})\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n}>()\n\nconst ctx = useComboBoxInject()\n</script>\n\n<template>\n <ComboboxAnchor\n :reference=\"(props.anchorReference as any)\"\n :as=\"props.anchorAs\"\n :as-child=\"props.anchorAsChild\"\n :class=\"ctx.slots.value.inputGroup()\"\n data-slot=\"input-group\"\n >\n <ComboboxInput\n :placeholder=\"props.placeholder\"\n :model-value=\"props.modelValue\"\n :auto-focus=\"props.autoFocus\"\n :disabled=\"props.disabled ?? ctx.isDisabled.value\"\n :display-value=\"props.displayValue ?? ctx.displayValue.value\"\n :as=\"props.as\"\n :as-child=\"props.asChild\"\n class=\"combo-box__input\"\n data-slot=\"input\"\n autocomplete=\"off\"\n @update:model-value=\"emit('update:modelValue', $event)\"\n />\n <!-- Clear button: shown when there's input -->\n <ComboboxCancel\n :as=\"props.cancelAs\"\n :as-child=\"props.cancelAsChild\"\n class=\"combo-box__clear-button\"\n data-slot=\"clear-button\"\n aria-label=\"Clear\"\n >\n <slot name=\"clearIcon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2.5\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n >\n <line\n x1=\"18\"\n y1=\"6\"\n x2=\"6\"\n y2=\"18\"\n />\n <line\n x1=\"6\"\n y1=\"6\"\n x2=\"18\"\n y2=\"18\"\n />\n </svg>\n </slot>\n </ComboboxCancel>\n <!-- Dropdown trigger -->\n <ComboboxTrigger\n :disabled=\"props.triggerDisabled\"\n :as=\"props.triggerAs\"\n :as-child=\"props.triggerAsChild\"\n :class=\"ctx.slots.value.trigger()\"\n data-slot=\"selector-button\"\n aria-label=\"Toggle suggestions\"\n >\n <slot name=\"triggerIcon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n data-slot=\"combo-box-trigger-default-icon\"\n aria-hidden=\"true\"\n >\n <polyline points=\"6 9 12 15 18 9\" />\n </svg>\n </slot>\n </ComboboxTrigger>\n </ComboboxAnchor>\n</template>\n"],"mappings":""}
@@ -6,35 +6,89 @@ var ComboBoxInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
6
6
  __name: "ComboBoxInput",
7
7
  props: {
8
8
  placeholder: { default: void 0 },
9
- class: { default: void 0 }
9
+ class: { default: void 0 },
10
+ anchorReference: { default: void 0 },
11
+ anchorAs: { default: void 0 },
12
+ anchorAsChild: {
13
+ type: Boolean,
14
+ default: false
15
+ },
16
+ displayValue: {
17
+ type: Function,
18
+ default: void 0
19
+ },
20
+ modelValue: { default: void 0 },
21
+ autoFocus: {
22
+ type: Boolean,
23
+ default: false
24
+ },
25
+ disabled: {
26
+ type: Boolean,
27
+ default: void 0
28
+ },
29
+ as: { default: void 0 },
30
+ asChild: {
31
+ type: Boolean,
32
+ default: false
33
+ },
34
+ triggerDisabled: {
35
+ type: Boolean,
36
+ default: void 0
37
+ },
38
+ triggerAs: { default: void 0 },
39
+ triggerAsChild: {
40
+ type: Boolean,
41
+ default: false
42
+ },
43
+ cancelAs: { default: void 0 },
44
+ cancelAsChild: {
45
+ type: Boolean,
46
+ default: false
47
+ }
10
48
  },
11
- setup(__props) {
49
+ emits: ["update:modelValue"],
50
+ setup(__props, { emit: __emit }) {
12
51
  const props = __props;
52
+ const emit = __emit;
13
53
  const ctx = useComboBoxInject();
14
54
  return (_ctx, _cache) => {
15
55
  return openBlock(), createBlock(unref(ComboboxAnchor), {
56
+ reference: props.anchorReference,
57
+ as: props.anchorAs,
58
+ "as-child": props.anchorAsChild,
16
59
  class: normalizeClass(unref(ctx).slots.value.inputGroup()),
17
60
  "data-slot": "input-group"
18
61
  }, {
19
62
  default: withCtx(() => [
20
63
  createVNode(unref(ComboboxInput), {
21
64
  placeholder: props.placeholder,
22
- disabled: unref(ctx).isDisabled.value,
23
- "display-value": unref(ctx).displayValue.value,
65
+ "model-value": props.modelValue,
66
+ "auto-focus": props.autoFocus,
67
+ disabled: props.disabled ?? unref(ctx).isDisabled.value,
68
+ "display-value": props.displayValue ?? unref(ctx).displayValue.value,
69
+ as: props.as,
70
+ "as-child": props.asChild,
24
71
  class: "combo-box__input",
25
72
  "data-slot": "input",
26
- autocomplete: "off"
73
+ autocomplete: "off",
74
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => emit("update:modelValue", $event))
27
75
  }, null, 8, [
28
76
  "placeholder",
77
+ "model-value",
78
+ "auto-focus",
29
79
  "disabled",
30
- "display-value"
80
+ "display-value",
81
+ "as",
82
+ "as-child"
31
83
  ]),
32
84
  createVNode(unref(ComboboxCancel), {
85
+ as: props.cancelAs,
86
+ "as-child": props.cancelAsChild,
33
87
  class: "combo-box__clear-button",
34
88
  "data-slot": "clear-button",
35
89
  "aria-label": "Clear"
36
90
  }, {
37
- default: withCtx(() => [renderSlot(_ctx.$slots, "clearIcon", {}, () => [_cache[0] || (_cache[0] = createElementVNode("svg", {
91
+ default: withCtx(() => [renderSlot(_ctx.$slots, "clearIcon", {}, () => [_cache[1] || (_cache[1] = createElementVNode("svg", {
38
92
  xmlns: "http://www.w3.org/2000/svg",
39
93
  width: "10",
40
94
  height: "10",
@@ -57,13 +111,16 @@ var ComboBoxInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
57
111
  y2: "18"
58
112
  })], -1))])]),
59
113
  _: 3
60
- }),
114
+ }, 8, ["as", "as-child"]),
61
115
  createVNode(unref(ComboboxTrigger), {
116
+ disabled: props.triggerDisabled,
117
+ as: props.triggerAs,
118
+ "as-child": props.triggerAsChild,
62
119
  class: normalizeClass(unref(ctx).slots.value.trigger()),
63
120
  "data-slot": "selector-button",
64
121
  "aria-label": "Toggle suggestions"
65
122
  }, {
66
- default: withCtx(() => [renderSlot(_ctx.$slots, "triggerIcon", {}, () => [_cache[1] || (_cache[1] = createElementVNode("svg", {
123
+ default: withCtx(() => [renderSlot(_ctx.$slots, "triggerIcon", {}, () => [_cache[2] || (_cache[2] = createElementVNode("svg", {
67
124
  xmlns: "http://www.w3.org/2000/svg",
68
125
  width: "16",
69
126
  height: "16",
@@ -77,10 +134,20 @@ var ComboBoxInput_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */
77
134
  "aria-hidden": "true"
78
135
  }, [createElementVNode("polyline", { points: "6 9 12 15 18 9" })], -1))])]),
79
136
  _: 3
80
- }, 8, ["class"])
137
+ }, 8, [
138
+ "disabled",
139
+ "as",
140
+ "as-child",
141
+ "class"
142
+ ])
81
143
  ]),
82
144
  _: 3
83
- }, 8, ["class"]);
145
+ }, 8, [
146
+ "reference",
147
+ "as",
148
+ "as-child",
149
+ "class"
150
+ ]);
84
151
  };
85
152
  }
86
153
  });