reka-ui 2.8.2 → 2.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (644) hide show
  1. package/dist/Autocomplete/AutocompleteInput.cjs +128 -0
  2. package/dist/Autocomplete/AutocompleteInput.cjs.map +1 -0
  3. package/dist/Autocomplete/AutocompleteInput.js +122 -0
  4. package/dist/Autocomplete/AutocompleteInput.js.map +1 -0
  5. package/dist/Autocomplete/AutocompleteRoot.cjs +258 -0
  6. package/dist/Autocomplete/AutocompleteRoot.cjs.map +1 -0
  7. package/dist/Autocomplete/AutocompleteRoot.js +246 -0
  8. package/dist/Autocomplete/AutocompleteRoot.js.map +1 -0
  9. package/dist/Calendar/CalendarCellTrigger.cjs +8 -5
  10. package/dist/Calendar/CalendarCellTrigger.cjs.map +1 -1
  11. package/dist/Calendar/CalendarCellTrigger.js +9 -6
  12. package/dist/Calendar/CalendarCellTrigger.js.map +1 -1
  13. package/dist/Calendar/CalendarGrid.cjs +3 -3
  14. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  15. package/dist/Calendar/CalendarGrid.js +4 -4
  16. package/dist/Calendar/CalendarGrid.js.map +1 -1
  17. package/dist/Calendar/CalendarNext.cjs +7 -3
  18. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  19. package/dist/Calendar/CalendarNext.js +7 -3
  20. package/dist/Calendar/CalendarNext.js.map +1 -1
  21. package/dist/Calendar/CalendarPrev.cjs +7 -3
  22. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  23. package/dist/Calendar/CalendarPrev.js +7 -3
  24. package/dist/Calendar/CalendarPrev.js.map +1 -1
  25. package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
  26. package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
  27. package/dist/Checkbox/CheckboxRoot.cjs +21 -10
  28. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  29. package/dist/Checkbox/CheckboxRoot.js +21 -10
  30. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  31. package/dist/ColorArea/ColorAreaArea.cjs +143 -0
  32. package/dist/ColorArea/ColorAreaArea.cjs.map +1 -0
  33. package/dist/ColorArea/ColorAreaArea.js +137 -0
  34. package/dist/ColorArea/ColorAreaArea.js.map +1 -0
  35. package/dist/ColorArea/ColorAreaRoot.cjs +240 -0
  36. package/dist/ColorArea/ColorAreaRoot.cjs.map +1 -0
  37. package/dist/ColorArea/ColorAreaRoot.js +228 -0
  38. package/dist/ColorArea/ColorAreaRoot.js.map +1 -0
  39. package/dist/ColorArea/ColorAreaThumb.cjs +91 -0
  40. package/dist/ColorArea/ColorAreaThumb.cjs.map +1 -0
  41. package/dist/ColorArea/ColorAreaThumb.js +85 -0
  42. package/dist/ColorArea/ColorAreaThumb.js.map +1 -0
  43. package/dist/ColorArea/utils.cjs +32 -0
  44. package/dist/ColorArea/utils.cjs.map +1 -0
  45. package/dist/ColorArea/utils.js +21 -0
  46. package/dist/ColorArea/utils.js.map +1 -0
  47. package/dist/ColorField/ColorFieldInput.cjs +140 -0
  48. package/dist/ColorField/ColorFieldInput.cjs.map +1 -0
  49. package/dist/ColorField/ColorFieldInput.js +134 -0
  50. package/dist/ColorField/ColorFieldInput.js.map +1 -0
  51. package/dist/ColorField/ColorFieldRoot.cjs +281 -0
  52. package/dist/ColorField/ColorFieldRoot.cjs.map +1 -0
  53. package/dist/ColorField/ColorFieldRoot.js +269 -0
  54. package/dist/ColorField/ColorFieldRoot.js.map +1 -0
  55. package/dist/ColorSlider/ColorSliderRoot.cjs +230 -0
  56. package/dist/ColorSlider/ColorSliderRoot.cjs.map +1 -0
  57. package/dist/ColorSlider/ColorSliderRoot.js +218 -0
  58. package/dist/ColorSlider/ColorSliderRoot.js.map +1 -0
  59. package/dist/ColorSlider/ColorSliderThumb.cjs +66 -0
  60. package/dist/ColorSlider/ColorSliderThumb.cjs.map +1 -0
  61. package/dist/ColorSlider/ColorSliderThumb.js +60 -0
  62. package/dist/ColorSlider/ColorSliderThumb.js.map +1 -0
  63. package/dist/ColorSlider/ColorSliderTrack.cjs +55 -0
  64. package/dist/ColorSlider/ColorSliderTrack.cjs.map +1 -0
  65. package/dist/ColorSlider/ColorSliderTrack.js +49 -0
  66. package/dist/ColorSlider/ColorSliderTrack.js.map +1 -0
  67. package/dist/ColorSwatch/ColorSwatch.cjs +106 -0
  68. package/dist/ColorSwatch/ColorSwatch.cjs.map +1 -0
  69. package/dist/ColorSwatch/ColorSwatch.js +100 -0
  70. package/dist/ColorSwatch/ColorSwatch.js.map +1 -0
  71. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.cjs +78 -0
  72. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.cjs.map +1 -0
  73. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.js +66 -0
  74. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.js.map +1 -0
  75. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.cjs +40 -0
  76. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.cjs.map +1 -0
  77. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.js +34 -0
  78. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.js.map +1 -0
  79. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.cjs +43 -0
  80. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.cjs.map +1 -0
  81. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.js +37 -0
  82. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.js.map +1 -0
  83. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.cjs +110 -0
  84. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.cjs.map +1 -0
  85. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.js +104 -0
  86. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.js.map +1 -0
  87. package/dist/Combobox/ComboboxContent.cjs +4 -0
  88. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  89. package/dist/Combobox/ComboboxContent.js +4 -0
  90. package/dist/Combobox/ComboboxContent.js.map +1 -1
  91. package/dist/Combobox/ComboboxContentImpl.cjs +9 -2
  92. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  93. package/dist/Combobox/ComboboxContentImpl.js +9 -2
  94. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  95. package/dist/Combobox/ComboboxInput.cjs +10 -1
  96. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  97. package/dist/Combobox/ComboboxInput.js +10 -1
  98. package/dist/Combobox/ComboboxInput.js.map +1 -1
  99. package/dist/Combobox/ComboboxRoot.cjs +7 -1
  100. package/dist/Combobox/ComboboxRoot.js +2 -2
  101. package/dist/DateField/DateFieldRoot.cjs +1 -1
  102. package/dist/DateField/DateFieldRoot.js +1 -1
  103. package/dist/DateRangeField/DateRangeFieldRoot.cjs +1 -1
  104. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  105. package/dist/DateRangeField/DateRangeFieldRoot.js +1 -1
  106. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  107. package/dist/DismissableLayer/utils.cjs +1 -0
  108. package/dist/DismissableLayer/utils.cjs.map +1 -1
  109. package/dist/DismissableLayer/utils.js +1 -0
  110. package/dist/DismissableLayer/utils.js.map +1 -1
  111. package/dist/DropdownMenu/DropdownMenuFilter.cjs +134 -0
  112. package/dist/DropdownMenu/DropdownMenuFilter.cjs.map +1 -0
  113. package/dist/DropdownMenu/DropdownMenuFilter.js +128 -0
  114. package/dist/DropdownMenu/DropdownMenuFilter.js.map +1 -0
  115. package/dist/Listbox/ListboxRoot.cjs +1 -1
  116. package/dist/Listbox/ListboxRoot.js +1 -1
  117. package/dist/Listbox/ListboxVirtualizer.cjs +1 -1
  118. package/dist/Listbox/ListboxVirtualizer.js +1 -1
  119. package/dist/Menu/MenuContentImpl.cjs +44 -4
  120. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  121. package/dist/Menu/MenuContentImpl.js +44 -4
  122. package/dist/Menu/MenuContentImpl.js.map +1 -1
  123. package/dist/Menu/MenuGroup.cjs +13 -2
  124. package/dist/Menu/MenuGroup.cjs.map +1 -1
  125. package/dist/Menu/MenuGroup.js +8 -3
  126. package/dist/Menu/MenuGroup.js.map +1 -1
  127. package/dist/Menu/MenuItemImpl.cjs +11 -5
  128. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  129. package/dist/Menu/MenuItemImpl.js +12 -6
  130. package/dist/Menu/MenuItemImpl.js.map +1 -1
  131. package/dist/Menu/MenuLabel.cjs +4 -2
  132. package/dist/Menu/MenuLabel.cjs.map +1 -1
  133. package/dist/Menu/MenuLabel.js +5 -3
  134. package/dist/Menu/MenuLabel.js.map +1 -1
  135. package/dist/Menu/MenuSubContent.cjs +8 -2
  136. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  137. package/dist/Menu/MenuSubContent.js +9 -3
  138. package/dist/Menu/MenuSubContent.js.map +1 -1
  139. package/dist/Menu/MenuSubTrigger.cjs +7 -0
  140. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  141. package/dist/Menu/MenuSubTrigger.js +8 -1
  142. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  143. package/dist/MonthPicker/MonthPickerCell.cjs +59 -0
  144. package/dist/MonthPicker/MonthPickerCell.cjs.map +1 -0
  145. package/dist/MonthPicker/MonthPickerCell.js +53 -0
  146. package/dist/MonthPicker/MonthPickerCell.js.map +1 -0
  147. package/dist/MonthPicker/MonthPickerCellTrigger.cjs +197 -0
  148. package/dist/MonthPicker/MonthPickerCellTrigger.cjs.map +1 -0
  149. package/dist/MonthPicker/MonthPickerCellTrigger.js +191 -0
  150. package/dist/MonthPicker/MonthPickerCellTrigger.js.map +1 -0
  151. package/dist/MonthPicker/MonthPickerGrid.cjs +59 -0
  152. package/dist/MonthPicker/MonthPickerGrid.cjs.map +1 -0
  153. package/dist/MonthPicker/MonthPickerGrid.js +53 -0
  154. package/dist/MonthPicker/MonthPickerGrid.js.map +1 -0
  155. package/dist/MonthPicker/MonthPickerGridBody.cjs +41 -0
  156. package/dist/MonthPicker/MonthPickerGridBody.cjs.map +1 -0
  157. package/dist/MonthPicker/MonthPickerGridBody.js +35 -0
  158. package/dist/MonthPicker/MonthPickerGridBody.js.map +1 -0
  159. package/dist/MonthPicker/MonthPickerGridRow.cjs +41 -0
  160. package/dist/MonthPicker/MonthPickerGridRow.cjs.map +1 -0
  161. package/dist/MonthPicker/MonthPickerGridRow.js +35 -0
  162. package/dist/MonthPicker/MonthPickerGridRow.js.map +1 -0
  163. package/dist/MonthPicker/MonthPickerHeader.cjs +41 -0
  164. package/dist/MonthPicker/MonthPickerHeader.cjs.map +1 -0
  165. package/dist/MonthPicker/MonthPickerHeader.js +35 -0
  166. package/dist/MonthPicker/MonthPickerHeader.js.map +1 -0
  167. package/dist/MonthPicker/MonthPickerHeading.cjs +48 -0
  168. package/dist/MonthPicker/MonthPickerHeading.cjs.map +1 -0
  169. package/dist/MonthPicker/MonthPickerHeading.js +42 -0
  170. package/dist/MonthPicker/MonthPickerHeading.js.map +1 -0
  171. package/dist/MonthPicker/MonthPickerNext.cjs +68 -0
  172. package/dist/MonthPicker/MonthPickerNext.cjs.map +1 -0
  173. package/dist/MonthPicker/MonthPickerNext.js +62 -0
  174. package/dist/MonthPicker/MonthPickerNext.js.map +1 -0
  175. package/dist/MonthPicker/MonthPickerPrev.cjs +68 -0
  176. package/dist/MonthPicker/MonthPickerPrev.cjs.map +1 -0
  177. package/dist/MonthPicker/MonthPickerPrev.js +62 -0
  178. package/dist/MonthPicker/MonthPickerPrev.js.map +1 -0
  179. package/dist/MonthPicker/MonthPickerRoot.cjs +281 -0
  180. package/dist/MonthPicker/MonthPickerRoot.cjs.map +1 -0
  181. package/dist/MonthPicker/MonthPickerRoot.js +269 -0
  182. package/dist/MonthPicker/MonthPickerRoot.js.map +1 -0
  183. package/dist/MonthPicker/useMonthPicker.cjs +148 -0
  184. package/dist/MonthPicker/useMonthPicker.cjs.map +1 -0
  185. package/dist/MonthPicker/useMonthPicker.js +136 -0
  186. package/dist/MonthPicker/useMonthPicker.js.map +1 -0
  187. package/dist/MonthRangePicker/MonthRangePickerCell.cjs +59 -0
  188. package/dist/MonthRangePicker/MonthRangePickerCell.cjs.map +1 -0
  189. package/dist/MonthRangePicker/MonthRangePickerCell.js +53 -0
  190. package/dist/MonthRangePicker/MonthRangePickerCell.js.map +1 -0
  191. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.cjs +258 -0
  192. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.cjs.map +1 -0
  193. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.js +252 -0
  194. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.js.map +1 -0
  195. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs +59 -0
  196. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs.map +1 -0
  197. package/dist/MonthRangePicker/MonthRangePickerGrid.js +53 -0
  198. package/dist/MonthRangePicker/MonthRangePickerGrid.js.map +1 -0
  199. package/dist/MonthRangePicker/MonthRangePickerGridBody.cjs +41 -0
  200. package/dist/MonthRangePicker/MonthRangePickerGridBody.cjs.map +1 -0
  201. package/dist/MonthRangePicker/MonthRangePickerGridBody.js +35 -0
  202. package/dist/MonthRangePicker/MonthRangePickerGridBody.js.map +1 -0
  203. package/dist/MonthRangePicker/MonthRangePickerGridRow.cjs +41 -0
  204. package/dist/MonthRangePicker/MonthRangePickerGridRow.cjs.map +1 -0
  205. package/dist/MonthRangePicker/MonthRangePickerGridRow.js +35 -0
  206. package/dist/MonthRangePicker/MonthRangePickerGridRow.js.map +1 -0
  207. package/dist/MonthRangePicker/MonthRangePickerHeader.cjs +41 -0
  208. package/dist/MonthRangePicker/MonthRangePickerHeader.cjs.map +1 -0
  209. package/dist/MonthRangePicker/MonthRangePickerHeader.js +35 -0
  210. package/dist/MonthRangePicker/MonthRangePickerHeader.js.map +1 -0
  211. package/dist/MonthRangePicker/MonthRangePickerHeading.cjs +48 -0
  212. package/dist/MonthRangePicker/MonthRangePickerHeading.cjs.map +1 -0
  213. package/dist/MonthRangePicker/MonthRangePickerHeading.js +42 -0
  214. package/dist/MonthRangePicker/MonthRangePickerHeading.js.map +1 -0
  215. package/dist/MonthRangePicker/MonthRangePickerNext.cjs +68 -0
  216. package/dist/MonthRangePicker/MonthRangePickerNext.cjs.map +1 -0
  217. package/dist/MonthRangePicker/MonthRangePickerNext.js +62 -0
  218. package/dist/MonthRangePicker/MonthRangePickerNext.js.map +1 -0
  219. package/dist/MonthRangePicker/MonthRangePickerPrev.cjs +68 -0
  220. package/dist/MonthRangePicker/MonthRangePickerPrev.cjs.map +1 -0
  221. package/dist/MonthRangePicker/MonthRangePickerPrev.js +62 -0
  222. package/dist/MonthRangePicker/MonthRangePickerPrev.js.map +1 -0
  223. package/dist/MonthRangePicker/MonthRangePickerRoot.cjs +347 -0
  224. package/dist/MonthRangePicker/MonthRangePickerRoot.cjs.map +1 -0
  225. package/dist/MonthRangePicker/MonthRangePickerRoot.js +335 -0
  226. package/dist/MonthRangePicker/MonthRangePickerRoot.js.map +1 -0
  227. package/dist/MonthRangePicker/useRangeMonthPicker.cjs +128 -0
  228. package/dist/MonthRangePicker/useRangeMonthPicker.cjs.map +1 -0
  229. package/dist/MonthRangePicker/useRangeMonthPicker.js +122 -0
  230. package/dist/MonthRangePicker/useRangeMonthPicker.js.map +1 -0
  231. package/dist/NavigationMenu/NavigationMenuItem.js +3 -3
  232. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  233. package/dist/NumberField/NumberFieldRoot.cjs +3 -2
  234. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  235. package/dist/NumberField/NumberFieldRoot.js +3 -2
  236. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  237. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  238. package/dist/Progress/ProgressRoot.js.map +1 -1
  239. package/dist/RadioGroup/RadioGroupRoot.cjs +1 -1
  240. package/dist/RadioGroup/RadioGroupRoot.js +1 -1
  241. package/dist/RangeCalendar/RangeCalendarGrid.cjs +3 -3
  242. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  243. package/dist/RangeCalendar/RangeCalendarGrid.js +4 -4
  244. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  245. package/dist/RangeCalendar/RangeCalendarNext.cjs +9 -5
  246. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  247. package/dist/RangeCalendar/RangeCalendarNext.js +9 -5
  248. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  249. package/dist/RangeCalendar/RangeCalendarPrev.cjs +9 -5
  250. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  251. package/dist/RangeCalendar/RangeCalendarPrev.js +9 -5
  252. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  253. package/dist/RangeCalendar/RangeCalendarRoot.cjs +1 -1
  254. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  255. package/dist/RangeCalendar/RangeCalendarRoot.js +1 -1
  256. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  257. package/dist/RangeCalendar/useRangeCalendar.cjs +9 -13
  258. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  259. package/dist/RangeCalendar/useRangeCalendar.js +9 -13
  260. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  261. package/dist/Splitter/SplitterGroup.cjs +156 -36
  262. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  263. package/dist/Splitter/SplitterGroup.js +156 -36
  264. package/dist/Splitter/SplitterGroup.js.map +1 -1
  265. package/dist/Splitter/SplitterPanel.cjs +7 -2
  266. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  267. package/dist/Splitter/SplitterPanel.js +7 -2
  268. package/dist/Splitter/SplitterPanel.js.map +1 -1
  269. package/dist/Switch/SwitchRoot.cjs +23 -9
  270. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  271. package/dist/Switch/SwitchRoot.js +23 -9
  272. package/dist/Switch/SwitchRoot.js.map +1 -1
  273. package/dist/Switch/SwitchThumb.cjs +1 -1
  274. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  275. package/dist/Switch/SwitchThumb.js +1 -1
  276. package/dist/Switch/SwitchThumb.js.map +1 -1
  277. package/dist/TimeField/TimeFieldRoot.cjs +1 -1
  278. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  279. package/dist/TimeField/TimeFieldRoot.js +1 -1
  280. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  281. package/dist/TimeRangeField/TimeRangeFieldInput.cjs +102 -0
  282. package/dist/TimeRangeField/TimeRangeFieldInput.cjs.map +1 -0
  283. package/dist/TimeRangeField/TimeRangeFieldInput.js +96 -0
  284. package/dist/TimeRangeField/TimeRangeFieldInput.js.map +1 -0
  285. package/dist/TimeRangeField/TimeRangeFieldRoot.cjs +402 -0
  286. package/dist/TimeRangeField/TimeRangeFieldRoot.cjs.map +1 -0
  287. package/dist/TimeRangeField/TimeRangeFieldRoot.js +390 -0
  288. package/dist/TimeRangeField/TimeRangeFieldRoot.js.map +1 -0
  289. package/dist/Toast/FocusProxy.cjs +0 -1
  290. package/dist/Toast/FocusProxy.cjs.map +1 -1
  291. package/dist/Toast/FocusProxy.js +0 -1
  292. package/dist/Toast/FocusProxy.js.map +1 -1
  293. package/dist/Toast/ToastAnnounce.cjs +4 -1
  294. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  295. package/dist/Toast/ToastAnnounce.js +4 -1
  296. package/dist/Toast/ToastAnnounce.js.map +1 -1
  297. package/dist/Toast/ToastRootImpl.cjs +1 -5
  298. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  299. package/dist/Toast/ToastRootImpl.js +1 -5
  300. package/dist/Toast/ToastRootImpl.js.map +1 -1
  301. package/dist/ToggleGroup/ToggleGroupRoot.cjs +1 -1
  302. package/dist/ToggleGroup/ToggleGroupRoot.js +1 -1
  303. package/dist/Tooltip/TooltipContent.cjs +1 -2
  304. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  305. package/dist/Tooltip/TooltipContent.js +1 -2
  306. package/dist/Tooltip/TooltipContent.js.map +1 -1
  307. package/dist/Tooltip/TooltipContentImpl.cjs +25 -18
  308. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  309. package/dist/Tooltip/TooltipContentImpl.js +25 -18
  310. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  311. package/dist/Tooltip/TooltipProvider.cjs +7 -2
  312. package/dist/Tooltip/TooltipProvider.cjs.map +1 -1
  313. package/dist/Tooltip/TooltipProvider.js +7 -2
  314. package/dist/Tooltip/TooltipProvider.js.map +1 -1
  315. package/dist/YearPicker/YearPickerCell.cjs +59 -0
  316. package/dist/YearPicker/YearPickerCell.cjs.map +1 -0
  317. package/dist/YearPicker/YearPickerCell.js +53 -0
  318. package/dist/YearPicker/YearPickerCell.js.map +1 -0
  319. package/dist/YearPicker/YearPickerCellTrigger.cjs +197 -0
  320. package/dist/YearPicker/YearPickerCellTrigger.cjs.map +1 -0
  321. package/dist/YearPicker/YearPickerCellTrigger.js +191 -0
  322. package/dist/YearPicker/YearPickerCellTrigger.js.map +1 -0
  323. package/dist/YearPicker/YearPickerGrid.cjs +59 -0
  324. package/dist/YearPicker/YearPickerGrid.cjs.map +1 -0
  325. package/dist/YearPicker/YearPickerGrid.js +53 -0
  326. package/dist/YearPicker/YearPickerGrid.js.map +1 -0
  327. package/dist/YearPicker/YearPickerGridBody.cjs +41 -0
  328. package/dist/YearPicker/YearPickerGridBody.cjs.map +1 -0
  329. package/dist/YearPicker/YearPickerGridBody.js +35 -0
  330. package/dist/YearPicker/YearPickerGridBody.js.map +1 -0
  331. package/dist/YearPicker/YearPickerGridRow.cjs +41 -0
  332. package/dist/YearPicker/YearPickerGridRow.cjs.map +1 -0
  333. package/dist/YearPicker/YearPickerGridRow.js +35 -0
  334. package/dist/YearPicker/YearPickerGridRow.js.map +1 -0
  335. package/dist/YearPicker/YearPickerHeader.cjs +41 -0
  336. package/dist/YearPicker/YearPickerHeader.cjs.map +1 -0
  337. package/dist/YearPicker/YearPickerHeader.js +35 -0
  338. package/dist/YearPicker/YearPickerHeader.js.map +1 -0
  339. package/dist/YearPicker/YearPickerHeading.cjs +48 -0
  340. package/dist/YearPicker/YearPickerHeading.cjs.map +1 -0
  341. package/dist/YearPicker/YearPickerHeading.js +42 -0
  342. package/dist/YearPicker/YearPickerHeading.js.map +1 -0
  343. package/dist/YearPicker/YearPickerNext.cjs +68 -0
  344. package/dist/YearPicker/YearPickerNext.cjs.map +1 -0
  345. package/dist/YearPicker/YearPickerNext.js +62 -0
  346. package/dist/YearPicker/YearPickerNext.js.map +1 -0
  347. package/dist/YearPicker/YearPickerPrev.cjs +68 -0
  348. package/dist/YearPicker/YearPickerPrev.cjs.map +1 -0
  349. package/dist/YearPicker/YearPickerPrev.js +62 -0
  350. package/dist/YearPicker/YearPickerPrev.js.map +1 -0
  351. package/dist/YearPicker/YearPickerRoot.cjs +287 -0
  352. package/dist/YearPicker/YearPickerRoot.cjs.map +1 -0
  353. package/dist/YearPicker/YearPickerRoot.js +275 -0
  354. package/dist/YearPicker/YearPickerRoot.js.map +1 -0
  355. package/dist/YearPicker/useYearPicker.cjs +180 -0
  356. package/dist/YearPicker/useYearPicker.cjs.map +1 -0
  357. package/dist/YearPicker/useYearPicker.js +168 -0
  358. package/dist/YearPicker/useYearPicker.js.map +1 -0
  359. package/dist/YearRangePicker/YearRangePickerCell.cjs +59 -0
  360. package/dist/YearRangePicker/YearRangePickerCell.cjs.map +1 -0
  361. package/dist/YearRangePicker/YearRangePickerCell.js +53 -0
  362. package/dist/YearRangePicker/YearRangePickerCell.js.map +1 -0
  363. package/dist/YearRangePicker/YearRangePickerCellTrigger.cjs +256 -0
  364. package/dist/YearRangePicker/YearRangePickerCellTrigger.cjs.map +1 -0
  365. package/dist/YearRangePicker/YearRangePickerCellTrigger.js +250 -0
  366. package/dist/YearRangePicker/YearRangePickerCellTrigger.js.map +1 -0
  367. package/dist/YearRangePicker/YearRangePickerGrid.cjs +59 -0
  368. package/dist/YearRangePicker/YearRangePickerGrid.cjs.map +1 -0
  369. package/dist/YearRangePicker/YearRangePickerGrid.js +53 -0
  370. package/dist/YearRangePicker/YearRangePickerGrid.js.map +1 -0
  371. package/dist/YearRangePicker/YearRangePickerGridBody.cjs +41 -0
  372. package/dist/YearRangePicker/YearRangePickerGridBody.cjs.map +1 -0
  373. package/dist/YearRangePicker/YearRangePickerGridBody.js +35 -0
  374. package/dist/YearRangePicker/YearRangePickerGridBody.js.map +1 -0
  375. package/dist/YearRangePicker/YearRangePickerGridRow.cjs +41 -0
  376. package/dist/YearRangePicker/YearRangePickerGridRow.cjs.map +1 -0
  377. package/dist/YearRangePicker/YearRangePickerGridRow.js +35 -0
  378. package/dist/YearRangePicker/YearRangePickerGridRow.js.map +1 -0
  379. package/dist/YearRangePicker/YearRangePickerHeader.cjs +41 -0
  380. package/dist/YearRangePicker/YearRangePickerHeader.cjs.map +1 -0
  381. package/dist/YearRangePicker/YearRangePickerHeader.js +35 -0
  382. package/dist/YearRangePicker/YearRangePickerHeader.js.map +1 -0
  383. package/dist/YearRangePicker/YearRangePickerHeading.cjs +48 -0
  384. package/dist/YearRangePicker/YearRangePickerHeading.cjs.map +1 -0
  385. package/dist/YearRangePicker/YearRangePickerHeading.js +42 -0
  386. package/dist/YearRangePicker/YearRangePickerHeading.js.map +1 -0
  387. package/dist/YearRangePicker/YearRangePickerNext.cjs +68 -0
  388. package/dist/YearRangePicker/YearRangePickerNext.cjs.map +1 -0
  389. package/dist/YearRangePicker/YearRangePickerNext.js +62 -0
  390. package/dist/YearRangePicker/YearRangePickerNext.js.map +1 -0
  391. package/dist/YearRangePicker/YearRangePickerPrev.cjs +68 -0
  392. package/dist/YearRangePicker/YearRangePickerPrev.cjs.map +1 -0
  393. package/dist/YearRangePicker/YearRangePickerPrev.js +62 -0
  394. package/dist/YearRangePicker/YearRangePickerPrev.js.map +1 -0
  395. package/dist/YearRangePicker/YearRangePickerRoot.cjs +350 -0
  396. package/dist/YearRangePicker/YearRangePickerRoot.cjs.map +1 -0
  397. package/dist/YearRangePicker/YearRangePickerRoot.js +338 -0
  398. package/dist/YearRangePicker/YearRangePickerRoot.js.map +1 -0
  399. package/dist/YearRangePicker/useRangeYearPicker.cjs +128 -0
  400. package/dist/YearRangePicker/useRangeYearPicker.cjs.map +1 -0
  401. package/dist/YearRangePicker/useRangeYearPicker.js +122 -0
  402. package/dist/YearRangePicker/useRangeYearPicker.js.map +1 -0
  403. package/dist/color/channel.cjs +378 -0
  404. package/dist/color/channel.cjs.map +1 -0
  405. package/dist/color/channel.js +349 -0
  406. package/dist/color/channel.js.map +1 -0
  407. package/dist/color/convert.cjs +285 -0
  408. package/dist/color/convert.cjs.map +1 -0
  409. package/dist/color/convert.js +237 -0
  410. package/dist/color/convert.js.map +1 -0
  411. package/dist/color/gradient.cjs +377 -0
  412. package/dist/color/gradient.cjs.map +1 -0
  413. package/dist/color/gradient.js +354 -0
  414. package/dist/color/gradient.js.map +1 -0
  415. package/dist/color/parse.cjs +113 -0
  416. package/dist/color/parse.cjs.map +1 -0
  417. package/dist/color/parse.js +95 -0
  418. package/dist/color/parse.js.map +1 -0
  419. package/dist/color/utils.cjs +112 -0
  420. package/dist/color/utils.cjs.map +1 -0
  421. package/dist/color/utils.js +100 -0
  422. package/dist/color/utils.js.map +1 -0
  423. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +11 -7
  424. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  425. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +11 -7
  426. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  427. package/dist/constant/components.cjs +87 -1
  428. package/dist/constant/components.cjs.map +1 -1
  429. package/dist/constant/components.js +87 -1
  430. package/dist/constant/components.js.map +1 -1
  431. package/dist/constant.d.cts +12 -1
  432. package/dist/constant.d.cts.map +1 -1
  433. package/dist/constant.d.ts +12 -1
  434. package/dist/constant.d.ts.map +1 -1
  435. package/dist/date/calendar.cjs +41 -0
  436. package/dist/date/calendar.cjs.map +1 -1
  437. package/dist/date/calendar.js +30 -1
  438. package/dist/date/calendar.js.map +1 -1
  439. package/dist/date/comparators.cjs +129 -0
  440. package/dist/date/comparators.cjs.map +1 -1
  441. package/dist/date/comparators.js +76 -1
  442. package/dist/date/comparators.js.map +1 -1
  443. package/dist/date/useDateField.cjs +1 -1
  444. package/dist/date/useDateField.cjs.map +1 -1
  445. package/dist/date/useDateField.js +1 -1
  446. package/dist/date/useDateField.js.map +1 -1
  447. package/dist/date.cjs +11 -0
  448. package/dist/date.d.cts +2 -2
  449. package/dist/date.d.ts +2 -2
  450. package/dist/date.js +3 -3
  451. package/dist/index.cjs +217 -47
  452. package/dist/index.d.cts +3 -8834
  453. package/dist/index.d.ts +3 -8834
  454. package/dist/index.js +117 -48
  455. package/dist/index2.d.cts +58 -2
  456. package/dist/index2.d.cts.map +1 -1
  457. package/dist/index2.d.ts +58 -2
  458. package/dist/index2.d.ts.map +1 -1
  459. package/dist/index3.d.cts +11062 -0
  460. package/dist/index3.d.cts.map +1 -0
  461. package/dist/index3.d.ts +11062 -0
  462. package/dist/index3.d.ts.map +1 -0
  463. package/dist/internal.cjs +81 -0
  464. package/dist/internal.d.cts +20 -0
  465. package/dist/internal.d.cts.map +1 -0
  466. package/dist/internal.d.ts +20 -0
  467. package/dist/internal.d.ts.map +1 -0
  468. package/dist/internal.js +64 -0
  469. package/dist/internal2.cjs +0 -0
  470. package/dist/internal2.js +0 -0
  471. package/dist/namespaced/index.cjs +33 -1
  472. package/dist/namespaced/index.d.cts +32 -4
  473. package/dist/namespaced/index.d.mts +32 -4
  474. package/dist/namespaced/index.mjs +32 -4
  475. package/dist/shared/useArrowNavigation.cjs +4 -2
  476. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  477. package/dist/shared/useArrowNavigation.js +4 -2
  478. package/dist/shared/useArrowNavigation.js.map +1 -1
  479. package/dist/shared/useBodyScrollLock.cjs +1 -0
  480. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  481. package/dist/shared/useBodyScrollLock.js +1 -0
  482. package/dist/shared/useBodyScrollLock.js.map +1 -1
  483. package/dist/shared/useForwardExpose.cjs +6 -2
  484. package/dist/shared/useForwardExpose.cjs.map +1 -1
  485. package/dist/shared/useForwardExpose.js +7 -3
  486. package/dist/shared/useForwardExpose.js.map +1 -1
  487. package/dist/shared/useHideOthers.cjs +1 -1
  488. package/dist/shared/useHideOthers.cjs.map +1 -1
  489. package/dist/shared/useHideOthers.js +1 -1
  490. package/dist/shared/useHideOthers.js.map +1 -1
  491. package/dist/shared/useId.cjs +7 -4
  492. package/dist/shared/useId.cjs.map +1 -1
  493. package/dist/shared/useId.js +7 -4
  494. package/dist/shared/useId.js.map +1 -1
  495. package/dist/utils/callPanelCallbacks.cjs +10 -7
  496. package/dist/utils/callPanelCallbacks.cjs.map +1 -1
  497. package/dist/utils/callPanelCallbacks.js +10 -7
  498. package/dist/utils/callPanelCallbacks.js.map +1 -1
  499. package/dist/utils/storage.cjs +7 -1
  500. package/dist/utils/storage.cjs.map +1 -1
  501. package/dist/utils/storage.js +7 -1
  502. package/dist/utils/storage.js.map +1 -1
  503. package/dist/utils/units.cjs +101 -0
  504. package/dist/utils/units.cjs.map +1 -0
  505. package/dist/utils/units.js +83 -0
  506. package/dist/utils/units.js.map +1 -0
  507. package/package.json +7 -3
  508. package/src/Autocomplete/AutocompleteInput.vue +112 -0
  509. package/src/Autocomplete/AutocompleteRoot.vue +272 -0
  510. package/src/Autocomplete/index.ts +72 -0
  511. package/src/Calendar/CalendarCellTrigger.vue +2 -1
  512. package/src/Calendar/CalendarGrid.vue +6 -1
  513. package/src/Calendar/CalendarNext.vue +8 -2
  514. package/src/Calendar/CalendarPrev.vue +8 -2
  515. package/src/Calendar/CalendarRoot.vue +1 -1
  516. package/src/Checkbox/CheckboxRoot.vue +32 -13
  517. package/src/ColorArea/ColorAreaArea.vue +145 -0
  518. package/src/ColorArea/ColorAreaRoot.vue +255 -0
  519. package/src/ColorArea/ColorAreaThumb.vue +75 -0
  520. package/src/ColorArea/index.ts +14 -0
  521. package/src/ColorArea/utils.ts +24 -0
  522. package/src/ColorField/ColorFieldInput.vue +133 -0
  523. package/src/ColorField/ColorFieldRoot.vue +326 -0
  524. package/src/ColorField/index.ts +10 -0
  525. package/src/ColorSlider/ColorSliderRoot.vue +224 -0
  526. package/src/ColorSlider/ColorSliderThumb.vue +54 -0
  527. package/src/ColorSlider/ColorSliderTrack.vue +36 -0
  528. package/src/ColorSlider/index.ts +14 -0
  529. package/src/ColorSlider/utils.ts +39 -0
  530. package/src/ColorSwatch/ColorSwatch.vue +97 -0
  531. package/src/ColorSwatch/index.ts +4 -0
  532. package/src/ColorSwatchPicker/ColorSwatchPickerItem.vue +60 -0
  533. package/src/ColorSwatchPicker/ColorSwatchPickerItemIndicator.vue +17 -0
  534. package/src/ColorSwatchPicker/ColorSwatchPickerItemSwatch.vue +21 -0
  535. package/src/ColorSwatchPicker/ColorSwatchPickerRoot.vue +50 -0
  536. package/src/ColorSwatchPicker/index.ts +17 -0
  537. package/src/Combobox/ComboboxContentImpl.vue +13 -1
  538. package/src/Combobox/ComboboxInput.vue +19 -0
  539. package/src/DateField/DateFieldRoot.vue +1 -1
  540. package/src/DateRangeField/DateRangeFieldRoot.vue +11 -4
  541. package/src/DismissableLayer/utils.ts +5 -3
  542. package/src/DropdownMenu/DropdownMenuFilter.vue +119 -0
  543. package/src/DropdownMenu/index.ts +5 -0
  544. package/src/Menu/MenuContentImpl.vue +68 -2
  545. package/src/Menu/MenuGroup.vue +12 -0
  546. package/src/Menu/MenuItemImpl.vue +15 -10
  547. package/src/Menu/MenuLabel.vue +7 -1
  548. package/src/Menu/MenuSubContent.vue +14 -3
  549. package/src/Menu/MenuSubTrigger.vue +13 -1
  550. package/src/MonthPicker/MonthPickerCell.vue +30 -0
  551. package/src/MonthPicker/MonthPickerCellTrigger.vue +214 -0
  552. package/src/MonthPicker/MonthPickerGrid.vue +37 -0
  553. package/src/MonthPicker/MonthPickerGridBody.vue +17 -0
  554. package/src/MonthPicker/MonthPickerGridRow.vue +20 -0
  555. package/src/MonthPicker/MonthPickerHeader.vue +17 -0
  556. package/src/MonthPicker/MonthPickerHeading.vue +35 -0
  557. package/src/MonthPicker/MonthPickerNext.vue +52 -0
  558. package/src/MonthPicker/MonthPickerPrev.vue +52 -0
  559. package/src/MonthPicker/MonthPickerRoot.vue +311 -0
  560. package/src/MonthPicker/index.ts +42 -0
  561. package/src/MonthPicker/useMonthPicker.ts +193 -0
  562. package/src/MonthRangePicker/MonthRangePickerCell.vue +30 -0
  563. package/src/MonthRangePicker/MonthRangePickerCellTrigger.vue +309 -0
  564. package/src/MonthRangePicker/MonthRangePickerGrid.vue +37 -0
  565. package/src/MonthRangePicker/MonthRangePickerGridBody.vue +17 -0
  566. package/src/MonthRangePicker/MonthRangePickerGridRow.vue +20 -0
  567. package/src/MonthRangePicker/MonthRangePickerHeader.vue +17 -0
  568. package/src/MonthRangePicker/MonthRangePickerHeading.vue +35 -0
  569. package/src/MonthRangePicker/MonthRangePickerNext.vue +52 -0
  570. package/src/MonthRangePicker/MonthRangePickerPrev.vue +52 -0
  571. package/src/MonthRangePicker/MonthRangePickerRoot.vue +391 -0
  572. package/src/MonthRangePicker/index.ts +42 -0
  573. package/src/MonthRangePicker/useRangeMonthPicker.ts +165 -0
  574. package/src/NumberField/NumberFieldRoot.vue +2 -1
  575. package/src/Progress/ProgressRoot.vue +3 -1
  576. package/src/RangeCalendar/RangeCalendarGrid.vue +6 -1
  577. package/src/RangeCalendar/RangeCalendarNext.vue +10 -4
  578. package/src/RangeCalendar/RangeCalendarPrev.vue +10 -4
  579. package/src/RangeCalendar/RangeCalendarRoot.vue +2 -2
  580. package/src/RangeCalendar/useRangeCalendar.ts +5 -8
  581. package/src/Splitter/SplitterGroup.vue +243 -54
  582. package/src/Splitter/SplitterPanel.vue +11 -6
  583. package/src/Splitter/utils/callPanelCallbacks.ts +16 -8
  584. package/src/Splitter/utils/composables/useWindowSplitterPanelGroupBehavior.ts +16 -6
  585. package/src/Splitter/utils/storage.ts +14 -0
  586. package/src/Splitter/utils/units.ts +161 -0
  587. package/src/Splitter/utils/validation.ts +3 -2
  588. package/src/Switch/SwitchRoot.vue +36 -19
  589. package/src/Switch/SwitchThumb.vue +1 -1
  590. package/src/TimeField/TimeFieldRoot.vue +0 -3
  591. package/src/TimeRangeField/TimeRangeFieldInput.vue +74 -0
  592. package/src/TimeRangeField/TimeRangeFieldRoot.vue +473 -0
  593. package/src/TimeRangeField/index.ts +2 -0
  594. package/src/Toast/FocusProxy.vue +0 -1
  595. package/src/Toast/ToastAnnounce.vue +4 -1
  596. package/src/Toast/ToastRootImpl.vue +0 -4
  597. package/src/Tooltip/TooltipContent.vue +1 -3
  598. package/src/Tooltip/TooltipContentImpl.vue +18 -10
  599. package/src/Tooltip/TooltipProvider.vue +8 -1
  600. package/src/YearPicker/YearPickerCell.vue +30 -0
  601. package/src/YearPicker/YearPickerCellTrigger.vue +218 -0
  602. package/src/YearPicker/YearPickerGrid.vue +37 -0
  603. package/src/YearPicker/YearPickerGridBody.vue +17 -0
  604. package/src/YearPicker/YearPickerGridRow.vue +20 -0
  605. package/src/YearPicker/YearPickerHeader.vue +17 -0
  606. package/src/YearPicker/YearPickerHeading.vue +35 -0
  607. package/src/YearPicker/YearPickerNext.vue +52 -0
  608. package/src/YearPicker/YearPickerPrev.vue +52 -0
  609. package/src/YearPicker/YearPickerRoot.vue +314 -0
  610. package/src/YearPicker/index.ts +42 -0
  611. package/src/YearPicker/useYearPicker.ts +202 -0
  612. package/src/YearRangePicker/YearRangePickerCell.vue +30 -0
  613. package/src/YearRangePicker/YearRangePickerCellTrigger.vue +311 -0
  614. package/src/YearRangePicker/YearRangePickerGrid.vue +37 -0
  615. package/src/YearRangePicker/YearRangePickerGridBody.vue +17 -0
  616. package/src/YearRangePicker/YearRangePickerGridRow.vue +20 -0
  617. package/src/YearRangePicker/YearRangePickerHeader.vue +17 -0
  618. package/src/YearRangePicker/YearRangePickerHeading.vue +35 -0
  619. package/src/YearRangePicker/YearRangePickerNext.vue +52 -0
  620. package/src/YearRangePicker/YearRangePickerPrev.vue +52 -0
  621. package/src/YearRangePicker/YearRangePickerRoot.vue +391 -0
  622. package/src/YearRangePicker/index.ts +42 -0
  623. package/src/YearRangePicker/useRangeYearPicker.ts +165 -0
  624. package/src/date/calendar.ts +29 -0
  625. package/src/date/comparators.ts +97 -0
  626. package/src/index.ts +41 -0
  627. package/src/internal.ts +7 -0
  628. package/src/shared/color/channel.ts +424 -0
  629. package/src/shared/color/convert.ts +293 -0
  630. package/src/shared/color/gradient.ts +347 -0
  631. package/src/shared/color/index.ts +35 -0
  632. package/src/shared/color/parse.ts +140 -0
  633. package/src/shared/color/types.ts +40 -0
  634. package/src/shared/color/utils.ts +143 -0
  635. package/src/shared/date/types.ts +6 -0
  636. package/src/shared/date/useDateField.ts +39 -40
  637. package/src/shared/macro.ts +11 -0
  638. package/src/shared/useArrowNavigation.ts +8 -2
  639. package/src/shared/useBodyScrollLock.ts +2 -0
  640. package/src/shared/useForwardExpose.ts +20 -5
  641. package/src/shared/useHideOthers.ts +2 -1
  642. package/src/shared/useId.ts +6 -7
  643. package/dist/index.d.cts.map +0 -1
  644. package/dist/index.d.ts.map +0 -1
