reka-ui 2.8.0 → 2.9.0

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 (622) 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 +12 -6
  10. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  11. package/dist/Calendar/CalendarCellTrigger.js +13 -7
  12. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  13. package/dist/Calendar/CalendarNext.cjs +7 -3
  14. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  15. package/dist/Calendar/CalendarNext.js +7 -3
  16. package/dist/Calendar/CalendarNext.js.map +1 -1
  17. package/dist/Calendar/CalendarPrev.cjs +7 -3
  18. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  19. package/dist/Calendar/CalendarPrev.js +7 -3
  20. package/dist/Calendar/CalendarPrev.js.map +1 -1
  21. package/dist/Calendar/CalendarRoot.cjs +12 -7
  22. package/dist/Calendar/CalendarRoot.cjs.map +1 -1
  23. package/dist/Calendar/CalendarRoot.js +13 -8
  24. package/dist/Calendar/CalendarRoot.js.map +1 -1
  25. package/dist/Calendar/useCalendar.cjs +32 -2
  26. package/dist/Calendar/useCalendar.cjs.map +1 -1
  27. package/dist/Calendar/useCalendar.js +33 -3
  28. package/dist/Calendar/useCalendar.js.map +1 -1
  29. package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
  30. package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
  31. package/dist/Checkbox/CheckboxRoot.cjs +21 -10
  32. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  33. package/dist/Checkbox/CheckboxRoot.js +21 -10
  34. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  35. package/dist/ColorArea/ColorAreaArea.cjs +143 -0
  36. package/dist/ColorArea/ColorAreaArea.cjs.map +1 -0
  37. package/dist/ColorArea/ColorAreaArea.js +137 -0
  38. package/dist/ColorArea/ColorAreaArea.js.map +1 -0
  39. package/dist/ColorArea/ColorAreaRoot.cjs +240 -0
  40. package/dist/ColorArea/ColorAreaRoot.cjs.map +1 -0
  41. package/dist/ColorArea/ColorAreaRoot.js +228 -0
  42. package/dist/ColorArea/ColorAreaRoot.js.map +1 -0
  43. package/dist/ColorArea/ColorAreaThumb.cjs +91 -0
  44. package/dist/ColorArea/ColorAreaThumb.cjs.map +1 -0
  45. package/dist/ColorArea/ColorAreaThumb.js +85 -0
  46. package/dist/ColorArea/ColorAreaThumb.js.map +1 -0
  47. package/dist/ColorArea/utils.cjs +32 -0
  48. package/dist/ColorArea/utils.cjs.map +1 -0
  49. package/dist/ColorArea/utils.js +21 -0
  50. package/dist/ColorArea/utils.js.map +1 -0
  51. package/dist/ColorField/ColorFieldInput.cjs +140 -0
  52. package/dist/ColorField/ColorFieldInput.cjs.map +1 -0
  53. package/dist/ColorField/ColorFieldInput.js +134 -0
  54. package/dist/ColorField/ColorFieldInput.js.map +1 -0
  55. package/dist/ColorField/ColorFieldRoot.cjs +281 -0
  56. package/dist/ColorField/ColorFieldRoot.cjs.map +1 -0
  57. package/dist/ColorField/ColorFieldRoot.js +269 -0
  58. package/dist/ColorField/ColorFieldRoot.js.map +1 -0
  59. package/dist/ColorSlider/ColorSliderRoot.cjs +230 -0
  60. package/dist/ColorSlider/ColorSliderRoot.cjs.map +1 -0
  61. package/dist/ColorSlider/ColorSliderRoot.js +218 -0
  62. package/dist/ColorSlider/ColorSliderRoot.js.map +1 -0
  63. package/dist/ColorSlider/ColorSliderThumb.cjs +66 -0
  64. package/dist/ColorSlider/ColorSliderThumb.cjs.map +1 -0
  65. package/dist/ColorSlider/ColorSliderThumb.js +60 -0
  66. package/dist/ColorSlider/ColorSliderThumb.js.map +1 -0
  67. package/dist/ColorSlider/ColorSliderTrack.cjs +55 -0
  68. package/dist/ColorSlider/ColorSliderTrack.cjs.map +1 -0
  69. package/dist/ColorSlider/ColorSliderTrack.js +49 -0
  70. package/dist/ColorSlider/ColorSliderTrack.js.map +1 -0
  71. package/dist/ColorSwatch/ColorSwatch.cjs +106 -0
  72. package/dist/ColorSwatch/ColorSwatch.cjs.map +1 -0
  73. package/dist/ColorSwatch/ColorSwatch.js +100 -0
  74. package/dist/ColorSwatch/ColorSwatch.js.map +1 -0
  75. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.cjs +78 -0
  76. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.cjs.map +1 -0
  77. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.js +66 -0
  78. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.js.map +1 -0
  79. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.cjs +40 -0
  80. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.cjs.map +1 -0
  81. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.js +34 -0
  82. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.js.map +1 -0
  83. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.cjs +43 -0
  84. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.cjs.map +1 -0
  85. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.js +37 -0
  86. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.js.map +1 -0
  87. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.cjs +110 -0
  88. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.cjs.map +1 -0
  89. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.js +104 -0
  90. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.js.map +1 -0
  91. package/dist/Combobox/ComboboxContent.cjs +4 -0
  92. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  93. package/dist/Combobox/ComboboxContent.js +4 -0
  94. package/dist/Combobox/ComboboxContent.js.map +1 -1
  95. package/dist/Combobox/ComboboxContentImpl.cjs +11 -3
  96. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  97. package/dist/Combobox/ComboboxContentImpl.js +11 -3
  98. package/dist/Combobox/ComboboxContentImpl.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/DatePicker/DatePickerRoot.cjs +4 -3
  104. package/dist/DatePicker/DatePickerRoot.cjs.map +1 -1
  105. package/dist/DatePicker/DatePickerRoot.js +4 -3
  106. package/dist/DatePicker/DatePickerRoot.js.map +1 -1
  107. package/dist/DateRangeField/DateRangeFieldRoot.cjs +1 -1
  108. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  109. package/dist/DateRangeField/DateRangeFieldRoot.js +1 -1
  110. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  111. package/dist/DateRangePicker/DateRangePickerRoot.cjs +4 -3
  112. package/dist/DateRangePicker/DateRangePickerRoot.cjs.map +1 -1
  113. package/dist/DateRangePicker/DateRangePickerRoot.js +5 -4
  114. package/dist/DateRangePicker/DateRangePickerRoot.js.map +1 -1
  115. package/dist/DismissableLayer/utils.cjs.map +1 -1
  116. package/dist/DismissableLayer/utils.js.map +1 -1
  117. package/dist/DropdownMenu/DropdownMenuFilter.cjs +134 -0
  118. package/dist/DropdownMenu/DropdownMenuFilter.cjs.map +1 -0
  119. package/dist/DropdownMenu/DropdownMenuFilter.js +128 -0
  120. package/dist/DropdownMenu/DropdownMenuFilter.js.map +1 -0
  121. package/dist/Listbox/ListboxRoot.cjs +1 -1
  122. package/dist/Listbox/ListboxRoot.js +1 -1
  123. package/dist/Listbox/ListboxVirtualizer.cjs +1 -1
  124. package/dist/Listbox/ListboxVirtualizer.js +1 -1
  125. package/dist/Menu/MenuContentImpl.cjs +44 -4
  126. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  127. package/dist/Menu/MenuContentImpl.js +44 -4
  128. package/dist/Menu/MenuContentImpl.js.map +1 -1
  129. package/dist/Menu/MenuItemImpl.cjs +8 -3
  130. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  131. package/dist/Menu/MenuItemImpl.js +9 -4
  132. package/dist/Menu/MenuItemImpl.js.map +1 -1
  133. package/dist/Menu/MenuSubContent.cjs +8 -2
  134. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  135. package/dist/Menu/MenuSubContent.js +9 -3
  136. package/dist/Menu/MenuSubContent.js.map +1 -1
  137. package/dist/Menu/MenuSubTrigger.cjs +7 -0
  138. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  139. package/dist/Menu/MenuSubTrigger.js +8 -1
  140. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  141. package/dist/MonthPicker/MonthPickerCell.cjs +59 -0
  142. package/dist/MonthPicker/MonthPickerCell.cjs.map +1 -0
  143. package/dist/MonthPicker/MonthPickerCell.js +53 -0
  144. package/dist/MonthPicker/MonthPickerCell.js.map +1 -0
  145. package/dist/MonthPicker/MonthPickerCellTrigger.cjs +197 -0
  146. package/dist/MonthPicker/MonthPickerCellTrigger.cjs.map +1 -0
  147. package/dist/MonthPicker/MonthPickerCellTrigger.js +191 -0
  148. package/dist/MonthPicker/MonthPickerCellTrigger.js.map +1 -0
  149. package/dist/MonthPicker/MonthPickerGrid.cjs +59 -0
  150. package/dist/MonthPicker/MonthPickerGrid.cjs.map +1 -0
  151. package/dist/MonthPicker/MonthPickerGrid.js +53 -0
  152. package/dist/MonthPicker/MonthPickerGrid.js.map +1 -0
  153. package/dist/MonthPicker/MonthPickerGridBody.cjs +41 -0
  154. package/dist/MonthPicker/MonthPickerGridBody.cjs.map +1 -0
  155. package/dist/MonthPicker/MonthPickerGridBody.js +35 -0
  156. package/dist/MonthPicker/MonthPickerGridBody.js.map +1 -0
  157. package/dist/MonthPicker/MonthPickerGridRow.cjs +41 -0
  158. package/dist/MonthPicker/MonthPickerGridRow.cjs.map +1 -0
  159. package/dist/MonthPicker/MonthPickerGridRow.js +35 -0
  160. package/dist/MonthPicker/MonthPickerGridRow.js.map +1 -0
  161. package/dist/MonthPicker/MonthPickerHeader.cjs +41 -0
  162. package/dist/MonthPicker/MonthPickerHeader.cjs.map +1 -0
  163. package/dist/MonthPicker/MonthPickerHeader.js +35 -0
  164. package/dist/MonthPicker/MonthPickerHeader.js.map +1 -0
  165. package/dist/MonthPicker/MonthPickerHeading.cjs +48 -0
  166. package/dist/MonthPicker/MonthPickerHeading.cjs.map +1 -0
  167. package/dist/MonthPicker/MonthPickerHeading.js +42 -0
  168. package/dist/MonthPicker/MonthPickerHeading.js.map +1 -0
  169. package/dist/MonthPicker/MonthPickerNext.cjs +68 -0
  170. package/dist/MonthPicker/MonthPickerNext.cjs.map +1 -0
  171. package/dist/MonthPicker/MonthPickerNext.js +62 -0
  172. package/dist/MonthPicker/MonthPickerNext.js.map +1 -0
  173. package/dist/MonthPicker/MonthPickerPrev.cjs +68 -0
  174. package/dist/MonthPicker/MonthPickerPrev.cjs.map +1 -0
  175. package/dist/MonthPicker/MonthPickerPrev.js +62 -0
  176. package/dist/MonthPicker/MonthPickerPrev.js.map +1 -0
  177. package/dist/MonthPicker/MonthPickerRoot.cjs +281 -0
  178. package/dist/MonthPicker/MonthPickerRoot.cjs.map +1 -0
  179. package/dist/MonthPicker/MonthPickerRoot.js +269 -0
  180. package/dist/MonthPicker/MonthPickerRoot.js.map +1 -0
  181. package/dist/MonthPicker/useMonthPicker.cjs +148 -0
  182. package/dist/MonthPicker/useMonthPicker.cjs.map +1 -0
  183. package/dist/MonthPicker/useMonthPicker.js +136 -0
  184. package/dist/MonthPicker/useMonthPicker.js.map +1 -0
  185. package/dist/MonthRangePicker/MonthRangePickerCell.cjs +59 -0
  186. package/dist/MonthRangePicker/MonthRangePickerCell.cjs.map +1 -0
  187. package/dist/MonthRangePicker/MonthRangePickerCell.js +53 -0
  188. package/dist/MonthRangePicker/MonthRangePickerCell.js.map +1 -0
  189. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.cjs +258 -0
  190. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.cjs.map +1 -0
  191. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.js +252 -0
  192. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.js.map +1 -0
  193. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs +59 -0
  194. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs.map +1 -0
  195. package/dist/MonthRangePicker/MonthRangePickerGrid.js +53 -0
  196. package/dist/MonthRangePicker/MonthRangePickerGrid.js.map +1 -0
  197. package/dist/MonthRangePicker/MonthRangePickerGridBody.cjs +41 -0
  198. package/dist/MonthRangePicker/MonthRangePickerGridBody.cjs.map +1 -0
  199. package/dist/MonthRangePicker/MonthRangePickerGridBody.js +35 -0
  200. package/dist/MonthRangePicker/MonthRangePickerGridBody.js.map +1 -0
  201. package/dist/MonthRangePicker/MonthRangePickerGridRow.cjs +41 -0
  202. package/dist/MonthRangePicker/MonthRangePickerGridRow.cjs.map +1 -0
  203. package/dist/MonthRangePicker/MonthRangePickerGridRow.js +35 -0
  204. package/dist/MonthRangePicker/MonthRangePickerGridRow.js.map +1 -0
  205. package/dist/MonthRangePicker/MonthRangePickerHeader.cjs +41 -0
  206. package/dist/MonthRangePicker/MonthRangePickerHeader.cjs.map +1 -0
  207. package/dist/MonthRangePicker/MonthRangePickerHeader.js +35 -0
  208. package/dist/MonthRangePicker/MonthRangePickerHeader.js.map +1 -0
  209. package/dist/MonthRangePicker/MonthRangePickerHeading.cjs +48 -0
  210. package/dist/MonthRangePicker/MonthRangePickerHeading.cjs.map +1 -0
  211. package/dist/MonthRangePicker/MonthRangePickerHeading.js +42 -0
  212. package/dist/MonthRangePicker/MonthRangePickerHeading.js.map +1 -0
  213. package/dist/MonthRangePicker/MonthRangePickerNext.cjs +68 -0
  214. package/dist/MonthRangePicker/MonthRangePickerNext.cjs.map +1 -0
  215. package/dist/MonthRangePicker/MonthRangePickerNext.js +62 -0
  216. package/dist/MonthRangePicker/MonthRangePickerNext.js.map +1 -0
  217. package/dist/MonthRangePicker/MonthRangePickerPrev.cjs +68 -0
  218. package/dist/MonthRangePicker/MonthRangePickerPrev.cjs.map +1 -0
  219. package/dist/MonthRangePicker/MonthRangePickerPrev.js +62 -0
  220. package/dist/MonthRangePicker/MonthRangePickerPrev.js.map +1 -0
  221. package/dist/MonthRangePicker/MonthRangePickerRoot.cjs +347 -0
  222. package/dist/MonthRangePicker/MonthRangePickerRoot.cjs.map +1 -0
  223. package/dist/MonthRangePicker/MonthRangePickerRoot.js +335 -0
  224. package/dist/MonthRangePicker/MonthRangePickerRoot.js.map +1 -0
  225. package/dist/MonthRangePicker/useRangeMonthPicker.cjs +128 -0
  226. package/dist/MonthRangePicker/useRangeMonthPicker.cjs.map +1 -0
  227. package/dist/MonthRangePicker/useRangeMonthPicker.js +122 -0
  228. package/dist/MonthRangePicker/useRangeMonthPicker.js.map +1 -0
  229. package/dist/NavigationMenu/NavigationMenuItem.js +3 -3
  230. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  231. package/dist/NumberField/NumberFieldRoot.cjs +3 -2
  232. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  233. package/dist/NumberField/NumberFieldRoot.js +3 -2
  234. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  235. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  236. package/dist/Progress/ProgressRoot.js.map +1 -1
  237. package/dist/RadioGroup/RadioGroupRoot.cjs +1 -1
  238. package/dist/RadioGroup/RadioGroupRoot.js +1 -1
  239. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs +8 -2
  240. package/dist/RangeCalendar/RangeCalendarCellTrigger.cjs.map +1 -1
  241. package/dist/RangeCalendar/RangeCalendarCellTrigger.js +8 -2
  242. package/dist/RangeCalendar/RangeCalendarCellTrigger.js.map +1 -1
  243. package/dist/RangeCalendar/RangeCalendarGrid.cjs +2 -1
  244. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  245. package/dist/RangeCalendar/RangeCalendarGrid.js +2 -1
  246. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  247. package/dist/RangeCalendar/RangeCalendarNext.cjs +9 -5
  248. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  249. package/dist/RangeCalendar/RangeCalendarNext.js +9 -5
  250. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  251. package/dist/RangeCalendar/RangeCalendarPrev.cjs +9 -5
  252. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  253. package/dist/RangeCalendar/RangeCalendarPrev.js +9 -5
  254. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  255. package/dist/RangeCalendar/RangeCalendarRoot.cjs +31 -17
  256. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  257. package/dist/RangeCalendar/RangeCalendarRoot.js +32 -18
  258. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  259. package/dist/RangeCalendar/useRangeCalendar.cjs +35 -6
  260. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  261. package/dist/RangeCalendar/useRangeCalendar.js +35 -6
  262. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  263. package/dist/Splitter/SplitterGroup.cjs +136 -26
  264. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  265. package/dist/Splitter/SplitterGroup.js +136 -26
  266. package/dist/Splitter/SplitterGroup.js.map +1 -1
  267. package/dist/Splitter/SplitterPanel.cjs +7 -2
  268. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  269. package/dist/Splitter/SplitterPanel.js +7 -2
  270. package/dist/Splitter/SplitterPanel.js.map +1 -1
  271. package/dist/Switch/SwitchRoot.cjs +23 -9
  272. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  273. package/dist/Switch/SwitchRoot.js +23 -9
  274. package/dist/Switch/SwitchRoot.js.map +1 -1
  275. package/dist/Switch/SwitchThumb.cjs +1 -1
  276. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  277. package/dist/Switch/SwitchThumb.js +1 -1
  278. package/dist/Switch/SwitchThumb.js.map +1 -1
  279. package/dist/TimeField/TimeFieldRoot.cjs +1 -1
  280. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  281. package/dist/TimeField/TimeFieldRoot.js +1 -1
  282. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  283. package/dist/TimeRangeField/TimeRangeFieldInput.cjs +102 -0
  284. package/dist/TimeRangeField/TimeRangeFieldInput.cjs.map +1 -0
  285. package/dist/TimeRangeField/TimeRangeFieldInput.js +96 -0
  286. package/dist/TimeRangeField/TimeRangeFieldInput.js.map +1 -0
  287. package/dist/TimeRangeField/TimeRangeFieldRoot.cjs +402 -0
  288. package/dist/TimeRangeField/TimeRangeFieldRoot.cjs.map +1 -0
  289. package/dist/TimeRangeField/TimeRangeFieldRoot.js +390 -0
  290. package/dist/TimeRangeField/TimeRangeFieldRoot.js.map +1 -0
  291. package/dist/Toast/ToastAnnounce.cjs +4 -1
  292. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  293. package/dist/Toast/ToastAnnounce.js +4 -1
  294. package/dist/Toast/ToastAnnounce.js.map +1 -1
  295. package/dist/ToggleGroup/ToggleGroupRoot.cjs +1 -1
  296. package/dist/ToggleGroup/ToggleGroupRoot.js +1 -1
  297. package/dist/Tooltip/TooltipContent.cjs +1 -2
  298. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  299. package/dist/Tooltip/TooltipContent.js +1 -2
  300. package/dist/Tooltip/TooltipContent.js.map +1 -1
  301. package/dist/Tooltip/TooltipContentImpl.cjs +25 -18
  302. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  303. package/dist/Tooltip/TooltipContentImpl.js +25 -18
  304. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  305. package/dist/Tooltip/TooltipProvider.cjs +7 -2
  306. package/dist/Tooltip/TooltipProvider.cjs.map +1 -1
  307. package/dist/Tooltip/TooltipProvider.js +7 -2
  308. package/dist/Tooltip/TooltipProvider.js.map +1 -1
  309. package/dist/YearPicker/YearPickerCell.cjs +59 -0
  310. package/dist/YearPicker/YearPickerCell.cjs.map +1 -0
  311. package/dist/YearPicker/YearPickerCell.js +53 -0
  312. package/dist/YearPicker/YearPickerCell.js.map +1 -0
  313. package/dist/YearPicker/YearPickerCellTrigger.cjs +197 -0
  314. package/dist/YearPicker/YearPickerCellTrigger.cjs.map +1 -0
  315. package/dist/YearPicker/YearPickerCellTrigger.js +191 -0
  316. package/dist/YearPicker/YearPickerCellTrigger.js.map +1 -0
  317. package/dist/YearPicker/YearPickerGrid.cjs +59 -0
  318. package/dist/YearPicker/YearPickerGrid.cjs.map +1 -0
  319. package/dist/YearPicker/YearPickerGrid.js +53 -0
  320. package/dist/YearPicker/YearPickerGrid.js.map +1 -0
  321. package/dist/YearPicker/YearPickerGridBody.cjs +41 -0
  322. package/dist/YearPicker/YearPickerGridBody.cjs.map +1 -0
  323. package/dist/YearPicker/YearPickerGridBody.js +35 -0
  324. package/dist/YearPicker/YearPickerGridBody.js.map +1 -0
  325. package/dist/YearPicker/YearPickerGridRow.cjs +41 -0
  326. package/dist/YearPicker/YearPickerGridRow.cjs.map +1 -0
  327. package/dist/YearPicker/YearPickerGridRow.js +35 -0
  328. package/dist/YearPicker/YearPickerGridRow.js.map +1 -0
  329. package/dist/YearPicker/YearPickerHeader.cjs +41 -0
  330. package/dist/YearPicker/YearPickerHeader.cjs.map +1 -0
  331. package/dist/YearPicker/YearPickerHeader.js +35 -0
  332. package/dist/YearPicker/YearPickerHeader.js.map +1 -0
  333. package/dist/YearPicker/YearPickerHeading.cjs +48 -0
  334. package/dist/YearPicker/YearPickerHeading.cjs.map +1 -0
  335. package/dist/YearPicker/YearPickerHeading.js +42 -0
  336. package/dist/YearPicker/YearPickerHeading.js.map +1 -0
  337. package/dist/YearPicker/YearPickerNext.cjs +68 -0
  338. package/dist/YearPicker/YearPickerNext.cjs.map +1 -0
  339. package/dist/YearPicker/YearPickerNext.js +62 -0
  340. package/dist/YearPicker/YearPickerNext.js.map +1 -0
  341. package/dist/YearPicker/YearPickerPrev.cjs +68 -0
  342. package/dist/YearPicker/YearPickerPrev.cjs.map +1 -0
  343. package/dist/YearPicker/YearPickerPrev.js +62 -0
  344. package/dist/YearPicker/YearPickerPrev.js.map +1 -0
  345. package/dist/YearPicker/YearPickerRoot.cjs +287 -0
  346. package/dist/YearPicker/YearPickerRoot.cjs.map +1 -0
  347. package/dist/YearPicker/YearPickerRoot.js +275 -0
  348. package/dist/YearPicker/YearPickerRoot.js.map +1 -0
  349. package/dist/YearPicker/useYearPicker.cjs +180 -0
  350. package/dist/YearPicker/useYearPicker.cjs.map +1 -0
  351. package/dist/YearPicker/useYearPicker.js +168 -0
  352. package/dist/YearPicker/useYearPicker.js.map +1 -0
  353. package/dist/YearRangePicker/YearRangePickerCell.cjs +59 -0
  354. package/dist/YearRangePicker/YearRangePickerCell.cjs.map +1 -0
  355. package/dist/YearRangePicker/YearRangePickerCell.js +53 -0
  356. package/dist/YearRangePicker/YearRangePickerCell.js.map +1 -0
  357. package/dist/YearRangePicker/YearRangePickerCellTrigger.cjs +256 -0
  358. package/dist/YearRangePicker/YearRangePickerCellTrigger.cjs.map +1 -0
  359. package/dist/YearRangePicker/YearRangePickerCellTrigger.js +250 -0
  360. package/dist/YearRangePicker/YearRangePickerCellTrigger.js.map +1 -0
  361. package/dist/YearRangePicker/YearRangePickerGrid.cjs +59 -0
  362. package/dist/YearRangePicker/YearRangePickerGrid.cjs.map +1 -0
  363. package/dist/YearRangePicker/YearRangePickerGrid.js +53 -0
  364. package/dist/YearRangePicker/YearRangePickerGrid.js.map +1 -0
  365. package/dist/YearRangePicker/YearRangePickerGridBody.cjs +41 -0
  366. package/dist/YearRangePicker/YearRangePickerGridBody.cjs.map +1 -0
  367. package/dist/YearRangePicker/YearRangePickerGridBody.js +35 -0
  368. package/dist/YearRangePicker/YearRangePickerGridBody.js.map +1 -0
  369. package/dist/YearRangePicker/YearRangePickerGridRow.cjs +41 -0
  370. package/dist/YearRangePicker/YearRangePickerGridRow.cjs.map +1 -0
  371. package/dist/YearRangePicker/YearRangePickerGridRow.js +35 -0
  372. package/dist/YearRangePicker/YearRangePickerGridRow.js.map +1 -0
  373. package/dist/YearRangePicker/YearRangePickerHeader.cjs +41 -0
  374. package/dist/YearRangePicker/YearRangePickerHeader.cjs.map +1 -0
  375. package/dist/YearRangePicker/YearRangePickerHeader.js +35 -0
  376. package/dist/YearRangePicker/YearRangePickerHeader.js.map +1 -0
  377. package/dist/YearRangePicker/YearRangePickerHeading.cjs +48 -0
  378. package/dist/YearRangePicker/YearRangePickerHeading.cjs.map +1 -0
  379. package/dist/YearRangePicker/YearRangePickerHeading.js +42 -0
  380. package/dist/YearRangePicker/YearRangePickerHeading.js.map +1 -0
  381. package/dist/YearRangePicker/YearRangePickerNext.cjs +68 -0
  382. package/dist/YearRangePicker/YearRangePickerNext.cjs.map +1 -0
  383. package/dist/YearRangePicker/YearRangePickerNext.js +62 -0
  384. package/dist/YearRangePicker/YearRangePickerNext.js.map +1 -0
  385. package/dist/YearRangePicker/YearRangePickerPrev.cjs +68 -0
  386. package/dist/YearRangePicker/YearRangePickerPrev.cjs.map +1 -0
  387. package/dist/YearRangePicker/YearRangePickerPrev.js +62 -0
  388. package/dist/YearRangePicker/YearRangePickerPrev.js.map +1 -0
  389. package/dist/YearRangePicker/YearRangePickerRoot.cjs +350 -0
  390. package/dist/YearRangePicker/YearRangePickerRoot.cjs.map +1 -0
  391. package/dist/YearRangePicker/YearRangePickerRoot.js +338 -0
  392. package/dist/YearRangePicker/YearRangePickerRoot.js.map +1 -0
  393. package/dist/YearRangePicker/useRangeYearPicker.cjs +128 -0
  394. package/dist/YearRangePicker/useRangeYearPicker.cjs.map +1 -0
  395. package/dist/YearRangePicker/useRangeYearPicker.js +122 -0
  396. package/dist/YearRangePicker/useRangeYearPicker.js.map +1 -0
  397. package/dist/color/channel.cjs +378 -0
  398. package/dist/color/channel.cjs.map +1 -0
  399. package/dist/color/channel.js +349 -0
  400. package/dist/color/channel.js.map +1 -0
  401. package/dist/color/convert.cjs +285 -0
  402. package/dist/color/convert.cjs.map +1 -0
  403. package/dist/color/convert.js +237 -0
  404. package/dist/color/convert.js.map +1 -0
  405. package/dist/color/gradient.cjs +377 -0
  406. package/dist/color/gradient.cjs.map +1 -0
  407. package/dist/color/gradient.js +354 -0
  408. package/dist/color/gradient.js.map +1 -0
  409. package/dist/color/parse.cjs +113 -0
  410. package/dist/color/parse.cjs.map +1 -0
  411. package/dist/color/parse.js +95 -0
  412. package/dist/color/parse.js.map +1 -0
  413. package/dist/color/utils.cjs +112 -0
  414. package/dist/color/utils.cjs.map +1 -0
  415. package/dist/color/utils.js +100 -0
  416. package/dist/color/utils.js.map +1 -0
  417. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +11 -7
  418. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  419. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +11 -7
  420. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  421. package/dist/constant/components.cjs +87 -1
  422. package/dist/constant/components.cjs.map +1 -1
  423. package/dist/constant/components.js +87 -1
  424. package/dist/constant/components.js.map +1 -1
  425. package/dist/constant.d.cts +12 -1
  426. package/dist/constant.d.cts.map +1 -1
  427. package/dist/constant.d.ts +12 -1
  428. package/dist/constant.d.ts.map +1 -1
  429. package/dist/date/calendar.cjs +70 -9
  430. package/dist/date/calendar.cjs.map +1 -1
  431. package/dist/date/calendar.js +54 -11
  432. package/dist/date/calendar.js.map +1 -1
  433. package/dist/date/comparators.cjs +129 -0
  434. package/dist/date/comparators.cjs.map +1 -1
  435. package/dist/date/comparators.js +76 -1
  436. package/dist/date/comparators.js.map +1 -1
  437. package/dist/date/useDateField.cjs +1 -2
  438. package/dist/date/useDateField.cjs.map +1 -1
  439. package/dist/date/useDateField.js +1 -2
  440. package/dist/date/useDateField.js.map +1 -1
  441. package/dist/date.cjs +12 -0
  442. package/dist/date.d.cts +2 -2
  443. package/dist/date.d.ts +2 -2
  444. package/dist/date.js +3 -3
  445. package/dist/index.cjs +216 -46
  446. package/dist/index.d.cts +3 -8829
  447. package/dist/index.d.ts +3 -8829
  448. package/dist/index.js +116 -47
  449. package/dist/index2.d.cts +66 -3
  450. package/dist/index2.d.cts.map +1 -1
  451. package/dist/index2.d.ts +66 -3
  452. package/dist/index2.d.ts.map +1 -1
  453. package/dist/index3.d.cts +11061 -0
  454. package/dist/index3.d.cts.map +1 -0
  455. package/dist/index3.d.ts +11061 -0
  456. package/dist/index3.d.ts.map +1 -0
  457. package/dist/internal.cjs +81 -0
  458. package/dist/internal.d.cts +22 -0
  459. package/dist/internal.d.cts.map +1 -0
  460. package/dist/internal.d.ts +22 -0
  461. package/dist/internal.d.ts.map +1 -0
  462. package/dist/internal.js +64 -0
  463. package/dist/internal2.cjs +0 -0
  464. package/dist/internal2.js +0 -0
  465. package/dist/namespaced/index.cjs +33 -1
  466. package/dist/namespaced/index.d.cts +32 -4
  467. package/dist/namespaced/index.d.mts +32 -4
  468. package/dist/namespaced/index.mjs +32 -4
  469. package/dist/shared/useArrowNavigation.cjs +4 -2
  470. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  471. package/dist/shared/useArrowNavigation.js +4 -2
  472. package/dist/shared/useArrowNavigation.js.map +1 -1
  473. package/dist/shared/useForwardExpose.cjs +7 -3
  474. package/dist/shared/useForwardExpose.cjs.map +1 -1
  475. package/dist/shared/useForwardExpose.js +8 -4
  476. package/dist/shared/useForwardExpose.js.map +1 -1
  477. package/dist/shared/useId.cjs +7 -4
  478. package/dist/shared/useId.cjs.map +1 -1
  479. package/dist/shared/useId.js +7 -4
  480. package/dist/shared/useId.js.map +1 -1
  481. package/dist/utils/storage.cjs +7 -1
  482. package/dist/utils/storage.cjs.map +1 -1
  483. package/dist/utils/storage.js +7 -1
  484. package/dist/utils/storage.js.map +1 -1
  485. package/dist/utils/units.cjs +101 -0
  486. package/dist/utils/units.cjs.map +1 -0
  487. package/dist/utils/units.js +83 -0
  488. package/dist/utils/units.js.map +1 -0
  489. package/package.json +21 -13
  490. package/src/Autocomplete/AutocompleteInput.vue +112 -0
  491. package/src/Autocomplete/AutocompleteRoot.vue +272 -0
  492. package/src/Autocomplete/index.ts +72 -0
  493. package/src/Calendar/CalendarCellTrigger.vue +10 -2
  494. package/src/Calendar/CalendarNext.vue +8 -2
  495. package/src/Calendar/CalendarPrev.vue +8 -2
  496. package/src/Calendar/CalendarRoot.vue +20 -8
  497. package/src/Calendar/useCalendar.ts +43 -3
  498. package/src/Checkbox/CheckboxRoot.vue +32 -13
  499. package/src/ColorArea/ColorAreaArea.vue +145 -0
  500. package/src/ColorArea/ColorAreaRoot.vue +255 -0
  501. package/src/ColorArea/ColorAreaThumb.vue +75 -0
  502. package/src/ColorArea/index.ts +14 -0
  503. package/src/ColorArea/utils.ts +24 -0
  504. package/src/ColorField/ColorFieldInput.vue +133 -0
  505. package/src/ColorField/ColorFieldRoot.vue +326 -0
  506. package/src/ColorField/index.ts +10 -0
  507. package/src/ColorSlider/ColorSliderRoot.vue +224 -0
  508. package/src/ColorSlider/ColorSliderThumb.vue +54 -0
  509. package/src/ColorSlider/ColorSliderTrack.vue +36 -0
  510. package/src/ColorSlider/index.ts +14 -0
  511. package/src/ColorSlider/utils.ts +39 -0
  512. package/src/ColorSwatch/ColorSwatch.vue +97 -0
  513. package/src/ColorSwatch/index.ts +4 -0
  514. package/src/ColorSwatchPicker/ColorSwatchPickerItem.vue +60 -0
  515. package/src/ColorSwatchPicker/ColorSwatchPickerItemIndicator.vue +17 -0
  516. package/src/ColorSwatchPicker/ColorSwatchPickerItemSwatch.vue +21 -0
  517. package/src/ColorSwatchPicker/ColorSwatchPickerRoot.vue +50 -0
  518. package/src/ColorSwatchPicker/index.ts +17 -0
  519. package/src/Combobox/ComboboxContentImpl.vue +14 -1
  520. package/src/DateField/DateFieldRoot.vue +1 -1
  521. package/src/DatePicker/DatePickerRoot.vue +4 -4
  522. package/src/DateRangeField/DateRangeFieldRoot.vue +11 -4
  523. package/src/DateRangePicker/DateRangePickerRoot.vue +5 -5
  524. package/src/DismissableLayer/utils.ts +1 -2
  525. package/src/DropdownMenu/DropdownMenuFilter.vue +119 -0
  526. package/src/DropdownMenu/index.ts +5 -0
  527. package/src/Menu/MenuContentImpl.vue +68 -2
  528. package/src/Menu/MenuItemImpl.vue +11 -6
  529. package/src/Menu/MenuSubContent.vue +14 -3
  530. package/src/Menu/MenuSubTrigger.vue +13 -1
  531. package/src/MonthPicker/MonthPickerCell.vue +30 -0
  532. package/src/MonthPicker/MonthPickerCellTrigger.vue +214 -0
  533. package/src/MonthPicker/MonthPickerGrid.vue +32 -0
  534. package/src/MonthPicker/MonthPickerGridBody.vue +17 -0
  535. package/src/MonthPicker/MonthPickerGridRow.vue +20 -0
  536. package/src/MonthPicker/MonthPickerHeader.vue +17 -0
  537. package/src/MonthPicker/MonthPickerHeading.vue +35 -0
  538. package/src/MonthPicker/MonthPickerNext.vue +52 -0
  539. package/src/MonthPicker/MonthPickerPrev.vue +52 -0
  540. package/src/MonthPicker/MonthPickerRoot.vue +311 -0
  541. package/src/MonthPicker/index.ts +42 -0
  542. package/src/MonthPicker/useMonthPicker.ts +193 -0
  543. package/src/MonthRangePicker/MonthRangePickerCell.vue +30 -0
  544. package/src/MonthRangePicker/MonthRangePickerCellTrigger.vue +309 -0
  545. package/src/MonthRangePicker/MonthRangePickerGrid.vue +32 -0
  546. package/src/MonthRangePicker/MonthRangePickerGridBody.vue +17 -0
  547. package/src/MonthRangePicker/MonthRangePickerGridRow.vue +20 -0
  548. package/src/MonthRangePicker/MonthRangePickerHeader.vue +17 -0
  549. package/src/MonthRangePicker/MonthRangePickerHeading.vue +35 -0
  550. package/src/MonthRangePicker/MonthRangePickerNext.vue +52 -0
  551. package/src/MonthRangePicker/MonthRangePickerPrev.vue +52 -0
  552. package/src/MonthRangePicker/MonthRangePickerRoot.vue +391 -0
  553. package/src/MonthRangePicker/index.ts +42 -0
  554. package/src/MonthRangePicker/useRangeMonthPicker.ts +165 -0
  555. package/src/NumberField/NumberFieldRoot.vue +2 -1
  556. package/src/Progress/ProgressRoot.vue +3 -1
  557. package/src/RadioGroup/RadioGroupRoot.vue +1 -1
  558. package/src/RangeCalendar/RangeCalendarCellTrigger.vue +13 -3
  559. package/src/RangeCalendar/RangeCalendarGrid.vue +1 -0
  560. package/src/RangeCalendar/RangeCalendarNext.vue +10 -4
  561. package/src/RangeCalendar/RangeCalendarPrev.vue +10 -4
  562. package/src/RangeCalendar/RangeCalendarRoot.vue +48 -32
  563. package/src/RangeCalendar/useRangeCalendar.ts +41 -16
  564. package/src/Splitter/SplitterGroup.vue +218 -49
  565. package/src/Splitter/SplitterPanel.vue +11 -6
  566. package/src/Splitter/utils/composables/useWindowSplitterPanelGroupBehavior.ts +16 -6
  567. package/src/Splitter/utils/storage.ts +14 -0
  568. package/src/Splitter/utils/units.ts +161 -0
  569. package/src/Splitter/utils/validation.ts +3 -2
  570. package/src/Switch/SwitchRoot.vue +36 -19
  571. package/src/Switch/SwitchThumb.vue +1 -1
  572. package/src/TimeField/TimeFieldRoot.vue +0 -3
  573. package/src/TimeRangeField/TimeRangeFieldInput.vue +74 -0
  574. package/src/TimeRangeField/TimeRangeFieldRoot.vue +473 -0
  575. package/src/TimeRangeField/index.ts +2 -0
  576. package/src/Toast/ToastAnnounce.vue +4 -1
  577. package/src/Tooltip/TooltipContent.vue +1 -3
  578. package/src/Tooltip/TooltipContentImpl.vue +18 -10
  579. package/src/Tooltip/TooltipProvider.vue +8 -1
  580. package/src/YearPicker/YearPickerCell.vue +30 -0
  581. package/src/YearPicker/YearPickerCellTrigger.vue +218 -0
  582. package/src/YearPicker/YearPickerGrid.vue +32 -0
  583. package/src/YearPicker/YearPickerGridBody.vue +17 -0
  584. package/src/YearPicker/YearPickerGridRow.vue +20 -0
  585. package/src/YearPicker/YearPickerHeader.vue +17 -0
  586. package/src/YearPicker/YearPickerHeading.vue +35 -0
  587. package/src/YearPicker/YearPickerNext.vue +52 -0
  588. package/src/YearPicker/YearPickerPrev.vue +52 -0
  589. package/src/YearPicker/YearPickerRoot.vue +314 -0
  590. package/src/YearPicker/index.ts +42 -0
  591. package/src/YearPicker/useYearPicker.ts +202 -0
  592. package/src/YearRangePicker/YearRangePickerCell.vue +30 -0
  593. package/src/YearRangePicker/YearRangePickerCellTrigger.vue +311 -0
  594. package/src/YearRangePicker/YearRangePickerGrid.vue +32 -0
  595. package/src/YearRangePicker/YearRangePickerGridBody.vue +17 -0
  596. package/src/YearRangePicker/YearRangePickerGridRow.vue +20 -0
  597. package/src/YearRangePicker/YearRangePickerHeader.vue +17 -0
  598. package/src/YearRangePicker/YearRangePickerHeading.vue +35 -0
  599. package/src/YearRangePicker/YearRangePickerNext.vue +52 -0
  600. package/src/YearRangePicker/YearRangePickerPrev.vue +52 -0
  601. package/src/YearRangePicker/YearRangePickerRoot.vue +391 -0
  602. package/src/YearRangePicker/index.ts +42 -0
  603. package/src/YearRangePicker/useRangeYearPicker.ts +165 -0
  604. package/src/date/calendar.ts +71 -18
  605. package/src/date/comparators.ts +97 -0
  606. package/src/index.ts +41 -0
  607. package/src/internal.ts +7 -0
  608. package/src/shared/color/channel.ts +424 -0
  609. package/src/shared/color/convert.ts +293 -0
  610. package/src/shared/color/gradient.ts +347 -0
  611. package/src/shared/color/index.ts +35 -0
  612. package/src/shared/color/parse.ts +140 -0
  613. package/src/shared/color/types.ts +40 -0
  614. package/src/shared/color/utils.ts +143 -0
  615. package/src/shared/date/types.ts +6 -0
  616. package/src/shared/date/useDateField.ts +40 -40
  617. package/src/shared/macro.ts +11 -0
  618. package/src/shared/useArrowNavigation.ts +8 -2
  619. package/src/shared/useForwardExpose.ts +21 -6
  620. package/src/shared/useId.ts +6 -7
  621. package/dist/index.d.cts.map +0 -1
  622. package/dist/index.d.ts.map +0 -1
