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
@@ -205,10 +205,10 @@ provideNumberFieldRootContext({
205
205
  inputEl,
206
206
  onInputElement: el => inputEl.value = el,
207
207
  textValue,
208
+ readonly,
208
209
  validate,
209
210
  applyInputValue,
210
211
  disabled,
211
- readonly,
212
212
  disableWheelChange,
213
213
  invertWheelChange,
214
214
  max,
@@ -232,6 +232,7 @@ provideNumberFieldRootContext({
232
232
  <slot
233
233
  :model-value="modelValue"
234
234
  :text-value="textValue"
235
+ :readonly="readonly"
235
236
  />
236
237
 
237
238
  <VisuallyHiddenInput
@@ -154,6 +154,8 @@ provideProgressRootContext({
154
154
  :data-value="modelValue ?? undefined"
155
155
  :data-max="max"
156
156
  >
157
- <slot :model-value="modelValue" />
157
+ <slot
158
+ :model-value="modelValue"
159
+ />
158
160
  </Primitive>
159
161
  </template>
@@ -24,7 +24,7 @@ export interface RadioGroupRootProps extends PrimitiveProps, FormFieldProps {
24
24
  }
25
25
  export type RadioGroupRootEmits = {
26
26
  /** Event handler called when the radio group value changes */
27
- 'update:modelValue': [payload: string]
27
+ 'update:modelValue': [payload: AcceptableValue]
28
28
  }
29
29
 
30
30
  interface RadioGroupRootContext {
@@ -94,7 +94,15 @@ const isDisabled = computed(() => rootContext.isDateDisabled(props.day) || (root
94
94
  const dayValue = computed(() => props.day.day.toLocaleString(rootContext.locale.value))
95
95
 
96
96
  const isFocusedDate = computed(() => {
97
- return !rootContext.disabled.value && isSameDay(props.day, rootContext.placeholder.value)
97
+ if (isOutsideView.value || isDisabled.value)
98
+ return false
99
+ if (!rootContext.disabled.value && rootContext.isPlaceholderFocusable.value && isSameDay(props.day, rootContext.placeholder.value))
100
+ return true
101
+ if (!rootContext.disabled.value && rootContext.selectedFocusableDate.value && !rootContext.isPlaceholderFocusable.value)
102
+ return isSameDay(props.day, rootContext.selectedFocusableDate.value)
103
+ if (!rootContext.disabled.value && (!rootContext.hasSelectedDate.value || rootContext.isSelectedDisabled.value) && !rootContext.isPlaceholderFocusable.value)
104
+ return rootContext.firstFocusableDate.value && isSameDay(props.day, rootContext.firstFocusableDate.value)
105
+ return false
98
106
  })
99
107
 
100
108
  function changeDate(e: MouseEvent | KeyboardEvent, date: DateValue) {
@@ -103,22 +111,24 @@ function changeDate(e: MouseEvent | KeyboardEvent, date: DateValue) {
103
111
  if (rootContext.isDateDisabled(date) || rootContext.isDateUnavailable?.(date))
104
112
  return
105
113
 
106
- rootContext.lastPressedDateValue.value = date.copy()
107
-
108
114
  if (rootContext.startValue.value && rootContext.highlightedRange.value === null) {
109
115
  if (isSameDay(date, rootContext.startValue.value) && !rootContext.preventDeselect.value && !rootContext.endValue.value) {
110
116
  rootContext.startValue.value = undefined
111
117
  rootContext.onPlaceholderChange(date)
118
+ rootContext.lastPressedDateValue.value = date.copy()
112
119
  return
113
120
  }
114
121
  else if (!rootContext.endValue.value) {
115
122
  e.preventDefault()
116
123
  if (rootContext.lastPressedDateValue.value && isSameDay(rootContext.lastPressedDateValue.value, date))
117
124
  rootContext.startValue.value = date.copy()
125
+ rootContext.lastPressedDateValue.value = date.copy()
118
126
  return
119
127
  }
120
128
  }
121
129
 
130
+ rootContext.lastPressedDateValue.value = date.copy()
131
+
122
132
  if (
123
133
  rootContext.startValue.value
124
134
  && rootContext.endValue.value
@@ -26,6 +26,7 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
26
26
  :aria-disabled="disabled"
27
27
  :data-readonly="readonly && ''"
28
28
  :data-disabled="disabled && ''"
29
+ @mouseleave="rootContext.focusedValue.value = undefined"
29
30
  >
30
31
  <slot />
31
32
  </Primitive>
@@ -26,18 +26,24 @@ defineSlots<RangeCalendarNextSlot>()
26
26
  const disabled = computed(() => rootContext.disabled.value || rootContext.isNextButtonDisabled(props.nextPage))
27
27
 
28
28
  const rootContext = injectRangeCalendarRootContext()
29
+
30
+ function handleClick() {
31
+ if (disabled.value)
32
+ return
33
+ rootContext.nextPage(props.nextPage)
34
+ }
29
35
  </script>
30
36
 
31
37
  <template>
32
38
  <Primitive
33
- :as="as"
34
- :as-child="asChild"
39
+ :as="props.as"
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,18 +26,24 @@ defineSlots<RangeCalendarPrevSlot>()
26
26
  const disabled = computed(() => rootContext.disabled.value || rootContext.isPrevButtonDisabled(props.prevPage))
27
27
 
28
28
  const rootContext = injectRangeCalendarRootContext()
29
+
30
+ function handleClick() {
31
+ if (disabled.value)
32
+ return
33
+ rootContext.prevPage(props.prevPage)
34
+ }
29
35
  </script>
30
36
 
31
37
  <template>
32
38
  <Primitive
33
- :as="as"
34
- :as-child="asChild"
39
+ :as="props.as"
40
+ :as-child="props.asChild"
35
41
  aria-label="Previous 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.prevPage(props.prevPage)"
46
+ @click="handleClick"
41
47
  >
42
48
  <slot :disabled>
43
49
  Prev page
@@ -1,14 +1,14 @@
1
1
  <script lang="ts">
2
2
  import type { DateValue } from '@internationalized/date'
3
3
  import type { Ref } from 'vue'
4
- import type { Grid, Matcher, WeekDayFormat } from '@/date'
4
+ import type { Grid, Matcher, WeekDayFormat, WeekStartsOn } from '@/date'
5
5
  import type { PrimitiveProps } from '@/Primitive'
6
6
  import type { Formatter } from '@/shared'
7
7
  import type { DateRange } from '@/shared/date'
8
8
  import type { Direction } from '@/shared/types'
9
9
  import { isEqualDay } from '@internationalized/date'
10
10
  import { useCalendar } from '@/Calendar/useCalendar'
11
- import { isBefore } from '@/date'
11
+ import { getWeekStartsOn, isBefore } from '@/date'
12
12
  import {
13
13
  createContext,
14
14
  useDirection,
@@ -28,7 +28,7 @@ type RangeCalendarRootContext = {
28
28
  preventDeselect: Ref<boolean>
29
29
  grid: Ref<Grid<DateValue>[]>
30
30
  weekDays: Ref<string[]>
31
- weekStartsOn: Ref<0 | 1 | 2 | 3 | 4 | 5 | 6>
31
+ weekStartsOn: Ref<WeekStartsOn>
32
32
  weekdayFormat: Ref<WeekDayFormat>
33
33
  fixedWeeks: Ref<boolean>
34
34
  numberOfMonths: Ref<number>
@@ -68,6 +68,11 @@ type RangeCalendarRootContext = {
68
68
  maximumDays: Ref<number | undefined>
69
69
  minValue: Ref<DateValue | undefined>
70
70
  maxValue: Ref<DateValue | undefined>
71
+ isPlaceholderFocusable: Ref<boolean>
72
+ firstFocusableDate: Ref<DateValue | undefined>
73
+ hasSelectedDate: Ref<boolean>
74
+ isSelectedDisabled: Ref<boolean>
75
+ selectedFocusableDate: Ref<DateValue | undefined>
71
76
  }
72
77
 
73
78
  export interface RangeCalendarRootProps extends PrimitiveProps {
@@ -75,7 +80,7 @@ export interface RangeCalendarRootProps extends PrimitiveProps {
75
80
  defaultPlaceholder?: DateValue
76
81
  /** The default value for the calendar */
77
82
  defaultValue?: DateRange
78
- /** The controlled checked state of the calendar. Can be bound as `v-model`. */
83
+ /** The controlled selected date range of the calendar. Can be bound as `v-model`. */
79
84
  modelValue?: DateRange | null
80
85
  /** The placeholder date, which is used to determine what month to display when no date is selected. This updates as the user navigates the calendar and can be used to programmatically control the calendar view */
81
86
  placeholder?: DateValue
@@ -88,7 +93,7 @@ export interface RangeCalendarRootProps extends PrimitiveProps {
88
93
  /** The maximum number of days that can be selected in a range */
89
94
  maximumDays?: number
90
95
  /** The day of the week to start the calendar on */
91
- weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6
96
+ weekStartsOn?: WeekStartsOn
92
97
  /** The format to use for the weekday strings provided via the weekdays slot prop */
93
98
  weekdayFormat?: WeekDayFormat
94
99
  /** The accessible label for the calendar */
@@ -145,7 +150,7 @@ export const [injectRangeCalendarRootContext, provideRangeCalendarRootContext]
145
150
 
146
151
  <script setup lang="ts">
147
152
  import { useEventListener, useVModel } from '@vueuse/core'
148
- import { onMounted, ref, toRefs, watch } from 'vue'
153
+ import { computed, onMounted, ref, toRefs, watch } from 'vue'
149
154
  import { Primitive, usePrimitiveElement } from '@/Primitive'
150
155
 
151
156
  const props = withDefaults(defineProps<RangeCalendarRootProps>(), {
@@ -153,7 +158,6 @@ const props = withDefaults(defineProps<RangeCalendarRootProps>(), {
153
158
  as: 'div',
154
159
  pagedNavigation: false,
155
160
  preventDeselect: false,
156
- weekStartsOn: 0,
157
161
  weekdayFormat: 'narrow',
158
162
  fixedWeeks: false,
159
163
  numberOfMonths: 1,
@@ -167,6 +171,7 @@ const props = withDefaults(defineProps<RangeCalendarRootProps>(), {
167
171
  allowNonContiguousRanges: false,
168
172
  maximumDays: undefined,
169
173
  disableDaysOutsideCurrentView: false,
174
+
170
175
  })
171
176
  const emits = defineEmits<RangeCalendarRootEmits>()
172
177
 
@@ -179,7 +184,7 @@ defineSlots<{
179
184
  /** The days of the week */
180
185
  weekDays: string[]
181
186
  /** The start of the week */
182
- weekStartsOn: 0 | 1 | 2 | 3 | 4 | 5 | 6
187
+ weekStartsOn: WeekStartsOn
183
188
  /** The calendar locale */
184
189
  locale: string
185
190
  /** Whether or not to always display 6 weeks in the calendar */
@@ -194,7 +199,6 @@ const {
194
199
  readonly,
195
200
  initialFocus,
196
201
  pagedNavigation,
197
- weekStartsOn,
198
202
  weekdayFormat,
199
203
  fixedWeeks,
200
204
  numberOfMonths,
@@ -219,6 +223,7 @@ const { primitiveElement, currentElement: parentElement }
219
223
  = usePrimitiveElement()
220
224
  const dir = useDirection(propDir)
221
225
  const locale = useLocale(propLocale)
226
+ const weekStartsOn = computed(() => props.weekStartsOn ?? getWeekStartsOn(locale.value))
222
227
 
223
228
  const lastPressedDateValue = ref() as Ref<DateValue | undefined>
224
229
  const focusedValue = ref() as Ref<DateValue | undefined>
@@ -227,9 +232,12 @@ const isEditing = ref(false)
227
232
  const modelValue = useVModel(props, 'modelValue', emits, {
228
233
  defaultValue: props.defaultValue ?? { start: undefined, end: undefined },
229
234
  passive: (props.modelValue === undefined) as false,
230
- }) as Ref<DateRange>
235
+ }) as Ref<DateRange | null>
236
+
237
+ const normalizeRange = (value?: DateRange | null): DateRange => value ?? { start: undefined, end: undefined }
238
+ const normalizedModelValue = computed(() => normalizeRange(modelValue.value))
231
239
 
232
- const validModelValue = ref(modelValue.value) as Ref<DateRange>
240
+ const validModelValue = ref(normalizeRange(modelValue.value)) as Ref<DateRange>
233
241
 
234
242
  watch(validModelValue, (value) => {
235
243
  emits('update:validModelValue', value)
@@ -237,14 +245,14 @@ watch(validModelValue, (value) => {
237
245
 
238
246
  const defaultDate = getDefaultDate({
239
247
  defaultPlaceholder: props.placeholder,
240
- defaultValue: modelValue.value.start,
248
+ defaultValue: normalizeRange(modelValue.value).start,
241
249
  locale: props.locale,
242
250
  })
243
251
 
244
- const startValue = ref(modelValue.value.start) as Ref<
252
+ const startValue = ref(normalizeRange(modelValue.value).start) as Ref<
245
253
  DateValue | undefined
246
254
  >
247
- const endValue = ref(modelValue.value.end) as Ref<DateValue | undefined>
255
+ const endValue = ref(normalizeRange(modelValue.value).end) as Ref<DateValue | undefined>
248
256
 
249
257
  const placeholder = useVModel(props, 'placeholder', emits, {
250
258
  defaultValue: props.defaultPlaceholder ?? defaultDate.copy(),
@@ -268,6 +276,8 @@ const {
268
276
  nextPage,
269
277
  prevPage,
270
278
  formatter,
279
+ isPlaceholderFocusable,
280
+ firstFocusableDate,
271
281
  } = useCalendar({
272
282
  locale,
273
283
  placeholder,
@@ -296,6 +306,9 @@ const {
296
306
  isHighlightedStart,
297
307
  isHighlightedEnd,
298
308
  isDateDisabled: rangeIsDateDisabled,
309
+ hasSelectedDate,
310
+ isSelectedDisabled,
311
+ selectedFocusableDate,
299
312
  } = useRangeCalendarState({
300
313
  start: startValue,
301
314
  end: endValue,
@@ -308,23 +321,21 @@ const {
308
321
  maximumDays,
309
322
  })
310
323
 
311
- watch(modelValue, (_modelValue, _prevValue) => {
312
- if (
313
- (!_prevValue?.start && _modelValue?.start)
314
- || !_modelValue
315
- || !_modelValue.start
316
- || (startValue.value && !isEqualDay(_modelValue.start, startValue.value))
317
- ) {
318
- startValue.value = _modelValue?.start?.copy?.()
324
+ watch(modelValue, (_modelValue) => {
325
+ const next = normalizeRange(_modelValue)
326
+
327
+ const isStartSynced = (!next.start && !startValue.value)
328
+ || (!!next.start && !!startValue.value && isEqualDay(next.start, startValue.value))
329
+
330
+ if (!isStartSynced) {
331
+ startValue.value = next.start?.copy?.()
319
332
  }
320
333
 
321
- if (
322
- (!_prevValue?.end && _modelValue.end)
323
- || !_modelValue
324
- || !_modelValue.end
325
- || (endValue.value && !isEqualDay(_modelValue.end, endValue.value))
326
- ) {
327
- endValue.value = _modelValue?.end?.copy?.()
334
+ const isEndSynced = (!next.end && !endValue.value)
335
+ || (!!next.end && !!endValue.value && isEqualDay(next.end, endValue.value))
336
+
337
+ if (!isEndSynced) {
338
+ endValue.value = next.end?.copy?.()
328
339
  }
329
340
  })
330
341
 
@@ -368,7 +379,7 @@ watch([startValue, endValue], ([_startValue, _endValue]) => {
368
379
  })
369
380
 
370
381
  const kbd = useKbd()
371
- useEventListener('keydown', (ev) => {
382
+ useEventListener(parentElement, 'keydown', (ev) => {
372
383
  if (ev.key === kbd.ESCAPE && isEditing.value) {
373
384
  // Abort start and end selection
374
385
  startValue.value = validModelValue.value.start?.copy()
@@ -382,7 +393,7 @@ provideRangeCalendarRootContext({
382
393
  startValue,
383
394
  endValue,
384
395
  formatter,
385
- modelValue,
396
+ modelValue: normalizedModelValue,
386
397
  placeholder,
387
398
  disabled,
388
399
  initialFocus,
@@ -422,6 +433,11 @@ provideRangeCalendarRootContext({
422
433
  maximumDays,
423
434
  minValue,
424
435
  maxValue,
436
+ isPlaceholderFocusable,
437
+ firstFocusableDate,
438
+ hasSelectedDate,
439
+ isSelectedDisabled,
440
+ selectedFocusableDate,
425
441
  })
426
442
 
427
443
  onMounted(() => {
@@ -470,7 +486,7 @@ onMounted(() => {
470
486
  :week-starts-on="weekStartsOn"
471
487
  :locale="locale"
472
488
  :fixed-weeks="fixedWeeks"
473
- :model-value="modelValue"
489
+ :model-value="normalizedModelValue"
474
490
  />
475
491
  </Primitive>
476
492
  </template>
@@ -41,7 +41,7 @@ export function useRangeCalendarState(props: UseRangeCalendarProps) {
41
41
  const isInvalid = computed(
42
42
  () => {
43
43
  if (isStartInvalid.value || isEndInvalid.value)
44
- return false
44
+ return true
45
45
  if (props.start.value && props.end.value && isBefore(props.end.value, props.start.value))
46
46
  return true
47
47
  return false
@@ -71,12 +71,10 @@ export function useRangeCalendarState(props: UseRangeCalendarProps) {
71
71
  return false
72
72
  }
73
73
 
74
- // Check if a date exceeds maximum days limit from the start date
75
74
  const rangeIsDateDisabled = (date: DateValue) => {
76
75
  if (props.isDateDisabled(date))
77
76
  return true
78
77
 
79
- // Check if exceeds maximum days limit
80
78
  if (props.maximumDays?.value) {
81
79
  if (props.start.value && props.end.value) {
82
80
  if (props.fixedDate.value) {
@@ -97,9 +95,6 @@ export function useRangeCalendarState(props: UseRangeCalendarProps) {
97
95
  }
98
96
  }
99
97
 
100
- if (!props.start.value || props.end.value || isSameDay(props.start.value, date))
101
- return false
102
-
103
98
  return false
104
99
  }
105
100
 
@@ -126,18 +121,15 @@ export function useRangeCalendarState(props: UseRangeCalendarProps) {
126
121
  }
127
122
  }
128
123
 
129
- // If maximum days is set and the range exceeds it, limit the highlight
130
- // We only apply this when we're in the middle of a selection (no end date yet)
131
124
  if (props.maximumDays?.value && !props.end.value) {
132
- // Determine the direction of selection and limit to maximum days
133
- const cappedEnd = isStartBeforeFocused
134
- ? start.add({ days: props.maximumDays.value - 1 })
135
- : start.subtract({ days: props.maximumDays.value })
125
+ const maximumDays = props.maximumDays.value
126
+ const anchor = props.start.value
127
+ const focused = props.focusedValue.value
136
128
 
137
- return {
138
- start,
139
- end: cappedEnd,
140
- }
129
+ if (!isBefore(focused, anchor))
130
+ return { start: anchor, end: anchor.add({ days: maximumDays - 1 }) }
131
+
132
+ return { start: anchor.subtract({ days: maximumDays - 1 }), end: anchor }
141
133
  }
142
134
 
143
135
  const isValid = areAllDaysBetweenValid(start, end, props.allowNonContiguousRanges.value ? () => false : props.isDateUnavailable, rangeIsDateDisabled, props.isDateHighlightable)
@@ -162,6 +154,36 @@ export function useRangeCalendarState(props: UseRangeCalendarProps) {
162
154
  return isSameDay(highlightedRange.value.end, date)
163
155
  }
164
156
 
157
+ const hasSelectedDate = computed(() => {
158
+ return !!(props.start.value || props.end.value)
159
+ })
160
+
161
+ const isStartDateDisabled = computed(() => {
162
+ return !!(props.start.value && props.isDateDisabled(props.start.value))
163
+ })
164
+
165
+ const isEndDateDisabled = computed(() => {
166
+ return !!(props.end.value && props.isDateDisabled(props.end.value))
167
+ })
168
+
169
+ const isSelectedDisabled = computed(() => {
170
+ const hasStart = !!props.start.value
171
+ const hasEnd = !!props.end.value
172
+ if (!hasStart && !hasEnd)
173
+ return false
174
+ if (hasStart && hasEnd)
175
+ return isStartDateDisabled.value && isEndDateDisabled.value
176
+ return (hasStart && isStartDateDisabled.value) || (hasEnd && isEndDateDisabled.value)
177
+ })
178
+
179
+ const selectedFocusableDate = computed(() => {
180
+ if (props.start.value && !isStartDateDisabled.value)
181
+ return props.start.value
182
+ if (props.end.value && !isEndDateDisabled.value)
183
+ return props.end.value
184
+ return undefined
185
+ })
186
+
165
187
  return {
166
188
  isInvalid,
167
189
  isSelected,
@@ -172,5 +194,8 @@ export function useRangeCalendarState(props: UseRangeCalendarProps) {
172
194
  isHighlightedStart,
173
195
  isHighlightedEnd,
174
196
  isDateDisabled: rangeIsDateDisabled,
197
+ hasSelectedDate,
198
+ isSelectedDisabled,
199
+ selectedFocusableDate,
175
200
  }
176
201
  }