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
@@ -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
@@ -80,7 +80,7 @@ export interface RangeCalendarRootProps extends PrimitiveProps {
80
80
  defaultPlaceholder?: DateValue
81
81
  /** The default value for the calendar */
82
82
  defaultValue?: DateRange
83
- /** 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`. */
84
84
  modelValue?: DateRange | null
85
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 */
86
86
  placeholder?: DateValue
@@ -379,7 +379,7 @@ watch([startValue, endValue], ([_startValue, _endValue]) => {
379
379
  })
380
380
 
381
381
  const kbd = useKbd()
382
- useEventListener('keydown', (ev) => {
382
+ useEventListener(parentElement, 'keydown', (ev) => {
383
383
  if (ev.key === kbd.ESCAPE && isEditing.value) {
384
384
  // Abort start and end selection
385
385
  startValue.value = validModelValue.value.start?.copy()
@@ -124,15 +124,12 @@ export function useRangeCalendarState(props: UseRangeCalendarProps) {
124
124
  if (props.maximumDays?.value && !props.end.value) {
125
125
  const maximumDays = props.maximumDays.value
126
126
  const anchor = props.start.value
127
+ const focused = props.focusedValue.value
127
128
 
128
- if (isStartBeforeFocused) {
129
- const maxEnd = anchor.add({ days: maximumDays - 1 })
130
- return { start: anchor, end: maxEnd }
131
- }
132
- else {
133
- const minStart = anchor.subtract({ days: maximumDays - 1 })
134
- return { start: minStart, end: anchor }
135
- }
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 }
136
133
  }
137
134
 
138
135
  const isValid = areAllDaysBetweenValid(start, end, props.allowNonContiguousRanges.value ? () => false : props.isDateUnavailable, rangeIsDateDisabled, props.isDateHighlightable)
@@ -79,6 +79,7 @@ import { Primitive } from '@/Primitive'
79
79
  import { assert } from './utils/assert'
80
80
  import { calculateDeltaPercentage, calculateUnsafeDefaultLayout } from './utils/calculate'
81
81
  import { callPanelCallbacks } from './utils/callPanelCallbacks'
82
+ import { fuzzyCompareNumbers } from './utils/compare'
82
83
  import debounce from './utils/debounce'
83
84
  import { getResizeHandleElement } from './utils/dom'
84
85
  import { getResizeEventCursorPosition, isKeyDown, isMouseEvent, isTouchEvent } from './utils/events'
@@ -92,6 +93,7 @@ import {
92
93
  reportConstraintsViolation,
93
94
  } from './utils/registry'
94
95
  import { computePanelFlexBoxStyle } from './utils/style'
96
+ import { convertPanelConstraintsToPercent, hasPixelSizedPanel, recalculateLayoutForPixelPanels } from './utils/units'
95
97
  import { validatePanelGroupLayout } from './utils/validation'
96
98
 
97
99
  const props = withDefaults(defineProps<SplitterGroupProps>(), {
@@ -118,6 +120,7 @@ const dir = useDirection()
118
120
  const { forwardRef, currentElement: panelGroupElementRef } = useForwardExpose()
119
121
 
120
122
  const dragState = ref<DragState | null>(null)
123
+ const groupSizeInPixels = ref<number | null>(null)
121
124
  const layout = ref<number[]>([])
122
125
  const panelIdToLastNotifiedSizeMapRef = ref<Record<string, number>>({})
123
126
  const panelSizeBeforeCollapseRef = ref<Map<string, number>>(new Map())
@@ -149,8 +152,61 @@ const eagerValuesRef = ref<{
149
152
  panelDataArrayChanged: false,
150
153
  })
151
154
 
155
+ function getGroupSizeInPixels(): number | null {
156
+ if (groupSizeInPixels.value != null)
157
+ return groupSizeInPixels.value
158
+
159
+ const element = panelGroupElementRef.value
160
+ if (element && element instanceof HTMLElement) {
161
+ const rect = element.getBoundingClientRect()
162
+ const size = direction.value === 'horizontal' ? rect.width : rect.height
163
+
164
+ if (!Number.isNaN(size)) {
165
+ groupSizeInPixels.value = size
166
+ return size
167
+ }
168
+ }
169
+
170
+ return null
171
+ }
172
+
173
+ function getPanelConstraintsInPercent(groupSizeOverride?: number | null) {
174
+ const groupSize = groupSizeOverride ?? getGroupSizeInPixels()
175
+
176
+ return convertPanelConstraintsToPercent({
177
+ panelDataArray: eagerValuesRef.value.panelDataArray,
178
+ groupSizeInPixels: groupSize,
179
+ })
180
+ }
181
+
182
+ function getPanelDataWithPercentConstraints(groupSizeOverride?: number | null) {
183
+ const percentConstraints = getPanelConstraintsInPercent(groupSizeOverride)
184
+
185
+ if (!percentConstraints)
186
+ return null
187
+
188
+ return eagerValuesRef.value.panelDataArray.map((panelData, index) => ({
189
+ ...panelData,
190
+ constraints: percentConstraints[index],
191
+ }))
192
+ }
193
+
152
194
  const setLayout = (val: number[]) => layout.value = val
153
195
 
196
+ /** Convert internal layout (always in %) to native units for each panel */
197
+ function convertLayoutToNativeUnits(internalLayout: number[]): number[] {
198
+ const { panelDataArray } = eagerValuesRef.value
199
+ const groupSize = getGroupSizeInPixels()
200
+
201
+ return internalLayout.map((size, index) => {
202
+ const panelData = panelDataArray[index]
203
+ if (panelData && (panelData.constraints.sizeUnit ?? '%') === 'px' && groupSize != null) {
204
+ return (size / 100) * groupSize
205
+ }
206
+ return size
207
+ })
208
+ }
209
+
154
210
  useWindowSplitterPanelGroupBehavior({
155
211
  eagerValuesRef,
156
212
  groupId,
@@ -158,6 +214,33 @@ useWindowSplitterPanelGroupBehavior({
158
214
  panelDataArray: eagerValuesRef.value.panelDataArray,
159
215
  setLayout,
160
216
  panelGroupElement: panelGroupElementRef,
217
+ getPanelDataWithPercentConstraints,
218
+ })
219
+
220
+ watchEffect((onCleanup) => {
221
+ const element = panelGroupElementRef.value
222
+ if (!element)
223
+ return
224
+
225
+ if (typeof ResizeObserver !== 'function')
226
+ return
227
+
228
+ const resizeObserver = new ResizeObserver((entries) => {
229
+ const entry = entries[0]
230
+ if (!entry)
231
+ return
232
+
233
+ const { height, width } = entry.contentRect
234
+ const nextSize = direction.value === 'horizontal' ? width : height
235
+
236
+ if (!Number.isNaN(nextSize))
237
+ groupSizeInPixels.value = nextSize
238
+ })
239
+
240
+ if (element instanceof HTMLElement)
241
+ resizeObserver.observe(element)
242
+
243
+ onCleanup(() => resizeObserver.disconnect())
161
244
  })
162
245
 
163
246
  watchEffect(() => {
@@ -254,35 +337,86 @@ watch(() => eagerValuesRef.value.panelDataArrayChanged, () => {
254
337
  }
255
338
 
256
339
  if (unsafeLayout === null) {
340
+ const panelDataArrayWithPercentConstraints = getPanelDataWithPercentConstraints()
341
+ if (!panelDataArrayWithPercentConstraints)
342
+ return
343
+
257
344
  unsafeLayout = calculateUnsafeDefaultLayout({
258
- panelDataArray,
345
+ panelDataArray: panelDataArrayWithPercentConstraints,
259
346
  })
260
347
  }
261
348
 
349
+ const panelConstraints = getPanelConstraintsInPercent()
350
+ if (!panelConstraints)
351
+ return
352
+
262
353
  // Validate even saved layouts in case something has changed since last render
263
354
  // e.g. for pixel groups, this could be the size of the window
264
355
  const nextLayout = validatePanelGroupLayout({
265
356
  layout: unsafeLayout,
266
- panelConstraints: panelDataArray.map(
267
- panelData => panelData.constraints,
268
- ),
357
+ panelConstraints,
269
358
  })
270
359
 
271
360
  if (!areEqual(prevLayout, nextLayout)) {
272
361
  setLayout(nextLayout)
273
362
 
274
363
  eagerValuesRef.value.layout = nextLayout
275
- emits('layout', nextLayout)
364
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
276
365
 
277
366
  callPanelCallbacks(
278
367
  panelDataArray,
279
368
  nextLayout,
280
369
  panelIdToLastNotifiedSizeMapRef.value,
370
+ getGroupSizeInPixels(),
281
371
  )
282
372
  }
283
373
  }
284
374
  })
285
375
 
376
+ watch(groupSizeInPixels, (nextSize, prevSize) => {
377
+ if (prevSize == null || nextSize == null)
378
+ return
379
+
380
+ const { layout: prevLayout, panelDataArray } = eagerValuesRef.value
381
+ if (prevLayout.length === 0)
382
+ return
383
+ if (!hasPixelSizedPanel(panelDataArray))
384
+ return
385
+
386
+ const recalculatedLayout = recalculateLayoutForPixelPanels({
387
+ layout: prevLayout,
388
+ panelDataArray,
389
+ prevGroupSize: prevSize,
390
+ nextGroupSize: nextSize,
391
+ })
392
+
393
+ if (!recalculatedLayout)
394
+ return
395
+
396
+ const panelConstraints = getPanelConstraintsInPercent(nextSize)
397
+ if (!panelConstraints)
398
+ return
399
+
400
+ const nextLayout = validatePanelGroupLayout({
401
+ layout: recalculatedLayout,
402
+ panelConstraints,
403
+ })
404
+
405
+ if (!compareLayouts(prevLayout, nextLayout)) {
406
+ setLayout(nextLayout)
407
+
408
+ eagerValuesRef.value.layout = nextLayout
409
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
410
+
411
+ callPanelCallbacks(
412
+ panelDataArray,
413
+ nextLayout,
414
+ panelIdToLastNotifiedSizeMapRef.value,
415
+ getGroupSizeInPixels(),
416
+ )
417
+ }
418
+ })
419
+
286
420
  function registerResizeHandle(dragHandleId: string) {
287
421
  return function resizeHandler(event: ResizeEvent) {
288
422
  event.preventDefault()
@@ -317,7 +451,9 @@ function registerResizeHandle(dragHandleId: string) {
317
451
  if (dir.value === 'rtl' && isHorizontal)
318
452
  delta = -delta
319
453
 
320
- const panelConstraints = panelDataArray.map(panelData => panelData.constraints)
454
+ const panelConstraints = getPanelConstraintsInPercent()
455
+ if (!panelConstraints)
456
+ return
321
457
 
322
458
  const nextLayout = adjustLayoutByDelta({
323
459
  delta,
@@ -364,12 +500,13 @@ function registerResizeHandle(dragHandleId: string) {
364
500
  setLayout(nextLayout)
365
501
 
366
502
  eagerValuesRef.value.layout = nextLayout
367
- emits('layout', nextLayout)
503
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
368
504
 
369
505
  callPanelCallbacks(
370
506
  panelDataArray,
371
507
  nextLayout,
372
508
  panelIdToLastNotifiedSizeMapRef.value,
509
+ getGroupSizeInPixels(),
373
510
  )
374
511
  }
375
512
  }
@@ -378,20 +515,35 @@ function registerResizeHandle(dragHandleId: string) {
378
515
  function resizePanel(panelData: PanelData, unsafePanelSize: number) {
379
516
  const { layout: prevLayout, panelDataArray } = eagerValuesRef.value
380
517
 
381
- const panelConstraintsArray = panelDataArray.map(panelData => panelData.constraints)
518
+ const panelConstraintsArray = getPanelConstraintsInPercent()
519
+ if (!panelConstraintsArray)
520
+ return
521
+
522
+ const panelIndex = findPanelDataIndex(panelDataArray, panelData)
523
+ const panelUnit = panelData.constraints.sizeUnit ?? '%'
524
+
525
+ // Convert px to percent if needed for internal calculation
526
+ let sizeInPercent = unsafePanelSize
527
+ if (panelUnit === 'px') {
528
+ const groupSize = getGroupSizeInPixels()
529
+ if (groupSize != null) {
530
+ sizeInPercent = (unsafePanelSize / groupSize) * 100
531
+ }
532
+ }
382
533
 
383
534
  const { panelSize, pivotIndices } = panelDataHelper(
384
535
  panelDataArray,
385
536
  panelData,
386
537
  prevLayout,
538
+ panelConstraintsArray,
387
539
  )
388
540
 
389
541
  assert(panelSize != null)
390
542
 
391
- const isLastPanel = findPanelDataIndex(panelDataArray, panelData) === panelDataArray.length - 1
543
+ const isLastPanel = panelIndex === panelDataArray.length - 1
392
544
  const delta = isLastPanel
393
- ? panelSize - unsafePanelSize
394
- : unsafePanelSize - panelSize
545
+ ? panelSize - sizeInPercent
546
+ : sizeInPercent - panelSize
395
547
 
396
548
  const nextLayout = adjustLayoutByDelta({
397
549
  delta,
@@ -405,12 +557,13 @@ function resizePanel(panelData: PanelData, unsafePanelSize: number) {
405
557
  setLayout(nextLayout)
406
558
 
407
559
  eagerValuesRef.value.layout = nextLayout
408
- emits('layout', nextLayout)
560
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
409
561
 
410
562
  callPanelCallbacks(
411
563
  panelDataArray,
412
564
  nextLayout,
413
565
  panelIdToLastNotifiedSizeMapRef.value,
566
+ getGroupSizeInPixels(),
414
567
  )
415
568
  }
416
569
  }
@@ -420,39 +573,29 @@ function reevaluatePanelConstraints(panelData: PanelData, prevConstraints: Panel
420
573
  const index = findPanelDataIndex(panelDataArray, panelData)
421
574
  panelDataArray[index] = panelData
422
575
  eagerValuesRef.value.panelDataArrayChanged = true
423
- const {
424
- collapsedSize: prevCollapsedSize = 0,
425
- collapsible: prevCollapsible,
426
- } = prevConstraints
427
576
 
428
- const {
429
- collapsedSize: nextCollapsedSize = 0,
430
- collapsible: nextCollapsible,
431
- maxSize: nextMaxSize = 100,
432
- minSize: nextMinSize = 0,
433
- } = panelData.constraints
577
+ const panelConstraintsArray = getPanelConstraintsInPercent()
578
+ if (!panelConstraintsArray)
579
+ return
434
580
 
581
+ const nextConstraints = panelConstraintsArray[index]
435
582
  const { panelSize: prevPanelSize } = panelDataHelper(
436
583
  panelDataArray,
437
584
  panelData,
438
585
  layout,
586
+ panelConstraintsArray,
439
587
  )
440
- if (prevPanelSize === null) {
441
- // It's possible that the panels in this group have changed since the last render
588
+
589
+ if (prevPanelSize === null)
442
590
  return
443
- }
444
591
 
445
- if (
446
- prevCollapsible
447
- && nextCollapsible
448
- && prevPanelSize === prevCollapsedSize
449
- ) {
450
- if (prevCollapsedSize !== nextCollapsedSize) {
592
+ const nextCollapsedSize = nextConstraints?.collapsedSize ?? 0
593
+ const nextMaxSize = nextConstraints?.maxSize ?? 100
594
+ const nextMinSize = nextConstraints?.minSize ?? 0
595
+
596
+ if (nextConstraints?.collapsible && isPanelCollapsed(panelData)) {
597
+ if (prevPanelSize !== nextCollapsedSize)
451
598
  resizePanel(panelData, nextCollapsedSize)
452
- }
453
- else {
454
- // Stay collapsed
455
- }
456
599
  }
457
600
  else if (prevPanelSize < nextMinSize) {
458
601
  resizePanel(panelData, nextMinSize)
@@ -511,15 +654,15 @@ function collapsePanel(panelData: PanelData) {
511
654
  const { layout: prevLayout, panelDataArray } = eagerValuesRef.value
512
655
 
513
656
  if (panelData.constraints.collapsible) {
514
- const panelConstraintsArray = panelDataArray.map(
515
- panelData => panelData.constraints,
516
- )
657
+ const panelConstraintsArray = getPanelConstraintsInPercent()
658
+ if (!panelConstraintsArray)
659
+ return
517
660
 
518
661
  const {
519
662
  collapsedSize = 0,
520
663
  panelSize,
521
664
  pivotIndices,
522
- } = panelDataHelper(panelDataArray, panelData, prevLayout)
665
+ } = panelDataHelper(panelDataArray, panelData, prevLayout, panelConstraintsArray)
523
666
 
524
667
  assert(
525
668
  panelSize != null,
@@ -529,7 +672,13 @@ function collapsePanel(panelData: PanelData) {
529
672
  if (panelSize !== collapsedSize) {
530
673
  // Store size before collapse;
531
674
  // This is the size that gets restored if the expand() API is used.
532
- panelSizeBeforeCollapseRef.value.set(panelData.id, panelSize)
675
+ const sizeUnit = panelData.constraints.sizeUnit ?? '%'
676
+ const groupSize = groupSizeInPixels.value ?? getGroupSizeInPixels()
677
+ const sizeBeforeCollapse = sizeUnit === 'px' && groupSize
678
+ ? (panelSize / 100) * groupSize
679
+ : panelSize
680
+
681
+ panelSizeBeforeCollapseRef.value.set(panelData.id, sizeBeforeCollapse)
533
682
 
534
683
  const isLastPanel
535
684
  = findPanelDataIndex(panelDataArray, panelData)
@@ -551,12 +700,13 @@ function collapsePanel(panelData: PanelData) {
551
700
 
552
701
  eagerValuesRef.value.layout = nextLayout
553
702
 
554
- emits('layout', nextLayout)
703
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
555
704
 
556
705
  callPanelCallbacks(
557
706
  panelDataArray,
558
707
  nextLayout,
559
708
  panelIdToLastNotifiedSizeMapRef.value,
709
+ getGroupSizeInPixels(),
560
710
  )
561
711
  }
562
712
  }
@@ -567,26 +717,35 @@ function expandPanel(panelData: PanelData) {
567
717
  const { layout: prevLayout, panelDataArray } = eagerValuesRef.value
568
718
 
569
719
  if (panelData.constraints.collapsible) {
570
- const panelConstraintsArray = panelDataArray.map(
571
- panelData => panelData.constraints,
572
- )
720
+ const panelConstraintsArray = getPanelConstraintsInPercent()
721
+ if (!panelConstraintsArray)
722
+ return
573
723
 
574
724
  const {
575
725
  collapsedSize = 0,
576
- panelSize,
726
+ panelSize = 0,
577
727
  minSize = 0,
578
728
  pivotIndices,
579
- } = panelDataHelper(panelDataArray, panelData, prevLayout)
729
+ } = panelDataHelper(panelDataArray, panelData, prevLayout, panelConstraintsArray)
580
730
 
581
- if (panelSize === collapsedSize) {
731
+ if (fuzzyCompareNumbers(panelSize, collapsedSize) <= 0) {
582
732
  // Restore this panel to the size it was before it was collapsed, if possible.
583
733
  const prevPanelSize = panelSizeBeforeCollapseRef.value.get(
584
734
  panelData.id,
585
735
  )
736
+ const sizeUnit = panelData.constraints.sizeUnit ?? '%'
737
+ const groupSize = groupSizeInPixels.value ?? getGroupSizeInPixels()
738
+
739
+ const restoredSize
740
+ = sizeUnit === 'px' && groupSize
741
+ ? prevPanelSize != null
742
+ ? (prevPanelSize / groupSize) * 100
743
+ : null
744
+ : prevPanelSize
586
745
 
587
746
  const baseSize
588
- = prevPanelSize != null && prevPanelSize >= minSize
589
- ? prevPanelSize
747
+ = restoredSize != null && restoredSize >= minSize
748
+ ? restoredSize
590
749
  : minSize
591
750
 
592
751
  const isLastPanel
@@ -607,12 +766,13 @@ function expandPanel(panelData: PanelData) {
607
766
 
608
767
  eagerValuesRef.value.layout = nextLayout
609
768
 
610
- emits('layout', nextLayout)
769
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
611
770
 
612
771
  callPanelCallbacks(
613
772
  panelDataArray,
614
773
  nextLayout,
615
774
  panelIdToLastNotifiedSizeMapRef.value,
775
+ getGroupSizeInPixels(),
616
776
  )
617
777
  }
618
778
  }
@@ -629,24 +789,42 @@ function getPanelSize(panelData: PanelData) {
629
789
  `Panel size not found for panel "${panelData.id}"`,
630
790
  )
631
791
 
792
+ // If the panel uses px units, convert from percent back to px
793
+ const panelUnit = panelData.constraints.sizeUnit ?? '%'
794
+ if (panelUnit === 'px') {
795
+ const groupSize = getGroupSizeInPixels()
796
+ if (groupSize != null) {
797
+ return (panelSize / 100) * groupSize
798
+ }
799
+ }
800
+
632
801
  return panelSize
633
802
  }
634
803
 
635
804
  function isPanelCollapsed(panelData: PanelData) {
636
805
  const { layout, panelDataArray } = eagerValuesRef.value
637
806
 
807
+ const panelConstraintsArray = getPanelConstraintsInPercent()
808
+
638
809
  const {
639
810
  collapsedSize = 0,
640
811
  collapsible,
641
812
  panelSize,
642
- } = panelDataHelper(panelDataArray, panelData, layout)
813
+ } = panelDataHelper(
814
+ panelDataArray,
815
+ panelData,
816
+ layout,
817
+ panelConstraintsArray ?? undefined,
818
+ )
643
819
 
644
820
  if (!collapsible)
645
821
  return false
646
822
 
647
823
  // panelSize is undefined during ssr due to vue ssr reactivity limitation.
648
824
  if (panelSize === undefined) {
649
- return panelData.constraints.defaultSize === panelData.constraints.collapsedSize
825
+ const panelIndex = findPanelDataIndex(panelDataArray, panelData)
826
+ const constraints = panelConstraintsArray?.[panelIndex] ?? panelData.constraints
827
+ return constraints.defaultSize === constraints.collapsedSize
650
828
  }
651
829
  else {
652
830
  return panelSize === collapsedSize
@@ -656,11 +834,18 @@ function isPanelCollapsed(panelData: PanelData) {
656
834
  function isPanelExpanded(panelData: PanelData) {
657
835
  const { layout, panelDataArray } = eagerValuesRef.value
658
836
 
837
+ const panelConstraintsArray = getPanelConstraintsInPercent()
838
+
659
839
  const {
660
840
  collapsedSize = 0,
661
841
  collapsible,
662
842
  panelSize,
663
- } = panelDataHelper(panelDataArray, panelData, layout)
843
+ } = panelDataHelper(
844
+ panelDataArray,
845
+ panelData,
846
+ layout,
847
+ panelConstraintsArray ?? undefined,
848
+ )
664
849
 
665
850
  assert(
666
851
  panelSize != null,
@@ -702,6 +887,7 @@ function panelDataHelper(
702
887
  panelDataArray: PanelData[],
703
888
  panelData: PanelData,
704
889
  layout: number[],
890
+ panelConstraints?: PanelConstraints[] | null,
705
891
  ) {
706
892
  const panelIndex = findPanelDataIndex(panelDataArray, panelData)
707
893
 
@@ -710,10 +896,13 @@ function panelDataHelper(
710
896
  ? [panelIndex - 1, panelIndex]
711
897
  : [panelIndex, panelIndex + 1]
712
898
 
899
+ const constraints = panelConstraints ?? getPanelConstraintsInPercent()
900
+ const panelConstraintsFromGroup = constraints?.[panelIndex]
901
+
713
902
  const panelSize = layout[panelIndex]
714
903
 
715
904
  return {
716
- ...panelData.constraints,
905
+ ...(panelConstraintsFromGroup ?? panelData.constraints),
717
906
  panelSize,
718
907
  pivotIndices,
719
908
  }
@@ -4,20 +4,22 @@ import { useId } from '@/shared'
4
4
  import { PRECISION } from './utils/constants'
5
5
 
6
6
  export interface SplitterPanelProps extends PrimitiveProps {
7
- /** The size of panel when it is collapsed. */
7
+ /** The size of panel when it is collapsed; interpreted using `sizeUnit`. */
8
8
  collapsedSize?: number
9
9
  /** Should panel collapse when resized beyond its `minSize`. When `true`, it will be collapsed to `collapsedSize`. */
10
10
  collapsible?: boolean
11
- /** Initial size of panel (numeric value between 1-100) */
11
+ /** Initial size of panel, interpreted using `sizeUnit` (percent by default). */
12
12
  defaultSize?: number
13
13
  /** Panel id (unique within group); falls back to `useId` when not provided */
14
14
  id?: string
15
- /** The maximum allowable size of panel (numeric value between 1-100); defaults to `100` */
15
+ /** The maximum allowable size of panel, interpreted using `sizeUnit`; defaults to `100` (percent). */
16
16
  maxSize?: number
17
- /** The minimum allowable size of panel (numeric value between 1-100); defaults to `10` */
17
+ /** The minimum allowable size of panel, interpreted using `sizeUnit`; defaults to `10` (percent). */
18
18
  minSize?: number
19
19
  /** The order of panel within group; required for groups with conditionally rendered panels */
20
20
  order?: number
21
+ /** Unit used for sizing values; `%` by default, or `px` for fixed sizing. */
22
+ sizeUnit?: '%' | 'px'
21
23
  }
22
24
 
23
25
  export type SplitterPanelEmits = {
@@ -49,6 +51,7 @@ export type PanelConstraints = {
49
51
  /** Panel id (unique within group); falls back to useId when not provided */
50
52
  maxSize?: number | undefined
51
53
  minSize?: number | undefined
54
+ sizeUnit?: '%' | 'px' | undefined
52
55
  }
53
56
 
54
57
  export type PanelData = {
@@ -107,6 +110,7 @@ const panelDataRef = computed(() => ({
107
110
  /** Panel id (unique within group); falls back to useId when not provided */
108
111
  maxSize: props.maxSize,
109
112
  minSize: props.minSize,
113
+ sizeUnit: props.sizeUnit ?? '%',
110
114
  },
111
115
  id: panelId,
112
116
  idIsFromProps: props.id !== undefined,
@@ -121,6 +125,7 @@ watch(() => panelDataRef.value.constraints, (constraints, prevConstraints) => {
121
125
  || prevConstraints.collapsible !== constraints.collapsible
122
126
  || prevConstraints.maxSize !== constraints.maxSize
123
127
  || prevConstraints.minSize !== constraints.minSize
128
+ || prevConstraints.sizeUnit !== constraints.sizeUnit
124
129
  ) {
125
130
  reevaluatePanelConstraints(panelDataRef.value, prevConstraints)
126
131
  }
@@ -157,11 +162,11 @@ defineExpose({
157
162
  collapse,
158
163
  /** If panel is currently collapsed, expand it to its most recent size. */
159
164
  expand,
160
- /** Gets the current size of the panel as a percentage (1 - 100). */
165
+ /** Gets the current size of the panel (in the panel's sizeUnit: percentage for '%', pixels for 'px'). */
161
166
  getSize() {
162
167
  return getPanelSize(panelDataRef.value)
163
168
  },
164
- /** Resize panel to the specified percentage (1 - 100). */
169
+ /** Resize panel to the specified size (in the panel's sizeUnit: percentage for '%', pixels for 'px'). */
165
170
  resize,
166
171
  /** Returns `true` if the panel is currently collapsed */
167
172
  isCollapsed,