@@ -0,0 +1,140 @@
1
+ import type { Color, HSBColor, HSLColor, RGBColor } from './types'
2
+
3
+ /**
4
+ * Parses a color string into a Color object.
5
+ * Supports hex (#rrggbb, #rgb), rgb(), hsl(), and hsb()/hsv() formats.
6
+ */
7
+ export function parseColor(value: string): Color {
8
+ const trimmed = value.trim().toLowerCase()
9
+
10
+ // Hex format
11
+ if (trimmed.startsWith('#')) {
12
+ return parseHex(trimmed)
13
+ }
14
+
15
+ // rgb() format
16
+ if (trimmed.startsWith('rgb')) {
17
+ return parseRgb(trimmed)
18
+ }
19
+
20
+ // hsl() format
21
+ if (trimmed.startsWith('hsl')) {
22
+ return parseHsl(trimmed)
23
+ }
24
+
25
+ // hsb() or hsv() format
26
+ if (trimmed.startsWith('hsb') || trimmed.startsWith('hsv')) {
27
+ return parseHsb(trimmed)
28
+ }
29
+
30
+ throw new Error(`Unable to parse color: ${value}`)
31
+ }
32
+
33
+ function parseHex(hex: string): RGBColor {
34
+ let normalized = hex.slice(1)
35
+
36
+ // Validate hex format (3, 6, or 8 hex digits)
37
+ if (!/^[0-9A-F]{3}$/i.test(normalized) && !/^[0-9A-F]{6}$/i.test(normalized) && !/^[0-9A-F]{8}$/i.test(normalized)) {
38
+ throw new Error(`Invalid hex color: ${hex}. Expected format: #RGB, #RRGGBB, or #RRGGBBAA`)
39
+ }
40
+
41
+ // Expand shorthand (e.g., #f00 -> #ff0000)
42
+ if (normalized.length === 3) {
43
+ normalized = normalized.split('').map(c => c + c).join('')
44
+ }
45
+
46
+ // Handle 6-digit hex
47
+ if (normalized.length === 6) {
48
+ const bigint = parseInt(normalized, 16)
49
+ return {
50
+ space: 'rgb',
51
+ r: (bigint >> 16) & 255,
52
+ g: (bigint >> 8) & 255,
53
+ b: bigint & 255,
54
+ alpha: 1,
55
+ }
56
+ }
57
+
58
+ // Handle 8-digit hex (with alpha)
59
+ if (normalized.length === 8) {
60
+ const bigint = parseInt(normalized, 16)
61
+ return {
62
+ space: 'rgb',
63
+ r: (bigint >> 24) & 255,
64
+ g: (bigint >> 16) & 255,
65
+ b: (bigint >> 8) & 255,
66
+ alpha: (bigint & 255) / 255,
67
+ }
68
+ }
69
+
70
+ throw new Error(`Invalid hex color: ${hex}`)
71
+ }
72
+
73
+ function parseRgb(rgb: string): RGBColor {
74
+ const match = rgb.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)/)
75
+ if (!match) {
76
+ throw new Error(`Invalid RGB color: ${rgb}`)
77
+ }
78
+
79
+ return {
80
+ space: 'rgb',
81
+ r: parseFloat(match[1]),
82
+ g: parseFloat(match[2]),
83
+ b: parseFloat(match[3]),
84
+ alpha: match[4] ? parseFloat(match[4]) : 1,
85
+ }
86
+ }
87
+
88
+ function parseHsl(hsl: string): HSLColor {
89
+ const match = hsl.match(/hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%\s*(?:,\s*([\d.]+)\s*)?\)/)
90
+ if (!match) {
91
+ throw new Error(`Invalid HSL color: ${hsl}`)
92
+ }
93
+
94
+ return {
95
+ space: 'hsl',
96
+ h: parseFloat(match[1]),
97
+ s: parseFloat(match[2]),
98
+ l: parseFloat(match[3]),
99
+ alpha: match[4] ? parseFloat(match[4]) : 1,
100
+ }
101
+ }
102
+
103
+ function parseHsb(hsb: string): HSBColor {
104
+ const match = hsb.match(/hsb[av]?\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?\s*(?:,\s*([\d.]+)\s*)?\)/)
105
+ if (!match) {
106
+ throw new Error(`Invalid HSB color: ${hsb}`)
107
+ }
108
+
109
+ return {
110
+ space: 'hsb',
111
+ h: parseFloat(match[1]),
112
+ s: parseFloat(match[2]),
113
+ b: parseFloat(match[3]),
114
+ alpha: match[4] ? parseFloat(match[4]) : 1,
115
+ }
116
+ }
117
+
118
+ /**
119
+ * Normalizes a value to a Color object.
120
+ * If already a Color, returns it. If a string, parses it.
121
+ */
122
+ export function normalizeColor(value: string | Color): Color {
123
+ if (typeof value === 'string') {
124
+ return parseColor(value)
125
+ }
126
+ return value
127
+ }
128
+
129
+ /**
130
+ * Checks if a string is a valid color.
131
+ */
132
+ export function isValidColor(value: string): boolean {
133
+ try {
134
+ parseColor(value)
135
+ return true
136
+ }
137
+ catch {
138
+ return false
139
+ }
140
+ }
@@ -0,0 +1,40 @@
1
+ export type ColorSpace = 'rgb' | 'hsl' | 'hsb'
2
+
3
+ export interface RGBColor {
4
+ space: 'rgb'
5
+ r: number
6
+ g: number
7
+ b: number
8
+ alpha: number
9
+ }
10
+
11
+ export interface HSLColor {
12
+ space: 'hsl'
13
+ h: number
14
+ s: number
15
+ l: number
16
+ alpha: number
17
+ }
18
+
19
+ export interface HSBColor {
20
+ space: 'hsb'
21
+ h: number
22
+ s: number
23
+ b: number
24
+ alpha: number
25
+ }
26
+
27
+ export type Color = RGBColor | HSLColor | HSBColor
28
+
29
+ export type RGBChannel = 'red' | 'green' | 'blue' | 'alpha'
30
+ export type HSLChannel = 'hue' | 'saturation' | 'lightness' | 'alpha'
31
+ export type HSBChannel = 'hue' | 'saturation' | 'brightness' | 'alpha'
32
+ export type ColorChannel = RGBChannel | HSLChannel | HSBChannel
33
+
34
+ export interface ChannelRange {
35
+ min: number
36
+ max: number
37
+ step: number
38
+ }
39
+
40
+ export type ColorFormat = 'hex' | 'rgb' | 'hsl' | 'hsb'
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Converts a hex color string to RGB (Red, Green, Blue).
3
+ * @param hex Hex color string (e.g., "#ff5733" or "#f53")
4
+ * @returns An object containing red, green, and blue values (0-255).
5
+ */
6
+ export function hexToRGB(hex: string): { r: number, g: number, b: number } {
7
+ hex = hex.replace(/^#/, '')
8
+
9
+ // Validate hex format (3 or 6 hex digits)
10
+ if (!/^[0-9A-F]{6}$/i.test(hex) && !/^[0-9A-F]{3}$/i.test(hex)) {
11
+ throw new Error(`Invalid hex color: ${hex}. Expected format: #RGB or #RRGGBB`)
12
+ }
13
+
14
+ // Handle shorthand hex (e.g., "#FFF" -> "#FFFFFF")
15
+ if (hex.length === 3) {
16
+ hex = hex.split('').map(c => c + c).join('')
17
+ }
18
+
19
+ const bigint = parseInt(hex, 16)
20
+ const r = (bigint >> 16) & 255
21
+ const g = (bigint >> 8) & 255
22
+ const b = bigint & 255
23
+ return { r, g, b }
24
+ }
25
+
26
+ /**
27
+ * Converts a hex color string to HSL (Hue, Saturation, Lightness).
28
+ * @param hex Hex color string (e.g., "#ff5733")
29
+ * @returns An object containing hue (0-360), saturation (0-100), and lightness (0-100) values.
30
+ */
31
+ export function hexToHSL(hex: string): { h: number, s: number, l: number } {
32
+ let { r, g, b } = hexToRGB(hex)
33
+
34
+ r /= 255
35
+ g /= 255
36
+ b /= 255
37
+
38
+ const max = Math.max(r, g, b)
39
+ const min = Math.min(r, g, b)
40
+ let h: number
41
+ let s: number
42
+ let l: number = (max + min) / 2
43
+
44
+ if (max === min) {
45
+ h = s = 0 // achromatic
46
+ l *= 100 // Scale l to 0-100 for consistency with chromatic case
47
+ }
48
+ else {
49
+ const d = max - min
50
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min)
51
+ if (max === r) {
52
+ h = (g - b) / d + (g < b ? 6 : 0)
53
+ }
54
+ else if (max === g) {
55
+ h = (b - r) / d + 2
56
+ }
57
+ else {
58
+ h = (r - g) / d + 4
59
+ }
60
+ h /= 6
61
+ h *= 360
62
+ s *= 100
63
+ l *= 100
64
+ }
65
+
66
+ return { h, s, l }
67
+ }
68
+
69
+ /**
70
+ * Converts a hex color string to a human-readable color name.
71
+ * @param hex Hex color string (e.g., "#ff5733")
72
+ * @returns A human-readable color name based on the hue, saturation, and lightness.
73
+ */
74
+ export function getColorName(hex: string) {
75
+ const { h, s, l } = hexToHSL(hex)
76
+
77
+ // Handle achromatic colors (low saturation)
78
+ // Using 0-100 scale for all comparisons
79
+ if (s < 10) {
80
+ if (l < 10)
81
+ return 'black'
82
+ if (l > 95)
83
+ return 'white'
84
+ if (l < 20)
85
+ return 'very dark gray'
86
+ if (l < 35)
87
+ return 'dark gray'
88
+ if (l < 65)
89
+ return 'gray'
90
+ if (l < 80)
91
+ return 'light gray'
92
+ return 'very light gray'
93
+ }
94
+
95
+ // Determine base color by hue
96
+ let baseName
97
+ if (h < 15 || h >= 345)
98
+ baseName = 'red'
99
+ else if (h < 45)
100
+ baseName = 'orange'
101
+ else if (h < 75)
102
+ baseName = 'yellow'
103
+ else if (h < 105)
104
+ baseName = 'yellow-green'
105
+ else if (h < 135)
106
+ baseName = 'green'
107
+ else if (h < 165)
108
+ baseName = 'green-cyan'
109
+ else if (h < 195)
110
+ baseName = 'cyan'
111
+ else if (h < 225)
112
+ baseName = 'blue'
113
+ else if (h < 255)
114
+ baseName = 'blue-violet'
115
+ else if (h < 285)
116
+ baseName = 'violet'
117
+ else if (h < 315)
118
+ baseName = 'magenta'
119
+ else baseName = 'red-magenta'
120
+
121
+ // Add descriptors based on saturation and lightness
122
+ // Using 0-100 scale for all comparisons
123
+ const descriptors = []
124
+ if (s > 80)
125
+ descriptors.push('vibrant')
126
+ else if (s < 30)
127
+ descriptors.push('muted')
128
+
129
+ if (l > 80)
130
+ descriptors.push('light')
131
+ else if (l < 30)
132
+ descriptors.push('dark')
133
+
134
+ return descriptors.length > 0
135
+ ? `${descriptors.join(' ')} ${baseName}`
136
+ : baseName
137
+ }
138
+
139
+ export function getColorContrast(hex: string): 'light' | 'dark' {
140
+ const { r, g, b } = hexToRGB(hex)
141
+ const luminance = (0.299 * r + 0.587 * g + 0.114 * b) / 255
142
+ return luminance > 0.5 ? 'dark' : 'light'
143
+ }
@@ -5,6 +5,7 @@
5
5
  import type { DateValue } from '@internationalized/date'
