reka-ui 2.8.2 → 2.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (644) hide show
  1. package/dist/Autocomplete/AutocompleteInput.cjs +128 -0
  2. package/dist/Autocomplete/AutocompleteInput.cjs.map +1 -0
  3. package/dist/Autocomplete/AutocompleteInput.js +122 -0
  4. package/dist/Autocomplete/AutocompleteInput.js.map +1 -0
  5. package/dist/Autocomplete/AutocompleteRoot.cjs +258 -0
  6. package/dist/Autocomplete/AutocompleteRoot.cjs.map +1 -0
  7. package/dist/Autocomplete/AutocompleteRoot.js +246 -0
  8. package/dist/Autocomplete/AutocompleteRoot.js.map +1 -0
  9. package/dist/Calendar/CalendarCellTrigger.cjs +8 -5
  10. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  11. package/dist/Calendar/CalendarCellTrigger.js +9 -6
  12. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  13. package/dist/Calendar/CalendarGrid.cjs +3 -3
  14. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  15. package/dist/Calendar/CalendarGrid.js +4 -4
  16. package/dist/Calendar/CalendarGrid.js.map +1 -1
  17. package/dist/Calendar/CalendarNext.cjs +7 -3
  18. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  19. package/dist/Calendar/CalendarNext.js +7 -3
  20. package/dist/Calendar/CalendarNext.js.map +1 -1
  21. package/dist/Calendar/CalendarPrev.cjs +7 -3
  22. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  23. package/dist/Calendar/CalendarPrev.js +7 -3
  24. package/dist/Calendar/CalendarPrev.js.map +1 -1
  25. package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
  26. package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
  27. package/dist/Checkbox/CheckboxRoot.cjs +21 -10
  28. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  29. package/dist/Checkbox/CheckboxRoot.js +21 -10
  30. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  31. package/dist/ColorArea/ColorAreaArea.cjs +143 -0
  32. package/dist/ColorArea/ColorAreaArea.cjs.map +1 -0
  33. package/dist/ColorArea/ColorAreaArea.js +137 -0
  34. package/dist/ColorArea/ColorAreaArea.js.map +1 -0
  35. package/dist/ColorArea/ColorAreaRoot.cjs +240 -0
  36. package/dist/ColorArea/ColorAreaRoot.cjs.map +1 -0
  37. package/dist/ColorArea/ColorAreaRoot.js +228 -0
  38. package/dist/ColorArea/ColorAreaRoot.js.map +1 -0
  39. package/dist/ColorArea/ColorAreaThumb.cjs +91 -0
  40. package/dist/ColorArea/ColorAreaThumb.cjs.map +1 -0
  41. package/dist/ColorArea/ColorAreaThumb.js +85 -0
  42. package/dist/ColorArea/ColorAreaThumb.js.map +1 -0
  43. package/dist/ColorArea/utils.cjs +32 -0
  44. package/dist/ColorArea/utils.cjs.map +1 -0
  45. package/dist/ColorArea/utils.js +21 -0
  46. package/dist/ColorArea/utils.js.map +1 -0
  47. package/dist/ColorField/ColorFieldInput.cjs +140 -0
  48. package/dist/ColorField/ColorFieldInput.cjs.map +1 -0
  49. package/dist/ColorField/ColorFieldInput.js +134 -0
  50. package/dist/ColorField/ColorFieldInput.js.map +1 -0
  51. package/dist/ColorField/ColorFieldRoot.cjs +281 -0
  52. package/dist/ColorField/ColorFieldRoot.cjs.map +1 -0
  53. package/dist/ColorField/ColorFieldRoot.js +269 -0
  54. package/dist/ColorField/ColorFieldRoot.js.map +1 -0
  55. package/dist/ColorSlider/ColorSliderRoot.cjs +230 -0
  56. package/dist/ColorSlider/ColorSliderRoot.cjs.map +1 -0
  57. package/dist/ColorSlider/ColorSliderRoot.js +218 -0
  58. package/dist/ColorSlider/ColorSliderRoot.js.map +1 -0
  59. package/dist/ColorSlider/ColorSliderThumb.cjs +66 -0
  60. package/dist/ColorSlider/ColorSliderThumb.cjs.map +1 -0
  61. package/dist/ColorSlider/ColorSliderThumb.js +60 -0
  62. package/dist/ColorSlider/ColorSliderThumb.js.map +1 -0
  63. package/dist/ColorSlider/ColorSliderTrack.cjs +55 -0
  64. package/dist/ColorSlider/ColorSliderTrack.cjs.map +1 -0
  65. package/dist/ColorSlider/ColorSliderTrack.js +49 -0
  66. package/dist/ColorSlider/ColorSliderTrack.js.map +1 -0
  67. package/dist/ColorSwatch/ColorSwatch.cjs +106 -0
  68. package/dist/ColorSwatch/ColorSwatch.cjs.map +1 -0
  69. package/dist/ColorSwatch/ColorSwatch.js +100 -0
  70. package/dist/ColorSwatch/ColorSwatch.js.map +1 -0
  71. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.cjs +78 -0
  72. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.cjs.map +1 -0
  73. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.js +66 -0
  74. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.js.map +1 -0
  75. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.cjs +40 -0
  76. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.cjs.map +1 -0
  77. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.js +34 -0
  78. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.js.map +1 -0
  79. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.cjs +43 -0
  80. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.cjs.map +1 -0
  81. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.js +37 -0
  82. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.js.map +1 -0
  83. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.cjs +110 -0
  84. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.cjs.map +1 -0
  85. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.js +104 -0
  86. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.js.map +1 -0
  87. package/dist/Combobox/ComboboxContent.cjs +4 -0
  88. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  89. package/dist/Combobox/ComboboxContent.js +4 -0
  90. package/dist/Combobox/ComboboxContent.js.map +1 -1
  91. package/dist/Combobox/ComboboxContentImpl.cjs +9 -2
  92. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  93. package/dist/Combobox/ComboboxContentImpl.js +9 -2
  94. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  95. package/dist/Combobox/ComboboxInput.cjs +10 -1
  96. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  97. package/dist/Combobox/ComboboxInput.js +10 -1
  98. package/dist/Combobox/ComboboxInput.js.map +1 -1
  99. package/dist/Combobox/ComboboxRoot.cjs +7 -1
  100. package/dist/Combobox/ComboboxRoot.js +2 -2
  101. package/dist/DateField/DateFieldRoot.cjs +1 -1
  102. package/dist/DateField/DateFieldRoot.js +1 -1
  103. package/dist/DateRangeField/DateRangeFieldRoot.cjs +1 -1
  104. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  105. package/dist/DateRangeField/DateRangeFieldRoot.js +1 -1
  106. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  107. package/dist/DismissableLayer/utils.cjs +1 -0
  108. package/dist/DismissableLayer/utils.cjs.map +1 -1
  109. package/dist/DismissableLayer/utils.js +1 -0
  110. package/dist/DismissableLayer/utils.js.map +1 -1
  111. package/dist/DropdownMenu/DropdownMenuFilter.cjs +134 -0
  112. package/dist/DropdownMenu/DropdownMenuFilter.cjs.map +1 -0
  113. package/dist/DropdownMenu/DropdownMenuFilter.js +128 -0
  114. package/dist/DropdownMenu/DropdownMenuFilter.js.map +1 -0
  115. package/dist/Listbox/ListboxRoot.cjs +1 -1
  116. package/dist/Listbox/ListboxRoot.js +1 -1
  117. package/dist/Listbox/ListboxVirtualizer.cjs +1 -1
  118. package/dist/Listbox/ListboxVirtualizer.js +1 -1
  119. package/dist/Menu/MenuContentImpl.cjs +44 -4
  120. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  121. package/dist/Menu/MenuContentImpl.js +44 -4
  122. package/dist/Menu/MenuContentImpl.js.map +1 -1
  123. package/dist/Menu/MenuGroup.cjs +13 -2
  124. package/dist/Menu/MenuGroup.cjs.map +1 -1
  125. package/dist/Menu/MenuGroup.js +8 -3
  126. package/dist/Menu/MenuGroup.js.map +1 -1
  127. package/dist/Menu/MenuItemImpl.cjs +11 -5
  128. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  129. package/dist/Menu/MenuItemImpl.js +12 -6
  130. package/dist/Menu/MenuItemImpl.js.map +1 -1
  131. package/dist/Menu/MenuLabel.cjs +4 -2
  132. package/dist/Menu/MenuLabel.cjs.map +1 -1
  133. package/dist/Menu/MenuLabel.js +5 -3
  134. package/dist/Menu/MenuLabel.js.map +1 -1
  135. package/dist/Menu/MenuSubContent.cjs +8 -2
  136. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  137. package/dist/Menu/MenuSubContent.js +9 -3
  138. package/dist/Menu/MenuSubContent.js.map +1 -1
  139. package/dist/Menu/MenuSubTrigger.cjs +7 -0
  140. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  141. package/dist/Menu/MenuSubTrigger.js +8 -1
  142. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  143. package/dist/MonthPicker/MonthPickerCell.cjs +59 -0
  144. package/dist/MonthPicker/MonthPickerCell.cjs.map +1 -0
  145. package/dist/MonthPicker/MonthPickerCell.js +53 -0
  146. package/dist/MonthPicker/MonthPickerCell.js.map +1 -0
  147. package/dist/MonthPicker/MonthPickerCellTrigger.cjs +197 -0
  148. package/dist/MonthPicker/MonthPickerCellTrigger.cjs.map +1 -0
  149. package/dist/MonthPicker/MonthPickerCellTrigger.js +191 -0
  150. package/dist/MonthPicker/MonthPickerCellTrigger.js.map +1 -0
  151. package/dist/MonthPicker/MonthPickerGrid.cjs +59 -0
  152. package/dist/MonthPicker/MonthPickerGrid.cjs.map +1 -0
  153. package/dist/MonthPicker/MonthPickerGrid.js +53 -0
  154. package/dist/MonthPicker/MonthPickerGrid.js.map +1 -0
  155. package/dist/MonthPicker/MonthPickerGridBody.cjs +41 -0
  156. package/dist/MonthPicker/MonthPickerGridBody.cjs.map +1 -0
  157. package/dist/MonthPicker/MonthPickerGridBody.js +35 -0
  158. package/dist/MonthPicker/MonthPickerGridBody.js.map +1 -0
  159. package/dist/MonthPicker/MonthPickerGridRow.cjs +41 -0
  160. package/dist/MonthPicker/MonthPickerGridRow.cjs.map +1 -0
  161. package/dist/MonthPicker/MonthPickerGridRow.js +35 -0
  162. package/dist/MonthPicker/MonthPickerGridRow.js.map +1 -0
  163. package/dist/MonthPicker/MonthPickerHeader.cjs +41 -0
  164. package/dist/MonthPicker/MonthPickerHeader.cjs.map +1 -0
  165. package/dist/MonthPicker/MonthPickerHeader.js +35 -0
  166. package/dist/MonthPicker/MonthPickerHeader.js.map +1 -0
  167. package/dist/MonthPicker/MonthPickerHeading.cjs +48 -0
  168. package/dist/MonthPicker/MonthPickerHeading.cjs.map +1 -0
  169. package/dist/MonthPicker/MonthPickerHeading.js +42 -0
  170. package/dist/MonthPicker/MonthPickerHeading.js.map +1 -0
  171. package/dist/MonthPicker/MonthPickerNext.cjs +68 -0
  172. package/dist/MonthPicker/MonthPickerNext.cjs.map +1 -0
  173. package/dist/MonthPicker/MonthPickerNext.js +62 -0
  174. package/dist/MonthPicker/MonthPickerNext.js.map +1 -0
  175. package/dist/MonthPicker/MonthPickerPrev.cjs +68 -0
  176. package/dist/MonthPicker/MonthPickerPrev.cjs.map +1 -0
  177. package/dist/MonthPicker/MonthPickerPrev.js +62 -0
  178. package/dist/MonthPicker/MonthPickerPrev.js.map +1 -0
  179. package/dist/MonthPicker/MonthPickerRoot.cjs +281 -0
  180. package/dist/MonthPicker/MonthPickerRoot.cjs.map +1 -0
  181. package/dist/MonthPicker/MonthPickerRoot.js +269 -0
  182. package/dist/MonthPicker/MonthPickerRoot.js.map +1 -0
  183. package/dist/MonthPicker/useMonthPicker.cjs +148 -0
  184. package/dist/MonthPicker/useMonthPicker.cjs.map +1 -0
  185. package/dist/MonthPicker/useMonthPicker.js +136 -0
  186. package/dist/MonthPicker/useMonthPicker.js.map +1 -0
  187. package/dist/MonthRangePicker/MonthRangePickerCell.cjs +59 -0
  188. package/dist/MonthRangePicker/MonthRangePickerCell.cjs.map +1 -0
  189. package/dist/MonthRangePicker/MonthRangePickerCell.js +53 -0
  190. package/dist/MonthRangePicker/MonthRangePickerCell.js.map +1 -0
  191. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.cjs +258 -0
  192. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.cjs.map +1 -0
  193. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.js +252 -0
  194. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.js.map +1 -0
  195. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs +59 -0
  196. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs.map +1 -0
  197. package/dist/MonthRangePicker/MonthRangePickerGrid.js +53 -0
  198. package/dist/MonthRangePicker/MonthRangePickerGrid.js.map +1 -0
  199. package/dist/MonthRangePicker/MonthRangePickerGridBody.cjs +41 -0
  200. package/dist/MonthRangePicker/MonthRangePickerGridBody.cjs.map +1 -0
  201. package/dist/MonthRangePicker/MonthRangePickerGridBody.js +35 -0
  202. package/dist/MonthRangePicker/MonthRangePickerGridBody.js.map +1 -0
  203. package/dist/MonthRangePicker/MonthRangePickerGridRow.cjs +41 -0
  204. package/dist/MonthRangePicker/MonthRangePickerGridRow.cjs.map +1 -0
  205. package/dist/MonthRangePicker/MonthRangePickerGridRow.js +35 -0
  206. package/dist/MonthRangePicker/MonthRangePickerGridRow.js.map +1 -0
  207. package/dist/MonthRangePicker/MonthRangePickerHeader.cjs +41 -0
  208. package/dist/MonthRangePicker/MonthRangePickerHeader.cjs.map +1 -0
  209. package/dist/MonthRangePicker/MonthRangePickerHeader.js +35 -0
  210. package/dist/MonthRangePicker/MonthRangePickerHeader.js.map +1 -0
  211. package/dist/MonthRangePicker/MonthRangePickerHeading.cjs +48 -0
  212. package/dist/MonthRangePicker/MonthRangePickerHeading.cjs.map +1 -0
  213. package/dist/MonthRangePicker/MonthRangePickerHeading.js +42 -0
  214. package/dist/MonthRangePicker/MonthRangePickerHeading.js.map +1 -0
  215. package/dist/MonthRangePicker/MonthRangePickerNext.cjs +68 -0
  216. package/dist/MonthRangePicker/MonthRangePickerNext.cjs.map +1 -0
  217. package/dist/MonthRangePicker/MonthRangePickerNext.js +62 -0
  218. package/dist/MonthRangePicker/MonthRangePickerNext.js.map +1 -0
  219. package/dist/MonthRangePicker/MonthRangePickerPrev.cjs +68 -0
  220. package/dist/MonthRangePicker/MonthRangePickerPrev.cjs.map +1 -0
  221. package/dist/MonthRangePicker/MonthRangePickerPrev.js +62 -0
  222. package/dist/MonthRangePicker/MonthRangePickerPrev.js.map +1 -0
  223. package/dist/MonthRangePicker/MonthRangePickerRoot.cjs +347 -0
  224. package/dist/MonthRangePicker/MonthRangePickerRoot.cjs.map +1 -0
  225. package/dist/MonthRangePicker/MonthRangePickerRoot.js +335 -0
  226. package/dist/MonthRangePicker/MonthRangePickerRoot.js.map +1 -0
  227. package/dist/MonthRangePicker/useRangeMonthPicker.cjs +128 -0
  228. package/dist/MonthRangePicker/useRangeMonthPicker.cjs.map +1 -0
  229. package/dist/MonthRangePicker/useRangeMonthPicker.js +122 -0
  230. package/dist/MonthRangePicker/useRangeMonthPicker.js.map +1 -0
  231. package/dist/NavigationMenu/NavigationMenuItem.js +3 -3
  232. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  233. package/dist/NumberField/NumberFieldRoot.cjs +3 -2
  234. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  235. package/dist/NumberField/NumberFieldRoot.js +3 -2
  236. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  237. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  238. package/dist/Progress/ProgressRoot.js.map +1 -1
  239. package/dist/RadioGroup/RadioGroupRoot.cjs +1 -1
  240. package/dist/RadioGroup/RadioGroupRoot.js +1 -1
  241. package/dist/RangeCalendar/RangeCalendarGrid.cjs +3 -3
  242. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  243. package/dist/RangeCalendar/RangeCalendarGrid.js +4 -4
  244. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  245. package/dist/RangeCalendar/RangeCalendarNext.cjs +9 -5
  246. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  247. package/dist/RangeCalendar/RangeCalendarNext.js +9 -5
  248. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  249. package/dist/RangeCalendar/RangeCalendarPrev.cjs +9 -5
  250. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  251. package/dist/RangeCalendar/RangeCalendarPrev.js +9 -5
  252. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  253. package/dist/RangeCalendar/RangeCalendarRoot.cjs +1 -1
  254. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  255. package/dist/RangeCalendar/RangeCalendarRoot.js +1 -1
  256. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  257. package/dist/RangeCalendar/useRangeCalendar.cjs +9 -13
  258. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  259. package/dist/RangeCalendar/useRangeCalendar.js +9 -13
  260. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  261. package/dist/Splitter/SplitterGroup.cjs +156 -36
  262. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  263. package/dist/Splitter/SplitterGroup.js +156 -36
  264. package/dist/Splitter/SplitterGroup.js.map +1 -1
  265. package/dist/Splitter/SplitterPanel.cjs +7 -2
  266. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  267. package/dist/Splitter/SplitterPanel.js +7 -2
  268. package/dist/Splitter/SplitterPanel.js.map +1 -1
  269. package/dist/Switch/SwitchRoot.cjs +23 -9
  270. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  271. package/dist/Switch/SwitchRoot.js +23 -9
  272. package/dist/Switch/SwitchRoot.js.map +1 -1
  273. package/dist/Switch/SwitchThumb.cjs +1 -1
  274. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  275. package/dist/Switch/SwitchThumb.js +1 -1
  276. package/dist/Switch/SwitchThumb.js.map +1 -1
  277. package/dist/TimeField/TimeFieldRoot.cjs +1 -1
  278. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  279. package/dist/TimeField/TimeFieldRoot.js +1 -1
  280. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  281. package/dist/TimeRangeField/TimeRangeFieldInput.cjs +102 -0
  282. package/dist/TimeRangeField/TimeRangeFieldInput.cjs.map +1 -0
  283. package/dist/TimeRangeField/TimeRangeFieldInput.js +96 -0
  284. package/dist/TimeRangeField/TimeRangeFieldInput.js.map +1 -0
  285. package/dist/TimeRangeField/TimeRangeFieldRoot.cjs +402 -0
  286. package/dist/TimeRangeField/TimeRangeFieldRoot.cjs.map +1 -0
  287. package/dist/TimeRangeField/TimeRangeFieldRoot.js +390 -0
  288. package/dist/TimeRangeField/TimeRangeFieldRoot.js.map +1 -0
  289. package/dist/Toast/FocusProxy.cjs +0 -1
  290. package/dist/Toast/FocusProxy.cjs.map +1 -1
  291. package/dist/Toast/FocusProxy.js +0 -1
  292. package/dist/Toast/FocusProxy.js.map +1 -1
  293. package/dist/Toast/ToastAnnounce.cjs +4 -1
  294. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  295. package/dist/Toast/ToastAnnounce.js +4 -1
  296. package/dist/Toast/ToastAnnounce.js.map +1 -1
  297. package/dist/Toast/ToastRootImpl.cjs +1 -5
  298. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  299. package/dist/Toast/ToastRootImpl.js +1 -5
  300. package/dist/Toast/ToastRootImpl.js.map +1 -1
  301. package/dist/ToggleGroup/ToggleGroupRoot.cjs +1 -1
  302. package/dist/ToggleGroup/ToggleGroupRoot.js +1 -1
  303. package/dist/Tooltip/TooltipContent.cjs +1 -2
  304. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  305. package/dist/Tooltip/TooltipContent.js +1 -2
  306. package/dist/Tooltip/TooltipContent.js.map +1 -1
  307. package/dist/Tooltip/TooltipContentImpl.cjs +25 -18
  308. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  309. package/dist/Tooltip/TooltipContentImpl.js +25 -18
  310. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  311. package/dist/Tooltip/TooltipProvider.cjs +7 -2
  312. package/dist/Tooltip/TooltipProvider.cjs.map +1 -1
  313. package/dist/Tooltip/TooltipProvider.js +7 -2
  314. package/dist/Tooltip/TooltipProvider.js.map +1 -1
  315. package/dist/YearPicker/YearPickerCell.cjs +59 -0
  316. package/dist/YearPicker/YearPickerCell.cjs.map +1 -0
  317. package/dist/YearPicker/YearPickerCell.js +53 -0
  318. package/dist/YearPicker/YearPickerCell.js.map +1 -0
  319. package/dist/YearPicker/YearPickerCellTrigger.cjs +197 -0
  320. package/dist/YearPicker/YearPickerCellTrigger.cjs.map +1 -0
  321. package/dist/YearPicker/YearPickerCellTrigger.js +191 -0
  322. package/dist/YearPicker/YearPickerCellTrigger.js.map +1 -0
  323. package/dist/YearPicker/YearPickerGrid.cjs +59 -0
  324. package/dist/YearPicker/YearPickerGrid.cjs.map +1 -0
  325. package/dist/YearPicker/YearPickerGrid.js +53 -0
  326. package/dist/YearPicker/YearPickerGrid.js.map +1 -0
  327. package/dist/YearPicker/YearPickerGridBody.cjs +41 -0
  328. package/dist/YearPicker/YearPickerGridBody.cjs.map +1 -0
  329. package/dist/YearPicker/YearPickerGridBody.js +35 -0
  330. package/dist/YearPicker/YearPickerGridBody.js.map +1 -0
  331. package/dist/YearPicker/YearPickerGridRow.cjs +41 -0
  332. package/dist/YearPicker/YearPickerGridRow.cjs.map +1 -0
  333. package/dist/YearPicker/YearPickerGridRow.js +35 -0
  334. package/dist/YearPicker/YearPickerGridRow.js.map +1 -0
  335. package/dist/YearPicker/YearPickerHeader.cjs +41 -0
  336. package/dist/YearPicker/YearPickerHeader.cjs.map +1 -0
  337. package/dist/YearPicker/YearPickerHeader.js +35 -0
  338. package/dist/YearPicker/YearPickerHeader.js.map +1 -0
  339. package/dist/YearPicker/YearPickerHeading.cjs +48 -0
  340. package/dist/YearPicker/YearPickerHeading.cjs.map +1 -0
  341. package/dist/YearPicker/YearPickerHeading.js +42 -0
  342. package/dist/YearPicker/YearPickerHeading.js.map +1 -0
  343. package/dist/YearPicker/YearPickerNext.cjs +68 -0
  344. package/dist/YearPicker/YearPickerNext.cjs.map +1 -0
  345. package/dist/YearPicker/YearPickerNext.js +62 -0
  346. package/dist/YearPicker/YearPickerNext.js.map +1 -0
  347. package/dist/YearPicker/YearPickerPrev.cjs +68 -0
  348. package/dist/YearPicker/YearPickerPrev.cjs.map +1 -0
  349. package/dist/YearPicker/YearPickerPrev.js +62 -0
  350. package/dist/YearPicker/YearPickerPrev.js.map +1 -0
  351. package/dist/YearPicker/YearPickerRoot.cjs +287 -0
  352. package/dist/YearPicker/YearPickerRoot.cjs.map +1 -0
  353. package/dist/YearPicker/YearPickerRoot.js +275 -0
  354. package/dist/YearPicker/YearPickerRoot.js.map +1 -0
  355. package/dist/YearPicker/useYearPicker.cjs +180 -0
  356. package/dist/YearPicker/useYearPicker.cjs.map +1 -0
  357. package/dist/YearPicker/useYearPicker.js +168 -0
  358. package/dist/YearPicker/useYearPicker.js.map +1 -0
  359. package/dist/YearRangePicker/YearRangePickerCell.cjs +59 -0
  360. package/dist/YearRangePicker/YearRangePickerCell.cjs.map +1 -0
  361. package/dist/YearRangePicker/YearRangePickerCell.js +53 -0
  362. package/dist/YearRangePicker/YearRangePickerCell.js.map +1 -0
  363. package/dist/YearRangePicker/YearRangePickerCellTrigger.cjs +256 -0
  364. package/dist/YearRangePicker/YearRangePickerCellTrigger.cjs.map +1 -0
  365. package/dist/YearRangePicker/YearRangePickerCellTrigger.js +250 -0
  366. package/dist/YearRangePicker/YearRangePickerCellTrigger.js.map +1 -0
  367. package/dist/YearRangePicker/YearRangePickerGrid.cjs +59 -0
  368. package/dist/YearRangePicker/YearRangePickerGrid.cjs.map +1 -0
  369. package/dist/YearRangePicker/YearRangePickerGrid.js +53 -0
  370. package/dist/YearRangePicker/YearRangePickerGrid.js.map +1 -0
  371. package/dist/YearRangePicker/YearRangePickerGridBody.cjs +41 -0
  372. package/dist/YearRangePicker/YearRangePickerGridBody.cjs.map +1 -0
  373. package/dist/YearRangePicker/YearRangePickerGridBody.js +35 -0
  374. package/dist/YearRangePicker/YearRangePickerGridBody.js.map +1 -0
  375. package/dist/YearRangePicker/YearRangePickerGridRow.cjs +41 -0
  376. package/dist/YearRangePicker/YearRangePickerGridRow.cjs.map +1 -0
  377. package/dist/YearRangePicker/YearRangePickerGridRow.js +35 -0
  378. package/dist/YearRangePicker/YearRangePickerGridRow.js.map +1 -0
  379. package/dist/YearRangePicker/YearRangePickerHeader.cjs +41 -0
  380. package/dist/YearRangePicker/YearRangePickerHeader.cjs.map +1 -0
  381. package/dist/YearRangePicker/YearRangePickerHeader.js +35 -0
  382. package/dist/YearRangePicker/YearRangePickerHeader.js.map +1 -0
  383. package/dist/YearRangePicker/YearRangePickerHeading.cjs +48 -0
  384. package/dist/YearRangePicker/YearRangePickerHeading.cjs.map +1 -0
  385. package/dist/YearRangePicker/YearRangePickerHeading.js +42 -0
  386. package/dist/YearRangePicker/YearRangePickerHeading.js.map +1 -0
  387. package/dist/YearRangePicker/YearRangePickerNext.cjs +68 -0
  388. package/dist/YearRangePicker/YearRangePickerNext.cjs.map +1 -0
  389. package/dist/YearRangePicker/YearRangePickerNext.js +62 -0
  390. package/dist/YearRangePicker/YearRangePickerNext.js.map +1 -0
  391. package/dist/YearRangePicker/YearRangePickerPrev.cjs +68 -0
  392. package/dist/YearRangePicker/YearRangePickerPrev.cjs.map +1 -0
  393. package/dist/YearRangePicker/YearRangePickerPrev.js +62 -0
  394. package/dist/YearRangePicker/YearRangePickerPrev.js.map +1 -0
  395. package/dist/YearRangePicker/YearRangePickerRoot.cjs +350 -0
  396. package/dist/YearRangePicker/YearRangePickerRoot.cjs.map +1 -0
  397. package/dist/YearRangePicker/YearRangePickerRoot.js +338 -0
  398. package/dist/YearRangePicker/YearRangePickerRoot.js.map +1 -0
  399. package/dist/YearRangePicker/useRangeYearPicker.cjs +128 -0
  400. package/dist/YearRangePicker/useRangeYearPicker.cjs.map +1 -0
  401. package/dist/YearRangePicker/useRangeYearPicker.js +122 -0
  402. package/dist/YearRangePicker/useRangeYearPicker.js.map +1 -0
  403. package/dist/color/channel.cjs +378 -0
  404. package/dist/color/channel.cjs.map +1 -0
  405. package/dist/color/channel.js +349 -0
  406. package/dist/color/channel.js.map +1 -0
  407. package/dist/color/convert.cjs +285 -0
  408. package/dist/color/convert.cjs.map +1 -0
  409. package/dist/color/convert.js +237 -0
  410. package/dist/color/convert.js.map +1 -0
  411. package/dist/color/gradient.cjs +377 -0
  412. package/dist/color/gradient.cjs.map +1 -0
  413. package/dist/color/gradient.js +354 -0
  414. package/dist/color/gradient.js.map +1 -0
  415. package/dist/color/parse.cjs +113 -0
  416. package/dist/color/parse.cjs.map +1 -0
  417. package/dist/color/parse.js +95 -0
  418. package/dist/color/parse.js.map +1 -0
  419. package/dist/color/utils.cjs +112 -0
  420. package/dist/color/utils.cjs.map +1 -0
  421. package/dist/color/utils.js +100 -0
  422. package/dist/color/utils.js.map +1 -0
  423. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +11 -7
  424. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  425. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +11 -7
  426. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  427. package/dist/constant/components.cjs +87 -1
  428. package/dist/constant/components.cjs.map +1 -1
  429. package/dist/constant/components.js +87 -1
  430. package/dist/constant/components.js.map +1 -1
  431. package/dist/constant.d.cts +12 -1
  432. package/dist/constant.d.cts.map +1 -1
  433. package/dist/constant.d.ts +12 -1
  434. package/dist/constant.d.ts.map +1 -1
  435. package/dist/date/calendar.cjs +41 -0
  436. package/dist/date/calendar.cjs.map +1 -1
  437. package/dist/date/calendar.js +30 -1
  438. package/dist/date/calendar.js.map +1 -1
  439. package/dist/date/comparators.cjs +129 -0
  440. package/dist/date/comparators.cjs.map +1 -1
  441. package/dist/date/comparators.js +76 -1
  442. package/dist/date/comparators.js.map +1 -1
  443. package/dist/date/useDateField.cjs +1 -1
  444. package/dist/date/useDateField.cjs.map +1 -1
  445. package/dist/date/useDateField.js +1 -1
  446. package/dist/date/useDateField.js.map +1 -1
  447. package/dist/date.cjs +11 -0
  448. package/dist/date.d.cts +2 -2
  449. package/dist/date.d.ts +2 -2
  450. package/dist/date.js +3 -3
  451. package/dist/index.cjs +217 -47
  452. package/dist/index.d.cts +3 -8834
  453. package/dist/index.d.ts +3 -8834
  454. package/dist/index.js +117 -48
  455. package/dist/index2.d.cts +58 -2
  456. package/dist/index2.d.cts.map +1 -1
  457. package/dist/index2.d.ts +58 -2
  458. package/dist/index2.d.ts.map +1 -1
  459. package/dist/index3.d.cts +11062 -0
  460. package/dist/index3.d.cts.map +1 -0
  461. package/dist/index3.d.ts +11062 -0
  462. package/dist/index3.d.ts.map +1 -0
  463. package/dist/internal.cjs +81 -0
  464. package/dist/internal.d.cts +20 -0
  465. package/dist/internal.d.cts.map +1 -0
  466. package/dist/internal.d.ts +20 -0
  467. package/dist/internal.d.ts.map +1 -0
  468. package/dist/internal.js +64 -0
  469. package/dist/internal2.cjs +0 -0
  470. package/dist/internal2.js +0 -0
  471. package/dist/namespaced/index.cjs +33 -1
  472. package/dist/namespaced/index.d.cts +32 -4
  473. package/dist/namespaced/index.d.mts +32 -4
  474. package/dist/namespaced/index.mjs +32 -4
  475. package/dist/shared/useArrowNavigation.cjs +4 -2
  476. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  477. package/dist/shared/useArrowNavigation.js +4 -2
  478. package/dist/shared/useArrowNavigation.js.map +1 -1
  479. package/dist/shared/useBodyScrollLock.cjs +1 -0
  480. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  481. package/dist/shared/useBodyScrollLock.js +1 -0
  482. package/dist/shared/useBodyScrollLock.js.map +1 -1
  483. package/dist/shared/useForwardExpose.cjs +6 -2
  484. package/dist/shared/useForwardExpose.cjs.map +1 -1
  485. package/dist/shared/useForwardExpose.js +7 -3
  486. package/dist/shared/useForwardExpose.js.map +1 -1
  487. package/dist/shared/useHideOthers.cjs +1 -1
  488. package/dist/shared/useHideOthers.cjs.map +1 -1
  489. package/dist/shared/useHideOthers.js +1 -1
  490. package/dist/shared/useHideOthers.js.map +1 -1
  491. package/dist/shared/useId.cjs +7 -4
  492. package/dist/shared/useId.cjs.map +1 -1
  493. package/dist/shared/useId.js +7 -4
  494. package/dist/shared/useId.js.map +1 -1
  495. package/dist/utils/callPanelCallbacks.cjs +10 -7
  496. package/dist/utils/callPanelCallbacks.cjs.map +1 -1
  497. package/dist/utils/callPanelCallbacks.js +10 -7
  498. package/dist/utils/callPanelCallbacks.js.map +1 -1
  499. package/dist/utils/storage.cjs +7 -1
  500. package/dist/utils/storage.cjs.map +1 -1
  501. package/dist/utils/storage.js +7 -1
  502. package/dist/utils/storage.js.map +1 -1
  503. package/dist/utils/units.cjs +101 -0
  504. package/dist/utils/units.cjs.map +1 -0
  505. package/dist/utils/units.js +83 -0
  506. package/dist/utils/units.js.map +1 -0
  507. package/package.json +7 -3
  508. package/src/Autocomplete/AutocompleteInput.vue +112 -0
  509. package/src/Autocomplete/AutocompleteRoot.vue +272 -0
  510. package/src/Autocomplete/index.ts +72 -0
  511. package/src/Calendar/CalendarCellTrigger.vue +2 -1
  512. package/src/Calendar/CalendarGrid.vue +6 -1
  513. package/src/Calendar/CalendarNext.vue +8 -2
  514. package/src/Calendar/CalendarPrev.vue +8 -2
  515. package/src/Calendar/CalendarRoot.vue +1 -1
  516. package/src/Checkbox/CheckboxRoot.vue +32 -13
  517. package/src/ColorArea/ColorAreaArea.vue +145 -0
  518. package/src/ColorArea/ColorAreaRoot.vue +255 -0
  519. package/src/ColorArea/ColorAreaThumb.vue +75 -0
  520. package/src/ColorArea/index.ts +14 -0
  521. package/src/ColorArea/utils.ts +24 -0
  522. package/src/ColorField/ColorFieldInput.vue +133 -0
  523. package/src/ColorField/ColorFieldRoot.vue +326 -0
  524. package/src/ColorField/index.ts +10 -0
  525. package/src/ColorSlider/ColorSliderRoot.vue +224 -0
  526. package/src/ColorSlider/ColorSliderThumb.vue +54 -0
  527. package/src/ColorSlider/ColorSliderTrack.vue +36 -0
  528. package/src/ColorSlider/index.ts +14 -0
  529. package/src/ColorSlider/utils.ts +39 -0
  530. package/src/ColorSwatch/ColorSwatch.vue +97 -0
  531. package/src/ColorSwatch/index.ts +4 -0
  532. package/src/ColorSwatchPicker/ColorSwatchPickerItem.vue +60 -0
  533. package/src/ColorSwatchPicker/ColorSwatchPickerItemIndicator.vue +17 -0
  534. package/src/ColorSwatchPicker/ColorSwatchPickerItemSwatch.vue +21 -0
  535. package/src/ColorSwatchPicker/ColorSwatchPickerRoot.vue +50 -0
  536. package/src/ColorSwatchPicker/index.ts +17 -0
  537. package/src/Combobox/ComboboxContentImpl.vue +13 -1
  538. package/src/Combobox/ComboboxInput.vue +19 -0
  539. package/src/DateField/DateFieldRoot.vue +1 -1
  540. package/src/DateRangeField/DateRangeFieldRoot.vue +11 -4
  541. package/src/DismissableLayer/utils.ts +5 -3
  542. package/src/DropdownMenu/DropdownMenuFilter.vue +119 -0
  543. package/src/DropdownMenu/index.ts +5 -0
  544. package/src/Menu/MenuContentImpl.vue +68 -2
  545. package/src/Menu/MenuGroup.vue +12 -0
  546. package/src/Menu/MenuItemImpl.vue +15 -10
  547. package/src/Menu/MenuLabel.vue +7 -1
  548. package/src/Menu/MenuSubContent.vue +14 -3
  549. package/src/Menu/MenuSubTrigger.vue +13 -1
  550. package/src/MonthPicker/MonthPickerCell.vue +30 -0
  551. package/src/MonthPicker/MonthPickerCellTrigger.vue +214 -0
  552. package/src/MonthPicker/MonthPickerGrid.vue +37 -0
  553. package/src/MonthPicker/MonthPickerGridBody.vue +17 -0
  554. package/src/MonthPicker/MonthPickerGridRow.vue +20 -0
  555. package/src/MonthPicker/MonthPickerHeader.vue +17 -0
  556. package/src/MonthPicker/MonthPickerHeading.vue +35 -0
  557. package/src/MonthPicker/MonthPickerNext.vue +52 -0
  558. package/src/MonthPicker/MonthPickerPrev.vue +52 -0
  559. package/src/MonthPicker/MonthPickerRoot.vue +311 -0
  560. package/src/MonthPicker/index.ts +42 -0
  561. package/src/MonthPicker/useMonthPicker.ts +193 -0
  562. package/src/MonthRangePicker/MonthRangePickerCell.vue +30 -0
  563. package/src/MonthRangePicker/MonthRangePickerCellTrigger.vue +309 -0
  564. package/src/MonthRangePicker/MonthRangePickerGrid.vue +37 -0
  565. package/src/MonthRangePicker/MonthRangePickerGridBody.vue +17 -0
  566. package/src/MonthRangePicker/MonthRangePickerGridRow.vue +20 -0
  567. package/src/MonthRangePicker/MonthRangePickerHeader.vue +17 -0
  568. package/src/MonthRangePicker/MonthRangePickerHeading.vue +35 -0
  569. package/src/MonthRangePicker/MonthRangePickerNext.vue +52 -0
  570. package/src/MonthRangePicker/MonthRangePickerPrev.vue +52 -0
  571. package/src/MonthRangePicker/MonthRangePickerRoot.vue +391 -0
  572. package/src/MonthRangePicker/index.ts +42 -0
  573. package/src/MonthRangePicker/useRangeMonthPicker.ts +165 -0
  574. package/src/NumberField/NumberFieldRoot.vue +2 -1
  575. package/src/Progress/ProgressRoot.vue +3 -1
  576. package/src/RangeCalendar/RangeCalendarGrid.vue +6 -1
  577. package/src/RangeCalendar/RangeCalendarNext.vue +10 -4
  578. package/src/RangeCalendar/RangeCalendarPrev.vue +10 -4
  579. package/src/RangeCalendar/RangeCalendarRoot.vue +2 -2
  580. package/src/RangeCalendar/useRangeCalendar.ts +5 -8
  581. package/src/Splitter/SplitterGroup.vue +243 -54
  582. package/src/Splitter/SplitterPanel.vue +11 -6
  583. package/src/Splitter/utils/callPanelCallbacks.ts +16 -8
  584. package/src/Splitter/utils/composables/useWindowSplitterPanelGroupBehavior.ts +16 -6
  585. package/src/Splitter/utils/storage.ts +14 -0
  586. package/src/Splitter/utils/units.ts +161 -0
  587. package/src/Splitter/utils/validation.ts +3 -2
  588. package/src/Switch/SwitchRoot.vue +36 -19
  589. package/src/Switch/SwitchThumb.vue +1 -1
  590. package/src/TimeField/TimeFieldRoot.vue +0 -3
  591. package/src/TimeRangeField/TimeRangeFieldInput.vue +74 -0
  592. package/src/TimeRangeField/TimeRangeFieldRoot.vue +473 -0
  593. package/src/TimeRangeField/index.ts +2 -0
  594. package/src/Toast/FocusProxy.vue +0 -1
  595. package/src/Toast/ToastAnnounce.vue +4 -1
  596. package/src/Toast/ToastRootImpl.vue +0 -4
  597. package/src/Tooltip/TooltipContent.vue +1 -3
  598. package/src/Tooltip/TooltipContentImpl.vue +18 -10
  599. package/src/Tooltip/TooltipProvider.vue +8 -1
  600. package/src/YearPicker/YearPickerCell.vue +30 -0
  601. package/src/YearPicker/YearPickerCellTrigger.vue +218 -0
  602. package/src/YearPicker/YearPickerGrid.vue +37 -0
  603. package/src/YearPicker/YearPickerGridBody.vue +17 -0
  604. package/src/YearPicker/YearPickerGridRow.vue +20 -0
  605. package/src/YearPicker/YearPickerHeader.vue +17 -0
  606. package/src/YearPicker/YearPickerHeading.vue +35 -0
  607. package/src/YearPicker/YearPickerNext.vue +52 -0
  608. package/src/YearPicker/YearPickerPrev.vue +52 -0
  609. package/src/YearPicker/YearPickerRoot.vue +314 -0
  610. package/src/YearPicker/index.ts +42 -0
  611. package/src/YearPicker/useYearPicker.ts +202 -0
  612. package/src/YearRangePicker/YearRangePickerCell.vue +30 -0
  613. package/src/YearRangePicker/YearRangePickerCellTrigger.vue +311 -0
  614. package/src/YearRangePicker/YearRangePickerGrid.vue +37 -0
  615. package/src/YearRangePicker/YearRangePickerGridBody.vue +17 -0
  616. package/src/YearRangePicker/YearRangePickerGridRow.vue +20 -0
  617. package/src/YearRangePicker/YearRangePickerHeader.vue +17 -0
  618. package/src/YearRangePicker/YearRangePickerHeading.vue +35 -0
  619. package/src/YearRangePicker/YearRangePickerNext.vue +52 -0
  620. package/src/YearRangePicker/YearRangePickerPrev.vue +52 -0
  621. package/src/YearRangePicker/YearRangePickerRoot.vue +391 -0
  622. package/src/YearRangePicker/index.ts +42 -0
  623. package/src/YearRangePicker/useRangeYearPicker.ts +165 -0
  624. package/src/date/calendar.ts +29 -0
  625. package/src/date/comparators.ts +97 -0
  626. package/src/index.ts +41 -0
  627. package/src/internal.ts +7 -0
  628. package/src/shared/color/channel.ts +424 -0
  629. package/src/shared/color/convert.ts +293 -0
  630. package/src/shared/color/gradient.ts +347 -0
  631. package/src/shared/color/index.ts +35 -0
  632. package/src/shared/color/parse.ts +140 -0
  633. package/src/shared/color/types.ts +40 -0
  634. package/src/shared/color/utils.ts +143 -0
  635. package/src/shared/date/types.ts +6 -0
  636. package/src/shared/date/useDateField.ts +39 -40
  637. package/src/shared/macro.ts +11 -0
  638. package/src/shared/useArrowNavigation.ts +8 -2
  639. package/src/shared/useBodyScrollLock.ts +2 -0
  640. package/src/shared/useForwardExpose.ts +20 -5
  641. package/src/shared/useHideOthers.ts +2 -1
  642. package/src/shared/useId.ts +6 -7
  643. package/dist/index.d.cts.map +0 -1
  644. package/dist/index.d.ts.map +0 -1