@@ -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'
@@ -82,8 +82,15 @@ const isOutsideVisibleView = computed(() =>
82
82
  const isDisabled = computed(() => rootContext.isDateDisabled(props.day) || (rootContext.disableDaysOutsideCurrentView.value && isOutsideView.value))
83
83
 
84
84
  const isFocusedDate = computed(() => {
85
- return !rootContext.disabled.value && isSameDay(props.day, rootContext.placeholder.value)
85
+ if (isOutsideView.value || isDisabled.value)
86
+ return false
87
+ if (!rootContext.disabled.value && rootContext.isPlaceholderFocusable.value && isSameDay(props.day, rootContext.placeholder.value))
88
+ return true
89
+ if ((!rootContext.hasSelectedDate.value || rootContext.isSelectedDateDisabled.value) && !rootContext.isPlaceholderFocusable.value)
90
+ return rootContext.firstFocusableDate.value && isSameDay(props.day, rootContext.firstFocusableDate.value)
91
+ return false
86
92
  })
93
+
87
94
  const isSelectedDate = computed(() => rootContext.isDateSelected(props.day))
88
95
 
89
96
  function changeDate(date: DateValue) {
@@ -164,7 +171,8 @@ function handleArrowKey(e: KeyboardEvent) {
164
171
  <template>
165
172
  <Primitive
166
173
  ref="primitiveElement"
167
- v-bind="props"
174
+ :as="props.as"
175
+ :as-child="props.asChild"
168
176
  role="button"
169
177
  :aria-label="labelText"
170
178
  data-reka-calendar-cell-trigger
@@ -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
@@ -2,12 +2,13 @@
2
2
  import type { DateValue } from '@internationalized/date'
3
3
 
4
4
  import type { Ref } from 'vue'
5
- import type { Grid, Matcher, WeekDayFormat } from '@/date'
5
+ import type { Grid, Matcher, WeekDayFormat, WeekStartsOn } from '@/date'
6
6
  import type { PrimitiveProps } from '@/Primitive'
7
7
 
8
8
  import type { Formatter } from '@/shared'
9
9
  import type { Direction } from '@/shared/types'
10
10
  import { isEqualDay, isSameDay } from '@internationalized/date'
11
+ import { getWeekStartsOn } from '@/date'
11
12
  import { createContext, useDirection, useLocale } from '@/shared'
12
13
  import { getDefaultDate, handleCalendarInitialFocus } from '@/shared/date'
13
14
  import { useCalendar, useCalendarState } from './useCalendar'
@@ -20,7 +21,7 @@ type CalendarRootContext = {
20
21
  preventDeselect: Ref<boolean>
21
22
  grid: Ref<Grid<DateValue>[]>
22
23
  weekDays: Ref<string[]>
23
- weekStartsOn: Ref<0 | 1 | 2 | 3 | 4 | 5 | 6>
24
+ weekStartsOn: Ref<WeekStartsOn>
24
25
  weekdayFormat: Ref<WeekDayFormat>
25
26
  fixedWeeks: Ref<boolean>
26
27
  multiple: Ref<boolean>
@@ -47,6 +48,10 @@ type CalendarRootContext = {
47
48
  disableDaysOutsideCurrentView: Ref<boolean>
48
49
  minValue: Ref<DateValue | undefined>
49
50
  maxValue: Ref<DateValue | undefined>
51
+ isPlaceholderFocusable: Ref<boolean>
52
+ firstFocusableDate: Ref<DateValue | undefined>
53
+ hasSelectedDate: Ref<boolean>
54
+ isSelectedDateDisabled: Ref<boolean>
50
55
  }
51
56
 
52
57
  export interface CalendarRootProps extends PrimitiveProps {
@@ -61,7 +66,7 @@ export interface CalendarRootProps extends PrimitiveProps {
61
66
  /** Whether or not to prevent the user from deselecting a date without selecting another date first */
62
67
  preventDeselect?: boolean
63
68
  /** The day of the week to start the calendar on */
64
- weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6
69
+ weekStartsOn?: WeekStartsOn
65
70
  /** The format to use for the weekday strings provided via the weekdays slot prop */
66
71
  weekdayFormat?: WeekDayFormat
67
72
  /** The accessible label for the calendar */
@@ -92,7 +97,7 @@ export interface CalendarRootProps extends PrimitiveProps {
92
97
  nextPage?: (placeholder: DateValue) => DateValue
93
98
  /** A function that returns the previous page of the calendar. It receives the current placeholder as an argument inside the component. */
94
99
  prevPage?: (placeholder: DateValue) => DateValue
95
- /** The controlled checked state of the calendar */
100
+ /** The controlled selected date value of the calendar. Can be bound as `v-model`. */
96
101
  modelValue?: DateValue | DateValue[] | undefined
97
102
  /** Whether multiple dates can be selected */
98
103
  multiple?: boolean
@@ -113,7 +118,7 @@ export const [injectCalendarRootContext, provideCalendarRootContext]
113
118
 
114
119
  <script setup lang="ts">
115
120
  import { useVModel } from '@vueuse/core'
116
- import { onMounted, toRefs, watch } from 'vue'
121
+ import { computed, onMounted, toRefs, watch } from 'vue'
117
122
  import { Primitive, usePrimitiveElement } from '@/Primitive'
118
123
 
119
124
  const props = withDefaults(defineProps<CalendarRootProps>(), {
@@ -121,7 +126,6 @@ const props = withDefaults(defineProps<CalendarRootProps>(), {
121
126
  as: 'div',
122
127
  pagedNavigation: false,
123
128
  preventDeselect: false,
124
- weekStartsOn: 0,
125
129
  weekdayFormat: 'narrow',
126
130
  fixedWeeks: false,
127
131
  multiple: false,
@@ -144,7 +148,7 @@ defineSlots<{
144
148
  /** The days of the week */
145
149
  weekDays: string[]
146
150
  /** The start of the week */
147
- weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6
151
+ weekStartsOn: WeekStartsOn
148
152
  /** The calendar locale */
149
153
  locale: string
150
154
  /** Whether or not to always display 6 weeks in the calendar */
@@ -159,7 +163,6 @@ const {
159
163
  readonly,
160
164
  initialFocus,
161
165
  pagedNavigation,
162
- weekStartsOn,
163
166
  weekdayFormat,
164
167
  fixedWeeks,
165
168
  multiple,
@@ -182,6 +185,7 @@ const { primitiveElement, currentElement: parentElement }
182
185
  = usePrimitiveElement()
183
186
  const locale = useLocale(propLocale)
184
187
  const dir = useDirection(propDir)
188
+ const weekStartsOn = computed(() => props.weekStartsOn ?? getWeekStartsOn(locale.value))
185
189
 
186
190
  const modelValue = useVModel(props, 'modelValue', emits, {
187
191
  defaultValue: defaultValue.value,
@@ -216,6 +220,8 @@ const {
216
220
  prevPage,
217
221
  formatter,
218
222
  grid,
223
+ isPlaceholderFocusable,
224
+ firstFocusableDate,
219
225
  } = useCalendar({
220
226
  locale,
221
227
  placeholder,
@@ -237,6 +243,8 @@ const {
237
243
  const {
238
244
  isInvalid,
239
245
  isDateSelected,
246
+ hasSelectedDate,
247
+ isSelectedDateDisabled,
240
248
  } = useCalendarState({
241
249
  date: modelValue,
242
250
  isDateDisabled,
@@ -327,6 +335,10 @@ provideCalendarRootContext({
327
335
  disableDaysOutsideCurrentView,
328
336
  minValue,
329
337
  maxValue,
338
+ isPlaceholderFocusable,
339
+ firstFocusableDate,
340
+ hasSelectedDate,
341
+ isSelectedDateDisabled,
330
342
  })
331
343
  </script>
332
344
 
@@ -4,9 +4,9 @@
4
4
 
5
5
  import type { DateFields, DateValue } from '@internationalized/date'
6
6
  import type { Ref } from 'vue'
7
- import type { Grid, Matcher, WeekDayFormat } from '@/date'
7
+ import type { Grid, Matcher, WeekDayFormat, WeekStartsOn } from '@/date'
8
8
  import type { DateFormatterOptions } from '@/shared/useDateFormatter'
9
- import { isEqualMonth, isSameDay } from '@internationalized/date'
9
+ import { isEqualMonth, isSameDay, isSameMonth } from '@internationalized/date'
10
10
  import { computed, ref, watch } from 'vue'
11
11
  import { createMonths, getDaysInMonth, isAfter, isBefore, toDate } from '@/date'
12
12
  import { useDateFormatter } from '@/shared'
@@ -14,7 +14,7 @@ import { useDateFormatter } from '@/shared'
14
14
  export type UseCalendarProps = {
15
15
  locale: Ref<string>
16
16
  placeholder: Ref<DateValue>
17
- weekStartsOn: Ref<0 | 1 | 2 | 3 | 4 | 5 | 6>
17
+ weekStartsOn: Ref<WeekStartsOn>
18
18
  fixedWeeks: Ref<boolean>
19
19
  numberOfMonths: Ref<number>
20
20
  minValue: Ref<DateValue | undefined>
@@ -71,9 +71,26 @@ export function useCalendarState(props: UseCalendarStateProps) {
71
71
  },
72
72
  )
73
73
 
74
+ const hasSelectedDate = computed(() => {
75
+ return Array.isArray(props.date.value) ? props.date.value.length > 0 : !!props.date.value
76
+ })
77
+
78
+ const isSelectedDateDisabled = computed(() => {
79
+ if (Array.isArray(props.date.value)) {
80
+ if (!props.date.value.length)
81
+ return false
82
+ return props.date.value.some(dateObj => props.isDateDisabled?.(dateObj))
83
+ }
84
+ if (!props.date.value)
85
+ return false
86
+ return !!props.isDateDisabled?.(props.date.value)
87
+ })
88
+
74
89
  return {
75
90
  isDateSelected,
76
91
  isInvalid,
92
+ hasSelectedDate,
93
+ isSelectedDateDisabled,
77
94
  }
78
95
  }
79
96
 
@@ -336,6 +353,27 @@ export function useCalendar(props: UseCalendarProps) {
336
353
 
337
354
  const fullCalendarLabel = computed(() => `${props.calendarLabel.value ?? 'Event Date'}, ${headingValue.value}`)
338
355
 
356
+ const isPlaceholderFocusable = computed(() => {
357
+ return !(isDateDisabled(props.placeholder.value) || isDateUnavailable(props.placeholder.value) || isOutsideVisibleView(props.placeholder.value))
358
+ })
359
+
360
+ const firstFocusableDate = computed(() => {
361
+ for (const month of grid.value) {
362
+ if (props.minValue.value && isBefore(month.value, props.minValue.value))
363
+ continue
364
+
365
+ const daysInMonth = getDaysInMonth(month.value)
366
+ const startDay = props.minValue.value && isSameMonth(props.minValue.value, month.value) ? props.minValue.value.day : 1
367
+
368
+ for (let day = startDay; day <= daysInMonth; day++) {
369
+ const date = month.value.set({ day })
370
+ if (isDateDisabled(date) || isDateUnavailable(date))
371
+ continue
372
+ return date
373
+ }
374
+ }
375
+ })
376
+
339
377
  return {
340
378
  isDateDisabled,
341
379
  isDateUnavailable,
@@ -350,5 +388,7 @@ export function useCalendar(props: UseCalendarProps) {
350
388
  prevPage,
351
389
  headingValue,
352
390
  fullCalendarLabel,
391
+ isPlaceholderFocusable,
392
+ firstFocusableDate,
353
393
  }
354
394
  }