6
6
 
7
7
  export type { DateValue }
8
+ import type { TimeValue } from './comparators'
8
9
  import type { DATE_SEGMENT_PARTS, EDITABLE_SEGMENT_PARTS, NON_EDITABLE_SEGMENT_PARTS, TIME_SEGMENT_PARTS } from './parts'
9
10
 
10
11
  // Days of the week, starting with Sunday
@@ -28,6 +29,11 @@ export type DateRange = {
28
29
  end: DateValue | undefined
29
30
  }
30
31
 
32
+ export type TimeRange = {
33
+ start: TimeValue | undefined
34
+ end: TimeValue | undefined
35
+ }
36
+
31
37
  export type HourCycle = 12 | 24 | undefined
32
38
 
33
39
  export type DateSegmentPart = (typeof DATE_SEGMENT_PARTS)[number]
@@ -371,11 +371,11 @@ export function useDateField(props: UseDateFieldProps) {
371
371
  }
372
372
 
373
373
  if (prev === null) {
374
- /**
375
- * If the user types a 0 as the first number, we want
376
- * to keep track of that so that when they type the next
377
- * number, we can move to the next segment.
378
- */
374
+ /**
375
+ * If the user types a 0 as the first number, we want
376
+ * to keep track of that so that when they type the next
377
+ * number, we can move to the next segment.
378
+ */
379
379
 
380
380
  if (num === 0) {
381
381
  props.lastKeyZero.value = true
@@ -389,7 +389,7 @@ export function useDateField(props: UseDateFieldProps) {
389
389
  */
390
390
 
391
391
  if (props.lastKeyZero.value || num > maxStart) {
392
- // move to next
392
+ // move to next
393
393
  moveToNext = true
394
394
  }
395
395
  props.lastKeyZero.value = false
@@ -417,13 +417,13 @@ export function useDateField(props: UseDateFieldProps) {
417
417
  */
418
418
 
419
419
  if (digits === 2 || total > max) {
420
- /**
421
- * As we're doing elsewhere, we're checking if the number is greater
422
- * than the max start digit (0-3 in most months), and if so, we're
423
- * going to move to the next segment.
424
- */
420
+ /**
421
+ * As we're doing elsewhere, we're checking if the number is greater
422
+ * than the max start digit (0-3 in most months), and if so, we're
423
+ * going to move to the next segment.
424
+ */
425
425
  if (num > maxStart || total > max) {
426
- // move to next
426
+ // move to next
427
427
  moveToNext = true
428
428
  }
429
429
  return { value: num, moveToNext }
@@ -449,11 +449,11 @@ export function useDateField(props: UseDateFieldProps) {
449
449
  }
450
450
 
451
451
  if (prev === null) {
452
- /**
453
- * If the user types a 0 as the first number, we want
454
- * to keep track of that so that when they type the next
455
- * number, we can move to the next segment.
456
- */
452
+ /**
453
+ * If the user types a 0 as the first number, we want
454
+ * to keep track of that so that when they type the next
455
+ * number, we can move to the next segment.
456
+ */
457
457
 
458
458
  if (num === 0) {
459
459
  props.lastKeyZero.value = true
@@ -467,7 +467,7 @@ export function useDateField(props: UseDateFieldProps) {
467
467
  */
468
468
 
469
469
  if (props.lastKeyZero.value || num > maxStart) {
470
- // move to next
470
+ // move to next
471
471
  moveToNext = true
472
472
  }
473
473
  props.lastKeyZero.value = false
@@ -496,13 +496,13 @@ export function useDateField(props: UseDateFieldProps) {
496
496
  */
497
497
 
498
498
  if (digits === 2 || total > max) {
499
- /**
500
- * As we're doing elsewhere, we're checking if the number is greater
501
- * than the max start digit (0-3 in most months), and if so, we're
502
- * going to move to the next segment.
503
- */
499
+ /**
500
+ * As we're doing elsewhere, we're checking if the number is greater
501
+ * than the max start digit (0-3 in most months), and if so, we're
502
+ * going to move to the next segment.
503
+ */
504
504
  if (num > maxStart) {
505
- // move to next
505
+ // move to next
506
506
  moveToNext = true
507
507
  }
508
508
  return { value: num, moveToNext }
@@ -528,11 +528,11 @@ export function useDateField(props: UseDateFieldProps) {
528
528
  }
529
529
 
530
530
  if (prev === null) {
531
- /**
532
- * If the user types a 0 as the first number, we want
533
- * to keep track of that so that when they type the next
534
- * number, we can move to the next segment.
535
- */
531
+ /**
532
+ * If the user types a 0 as the first number, we want
533
+ * to keep track of that so that when they type the next
534
+ * number, we can move to the next segment.
535
+ */
536
536
 
537
537
  if (num === 0) {
538
538
  props.lastKeyZero.value = true
@@ -546,7 +546,7 @@ export function useDateField(props: UseDateFieldProps) {
546
546
  */
547
547
 
548
548
  if (props.lastKeyZero.value || num > maxStart) {
549
- // move to next
549
+ // move to next
550
550
  moveToNext = true
551
551
  }
552
552
  props.lastKeyZero.value = false
@@ -575,13 +575,13 @@ export function useDateField(props: UseDateFieldProps) {
575
575
  */
576
576
 
577
577
  if (digits === 2 || total > max) {
578
- /**
579
- * As we're doing elsewhere, we're checking if the number is greater
580
- * than the max start digit (0-3 in most months), and if so, we're
581
- * going to move to the next segment.
582
- */
578
+ /**
579
+ * As we're doing elsewhere, we're checking if the number is greater
580
+ * than the max start digit (0-3 in most months), and if so, we're
581
+ * going to move to the next segment.
582
+ */
583
583
  if (num > maxStart) {
584
- // move to next
584
+ // move to next
585
585
  moveToNext = true
586
586
  }
587
587
  return { value: num, moveToNext }
@@ -874,11 +874,10 @@ export function useDateField(props: UseDateFieldProps) {
874
874
  function handleSegmentKeydown(e: KeyboardEvent) {
875
875
  const disabled = props.disabled.value
876
876
  const readonly = props.readonly.value
877
- if (e.key !== kbd.TAB)
878
- e.preventDefault()
879
-
880
877
  if (disabled || readonly)
881
878
  return
879
+ if (e.key !== kbd.TAB)
880
+ e.preventDefault()
882
881
  const segmentKeydownHandlers = {
883
882
  day: handleDaySegmentKeydown,
884
883
  month: handleMonthSegmentKeydown,
@@ -887,7 +886,7 @@ export function useDateField(props: UseDateFieldProps) {
887
886
  minute: handleMinuteSegmentKeydown,
888
887
  second: handleSecondSegmentKeydown,
889
888
  dayPeriod: handleDayPeriodSegmentKeydown,
890
- timeZoneName: () => {},
889
+ timeZoneName: () => { },
891
890
  } as const
892
891
 
893
892
  segmentKeydownHandlers[props.part as keyof typeof segmentKeydownHandlers](e)
@@ -0,0 +1,11 @@
1
+ export function isCut(event: KeyboardEvent) {
2
+ return (event.key === 'x' || event.key === 'X') && (event.ctrlKey || event.metaKey)
3
+ }
4
+
5
+ export function isCopy(event: KeyboardEvent) {
6
+ return (event.key === 'c' || event.key === 'C') && (event.ctrlKey || event.metaKey)
7
+ }
8
+
9
+ export function isPaste(event: KeyboardEvent) {
10
+ return (event.key === 'v' || event.key === 'V') && (event.ctrlKey || event.metaKey)
11
+ }
@@ -169,13 +169,19 @@ function findNextFocusableElement(
169
169
  elements: HTMLElement[],
170
170
  currentElement: HTMLElement,
171
171
  options: FindNextFocusableElementOptions,
172
- iterations = elements.length,
172
+ iterations = !elements.includes(currentElement) ? elements.length + 1 : elements.length,
173
173
  ): HTMLElement | null {
174
174
  if (--iterations === 0)
175
175
  return null
176
176
 
177
177
  const index = elements.indexOf(currentElement)
178
- const newIndex = options.goForward ? index + 1 : index - 1
178
+ let newIndex: number
179
+ if (index === -1) {
180
+ newIndex = options.goForward ? 0 : elements.length - 1
181
+ }
182
+ else {
183
+ newIndex = options.goForward ? index + 1 : index - 1
184
+ }
179
185
 
180
186
  if (!options.loop && (newIndex < 0 || newIndex >= elements.length))
181
187
  return null
@@ -80,6 +80,8 @@ const useBodyLockStackCount = createSharedComposable(() => {
80
80
 
81
81
  // let dismissibleLayer set previous pointerEvent first
82
82
  nextTick(() => {
83
+ if (!locked.value)
84
+ return
83
85
  document.body.style.pointerEvents = 'none'
84
86
  document.body.style.overflow = 'hidden'
85
87
  })
@@ -1,18 +1,33 @@
1
+ import type { MaybeElement } from '@vueuse/core'
1
2
  import type { ComponentPublicInstance } from 'vue'
2
3
  // reference: https://github.com/vuejs/rfcs/issues/258#issuecomment-1068697672
3
4
  import { unrefElement } from '@vueuse/core'
4
- import { computed, getCurrentInstance, ref } from 'vue'
5
+ import { computed, getCurrentInstance, onUpdated, ref, triggerRef } from 'vue'
5
6
 
6
7
  export function useForwardExpose<T extends ComponentPublicInstance>() {
7
8
  const instance = getCurrentInstance()!
8
9
 
9
10
  const currentRef = ref<Element | T | null>()
10
- const currentElement = computed<HTMLElement>(() => {
11
- // $el could be text/comment for non-single root normal or text root, thus we retrieve the nextElementSibling
12
- // @ts-expect-error ignore ts error
13
- return ['#text', '#comment'].includes(currentRef.value?.$el.nodeName) ? currentRef.value?.$el.nextElementSibling : unrefElement(currentRef)
11
+ const currentElement = computed(() => resolveCurrentElement())
12
+
13
+ // When using as-child with conditional rendering (v-if/v-else), the underlying
14
+ // DOM element ($el) changes but currentRef (component instance) stays the same.
15
+ // Since $el is not reactive, we sync currentElement after DOM updates.
16
+ onUpdated(() => {
17
+ if (currentElement.value !== resolveCurrentElement()) {
18
+ triggerRef(currentRef)
19
+ }
14
20
  })
15
21
 
22
+ function resolveCurrentElement() {
23
+ // $el could be text/comment for non-single root normal or text root, thus we retrieve the nextElementSibling
24
+ return currentRef.value
25
+ && '$el' in currentRef.value
26
+ && ['#text', '#comment'].includes(currentRef.value.$el.nodeName)
27
+ ? currentRef.value.$el.nextElementSibling as HTMLElement
28
+ : unrefElement(currentRef as unknown as MaybeElement) as HTMLElement
29
+ }
30
+
16
31
  // Do give us credit if you reference our code :D
17
32
  // localExpose should only be assigned once else will create infinite loop
18
33
  const localExpose: Record<string, any> | null = Object.assign({}, instance.exposed)
@@ -16,7 +16,8 @@ export function useHideOthers(target: MaybeElementRef) {
16
16
  // disable hideOthers on test mode
17
17
  if (import.meta.env.MODE === 'test')
18
18
  return
19
- if (el)
19
+ // Skip if inside a closed native popover
20
+ if (el && !el.closest('[popover]:not(:popover-open)'))
20
21
  undo = hideOthers(el)
21
22
  else if (undo)
22
23
  undo()
@@ -16,15 +16,14 @@ export function useId(deterministicId?: string | null | undefined, prefix = 'rek
16
16
  if (deterministicId)
17
17
  return deterministicId
18
18
 
19
+ let id: string
19
20
  if ('useId' in vue) {
20
- return `${prefix}-${vue.useId?.()}`
21
+ id = vue.useId?.()
21
22
  }
22
-
23
- const configProviderContext = injectConfigProviderContext({ useId: undefined })
24
-
25
- if (configProviderContext.useId) {
26
- return `${prefix}-${configProviderContext.useId()}`
23
+ else {
24
+ const configProviderContext = injectConfigProviderContext({ useId: undefined })
25
+ id = configProviderContext.useId?.() ?? `${++count}`
27
26
  }
28
27
 
29
- return `${prefix}-${++count}`
28
+ return prefix ? `${prefix}-${id}` : id
30
29
  }