@@ -0,0 +1,112 @@
1
+ <script lang="ts">
2
+ import type { ListboxFilterEmits, ListboxFilterProps } from '@/Listbox'
3
+
4
+ export type AutocompleteInputEmits = ListboxFilterEmits
5
+ export interface AutocompleteInputProps extends ListboxFilterProps {}
6
+ </script>
7
+
8
+ <script setup lang="ts">
9
+ import { useVModel } from '@vueuse/core'
10
+ import { nextTick, onMounted, watch } from 'vue'
11
+ import { injectComboboxRootContext } from '@/Combobox/ComboboxRoot.vue'
12
+ import { ListboxFilter } from '@/Listbox'
13
+ import { injectListboxRootContext } from '@/Listbox/ListboxRoot.vue'
14
+ import { usePrimitiveElement } from '@/Primitive'
15
+ import { injectAutocompleteRootContext } from './AutocompleteRoot.vue'
16
+
17
+ const props = withDefaults(defineProps<AutocompleteInputProps>(), {
18
+ as: 'input',
19
+ })
20
+ const emits = defineEmits<AutocompleteInputEmits>()
21
+
22
+ const rootContext = injectComboboxRootContext()
23
+ const autocompleteContext = injectAutocompleteRootContext()
24
+ const listboxContext = injectListboxRootContext()
25
+ const { primitiveElement, currentElement } = usePrimitiveElement()
26
+
27
+ const modelValue = useVModel(props, 'modelValue', emits, {
28
+ passive: (props.modelValue === undefined) as false,
29
+ })
30
+
31
+ if (autocompleteContext.modelValue.value) {
32
+ modelValue.value = autocompleteContext.modelValue.value
33
+ }
34
+
35
+ onMounted(() => {
36
+ if (currentElement.value)
37
+ rootContext.onInputElementChange(currentElement.value as HTMLInputElement)
38
+ })
39
+
40
+ function handleKeyDown(ev: KeyboardEvent) {
41
+ if (!rootContext.open.value)
42
+ rootContext.onOpenChange(true)
43
+ }
44
+
45
+ function handleInput(event: InputEvent) {
46
+ const target = event.target as HTMLInputElement
47
+ if (!rootContext.open.value) {
48
+ rootContext.onOpenChange(true)
49
+ nextTick(() => {
50
+ if (target.value) {
51
+ rootContext.filterSearch.value = target.value
52
+ listboxContext.highlightFirstItem()
53
+ }
54
+ })
55
+ }
56
+ else {
57
+ rootContext.filterSearch.value = target.value
58
+ }
59
+ // Autocomplete-specific: update root's modelValue with the typed text
60
+ autocompleteContext.modelValue.value = target.value
61
+ }
62
+
63
+ function handleFocus() {
64
+ if (rootContext.openOnFocus.value && !rootContext.open.value)
65
+ rootContext.onOpenChange(true)
66
+ }
67
+
68
+ function handleClick() {
69
+ if (rootContext.openOnClick.value && !rootContext.open.value)
70
+ rootContext.onOpenChange(true)
71
+ }
72
+
73
+ // When root's modelValue changes externally (e.g. item click, programmatic), sync the input display
74
+ watch(autocompleteContext.modelValue, (newVal) => {
75
+ const text = newVal ?? ''
76
+ if (modelValue.value !== text)
77
+ modelValue.value = text
78
+ })
79
+
80
+ // Restore input text when root triggers resetSearchTerm (e.g. on blur with resetSearchTermOnBlur)
81
+ rootContext.onResetSearchTerm(() => {
82
+ modelValue.value = autocompleteContext.modelValue.value ?? ''
83
+ })
84
+
85
+ watch(rootContext.filterState, (_newValue, oldValue) => {
86
+ if (!rootContext.isVirtual.value && (oldValue.count === 0)) {
87
+ listboxContext.highlightFirstItem()
88
+ }
89
+ })
90
+ </script>
91
+
92
+ <template>
93
+ <ListboxFilter
94
+ ref="primitiveElement"
95
+ v-model="modelValue"
96
+ :as="as"
97
+ :as-child="asChild"
98
+ :auto-focus="autoFocus"
99
+ :disabled="disabled"
100
+ :aria-expanded="rootContext.open.value"
101
+ :aria-controls="rootContext.contentId"
102
+ aria-autocomplete="list"
103
+ role="combobox"
104
+ autocomplete="off"
105
+ @click="handleClick"
106
+ @input="handleInput"
107
+ @keydown.down.up.prevent="handleKeyDown"
108
+ @focus="handleFocus"
109
+ >
110
+ <slot />
111
+ </ListboxFilter>
112
+ </template>
@@ -0,0 +1,272 @@
1
+ <script lang="ts">
2
+ import type { Ref } from 'vue'
3
+ import type { PrimitiveProps } from '@/Primitive'
4
+ import type { Direction, GenericComponentInstance } from '@/shared/types'
5
+ import { provideComboboxRootContext } from '@/Combobox/ComboboxRoot.vue'
6
+ import { usePrimitiveElement } from '@/Primitive'
7
+ import { createContext, useDirection, useFilter } from '@/shared'
8
+
9
+ export interface AutocompleteRootProps extends PrimitiveProps {
10
+ /** The controlled value of the Autocomplete (the input text). Can be bound with `v-model`. */
11
+ modelValue?: string
12
+ /** The value of the autocomplete when initially rendered. Use when you do not need to control the state. */
13
+ defaultValue?: string
14
+ /** The controlled open state of the Autocomplete. Can be bound with `v-model:open`. */
15
+ open?: boolean
16
+ /** The open state of the autocomplete when it is initially rendered. Use when you do not need to control its open state. */
17
+ defaultOpen?: boolean
18
+ /** When `true`, prevents the user from interacting with autocomplete */
19
+ disabled?: boolean
20
+ /** The reading direction of the autocomplete when applicable. */
21
+ dir?: Direction
22
+ /** The name of the field. Submitted with its owning form as part of a name/value pair. */
23
+ name?: string
24
+ /** When `true`, indicates that the user must set the value before the owning form can be submitted. */
25
+ required?: boolean
26
+ /**
27
+ * Whether to reset the searchTerm when the Autocomplete input blurred
28
+ * @defaultValue `false`
29
+ */
30
+ resetSearchTermOnBlur?: boolean
31
+ /**
32
+ * Whether to open the autocomplete when the input is focused
33
+ * @defaultValue `false`
34
+ */
35
+ openOnFocus?: boolean
36
+ /**
37
+ * Whether to open the autocomplete when the input is clicked
38
+ * @defaultValue `false`
39
+ */
40
+ openOnClick?: boolean
41
+ /**
42
+ * When `true`, disable the default filters
43
+ */
44
+ ignoreFilter?: boolean
45
+ /** When `true`, hover over item will trigger highlight */
46
+ highlightOnHover?: boolean
47
+ }
48
+
49
+ export type AutocompleteRootEmits = {
50
+ /** Event handler called when the value changes. */
51
+ 'update:modelValue': [value: string]
52
+ /** Event handler when highlighted element changes. */
53
+ 'highlight': [payload: { ref: HTMLElement, value: string } | undefined]
54
+ /** Event handler called when the open state of the autocomplete changes. */
55
+ 'update:open': [value: boolean]
56
+ }
57
+
58
+ export type AutocompleteRootContext = {
59
+ modelValue: Ref<string>
60
+ }
61
+
62
+ export const [injectAutocompleteRootContext, provideAutocompleteRootContext]
63
+ = createContext<AutocompleteRootContext>('AutocompleteRoot')
64
+ </script>
65
+
66
+ <script setup lang="ts">
67
+ import { createEventHook, useVModel } from '@vueuse/core'
68
+ import { computed, getCurrentInstance, nextTick, onMounted, ref, toRefs } from 'vue'
69
+ import { ListboxRoot } from '@/Listbox'
70
+ import { PopperRoot } from '@/Popper'
71
+
72
+ const props = withDefaults(defineProps<AutocompleteRootProps>(), {
73
+ open: undefined,
74
+ resetSearchTermOnBlur: false,
75
+ openOnFocus: false,
76
+ openOnClick: false,
77
+ highlightOnHover: true,
78
+ })
79
+ const emits = defineEmits<AutocompleteRootEmits>()
80
+
81
+ defineSlots<{
82
+ default?: (props: {
83
+ /** Current open state */
84
+ open: typeof open.value
85
+ /** Current active value */
86
+ modelValue: typeof modelValue.value
87
+ }) => any
88
+ }>()
89
+
90
+ const { primitiveElement, currentElement: parentElement } = usePrimitiveElement<GenericComponentInstance<typeof ListboxRoot>>()
91
+ const { disabled, ignoreFilter, openOnFocus, openOnClick, dir: propDir, highlightOnHover } = toRefs(props)
92
+
93
+ const dir = useDirection(propDir)
94
+
95
+ const modelValue = useVModel(props, 'modelValue', emits, {
96
+ defaultValue: props.defaultValue ?? '',
97
+ passive: (props.modelValue === undefined) as false,
98
+ }) as Ref<string>
99
+
100
+ const open = useVModel(props, 'open', emits, {
101
+ defaultValue: props.defaultOpen,
102
+ passive: (props.open === undefined) as false,
103
+ }) as Ref<boolean>
104
+
105
+ // Writable computed that converts any value to string for the ComboboxRootContext.
106
+ // This handles the case when ComboboxItem sets modelValue to a non-string value,
107
+ // or when ComboboxCancel resets modelValue to null.
108
+ const contextModelValue = computed({
109
+ get: () => modelValue.value,
110
+ set: (val: any) => {
111
+ if (val === null || val === undefined) {
112
+ modelValue.value = ''
113
+ }
114
+ else {
115
+ modelValue.value = String(val)
116
+ }
117
+ },
118
+ })
119
+
120
+ async function onOpenChange(val: boolean) {
121
+ open.value = val
122
+
123
+ if (val) {
124
+ // When opening, set filter to current text so items are filtered by what's in the input
125
+ filterSearch.value = modelValue.value || ''
126
+
127
+ await nextTick()
128
+ primitiveElement.value?.highlightSelected()
129
+ isUserInputted.value = true
130
+ inputElement.value?.focus()
131
+ }
132
+ else {
133
+ isUserInputted.value = false
134
+ filterSearch.value = ''
135
+ setTimeout(() => {
136
+ if (!val && props.resetSearchTermOnBlur)
137
+ resetSearchTerm.trigger()
138
+ }, 1)
139
+ }
140
+ }
141
+
142
+ const resetSearchTerm = createEventHook()
143
+ const isUserInputted = ref(false)
144
+ const isVirtual = ref(false)
145
+ const inputElement = ref<HTMLInputElement>()
146
+ const triggerElement = ref<HTMLElement>()
147
+
148
+ const highlightedElement = computed(() => primitiveElement.value?.highlightedElement ?? undefined)
149
+
150
+ const allItems = ref<Map<string, string>>(new Map())
151
+ const allGroups = ref<Map<string, Set<string>>>(new Map())
152
+
153
+ const { contains } = useFilter({ sensitivity: 'base' })
154
+
155
+ const filterSearch = ref('')
156
+
157
+ const filterState = computed<{
158
+ count: number
159
+ items: Map<string, number>
160
+ groups: Set<string>
161
+ }>((oldValue) => {
162
+ if (!filterSearch.value || props.ignoreFilter || isVirtual.value) {
163
+ return {
164
+ count: allItems.value.size,
165
+ items: oldValue?.items ?? new Map(),
166
+ groups: oldValue?.groups ?? new Set(allGroups.value.keys()),
167
+ }
168
+ }
169
+
170
+ let itemCount = 0
171
+ const filteredItems = new Map<string, number>()
172
+ const filteredGroups = new Set<string>()
173
+
174
+ for (const [id, value] of allItems.value) {
175
+ const score = contains(value, filterSearch.value)
176
+ filteredItems.set(id, score ? 1 : 0)
177
+ if (score)
178
+ itemCount++
179
+ }
180
+
181
+ for (const [groupId, group] of allGroups.value) {
182
+ for (const itemId of group) {
183
+ if (filteredItems.get(itemId)! > 0) {
184
+ filteredGroups.add(groupId)
185
+ break
186
+ }
187
+ }
188
+ }
189
+
190
+ return {
191
+ count: itemCount,
192
+ items: filteredItems,
193
+ groups: filteredGroups,
194
+ }
195
+ })
196
+
197
+ const inst = getCurrentInstance()
198
+ onMounted(() => {
199
+ if (inst?.exposed) {
200
+ inst.exposed.highlightItem = primitiveElement.value?.highlightItem
201
+ inst.exposed.highlightFirstItem = primitiveElement.value?.highlightFirstItem
202
+ inst.exposed.highlightSelected = primitiveElement.value?.highlightSelected
203
+ }
204
+ })
205
+
206
+ defineExpose({
207
+ filtered: filterState,
208
+ highlightedElement,
209
+ highlightItem: primitiveElement.value?.highlightItem,
210
+ highlightFirstItem: primitiveElement.value?.highlightFirstItem,
211
+ highlightSelected: primitiveElement.value?.highlightSelected,
212
+ })
213
+
214
+ // Provide the Combobox context so all Combobox sub-components work inside Autocomplete
215
+ provideComboboxRootContext({
216
+ modelValue: contextModelValue as any,
217
+ multiple: ref(false),
218
+ disabled,
219
+ open,
220
+ onOpenChange,
221
+ contentId: '',
222
+ isUserInputted,
223
+ isVirtual,
224
+ inputElement,
225
+ highlightedElement,
226
+ onInputElementChange: val => inputElement.value = val,
227
+ triggerElement,
228
+ onTriggerElementChange: val => triggerElement.value = val,
229
+ parentElement,
230
+ resetSearchTermOnSelect: ref(false),
231
+ onResetSearchTerm: resetSearchTerm.on,
232
+ allItems,
233
+ allGroups,
234
+ filterSearch,
235
+ filterState,
236
+ ignoreFilter,
237
+ openOnFocus,
238
+ openOnClick,
239
+ resetModelValueOnClear: ref(true),
240
+ })
241
+
242
+ // Provide autocomplete-specific context
243
+ provideAutocompleteRootContext({
244
+ modelValue,
245
+ })
246
+ </script>
247
+
248
+ <template>
249
+ <PopperRoot>
250
+ <ListboxRoot
251
+ ref="primitiveElement"
252
+ v-bind="$attrs"
253
+ v-model="(contextModelValue as any)"
254
+ :style="{
255
+ pointerEvents: open ? 'auto' : undefined,
256
+ }"
257
+ :as="as"
258
+ :as-child="asChild"
259
+ :dir="dir"
260
+ :name="name"
261
+ :required="required"
262
+ :disabled="disabled"
263
+ :highlight-on-hover="highlightOnHover"
264
+ @highlight="emits('highlight', $event as any)"
265
+ >
266
+ <slot
267
+ :open="open"
268
+ :model-value="modelValue"
269
+ />
270
+ </ListboxRoot>
271
+ </PopperRoot>
272
+ </template>
@@ -0,0 +1,72 @@
1
+ export {
2
+ default as AutocompleteInput,
3
+ type AutocompleteInputEmits,
4
+ type AutocompleteInputProps,
5
+ } from './AutocompleteInput.vue'
6
+ export {
7
+ default as AutocompleteRoot,
8
+ type AutocompleteRootEmits,
9
+ type AutocompleteRootProps,
10
+ injectAutocompleteRootContext,
11
+ } from './AutocompleteRoot.vue'
12
+
13
+ // Re-export Combobox sub-components as Autocomplete equivalents.
14
+ // These components inject ComboboxRootContext which AutocompleteRoot provides.
15
+ export {
16
+ ComboboxAnchor as AutocompleteAnchor,
17
+ type ComboboxAnchorProps as AutocompleteAnchorProps,
18
+ } from '@/Combobox'
19
+ export {
20
+ ComboboxArrow as AutocompleteArrow,
21
+ type ComboboxArrowProps as AutocompleteArrowProps,
22
+ } from '@/Combobox'
23
+ export {
24
+ ComboboxCancel as AutocompleteCancel,
25
+ type ComboboxCancelProps as AutocompleteCancelProps,
26
+ } from '@/Combobox'
27
+ export {
28
+ ComboboxContent as AutocompleteContent,
29
+ type ComboboxContentEmits as AutocompleteContentEmits,
30
+ type ComboboxContentProps as AutocompleteContentProps,
31
+ } from '@/Combobox'
32
+ export {
33
+ ComboboxEmpty as AutocompleteEmpty,
34
+ type ComboboxEmptyProps as AutocompleteEmptyProps,
35
+ } from '@/Combobox'
36
+ export {
37
+ ComboboxGroup as AutocompleteGroup,
38
+ type ComboboxGroupProps as AutocompleteGroupProps,
39
+ } from '@/Combobox'
40
+ export {
41
+ ComboboxItem as AutocompleteItem,
42
+ type ComboboxItemEmits as AutocompleteItemEmits,
43
+ type ComboboxItemProps as AutocompleteItemProps,
44
+ } from '@/Combobox'
45
+ export {
46
+ ComboboxItemIndicator as AutocompleteItemIndicator,
47
+ type ComboboxItemIndicatorProps as AutocompleteItemIndicatorProps,
48
+ } from '@/Combobox'
49
+ export {
50
+ ComboboxLabel as AutocompleteLabel,
51
+ type ComboboxLabelProps as AutocompleteLabelProps,
52
+ } from '@/Combobox'
53
+ export {
54
+ ComboboxPortal as AutocompletePortal,
55
+ type ComboboxPortalProps as AutocompletePortalProps,
56
+ } from '@/Combobox'
57
+ export {
58
+ ComboboxSeparator as AutocompleteSeparator,
59
+ type ComboboxSeparatorProps as AutocompleteSeparatorProps,
60
+ } from '@/Combobox'
61
+ export {
62
+ ComboboxTrigger as AutocompleteTrigger,
63
+ type ComboboxTriggerProps as AutocompleteTriggerProps,
64
+ } from '@/Combobox'
65
+ export {
66
+ ComboboxViewport as AutocompleteViewport,
67
+ type ComboboxViewportProps as AutocompleteViewportProps,
68
+ } from '@/Combobox'
69
+ export {
70
+ ComboboxVirtualizer as AutocompleteVirtualizer,
71
+ type ComboboxVirtualizerProps as AutocompleteVirtualizerProps,
72
+ } from '@/Combobox'
@@ -171,7 +171,8 @@ function handleArrowKey(e: KeyboardEvent) {
171
171
  <template>
172
172
  <Primitive
173
173
  ref="primitiveElement"
174
- v-bind="props"
174
+ :as="props.as"
175
+ :as-child="props.asChild"
175
176
  role="button"
176
177
  :aria-label="labelText"
177
178
  data-reka-calendar-cell-trigger
@@ -17,10 +17,15 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
17
17
  </script>
18
18
 
19
19
  <template>
20
+ <!--
21
+ role="application" is intentional: it ensures screen readers like NVDA pass
22
+ keyboard events (arrow keys) to the web app instead of intercepting them
23
+ for virtual cursor navigation. This is the same pattern used by React Aria.
24
+ -->
20
25
  <Primitive
21
26
  v-bind="props"
22
27
  tabindex="-1"
23
- role="grid"
28
+ role="application"
24
29
  :aria-readonly="readonly"
25
30
  :aria-disabled="disabled"
26
31
  :data-readonly="readonly && ''"
@@ -26,6 +26,12 @@ defineSlots<CalendarNextSlot>()
26
26
  const disabled = computed(() => rootContext.disabled.value || rootContext.isNextButtonDisabled(props.nextPage))
27
27
 
28
28
  const rootContext = injectCalendarRootContext()
29
+
30
+ function handleClick() {
31
+ if (disabled.value)
32
+ return
33
+ rootContext.nextPage(props.nextPage)
34
+ }
29
35
  </script>
30
36
 
31
37
  <template>
@@ -33,11 +39,11 @@ const rootContext = injectCalendarRootContext()
33
39
  :as="props.as"
34
40
  :as-child="props.asChild"
35
41
  aria-label="Next page"
36
- :type="as === 'button' ? 'button' : undefined"
42
+ :type="props.as === 'button' ? 'button' : undefined"
37
43
  :aria-disabled="disabled || undefined"
38
44
  :data-disabled="disabled || undefined"
39
45
  :disabled="disabled"
40
- @click="rootContext.nextPage(props.nextPage)"
46
+ @click="handleClick"
41
47
  >
42
48
  <slot :disabled>
43
49
  Next page
@@ -26,6 +26,12 @@ defineSlots<CalendarPrevSlot>()
26
26
  const disabled = computed(() => rootContext.disabled.value || rootContext.isPrevButtonDisabled(props.prevPage))
27
27
 
28
28
  const rootContext = injectCalendarRootContext()
29
+
30
+ function handleClick() {
31
+ if (disabled.value)
32
+ return
33
+ rootContext.prevPage(props.prevPage)
34
+ }
29
35
  </script>
30
36
 
31
37
  <template>
@@ -33,11 +39,11 @@ const rootContext = injectCalendarRootContext()
33
39
  aria-label="Previous page"
34
40
  :as="props.as"
35
41
  :as-child="props.asChild"
36
- :type="as === 'button' ? 'button' : undefined"
42
+ :type="props.as === 'button' ? 'button' : undefined"
37
43
  :aria-disabled="disabled || undefined"
38
44
  :data-disabled="disabled || undefined"
39
45
  :disabled="disabled"
40
- @click="rootContext.prevPage(props.prevPage)"
46
+ @click="handleClick"
41
47
  >
42
48
  <slot :disabled>
43
49
  Prev page
@@ -97,7 +97,7 @@ export interface CalendarRootProps extends PrimitiveProps {
97
97
  nextPage?: (placeholder: DateValue) => DateValue
98
98
  /** A function that returns the previous page of the calendar. It receives the current placeholder as an argument inside the component. */
99
99
  prevPage?: (placeholder: DateValue) => DateValue
100
- /** The controlled checked state of the calendar */
100
+ /** The controlled selected date value of the calendar. Can be bound as `v-model`. */
101
101
  modelValue?: DateValue | DateValue[] | undefined
102
102
  /** Whether multiple dates can be selected */
103
103
  multiple?: boolean
@@ -7,11 +7,11 @@ import { useVModel } from '@vueuse/core'
7
7
  import { createContext, isNullish, isValueEqualOrExist, useFormControl, useForwardExpose } from '@/shared'
8
8
  import { injectCheckboxGroupRootContext } from './CheckboxGroupRoot.vue'
9
9
 
10
- export interface CheckboxRootProps extends PrimitiveProps, FormFieldProps {
10
+ export interface CheckboxRootProps<T = boolean> extends PrimitiveProps, FormFieldProps {
11
11
  /** The value of the checkbox when it is initially rendered. Use when you do not need to control its value. */
12
- defaultValue?: boolean | 'indeterminate'
12
+ defaultValue?: T | 'indeterminate'
13
13
  /** The controlled value of the checkbox. Can be binded with v-model. */
14
- modelValue?: boolean | 'indeterminate' | null
14
+ modelValue?: T | 'indeterminate' | null
15
15
  /** When `true`, prevents the user from interacting with the checkbox */
16
16
  disabled?: boolean
17
17
  /**
@@ -21,11 +21,19 @@ export interface CheckboxRootProps extends PrimitiveProps, FormFieldProps {
21
21
  value?: AcceptableValue
22
22
  /** Id of the element */
23
23
  id?: string
24
+ /**
25
+ * The value used when the checkbox is checked. Defaults to `true`.
26
+ */
27
+ trueValue?: T
28
+ /**
29
+ * The value used when the checkbox is unchecked. Defaults to `false`.
30
+ */
31
+ falseValue?: T
24
32
  }
25
33
 
26
- export type CheckboxRootEmits = {
34
+ export type CheckboxRootEmits<T = boolean> = {
27
35
  /** Event handler called when the value of the checkbox changes. */
28
- 'update:modelValue': [value: boolean | 'indeterminate']
36
+ 'update:modelValue': [value: T | 'indeterminate']
29
37
  }
30
38
 
31
39
  interface CheckboxRootContext {
@@ -37,7 +45,7 @@ export const [injectCheckboxRootContext, provideCheckboxRootContext]
37
45
  = createContext<CheckboxRootContext>('CheckboxRoot')
38
46
  </script>
39
47
 
40
- <script setup lang="ts">
48
+ <script setup lang="ts" generic="T = boolean">
41
49
  import { isEqual } from 'ohash'
42
50
  import { computed } from 'vue'
43
51
  import { Primitive } from '@/Primitive'
@@ -49,12 +57,14 @@ defineOptions({
49
57
  inheritAttrs: false,
50
58
  })
51
59
 
52
- const props = withDefaults(defineProps<CheckboxRootProps>(), {
60
+ const props = withDefaults(defineProps<CheckboxRootProps<T>>(), {
53
61
  modelValue: undefined,
54
62
  value: 'on',
55
63
  as: 'button',
64
+ trueValue: (() => true) as unknown as undefined,
65
+ falseValue: (() => false) as unknown as undefined,
56
66
  })
57
- const emits = defineEmits<CheckboxRootEmits>()
67
+ const emits = defineEmits<CheckboxRootEmits<T>>()
58
68
 
59
69
  defineSlots<{
60
70
  default?: (props: {
@@ -69,19 +79,23 @@ const { forwardRef, currentElement } = useForwardExpose()
69
79
 
70
80
  const checkboxGroupContext = injectCheckboxGroupRootContext(null)
71
81
 
72
- const modelValue = useVModel(props, 'modelValue', emits, {
73
- defaultValue: props.defaultValue,
82
+ const modelValue = useVModel(props as any, 'modelValue', emits as any, {
83
+ defaultValue: props.defaultValue ?? props.falseValue,
74
84
  passive: (props.modelValue === undefined) as false,
75
- }) as Ref<CheckedState>
85
+ }) as Ref<T | 'indeterminate'>
76
86
 
77
87
  const disabled = computed(() => checkboxGroupContext?.disabled.value || props.disabled)
78
88
 
89
+ const isChecked = computed(() => isEqual(modelValue.value, props.trueValue))
90
+
79
91
  const checkboxState = computed<CheckedState>(() => {
80
92
  if (!isNullish(checkboxGroupContext?.modelValue.value)) {
81
93
  return isValueEqualOrExist(checkboxGroupContext.modelValue.value, props.value)
82
94
  }
83
95
  else {
84
- return modelValue.value === 'indeterminate' ? 'indeterminate' : modelValue.value
96
+ if (modelValue.value === 'indeterminate')
97
+ return 'indeterminate'
98
+ return isChecked.value
85
99
  }
86
100
  })
87
101
 
@@ -98,7 +112,12 @@ function handleClick() {
98
112
  checkboxGroupContext.modelValue.value = modelValueArray
99
113
  }
100
114
  else {
101
- modelValue.value = isIndeterminate(modelValue.value) ? true : !modelValue.value
115
+ if (modelValue.value === 'indeterminate') {
116
+ modelValue.value = props.trueValue as T
117
+ }
118
+ else {
119
+ modelValue.value = isChecked.value ? props.falseValue as T : props.trueValue as T
120
+ }
102
121
  }
103
122
  }
104
123