reka-ui 2.8.2 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (592) 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/CalendarNext.cjs +7 -3
  14. package/dist/Calendar/CalendarNext.cjs.map +1 -1
  15. package/dist/Calendar/CalendarNext.js +7 -3
  16. package/dist/Calendar/CalendarNext.js.map +1 -1
  17. package/dist/Calendar/CalendarPrev.cjs +7 -3
  18. package/dist/Calendar/CalendarPrev.cjs.map +1 -1
  19. package/dist/Calendar/CalendarPrev.js +7 -3
  20. package/dist/Calendar/CalendarPrev.js.map +1 -1
  21. package/dist/Checkbox/CheckboxGroupRoot.cjs +1 -1
  22. package/dist/Checkbox/CheckboxGroupRoot.js +1 -1
  23. package/dist/Checkbox/CheckboxRoot.cjs +21 -10
  24. package/dist/Checkbox/CheckboxRoot.cjs.map +1 -1
  25. package/dist/Checkbox/CheckboxRoot.js +21 -10
  26. package/dist/Checkbox/CheckboxRoot.js.map +1 -1
  27. package/dist/ColorArea/ColorAreaArea.cjs +143 -0
  28. package/dist/ColorArea/ColorAreaArea.cjs.map +1 -0
  29. package/dist/ColorArea/ColorAreaArea.js +137 -0
  30. package/dist/ColorArea/ColorAreaArea.js.map +1 -0
  31. package/dist/ColorArea/ColorAreaRoot.cjs +240 -0
  32. package/dist/ColorArea/ColorAreaRoot.cjs.map +1 -0
  33. package/dist/ColorArea/ColorAreaRoot.js +228 -0
  34. package/dist/ColorArea/ColorAreaRoot.js.map +1 -0
  35. package/dist/ColorArea/ColorAreaThumb.cjs +91 -0
  36. package/dist/ColorArea/ColorAreaThumb.cjs.map +1 -0
  37. package/dist/ColorArea/ColorAreaThumb.js +85 -0
  38. package/dist/ColorArea/ColorAreaThumb.js.map +1 -0
  39. package/dist/ColorArea/utils.cjs +32 -0
  40. package/dist/ColorArea/utils.cjs.map +1 -0
  41. package/dist/ColorArea/utils.js +21 -0
  42. package/dist/ColorArea/utils.js.map +1 -0
  43. package/dist/ColorField/ColorFieldInput.cjs +140 -0
  44. package/dist/ColorField/ColorFieldInput.cjs.map +1 -0
  45. package/dist/ColorField/ColorFieldInput.js +134 -0
  46. package/dist/ColorField/ColorFieldInput.js.map +1 -0
  47. package/dist/ColorField/ColorFieldRoot.cjs +281 -0
  48. package/dist/ColorField/ColorFieldRoot.cjs.map +1 -0
  49. package/dist/ColorField/ColorFieldRoot.js +269 -0
  50. package/dist/ColorField/ColorFieldRoot.js.map +1 -0
  51. package/dist/ColorSlider/ColorSliderRoot.cjs +230 -0
  52. package/dist/ColorSlider/ColorSliderRoot.cjs.map +1 -0
  53. package/dist/ColorSlider/ColorSliderRoot.js +218 -0
  54. package/dist/ColorSlider/ColorSliderRoot.js.map +1 -0
  55. package/dist/ColorSlider/ColorSliderThumb.cjs +66 -0
  56. package/dist/ColorSlider/ColorSliderThumb.cjs.map +1 -0
  57. package/dist/ColorSlider/ColorSliderThumb.js +60 -0
  58. package/dist/ColorSlider/ColorSliderThumb.js.map +1 -0
  59. package/dist/ColorSlider/ColorSliderTrack.cjs +55 -0
  60. package/dist/ColorSlider/ColorSliderTrack.cjs.map +1 -0
  61. package/dist/ColorSlider/ColorSliderTrack.js +49 -0
  62. package/dist/ColorSlider/ColorSliderTrack.js.map +1 -0
  63. package/dist/ColorSwatch/ColorSwatch.cjs +106 -0
  64. package/dist/ColorSwatch/ColorSwatch.cjs.map +1 -0
  65. package/dist/ColorSwatch/ColorSwatch.js +100 -0
  66. package/dist/ColorSwatch/ColorSwatch.js.map +1 -0
  67. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.cjs +78 -0
  68. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.cjs.map +1 -0
  69. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.js +66 -0
  70. package/dist/ColorSwatchPicker/ColorSwatchPickerItem.js.map +1 -0
  71. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.cjs +40 -0
  72. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.cjs.map +1 -0
  73. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.js +34 -0
  74. package/dist/ColorSwatchPicker/ColorSwatchPickerItemIndicator.js.map +1 -0
  75. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.cjs +43 -0
  76. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.cjs.map +1 -0
  77. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.js +37 -0
  78. package/dist/ColorSwatchPicker/ColorSwatchPickerItemSwatch.js.map +1 -0
  79. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.cjs +110 -0
  80. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.cjs.map +1 -0
  81. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.js +104 -0
  82. package/dist/ColorSwatchPicker/ColorSwatchPickerRoot.js.map +1 -0
  83. package/dist/Combobox/ComboboxContent.cjs +4 -0
  84. package/dist/Combobox/ComboboxContent.cjs.map +1 -1
  85. package/dist/Combobox/ComboboxContent.js +4 -0
  86. package/dist/Combobox/ComboboxContent.js.map +1 -1
  87. package/dist/Combobox/ComboboxContentImpl.cjs +9 -2
  88. package/dist/Combobox/ComboboxContentImpl.cjs.map +1 -1
  89. package/dist/Combobox/ComboboxContentImpl.js +9 -2
  90. package/dist/Combobox/ComboboxContentImpl.js.map +1 -1
  91. package/dist/Combobox/ComboboxRoot.cjs +7 -1
  92. package/dist/Combobox/ComboboxRoot.js +2 -2
  93. package/dist/DateField/DateFieldRoot.cjs +1 -1
  94. package/dist/DateField/DateFieldRoot.js +1 -1
  95. package/dist/DateRangeField/DateRangeFieldRoot.cjs +1 -1
  96. package/dist/DateRangeField/DateRangeFieldRoot.cjs.map +1 -1
  97. package/dist/DateRangeField/DateRangeFieldRoot.js +1 -1
  98. package/dist/DateRangeField/DateRangeFieldRoot.js.map +1 -1
  99. package/dist/DismissableLayer/utils.cjs.map +1 -1
  100. package/dist/DismissableLayer/utils.js.map +1 -1
  101. package/dist/DropdownMenu/DropdownMenuFilter.cjs +134 -0
  102. package/dist/DropdownMenu/DropdownMenuFilter.cjs.map +1 -0
  103. package/dist/DropdownMenu/DropdownMenuFilter.js +128 -0
  104. package/dist/DropdownMenu/DropdownMenuFilter.js.map +1 -0
  105. package/dist/Listbox/ListboxRoot.cjs +1 -1
  106. package/dist/Listbox/ListboxRoot.js +1 -1
  107. package/dist/Listbox/ListboxVirtualizer.cjs +1 -1
  108. package/dist/Listbox/ListboxVirtualizer.js +1 -1
  109. package/dist/Menu/MenuContentImpl.cjs +44 -4
  110. package/dist/Menu/MenuContentImpl.cjs.map +1 -1
  111. package/dist/Menu/MenuContentImpl.js +44 -4
  112. package/dist/Menu/MenuContentImpl.js.map +1 -1
  113. package/dist/Menu/MenuItemImpl.cjs +8 -3
  114. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  115. package/dist/Menu/MenuItemImpl.js +9 -4
  116. package/dist/Menu/MenuItemImpl.js.map +1 -1
  117. package/dist/Menu/MenuSubContent.cjs +8 -2
  118. package/dist/Menu/MenuSubContent.cjs.map +1 -1
  119. package/dist/Menu/MenuSubContent.js +9 -3
  120. package/dist/Menu/MenuSubContent.js.map +1 -1
  121. package/dist/Menu/MenuSubTrigger.cjs +7 -0
  122. package/dist/Menu/MenuSubTrigger.cjs.map +1 -1
  123. package/dist/Menu/MenuSubTrigger.js +8 -1
  124. package/dist/Menu/MenuSubTrigger.js.map +1 -1
  125. package/dist/MonthPicker/MonthPickerCell.cjs +59 -0
  126. package/dist/MonthPicker/MonthPickerCell.cjs.map +1 -0
  127. package/dist/MonthPicker/MonthPickerCell.js +53 -0
  128. package/dist/MonthPicker/MonthPickerCell.js.map +1 -0
  129. package/dist/MonthPicker/MonthPickerCellTrigger.cjs +197 -0
  130. package/dist/MonthPicker/MonthPickerCellTrigger.cjs.map +1 -0
  131. package/dist/MonthPicker/MonthPickerCellTrigger.js +191 -0
  132. package/dist/MonthPicker/MonthPickerCellTrigger.js.map +1 -0
  133. package/dist/MonthPicker/MonthPickerGrid.cjs +59 -0
  134. package/dist/MonthPicker/MonthPickerGrid.cjs.map +1 -0
  135. package/dist/MonthPicker/MonthPickerGrid.js +53 -0
  136. package/dist/MonthPicker/MonthPickerGrid.js.map +1 -0
  137. package/dist/MonthPicker/MonthPickerGridBody.cjs +41 -0
  138. package/dist/MonthPicker/MonthPickerGridBody.cjs.map +1 -0
  139. package/dist/MonthPicker/MonthPickerGridBody.js +35 -0
  140. package/dist/MonthPicker/MonthPickerGridBody.js.map +1 -0
  141. package/dist/MonthPicker/MonthPickerGridRow.cjs +41 -0
  142. package/dist/MonthPicker/MonthPickerGridRow.cjs.map +1 -0
  143. package/dist/MonthPicker/MonthPickerGridRow.js +35 -0
  144. package/dist/MonthPicker/MonthPickerGridRow.js.map +1 -0
  145. package/dist/MonthPicker/MonthPickerHeader.cjs +41 -0
  146. package/dist/MonthPicker/MonthPickerHeader.cjs.map +1 -0
  147. package/dist/MonthPicker/MonthPickerHeader.js +35 -0
  148. package/dist/MonthPicker/MonthPickerHeader.js.map +1 -0
  149. package/dist/MonthPicker/MonthPickerHeading.cjs +48 -0
  150. package/dist/MonthPicker/MonthPickerHeading.cjs.map +1 -0
  151. package/dist/MonthPicker/MonthPickerHeading.js +42 -0
  152. package/dist/MonthPicker/MonthPickerHeading.js.map +1 -0
  153. package/dist/MonthPicker/MonthPickerNext.cjs +68 -0
  154. package/dist/MonthPicker/MonthPickerNext.cjs.map +1 -0
  155. package/dist/MonthPicker/MonthPickerNext.js +62 -0
  156. package/dist/MonthPicker/MonthPickerNext.js.map +1 -0
  157. package/dist/MonthPicker/MonthPickerPrev.cjs +68 -0
  158. package/dist/MonthPicker/MonthPickerPrev.cjs.map +1 -0
  159. package/dist/MonthPicker/MonthPickerPrev.js +62 -0
  160. package/dist/MonthPicker/MonthPickerPrev.js.map +1 -0
  161. package/dist/MonthPicker/MonthPickerRoot.cjs +281 -0
  162. package/dist/MonthPicker/MonthPickerRoot.cjs.map +1 -0
  163. package/dist/MonthPicker/MonthPickerRoot.js +269 -0
  164. package/dist/MonthPicker/MonthPickerRoot.js.map +1 -0
  165. package/dist/MonthPicker/useMonthPicker.cjs +148 -0
  166. package/dist/MonthPicker/useMonthPicker.cjs.map +1 -0
  167. package/dist/MonthPicker/useMonthPicker.js +136 -0
  168. package/dist/MonthPicker/useMonthPicker.js.map +1 -0
  169. package/dist/MonthRangePicker/MonthRangePickerCell.cjs +59 -0
  170. package/dist/MonthRangePicker/MonthRangePickerCell.cjs.map +1 -0
  171. package/dist/MonthRangePicker/MonthRangePickerCell.js +53 -0
  172. package/dist/MonthRangePicker/MonthRangePickerCell.js.map +1 -0
  173. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.cjs +258 -0
  174. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.cjs.map +1 -0
  175. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.js +252 -0
  176. package/dist/MonthRangePicker/MonthRangePickerCellTrigger.js.map +1 -0
  177. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs +59 -0
  178. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs.map +1 -0
  179. package/dist/MonthRangePicker/MonthRangePickerGrid.js +53 -0
  180. package/dist/MonthRangePicker/MonthRangePickerGrid.js.map +1 -0
  181. package/dist/MonthRangePicker/MonthRangePickerGridBody.cjs +41 -0
  182. package/dist/MonthRangePicker/MonthRangePickerGridBody.cjs.map +1 -0
  183. package/dist/MonthRangePicker/MonthRangePickerGridBody.js +35 -0
  184. package/dist/MonthRangePicker/MonthRangePickerGridBody.js.map +1 -0
  185. package/dist/MonthRangePicker/MonthRangePickerGridRow.cjs +41 -0
  186. package/dist/MonthRangePicker/MonthRangePickerGridRow.cjs.map +1 -0
  187. package/dist/MonthRangePicker/MonthRangePickerGridRow.js +35 -0
  188. package/dist/MonthRangePicker/MonthRangePickerGridRow.js.map +1 -0
  189. package/dist/MonthRangePicker/MonthRangePickerHeader.cjs +41 -0
  190. package/dist/MonthRangePicker/MonthRangePickerHeader.cjs.map +1 -0
  191. package/dist/MonthRangePicker/MonthRangePickerHeader.js +35 -0
  192. package/dist/MonthRangePicker/MonthRangePickerHeader.js.map +1 -0
  193. package/dist/MonthRangePicker/MonthRangePickerHeading.cjs +48 -0
  194. package/dist/MonthRangePicker/MonthRangePickerHeading.cjs.map +1 -0
  195. package/dist/MonthRangePicker/MonthRangePickerHeading.js +42 -0
  196. package/dist/MonthRangePicker/MonthRangePickerHeading.js.map +1 -0
  197. package/dist/MonthRangePicker/MonthRangePickerNext.cjs +68 -0
  198. package/dist/MonthRangePicker/MonthRangePickerNext.cjs.map +1 -0
  199. package/dist/MonthRangePicker/MonthRangePickerNext.js +62 -0
  200. package/dist/MonthRangePicker/MonthRangePickerNext.js.map +1 -0
  201. package/dist/MonthRangePicker/MonthRangePickerPrev.cjs +68 -0
  202. package/dist/MonthRangePicker/MonthRangePickerPrev.cjs.map +1 -0
  203. package/dist/MonthRangePicker/MonthRangePickerPrev.js +62 -0
  204. package/dist/MonthRangePicker/MonthRangePickerPrev.js.map +1 -0
  205. package/dist/MonthRangePicker/MonthRangePickerRoot.cjs +347 -0
  206. package/dist/MonthRangePicker/MonthRangePickerRoot.cjs.map +1 -0
  207. package/dist/MonthRangePicker/MonthRangePickerRoot.js +335 -0
  208. package/dist/MonthRangePicker/MonthRangePickerRoot.js.map +1 -0
  209. package/dist/MonthRangePicker/useRangeMonthPicker.cjs +128 -0
  210. package/dist/MonthRangePicker/useRangeMonthPicker.cjs.map +1 -0
  211. package/dist/MonthRangePicker/useRangeMonthPicker.js +122 -0
  212. package/dist/MonthRangePicker/useRangeMonthPicker.js.map +1 -0
  213. package/dist/NavigationMenu/NavigationMenuItem.js +3 -3
  214. package/dist/NavigationMenu/NavigationMenuItem.js.map +1 -1
  215. package/dist/NumberField/NumberFieldRoot.cjs +3 -2
  216. package/dist/NumberField/NumberFieldRoot.cjs.map +1 -1
  217. package/dist/NumberField/NumberFieldRoot.js +3 -2
  218. package/dist/NumberField/NumberFieldRoot.js.map +1 -1
  219. package/dist/Progress/ProgressRoot.cjs.map +1 -1
  220. package/dist/Progress/ProgressRoot.js.map +1 -1
  221. package/dist/RadioGroup/RadioGroupRoot.cjs +1 -1
  222. package/dist/RadioGroup/RadioGroupRoot.js +1 -1
  223. package/dist/RangeCalendar/RangeCalendarNext.cjs +9 -5
  224. package/dist/RangeCalendar/RangeCalendarNext.cjs.map +1 -1
  225. package/dist/RangeCalendar/RangeCalendarNext.js +9 -5
  226. package/dist/RangeCalendar/RangeCalendarNext.js.map +1 -1
  227. package/dist/RangeCalendar/RangeCalendarPrev.cjs +9 -5
  228. package/dist/RangeCalendar/RangeCalendarPrev.cjs.map +1 -1
  229. package/dist/RangeCalendar/RangeCalendarPrev.js +9 -5
  230. package/dist/RangeCalendar/RangeCalendarPrev.js.map +1 -1
  231. package/dist/RangeCalendar/RangeCalendarRoot.cjs +1 -1
  232. package/dist/RangeCalendar/RangeCalendarRoot.cjs.map +1 -1
  233. package/dist/RangeCalendar/RangeCalendarRoot.js +1 -1
  234. package/dist/RangeCalendar/RangeCalendarRoot.js.map +1 -1
  235. package/dist/RangeCalendar/useRangeCalendar.cjs +9 -13
  236. package/dist/RangeCalendar/useRangeCalendar.cjs.map +1 -1
  237. package/dist/RangeCalendar/useRangeCalendar.js +9 -13
  238. package/dist/RangeCalendar/useRangeCalendar.js.map +1 -1
  239. package/dist/Splitter/SplitterGroup.cjs +136 -26
  240. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  241. package/dist/Splitter/SplitterGroup.js +136 -26
  242. package/dist/Splitter/SplitterGroup.js.map +1 -1
  243. package/dist/Splitter/SplitterPanel.cjs +7 -2
  244. package/dist/Splitter/SplitterPanel.cjs.map +1 -1
  245. package/dist/Splitter/SplitterPanel.js +7 -2
  246. package/dist/Splitter/SplitterPanel.js.map +1 -1
  247. package/dist/Switch/SwitchRoot.cjs +23 -9
  248. package/dist/Switch/SwitchRoot.cjs.map +1 -1
  249. package/dist/Switch/SwitchRoot.js +23 -9
  250. package/dist/Switch/SwitchRoot.js.map +1 -1
  251. package/dist/Switch/SwitchThumb.cjs +1 -1
  252. package/dist/Switch/SwitchThumb.cjs.map +1 -1
  253. package/dist/Switch/SwitchThumb.js +1 -1
  254. package/dist/Switch/SwitchThumb.js.map +1 -1
  255. package/dist/TimeField/TimeFieldRoot.cjs +1 -1
  256. package/dist/TimeField/TimeFieldRoot.cjs.map +1 -1
  257. package/dist/TimeField/TimeFieldRoot.js +1 -1
  258. package/dist/TimeField/TimeFieldRoot.js.map +1 -1
  259. package/dist/TimeRangeField/TimeRangeFieldInput.cjs +102 -0
  260. package/dist/TimeRangeField/TimeRangeFieldInput.cjs.map +1 -0
  261. package/dist/TimeRangeField/TimeRangeFieldInput.js +96 -0
  262. package/dist/TimeRangeField/TimeRangeFieldInput.js.map +1 -0
  263. package/dist/TimeRangeField/TimeRangeFieldRoot.cjs +402 -0
  264. package/dist/TimeRangeField/TimeRangeFieldRoot.cjs.map +1 -0
  265. package/dist/TimeRangeField/TimeRangeFieldRoot.js +390 -0
  266. package/dist/TimeRangeField/TimeRangeFieldRoot.js.map +1 -0
  267. package/dist/Toast/ToastAnnounce.cjs +4 -1
  268. package/dist/Toast/ToastAnnounce.cjs.map +1 -1
  269. package/dist/Toast/ToastAnnounce.js +4 -1
  270. package/dist/Toast/ToastAnnounce.js.map +1 -1
  271. package/dist/ToggleGroup/ToggleGroupRoot.cjs +1 -1
  272. package/dist/ToggleGroup/ToggleGroupRoot.js +1 -1
  273. package/dist/Tooltip/TooltipContent.cjs +1 -2
  274. package/dist/Tooltip/TooltipContent.cjs.map +1 -1
  275. package/dist/Tooltip/TooltipContent.js +1 -2
  276. package/dist/Tooltip/TooltipContent.js.map +1 -1
  277. package/dist/Tooltip/TooltipContentImpl.cjs +25 -18
  278. package/dist/Tooltip/TooltipContentImpl.cjs.map +1 -1
  279. package/dist/Tooltip/TooltipContentImpl.js +25 -18
  280. package/dist/Tooltip/TooltipContentImpl.js.map +1 -1
  281. package/dist/Tooltip/TooltipProvider.cjs +7 -2
  282. package/dist/Tooltip/TooltipProvider.cjs.map +1 -1
  283. package/dist/Tooltip/TooltipProvider.js +7 -2
  284. package/dist/Tooltip/TooltipProvider.js.map +1 -1
  285. package/dist/YearPicker/YearPickerCell.cjs +59 -0
  286. package/dist/YearPicker/YearPickerCell.cjs.map +1 -0
  287. package/dist/YearPicker/YearPickerCell.js +53 -0
  288. package/dist/YearPicker/YearPickerCell.js.map +1 -0
  289. package/dist/YearPicker/YearPickerCellTrigger.cjs +197 -0
  290. package/dist/YearPicker/YearPickerCellTrigger.cjs.map +1 -0
  291. package/dist/YearPicker/YearPickerCellTrigger.js +191 -0
  292. package/dist/YearPicker/YearPickerCellTrigger.js.map +1 -0
  293. package/dist/YearPicker/YearPickerGrid.cjs +59 -0
  294. package/dist/YearPicker/YearPickerGrid.cjs.map +1 -0
  295. package/dist/YearPicker/YearPickerGrid.js +53 -0
  296. package/dist/YearPicker/YearPickerGrid.js.map +1 -0
  297. package/dist/YearPicker/YearPickerGridBody.cjs +41 -0
  298. package/dist/YearPicker/YearPickerGridBody.cjs.map +1 -0
  299. package/dist/YearPicker/YearPickerGridBody.js +35 -0
  300. package/dist/YearPicker/YearPickerGridBody.js.map +1 -0
  301. package/dist/YearPicker/YearPickerGridRow.cjs +41 -0
  302. package/dist/YearPicker/YearPickerGridRow.cjs.map +1 -0
  303. package/dist/YearPicker/YearPickerGridRow.js +35 -0
  304. package/dist/YearPicker/YearPickerGridRow.js.map +1 -0
  305. package/dist/YearPicker/YearPickerHeader.cjs +41 -0
  306. package/dist/YearPicker/YearPickerHeader.cjs.map +1 -0
  307. package/dist/YearPicker/YearPickerHeader.js +35 -0
  308. package/dist/YearPicker/YearPickerHeader.js.map +1 -0
  309. package/dist/YearPicker/YearPickerHeading.cjs +48 -0
  310. package/dist/YearPicker/YearPickerHeading.cjs.map +1 -0
  311. package/dist/YearPicker/YearPickerHeading.js +42 -0
  312. package/dist/YearPicker/YearPickerHeading.js.map +1 -0
  313. package/dist/YearPicker/YearPickerNext.cjs +68 -0
  314. package/dist/YearPicker/YearPickerNext.cjs.map +1 -0
  315. package/dist/YearPicker/YearPickerNext.js +62 -0
  316. package/dist/YearPicker/YearPickerNext.js.map +1 -0
  317. package/dist/YearPicker/YearPickerPrev.cjs +68 -0
  318. package/dist/YearPicker/YearPickerPrev.cjs.map +1 -0
  319. package/dist/YearPicker/YearPickerPrev.js +62 -0
  320. package/dist/YearPicker/YearPickerPrev.js.map +1 -0
  321. package/dist/YearPicker/YearPickerRoot.cjs +287 -0
  322. package/dist/YearPicker/YearPickerRoot.cjs.map +1 -0
  323. package/dist/YearPicker/YearPickerRoot.js +275 -0
  324. package/dist/YearPicker/YearPickerRoot.js.map +1 -0
  325. package/dist/YearPicker/useYearPicker.cjs +180 -0
  326. package/dist/YearPicker/useYearPicker.cjs.map +1 -0
  327. package/dist/YearPicker/useYearPicker.js +168 -0
  328. package/dist/YearPicker/useYearPicker.js.map +1 -0
  329. package/dist/YearRangePicker/YearRangePickerCell.cjs +59 -0
  330. package/dist/YearRangePicker/YearRangePickerCell.cjs.map +1 -0
  331. package/dist/YearRangePicker/YearRangePickerCell.js +53 -0
  332. package/dist/YearRangePicker/YearRangePickerCell.js.map +1 -0
  333. package/dist/YearRangePicker/YearRangePickerCellTrigger.cjs +256 -0
  334. package/dist/YearRangePicker/YearRangePickerCellTrigger.cjs.map +1 -0
  335. package/dist/YearRangePicker/YearRangePickerCellTrigger.js +250 -0
  336. package/dist/YearRangePicker/YearRangePickerCellTrigger.js.map +1 -0
  337. package/dist/YearRangePicker/YearRangePickerGrid.cjs +59 -0
  338. package/dist/YearRangePicker/YearRangePickerGrid.cjs.map +1 -0
  339. package/dist/YearRangePicker/YearRangePickerGrid.js +53 -0
  340. package/dist/YearRangePicker/YearRangePickerGrid.js.map +1 -0
  341. package/dist/YearRangePicker/YearRangePickerGridBody.cjs +41 -0
  342. package/dist/YearRangePicker/YearRangePickerGridBody.cjs.map +1 -0
  343. package/dist/YearRangePicker/YearRangePickerGridBody.js +35 -0
  344. package/dist/YearRangePicker/YearRangePickerGridBody.js.map +1 -0
  345. package/dist/YearRangePicker/YearRangePickerGridRow.cjs +41 -0
  346. package/dist/YearRangePicker/YearRangePickerGridRow.cjs.map +1 -0
  347. package/dist/YearRangePicker/YearRangePickerGridRow.js +35 -0
  348. package/dist/YearRangePicker/YearRangePickerGridRow.js.map +1 -0
  349. package/dist/YearRangePicker/YearRangePickerHeader.cjs +41 -0
  350. package/dist/YearRangePicker/YearRangePickerHeader.cjs.map +1 -0
  351. package/dist/YearRangePicker/YearRangePickerHeader.js +35 -0
  352. package/dist/YearRangePicker/YearRangePickerHeader.js.map +1 -0
  353. package/dist/YearRangePicker/YearRangePickerHeading.cjs +48 -0
  354. package/dist/YearRangePicker/YearRangePickerHeading.cjs.map +1 -0
  355. package/dist/YearRangePicker/YearRangePickerHeading.js +42 -0
  356. package/dist/YearRangePicker/YearRangePickerHeading.js.map +1 -0
  357. package/dist/YearRangePicker/YearRangePickerNext.cjs +68 -0
  358. package/dist/YearRangePicker/YearRangePickerNext.cjs.map +1 -0
  359. package/dist/YearRangePicker/YearRangePickerNext.js +62 -0
  360. package/dist/YearRangePicker/YearRangePickerNext.js.map +1 -0
  361. package/dist/YearRangePicker/YearRangePickerPrev.cjs +68 -0
  362. package/dist/YearRangePicker/YearRangePickerPrev.cjs.map +1 -0
  363. package/dist/YearRangePicker/YearRangePickerPrev.js +62 -0
  364. package/dist/YearRangePicker/YearRangePickerPrev.js.map +1 -0
  365. package/dist/YearRangePicker/YearRangePickerRoot.cjs +350 -0
  366. package/dist/YearRangePicker/YearRangePickerRoot.cjs.map +1 -0
  367. package/dist/YearRangePicker/YearRangePickerRoot.js +338 -0
  368. package/dist/YearRangePicker/YearRangePickerRoot.js.map +1 -0
  369. package/dist/YearRangePicker/useRangeYearPicker.cjs +128 -0
  370. package/dist/YearRangePicker/useRangeYearPicker.cjs.map +1 -0
  371. package/dist/YearRangePicker/useRangeYearPicker.js +122 -0
  372. package/dist/YearRangePicker/useRangeYearPicker.js.map +1 -0
  373. package/dist/color/channel.cjs +378 -0
  374. package/dist/color/channel.cjs.map +1 -0
  375. package/dist/color/channel.js +349 -0
  376. package/dist/color/channel.js.map +1 -0
  377. package/dist/color/convert.cjs +285 -0
  378. package/dist/color/convert.cjs.map +1 -0
  379. package/dist/color/convert.js +237 -0
  380. package/dist/color/convert.js.map +1 -0
  381. package/dist/color/gradient.cjs +377 -0
  382. package/dist/color/gradient.cjs.map +1 -0
  383. package/dist/color/gradient.js +354 -0
  384. package/dist/color/gradient.js.map +1 -0
  385. package/dist/color/parse.cjs +113 -0
  386. package/dist/color/parse.cjs.map +1 -0
  387. package/dist/color/parse.js +95 -0
  388. package/dist/color/parse.js.map +1 -0
  389. package/dist/color/utils.cjs +112 -0
  390. package/dist/color/utils.cjs.map +1 -0
  391. package/dist/color/utils.js +100 -0
  392. package/dist/color/utils.js.map +1 -0
  393. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs +11 -7
  394. package/dist/composables/useWindowSplitterPanelGroupBehavior.cjs.map +1 -1
  395. package/dist/composables/useWindowSplitterPanelGroupBehavior.js +11 -7
  396. package/dist/composables/useWindowSplitterPanelGroupBehavior.js.map +1 -1
  397. package/dist/constant/components.cjs +87 -1
  398. package/dist/constant/components.cjs.map +1 -1
  399. package/dist/constant/components.js +87 -1
  400. package/dist/constant/components.js.map +1 -1
  401. package/dist/constant.d.cts +12 -1
  402. package/dist/constant.d.cts.map +1 -1
  403. package/dist/constant.d.ts +12 -1
  404. package/dist/constant.d.ts.map +1 -1
  405. package/dist/date/calendar.cjs +41 -0
  406. package/dist/date/calendar.cjs.map +1 -1
  407. package/dist/date/calendar.js +30 -1
  408. package/dist/date/calendar.js.map +1 -1
  409. package/dist/date/comparators.cjs +129 -0
  410. package/dist/date/comparators.cjs.map +1 -1
  411. package/dist/date/comparators.js +76 -1
  412. package/dist/date/comparators.js.map +1 -1
  413. package/dist/date/useDateField.cjs +0 -1
  414. package/dist/date/useDateField.cjs.map +1 -1
  415. package/dist/date/useDateField.js +0 -1
  416. package/dist/date/useDateField.js.map +1 -1
  417. package/dist/date.cjs +11 -0
  418. package/dist/date.d.cts +2 -2
  419. package/dist/date.d.ts +2 -2
  420. package/dist/date.js +3 -3
  421. package/dist/index.cjs +216 -46
  422. package/dist/index.d.cts +3 -8834
  423. package/dist/index.d.ts +3 -8834
  424. package/dist/index.js +116 -47
  425. package/dist/index2.d.cts +58 -2
  426. package/dist/index2.d.cts.map +1 -1
  427. package/dist/index2.d.ts +58 -2
  428. package/dist/index2.d.ts.map +1 -1
  429. package/dist/index3.d.cts +11061 -0
  430. package/dist/index3.d.cts.map +1 -0
  431. package/dist/index3.d.ts +11061 -0
  432. package/dist/index3.d.ts.map +1 -0
  433. package/dist/internal.cjs +81 -0
  434. package/dist/internal.d.cts +22 -0
  435. package/dist/internal.d.cts.map +1 -0
  436. package/dist/internal.d.ts +22 -0
  437. package/dist/internal.d.ts.map +1 -0
  438. package/dist/internal.js +64 -0
  439. package/dist/internal2.cjs +0 -0
  440. package/dist/internal2.js +0 -0
  441. package/dist/namespaced/index.cjs +33 -1
  442. package/dist/namespaced/index.d.cts +32 -4
  443. package/dist/namespaced/index.d.mts +32 -4
  444. package/dist/namespaced/index.mjs +32 -4
  445. package/dist/shared/useArrowNavigation.cjs +4 -2
  446. package/dist/shared/useArrowNavigation.cjs.map +1 -1
  447. package/dist/shared/useArrowNavigation.js +4 -2
  448. package/dist/shared/useArrowNavigation.js.map +1 -1
  449. package/dist/shared/useForwardExpose.cjs +6 -2
  450. package/dist/shared/useForwardExpose.cjs.map +1 -1
  451. package/dist/shared/useForwardExpose.js +7 -3
  452. package/dist/shared/useForwardExpose.js.map +1 -1
  453. package/dist/shared/useId.cjs +7 -4
  454. package/dist/shared/useId.cjs.map +1 -1
  455. package/dist/shared/useId.js +7 -4
  456. package/dist/shared/useId.js.map +1 -1
  457. package/dist/utils/storage.cjs +7 -1
  458. package/dist/utils/storage.cjs.map +1 -1
  459. package/dist/utils/storage.js +7 -1
  460. package/dist/utils/storage.js.map +1 -1
  461. package/dist/utils/units.cjs +101 -0
  462. package/dist/utils/units.cjs.map +1 -0
  463. package/dist/utils/units.js +83 -0
  464. package/dist/utils/units.js.map +1 -0
  465. package/package.json +6 -2
  466. package/src/Autocomplete/AutocompleteInput.vue +112 -0
  467. package/src/Autocomplete/AutocompleteRoot.vue +272 -0
  468. package/src/Autocomplete/index.ts +72 -0
  469. package/src/Calendar/CalendarCellTrigger.vue +2 -1
  470. package/src/Calendar/CalendarNext.vue +8 -2
  471. package/src/Calendar/CalendarPrev.vue +8 -2
  472. package/src/Calendar/CalendarRoot.vue +1 -1
  473. package/src/Checkbox/CheckboxRoot.vue +32 -13
  474. package/src/ColorArea/ColorAreaArea.vue +145 -0
  475. package/src/ColorArea/ColorAreaRoot.vue +255 -0
  476. package/src/ColorArea/ColorAreaThumb.vue +75 -0
  477. package/src/ColorArea/index.ts +14 -0
  478. package/src/ColorArea/utils.ts +24 -0
  479. package/src/ColorField/ColorFieldInput.vue +133 -0
  480. package/src/ColorField/ColorFieldRoot.vue +326 -0
  481. package/src/ColorField/index.ts +10 -0
  482. package/src/ColorSlider/ColorSliderRoot.vue +224 -0
  483. package/src/ColorSlider/ColorSliderThumb.vue +54 -0
  484. package/src/ColorSlider/ColorSliderTrack.vue +36 -0
  485. package/src/ColorSlider/index.ts +14 -0
  486. package/src/ColorSlider/utils.ts +39 -0
  487. package/src/ColorSwatch/ColorSwatch.vue +97 -0
  488. package/src/ColorSwatch/index.ts +4 -0
  489. package/src/ColorSwatchPicker/ColorSwatchPickerItem.vue +60 -0
  490. package/src/ColorSwatchPicker/ColorSwatchPickerItemIndicator.vue +17 -0
  491. package/src/ColorSwatchPicker/ColorSwatchPickerItemSwatch.vue +21 -0
  492. package/src/ColorSwatchPicker/ColorSwatchPickerRoot.vue +50 -0
  493. package/src/ColorSwatchPicker/index.ts +17 -0
  494. package/src/Combobox/ComboboxContentImpl.vue +13 -1
  495. package/src/DateField/DateFieldRoot.vue +1 -1
  496. package/src/DateRangeField/DateRangeFieldRoot.vue +11 -4
  497. package/src/DismissableLayer/utils.ts +1 -2
  498. package/src/DropdownMenu/DropdownMenuFilter.vue +119 -0
  499. package/src/DropdownMenu/index.ts +5 -0
  500. package/src/Menu/MenuContentImpl.vue +68 -2
  501. package/src/Menu/MenuItemImpl.vue +11 -6
  502. package/src/Menu/MenuSubContent.vue +14 -3
  503. package/src/Menu/MenuSubTrigger.vue +13 -1
  504. package/src/MonthPicker/MonthPickerCell.vue +30 -0
  505. package/src/MonthPicker/MonthPickerCellTrigger.vue +214 -0
  506. package/src/MonthPicker/MonthPickerGrid.vue +32 -0
  507. package/src/MonthPicker/MonthPickerGridBody.vue +17 -0
  508. package/src/MonthPicker/MonthPickerGridRow.vue +20 -0
  509. package/src/MonthPicker/MonthPickerHeader.vue +17 -0
  510. package/src/MonthPicker/MonthPickerHeading.vue +35 -0
  511. package/src/MonthPicker/MonthPickerNext.vue +52 -0
  512. package/src/MonthPicker/MonthPickerPrev.vue +52 -0
  513. package/src/MonthPicker/MonthPickerRoot.vue +311 -0
  514. package/src/MonthPicker/index.ts +42 -0
  515. package/src/MonthPicker/useMonthPicker.ts +193 -0
  516. package/src/MonthRangePicker/MonthRangePickerCell.vue +30 -0
  517. package/src/MonthRangePicker/MonthRangePickerCellTrigger.vue +309 -0
  518. package/src/MonthRangePicker/MonthRangePickerGrid.vue +32 -0
  519. package/src/MonthRangePicker/MonthRangePickerGridBody.vue +17 -0
  520. package/src/MonthRangePicker/MonthRangePickerGridRow.vue +20 -0
  521. package/src/MonthRangePicker/MonthRangePickerHeader.vue +17 -0
  522. package/src/MonthRangePicker/MonthRangePickerHeading.vue +35 -0
  523. package/src/MonthRangePicker/MonthRangePickerNext.vue +52 -0
  524. package/src/MonthRangePicker/MonthRangePickerPrev.vue +52 -0
  525. package/src/MonthRangePicker/MonthRangePickerRoot.vue +391 -0
  526. package/src/MonthRangePicker/index.ts +42 -0
  527. package/src/MonthRangePicker/useRangeMonthPicker.ts +165 -0
  528. package/src/NumberField/NumberFieldRoot.vue +2 -1
  529. package/src/Progress/ProgressRoot.vue +3 -1
  530. package/src/RangeCalendar/RangeCalendarNext.vue +10 -4
  531. package/src/RangeCalendar/RangeCalendarPrev.vue +10 -4
  532. package/src/RangeCalendar/RangeCalendarRoot.vue +2 -2
  533. package/src/RangeCalendar/useRangeCalendar.ts +5 -8
  534. package/src/Splitter/SplitterGroup.vue +218 -49
  535. package/src/Splitter/SplitterPanel.vue +11 -6
  536. package/src/Splitter/utils/composables/useWindowSplitterPanelGroupBehavior.ts +16 -6
  537. package/src/Splitter/utils/storage.ts +14 -0
  538. package/src/Splitter/utils/units.ts +161 -0
  539. package/src/Splitter/utils/validation.ts +3 -2
  540. package/src/Switch/SwitchRoot.vue +36 -19
  541. package/src/Switch/SwitchThumb.vue +1 -1
  542. package/src/TimeField/TimeFieldRoot.vue +0 -3
  543. package/src/TimeRangeField/TimeRangeFieldInput.vue +74 -0
  544. package/src/TimeRangeField/TimeRangeFieldRoot.vue +473 -0
  545. package/src/TimeRangeField/index.ts +2 -0
  546. package/src/Toast/ToastAnnounce.vue +4 -1
  547. package/src/Tooltip/TooltipContent.vue +1 -3
  548. package/src/Tooltip/TooltipContentImpl.vue +18 -10
  549. package/src/Tooltip/TooltipProvider.vue +8 -1
  550. package/src/YearPicker/YearPickerCell.vue +30 -0
  551. package/src/YearPicker/YearPickerCellTrigger.vue +218 -0
  552. package/src/YearPicker/YearPickerGrid.vue +32 -0
  553. package/src/YearPicker/YearPickerGridBody.vue +17 -0
  554. package/src/YearPicker/YearPickerGridRow.vue +20 -0
  555. package/src/YearPicker/YearPickerHeader.vue +17 -0
  556. package/src/YearPicker/YearPickerHeading.vue +35 -0
  557. package/src/YearPicker/YearPickerNext.vue +52 -0
  558. package/src/YearPicker/YearPickerPrev.vue +52 -0
  559. package/src/YearPicker/YearPickerRoot.vue +314 -0
  560. package/src/YearPicker/index.ts +42 -0
  561. package/src/YearPicker/useYearPicker.ts +202 -0
  562. package/src/YearRangePicker/YearRangePickerCell.vue +30 -0
  563. package/src/YearRangePicker/YearRangePickerCellTrigger.vue +311 -0
  564. package/src/YearRangePicker/YearRangePickerGrid.vue +32 -0
  565. package/src/YearRangePicker/YearRangePickerGridBody.vue +17 -0
  566. package/src/YearRangePicker/YearRangePickerGridRow.vue +20 -0
  567. package/src/YearRangePicker/YearRangePickerHeader.vue +17 -0
  568. package/src/YearRangePicker/YearRangePickerHeading.vue +35 -0
  569. package/src/YearRangePicker/YearRangePickerNext.vue +52 -0
  570. package/src/YearRangePicker/YearRangePickerPrev.vue +52 -0
  571. package/src/YearRangePicker/YearRangePickerRoot.vue +391 -0
  572. package/src/YearRangePicker/index.ts +42 -0
  573. package/src/YearRangePicker/useRangeYearPicker.ts +165 -0
  574. package/src/date/calendar.ts +29 -0
  575. package/src/date/comparators.ts +97 -0
  576. package/src/index.ts +41 -0
  577. package/src/internal.ts +7 -0
  578. package/src/shared/color/channel.ts +424 -0
  579. package/src/shared/color/convert.ts +293 -0
  580. package/src/shared/color/gradient.ts +347 -0
  581. package/src/shared/color/index.ts +35 -0
  582. package/src/shared/color/parse.ts +140 -0
  583. package/src/shared/color/types.ts +40 -0
  584. package/src/shared/color/utils.ts +143 -0
  585. package/src/shared/date/types.ts +6 -0
  586. package/src/shared/date/useDateField.ts +37 -39
  587. package/src/shared/macro.ts +11 -0
  588. package/src/shared/useArrowNavigation.ts +8 -2
  589. package/src/shared/useForwardExpose.ts +20 -5
  590. package/src/shared/useId.ts +6 -7
  591. package/dist/index.d.cts.map +0 -1
  592. package/dist/index.d.ts.map +0 -1
@@ -0,0 +1,354 @@
1
+ import { colorToString, convertToHsb, convertToHsl, convertToRgb } from "./convert.js";
2
+
3
+ //#region src/shared/color/gradient.ts
4
+ /**
5
+ * Generates a CSS gradient for a color slider track.
6
+ */
7
+ function getSliderGradient(color, channel, colorSpace = color.space) {
8
+ const hsl = convertToHsl(color);
9
+ const hsb = convertToHsb(color);
10
+ switch (channel) {
11
+ case "hue": return getHueGradient();
12
+ case "saturation": return getSaturationGradient(hsl, colorSpace);
13
+ case "lightness": return getLightnessGradient(hsl);
14
+ case "brightness": return getBrightnessGradient(hsb);
15
+ case "red": return getRedGradient(color);
16
+ case "green": return getGreenGradient(color);
17
+ case "blue": return getBlueGradient(color);
18
+ case "alpha": return getAlphaGradient(color);
19
+ default: return "";
20
+ }
21
+ }
22
+ /**
23
+ * Generates a CSS gradient for a color area (2D picker).
24
+ */
25
+ function getAreaGradient(color, xChannel, yChannel, colorSpace = color.space) {
26
+ const hsl = convertToHsl(color);
27
+ const hsb = convertToHsb(color);
28
+ const gradientX = getChannelGradientForArea(color, xChannel, colorSpace, "x");
29
+ const gradientY = getChannelGradientForArea(color, yChannel, colorSpace, "y");
30
+ const bgColor = getAreaBackgroundColor(color, xChannel, yChannel, colorSpace);
31
+ return {
32
+ background: bgColor,
33
+ gradientX,
34
+ gradientY
35
+ };
36
+ }
37
+ function getHueGradient() {
38
+ return "linear-gradient(to right, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000)";
39
+ }
40
+ function getSaturationGradient(hsl, colorSpace) {
41
+ const start = colorToString({
42
+ space: "hsl",
43
+ h: hsl.h,
44
+ s: 0,
45
+ l: colorSpace === "hsl" ? hsl.l : 50,
46
+ alpha: 1
47
+ }, "hsl");
48
+ const end = colorToString({
49
+ space: "hsl",
50
+ h: hsl.h,
51
+ s: 100,
52
+ l: colorSpace === "hsl" ? hsl.l : 50,
53
+ alpha: 1
54
+ }, "hsl");
55
+ return `linear-gradient(to right, ${start}, ${end})`;
56
+ }
57
+ function getLightnessGradient(hsl) {
58
+ const start = colorToString({
59
+ space: "hsl",
60
+ h: hsl.h,
61
+ s: hsl.s,
62
+ l: 0,
63
+ alpha: 1
64
+ }, "hsl");
65
+ const mid = colorToString({
66
+ space: "hsl",
67
+ h: hsl.h,
68
+ s: hsl.s,
69
+ l: 50,
70
+ alpha: 1
71
+ }, "hsl");
72
+ const end = colorToString({
73
+ space: "hsl",
74
+ h: hsl.h,
75
+ s: hsl.s,
76
+ l: 100,
77
+ alpha: 1
78
+ }, "hsl");
79
+ return `linear-gradient(to right, ${start}, ${mid}, ${end})`;
80
+ }
81
+ function getBrightnessGradient(hsb) {
82
+ const start = colorToString({
83
+ space: "hsb",
84
+ h: hsb.h,
85
+ s: hsb.s,
86
+ b: 0,
87
+ alpha: 1
88
+ }, "rgb");
89
+ const end = colorToString({
90
+ space: "hsb",
91
+ h: hsb.h,
92
+ s: hsb.s,
93
+ b: 100,
94
+ alpha: 1
95
+ }, "rgb");
96
+ return `linear-gradient(to right, ${start}, ${end})`;
97
+ }
98
+ function getRedGradient(color) {
99
+ const { g, b, alpha } = color.space === "rgb" ? color : {
100
+ g: 128,
101
+ b: 128,
102
+ alpha: 1
103
+ };
104
+ const start = colorToString({
105
+ space: "rgb",
106
+ r: 0,
107
+ g,
108
+ b,
109
+ alpha: 1
110
+ }, "rgb");
111
+ const end = colorToString({
112
+ space: "rgb",
113
+ r: 255,
114
+ g,
115
+ b,
116
+ alpha: 1
117
+ }, "rgb");
118
+ return `linear-gradient(to right, ${start}, ${end})`;
119
+ }
120
+ function getGreenGradient(color) {
121
+ const { r, b, alpha } = color.space === "rgb" ? color : {
122
+ r: 128,
123
+ b: 128,
124
+ alpha: 1
125
+ };
126
+ const start = colorToString({
127
+ space: "rgb",
128
+ r,
129
+ g: 0,
130
+ b,
131
+ alpha: 1
132
+ }, "rgb");
133
+ const end = colorToString({
134
+ space: "rgb",
135
+ r,
136
+ g: 255,
137
+ b,
138
+ alpha: 1
139
+ }, "rgb");
140
+ return `linear-gradient(to right, ${start}, ${end})`;
141
+ }
142
+ function getBlueGradient(color) {
143
+ const { r, g, alpha } = color.space === "rgb" ? color : {
144
+ r: 128,
145
+ g: 128,
146
+ alpha: 1
147
+ };
148
+ const start = colorToString({
149
+ space: "rgb",
150
+ r,
151
+ g,
152
+ b: 0,
153
+ alpha: 1
154
+ }, "rgb");
155
+ const end = colorToString({
156
+ space: "rgb",
157
+ r,
158
+ g,
159
+ b: 255,
160
+ alpha: 1
161
+ }, "rgb");
162
+ return `linear-gradient(to right, ${start}, ${end})`;
163
+ }
164
+ const CHECKERBOARD_LAYERS = [
165
+ "linear-gradient(45deg, #ccc 25%, transparent 25%)",
166
+ "linear-gradient(-45deg, #ccc 25%, transparent 25%)",
167
+ "linear-gradient(45deg, transparent 75%, #ccc 75%)",
168
+ "linear-gradient(-45deg, transparent 75%, #ccc 75%)"
169
+ ].join(", ");
170
+ function getAlphaGradient(color) {
171
+ const { r, g, b } = color.space === "rgb" ? color : convertToRgb(color);
172
+ const solidRgb = `rgb(${Math.round(r)}, ${Math.round(g)}, ${Math.round(b)})`;
173
+ return `linear-gradient(to right, transparent, ${solidRgb}), ${CHECKERBOARD_LAYERS}`;
174
+ }
175
+ function getChannelGradientForArea(color, channel, colorSpace, axis) {
176
+ const direction = axis === "x" ? "to right" : "to top";
177
+ const hsl = convertToHsl(color);
178
+ const hsb = convertToHsb(color);
179
+ switch (channel) {
180
+ case "saturation": {
181
+ if (colorSpace === "hsb") return `linear-gradient(${direction}, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0))`;
182
+ const fullColor = colorToString({
183
+ space: "hsl",
184
+ h: hsl.h,
185
+ s: 100,
186
+ l: 50,
187
+ alpha: 1
188
+ }, "rgb");
189
+ return `linear-gradient(${direction}, #ffffff, ${fullColor})`;
190
+ }
191
+ case "lightness": {
192
+ const mid = colorToString({
193
+ space: "hsl",
194
+ h: hsl.h,
195
+ s: hsl.s,
196
+ l: 50,
197
+ alpha: 1
198
+ }, "rgb");
199
+ return `linear-gradient(${direction}, #000000, ${mid}, #ffffff)`;
200
+ }
201
+ case "brightness": return `linear-gradient(${direction}, rgba(0, 0, 0, 0), rgba(0, 0, 0, 1))`;
202
+ default: return "";
203
+ }
204
+ }
205
+ function getAreaBackgroundColor(color, xChannel, yChannel, colorSpace) {
206
+ const hsl = convertToHsl(color);
207
+ const hsb = convertToHsb(color);
208
+ if (colorSpace === "hsl" && xChannel === "saturation" && yChannel === "lightness") return colorToString({
209
+ space: "hsl",
210
+ h: hsl.h,
211
+ s: 100,
212
+ l: 50,
213
+ alpha: 1
214
+ }, "rgb");
215
+ if (colorSpace === "hsb" && xChannel === "saturation" && yChannel === "brightness") return colorToString({
216
+ space: "hsb",
217
+ h: hsb.h,
218
+ s: 100,
219
+ b: 100,
220
+ alpha: 1
221
+ }, "rgb");
222
+ return "#ffffff";
223
+ }
224
+ /**
225
+ * Gets the CSS background style for a color area.
226
+ */
227
+ function getAreaBackgroundStyle(color, xChannel, yChannel, colorSpace = color.space) {
228
+ const hsl = convertToHsl(color);
229
+ const hsb = convertToHsb(color);
230
+ if (xChannel === "hue") {
231
+ const hueGradient = "linear-gradient(to right, #ff0000, #ffff00, #00ff00, #00ffff, #0000ff, #ff00ff, #ff0000)";
232
+ if (yChannel === "saturation") {
233
+ const desatColor = colorToString({
234
+ space: "hsl",
235
+ h: hsl.h,
236
+ s: 0,
237
+ l: hsl.l,
238
+ alpha: 1
239
+ }, "rgb");
240
+ return { backgroundImage: `linear-gradient(to bottom, transparent, ${desatColor}), ${hueGradient}` };
241
+ }
242
+ if (yChannel === "lightness") return { backgroundImage: `linear-gradient(to top, #000000, transparent, #ffffff), ${hueGradient}` };
243
+ if (yChannel === "brightness") return { backgroundImage: `linear-gradient(to top, #000000, transparent), ${hueGradient}` };
244
+ }
245
+ if (xChannel === "saturation" && (yChannel === "lightness" || yChannel === "brightness")) {
246
+ if (colorSpace === "hsl") {
247
+ const hueColor = colorToString({
248
+ space: "hsl",
249
+ h: hsl.h,
250
+ s: 100,
251
+ l: 50,
252
+ alpha: 1
253
+ }, "rgb");
254
+ const grayColor = colorToString({
255
+ space: "hsl",
256
+ h: hsl.h,
257
+ s: 0,
258
+ l: 50,
259
+ alpha: 1
260
+ }, "rgb");
261
+ const satGradient = `linear-gradient(to right, ${grayColor}, transparent)`;
262
+ const lightGradient = `linear-gradient(to top, #000000, transparent, #ffffff)`;
263
+ return {
264
+ backgroundColor: hueColor,
265
+ backgroundImage: `${lightGradient}, ${satGradient}`
266
+ };
267
+ }
268
+ if (colorSpace === "hsb") {
269
+ const hueColor = colorToString({
270
+ space: "hsb",
271
+ h: hsb.h,
272
+ s: 100,
273
+ b: 100,
274
+ alpha: 1
275
+ }, "rgb");
276
+ const satGradient = `linear-gradient(to right, #ffffff, transparent)`;
277
+ const brightGradient = `linear-gradient(to top, #000000, transparent)`;
278
+ return {
279
+ backgroundColor: hueColor,
280
+ backgroundImage: `${brightGradient}, ${satGradient}`
281
+ };
282
+ }
283
+ }
284
+ if (colorSpace === "rgb" && (xChannel === "red" || xChannel === "green" || xChannel === "blue") && (yChannel === "red" || yChannel === "green" || yChannel === "blue")) {
285
+ const rgb = convertToRgb(color);
286
+ const allChannels = [
287
+ "red",
288
+ "green",
289
+ "blue"
290
+ ];
291
+ const varyingChannels = [xChannel, yChannel];
292
+ const constantChannel = allChannels.find((c) => !varyingChannels.includes(c));
293
+ const constantValue = rgb[constantChannel === "red" ? "r" : constantChannel === "green" ? "g" : "b"];
294
+ const xColorStart = {
295
+ space: "rgb",
296
+ r: 0,
297
+ g: 0,
298
+ b: 0,
299
+ alpha: 1
300
+ };
301
+ const xColorEnd = {
302
+ space: "rgb",
303
+ r: xChannel === "red" ? 255 : 0,
304
+ g: xChannel === "green" ? 255 : 0,
305
+ b: xChannel === "blue" ? 255 : 0,
306
+ alpha: 1
307
+ };
308
+ const xGradient = `linear-gradient(to right, ${colorToString(xColorStart, "rgb")}, ${colorToString(xColorEnd, "rgb")})`;
309
+ const yColorEnd = {
310
+ space: "rgb",
311
+ r: yChannel === "red" ? 255 : 0,
312
+ g: yChannel === "green" ? 255 : 0,
313
+ b: yChannel === "blue" ? 255 : 0,
314
+ alpha: 1
315
+ };
316
+ const yGradient = `linear-gradient(to top, ${colorToString(xColorStart, "rgb")}, ${colorToString(yColorEnd, "rgb")})`;
317
+ const bgColor = {
318
+ space: "rgb",
319
+ r: constantChannel === "red" ? constantValue : 0,
320
+ g: constantChannel === "green" ? constantValue : 0,
321
+ b: constantChannel === "blue" ? constantValue : 0,
322
+ alpha: 1
323
+ };
324
+ return {
325
+ backgroundColor: colorToString(bgColor, "rgb"),
326
+ backgroundImage: `${yGradient}, ${xGradient}`,
327
+ backgroundBlendMode: "screen"
328
+ };
329
+ }
330
+ const { background, gradientX, gradientY } = getAreaGradient(color, xChannel, yChannel, colorSpace);
331
+ const gradients = [];
332
+ if (gradientY) gradients.push(gradientY);
333
+ if (gradientX) gradients.push(gradientX);
334
+ return {
335
+ backgroundColor: background,
336
+ backgroundImage: gradients.join(", ")
337
+ };
338
+ }
339
+ /**
340
+ * Gets the CSS background for a slider track.
341
+ */
342
+ function getSliderBackgroundStyle(color, channel, colorSpace = color.space) {
343
+ const gradient = getSliderGradient(color, channel, colorSpace);
344
+ if (channel === "alpha") return {
345
+ background: gradient,
346
+ backgroundSize: "100% 100%, 8px 8px, 8px 8px, 8px 8px, 8px 8px",
347
+ backgroundPosition: "0 0, 0 0, 0 4px, 4px -4px, -4px 0px"
348
+ };
349
+ return { background: gradient };
350
+ }
351
+
352
+ //#endregion
353
+ export { getAreaBackgroundStyle, getAreaGradient, getSliderBackgroundStyle, getSliderGradient };
354
+ //# sourceMappingURL=gradient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gradient.js","names":["color: Color","channel: ColorChannel","colorSpace: ColorSpace","xChannel: ColorChannel","yChannel: ColorChannel","hsl: { h: number, s: number, l: number, alpha: number }","hsb: { h: number, s: number, b: number, alpha: number }","axis: 'x' | 'y'","xColorStart: RGBColor","xColorEnd: RGBColor","yColorEnd: RGBColor","bgColor: RGBColor","gradients: string[]"],"sources":["../../src/shared/color/gradient.ts"],"sourcesContent":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+
2
+ //#region src/shared/color/parse.ts
3
+ /**
4
+ * Parses a color string into a Color object.
5
+ * Supports hex (#rrggbb, #rgb), rgb(), hsl(), and hsb()/hsv() formats.
6
+ */
7
+ function parseColor(value) {
8
+ const trimmed = value.trim().toLowerCase();
9
+ if (trimmed.startsWith("#")) return parseHex(trimmed);
10
+ if (trimmed.startsWith("rgb")) return parseRgb(trimmed);
11
+ if (trimmed.startsWith("hsl")) return parseHsl(trimmed);
12
+ if (trimmed.startsWith("hsb") || trimmed.startsWith("hsv")) return parseHsb(trimmed);
13
+ throw new Error(`Unable to parse color: ${value}`);
14
+ }
15
+ function parseHex(hex) {
16
+ let normalized = hex.slice(1);
17
+ if (!/^[0-9A-F]{3}$/i.test(normalized) && !/^[0-9A-F]{6}$/i.test(normalized) && !/^[0-9A-F]{8}$/i.test(normalized)) throw new Error(`Invalid hex color: ${hex}. Expected format: #RGB, #RRGGBB, or #RRGGBBAA`);
18
+ if (normalized.length === 3) normalized = normalized.split("").map((c) => c + c).join("");
19
+ if (normalized.length === 6) {
20
+ const bigint = parseInt(normalized, 16);
21
+ return {
22
+ space: "rgb",
23
+ r: bigint >> 16 & 255,
24
+ g: bigint >> 8 & 255,
25
+ b: bigint & 255,
26
+ alpha: 1
27
+ };
28
+ }
29
+ if (normalized.length === 8) {
30
+ const bigint = parseInt(normalized, 16);
31
+ return {
32
+ space: "rgb",
33
+ r: bigint >> 24 & 255,
34
+ g: bigint >> 16 & 255,
35
+ b: bigint >> 8 & 255,
36
+ alpha: (bigint & 255) / 255
37
+ };
38
+ }
39
+ throw new Error(`Invalid hex color: ${hex}`);
40
+ }
41
+ function parseRgb(rgb) {
42
+ const match = rgb.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)/);
43
+ if (!match) throw new Error(`Invalid RGB color: ${rgb}`);
44
+ return {
45
+ space: "rgb",
46
+ r: parseFloat(match[1]),
47
+ g: parseFloat(match[2]),
48
+ b: parseFloat(match[3]),
49
+ alpha: match[4] ? parseFloat(match[4]) : 1
50
+ };
51
+ }
52
+ function parseHsl(hsl) {
53
+ const match = hsl.match(/hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%\s*(?:,\s*([\d.]+)\s*)?\)/);
54
+ if (!match) throw new Error(`Invalid HSL color: ${hsl}`);
55
+ return {
56
+ space: "hsl",
57
+ h: parseFloat(match[1]),
58
+ s: parseFloat(match[2]),
59
+ l: parseFloat(match[3]),
60
+ alpha: match[4] ? parseFloat(match[4]) : 1
61
+ };
62
+ }
63
+ function parseHsb(hsb) {
64
+ const match = hsb.match(/hsb[av]?\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?\s*(?:,\s*([\d.]+)\s*)?\)/);
65
+ if (!match) throw new Error(`Invalid HSB color: ${hsb}`);
66
+ return {
67
+ space: "hsb",
68
+ h: parseFloat(match[1]),
69
+ s: parseFloat(match[2]),
70
+ b: parseFloat(match[3]),
71
+ alpha: match[4] ? parseFloat(match[4]) : 1
72
+ };
73
+ }
74
+ /**
75
+ * Normalizes a value to a Color object.
76
+ * If already a Color, returns it. If a string, parses it.
77
+ */
78
+ function normalizeColor(value) {
79
+ if (typeof value === "string") return parseColor(value);
80
+ return value;
81
+ }
82
+ /**
83
+ * Checks if a string is a valid color.
84
+ */
85
+ function isValidColor(value) {
86
+ try {
87
+ parseColor(value);
88
+ return true;
89
+ } catch {
90
+ return false;
91
+ }
92
+ }
93
+
94
+ //#endregion
95
+ Object.defineProperty(exports, 'isValidColor', {
96
+ enumerable: true,
97
+ get: function () {
98
+ return isValidColor;
99
+ }
100
+ });
101
+ Object.defineProperty(exports, 'normalizeColor', {
102
+ enumerable: true,
103
+ get: function () {
104
+ return normalizeColor;
105
+ }
106
+ });
107
+ Object.defineProperty(exports, 'parseColor', {
108
+ enumerable: true,
109
+ get: function () {
110
+ return parseColor;
111
+ }
112
+ });
113
+ //# sourceMappingURL=parse.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.cjs","names":["value: string","hex: string","rgb: string","hsl: string","hsb: string","value: string | Color"],"sources":["../../src/shared/color/parse.ts"],"sourcesContent":[],"mappings":";;;;;;AAMA,SAAgB,WAAWA,OAAsB;CAC/C,MAAM,UAAU,MAAM,MAAM,CAAC,aAAa;AAG1C,KAAI,QAAQ,WAAW,IAAI,CACzB,QAAO,SAAS,QAAQ;AAI1B,KAAI,QAAQ,WAAW,MAAM,CAC3B,QAAO,SAAS,QAAQ;AAI1B,KAAI,QAAQ,WAAW,MAAM,CAC3B,QAAO,SAAS,QAAQ;AAI1B,KAAI,QAAQ,WAAW,MAAM,IAAI,QAAQ,WAAW,MAAM,CACxD,QAAO,SAAS,QAAQ;AAG1B,OAAM,IAAI,MAAM,CAAC,uBAAuB,EAAE,OAAO;AAClD;AAED,SAAS,SAASC,KAAuB;CACvC,IAAI,aAAa,IAAI,MAAM,EAAE;AAG7B,MAAK,iBAAiB,KAAK,WAAW,KAAK,iBAAiB,KAAK,WAAW,KAAK,iBAAiB,KAAK,WAAW,CAChH,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,IAAI,8CAA8C,CAAC;AAI3F,KAAI,WAAW,WAAW,EACxB,cAAa,WAAW,MAAM,GAAG,CAAC,IAAI,OAAK,IAAI,EAAE,CAAC,KAAK,GAAG;AAI5D,KAAI,WAAW,WAAW,GAAG;EAC3B,MAAM,SAAS,SAAS,YAAY,GAAG;AACvC,SAAO;GACL,OAAO;GACP,GAAI,UAAU,KAAM;GACpB,GAAI,UAAU,IAAK;GACnB,GAAG,SAAS;GACZ,OAAO;EACR;CACF;AAGD,KAAI,WAAW,WAAW,GAAG;EAC3B,MAAM,SAAS,SAAS,YAAY,GAAG;AACvC,SAAO;GACL,OAAO;GACP,GAAI,UAAU,KAAM;GACpB,GAAI,UAAU,KAAM;GACpB,GAAI,UAAU,IAAK;GACnB,QAAQ,SAAS,OAAO;EACzB;CACF;AAED,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;AAC5C;AAED,SAAS,SAASC,KAAuB;CACvC,MAAM,QAAQ,IAAI,MAAM,4EAA4E;AACpG,MAAK,MACH,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;AAG7C,QAAO;EACL,OAAO;EACP,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,OAAO,MAAM,KAAK,WAAW,MAAM,GAAG,GAAG;CAC1C;AACF;AAED,SAAS,SAASC,KAAuB;CACvC,MAAM,QAAQ,IAAI,MAAM,8EAA8E;AACtG,MAAK,MACH,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;AAG7C,QAAO;EACL,OAAO;EACP,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,OAAO,MAAM,KAAK,WAAW,MAAM,GAAG,GAAG;CAC1C;AACF;AAED,SAAS,SAASC,KAAuB;CACvC,MAAM,QAAQ,IAAI,MAAM,mFAAmF;AAC3G,MAAK,MACH,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;AAG7C,QAAO;EACL,OAAO;EACP,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,OAAO,MAAM,KAAK,WAAW,MAAM,GAAG,GAAG;CAC1C;AACF;;;;;AAMD,SAAgB,eAAeC,OAA8B;AAC3D,YAAW,UAAU,SACnB,QAAO,WAAW,MAAM;AAE1B,QAAO;AACR;;;;AAKD,SAAgB,aAAaL,OAAwB;AACnD,KAAI;AACF,aAAW,MAAM;AACjB,SAAO;CACR,QACK;AACJ,SAAO;CACR;AACF"}
@@ -0,0 +1,95 @@
1
+ //#region src/shared/color/parse.ts
2
+ /**
3
+ * Parses a color string into a Color object.
4
+ * Supports hex (#rrggbb, #rgb), rgb(), hsl(), and hsb()/hsv() formats.
5
+ */
6
+ function parseColor(value) {
7
+ const trimmed = value.trim().toLowerCase();
8
+ if (trimmed.startsWith("#")) return parseHex(trimmed);
9
+ if (trimmed.startsWith("rgb")) return parseRgb(trimmed);
10
+ if (trimmed.startsWith("hsl")) return parseHsl(trimmed);
11
+ if (trimmed.startsWith("hsb") || trimmed.startsWith("hsv")) return parseHsb(trimmed);
12
+ throw new Error(`Unable to parse color: ${value}`);
13
+ }
14
+ function parseHex(hex) {
15
+ let normalized = hex.slice(1);
16
+ if (!/^[0-9A-F]{3}$/i.test(normalized) && !/^[0-9A-F]{6}$/i.test(normalized) && !/^[0-9A-F]{8}$/i.test(normalized)) throw new Error(`Invalid hex color: ${hex}. Expected format: #RGB, #RRGGBB, or #RRGGBBAA`);
17
+ if (normalized.length === 3) normalized = normalized.split("").map((c) => c + c).join("");
18
+ if (normalized.length === 6) {
19
+ const bigint = parseInt(normalized, 16);
20
+ return {
21
+ space: "rgb",
22
+ r: bigint >> 16 & 255,
23
+ g: bigint >> 8 & 255,
24
+ b: bigint & 255,
25
+ alpha: 1
26
+ };
27
+ }
28
+ if (normalized.length === 8) {
29
+ const bigint = parseInt(normalized, 16);
30
+ return {
31
+ space: "rgb",
32
+ r: bigint >> 24 & 255,
33
+ g: bigint >> 16 & 255,
34
+ b: bigint >> 8 & 255,
35
+ alpha: (bigint & 255) / 255
36
+ };
37
+ }
38
+ throw new Error(`Invalid hex color: ${hex}`);
39
+ }
40
+ function parseRgb(rgb) {
41
+ const match = rgb.match(/rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*(?:,\s*([\d.]+)\s*)?\)/);
42
+ if (!match) throw new Error(`Invalid RGB color: ${rgb}`);
43
+ return {
44
+ space: "rgb",
45
+ r: parseFloat(match[1]),
46
+ g: parseFloat(match[2]),
47
+ b: parseFloat(match[3]),
48
+ alpha: match[4] ? parseFloat(match[4]) : 1
49
+ };
50
+ }
51
+ function parseHsl(hsl) {
52
+ const match = hsl.match(/hsla?\(\s*([\d.]+)\s*,\s*([\d.]+)%\s*,\s*([\d.]+)%\s*(?:,\s*([\d.]+)\s*)?\)/);
53
+ if (!match) throw new Error(`Invalid HSL color: ${hsl}`);
54
+ return {
55
+ space: "hsl",
56
+ h: parseFloat(match[1]),
57
+ s: parseFloat(match[2]),
58
+ l: parseFloat(match[3]),
59
+ alpha: match[4] ? parseFloat(match[4]) : 1
60
+ };
61
+ }
62
+ function parseHsb(hsb) {
63
+ const match = hsb.match(/hsb[av]?\(\s*([\d.]+)\s*,\s*([\d.]+)%?\s*,\s*([\d.]+)%?\s*(?:,\s*([\d.]+)\s*)?\)/);
64
+ if (!match) throw new Error(`Invalid HSB color: ${hsb}`);
65
+ return {
66
+ space: "hsb",
67
+ h: parseFloat(match[1]),
68
+ s: parseFloat(match[2]),
69
+ b: parseFloat(match[3]),
70
+ alpha: match[4] ? parseFloat(match[4]) : 1
71
+ };
72
+ }
73
+ /**
74
+ * Normalizes a value to a Color object.
75
+ * If already a Color, returns it. If a string, parses it.
76
+ */
77
+ function normalizeColor(value) {
78
+ if (typeof value === "string") return parseColor(value);
79
+ return value;
80
+ }
81
+ /**
82
+ * Checks if a string is a valid color.
83
+ */
84
+ function isValidColor(value) {
85
+ try {
86
+ parseColor(value);
87
+ return true;
88
+ } catch {
89
+ return false;
90
+ }
91
+ }
92
+
93
+ //#endregion
94
+ export { isValidColor, normalizeColor, parseColor };
95
+ //# sourceMappingURL=parse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse.js","names":["value: string","hex: string","rgb: string","hsl: string","hsb: string","value: string | Color"],"sources":["../../src/shared/color/parse.ts"],"sourcesContent":[],"mappings":";;;;;AAMA,SAAgB,WAAWA,OAAsB;CAC/C,MAAM,UAAU,MAAM,MAAM,CAAC,aAAa;AAG1C,KAAI,QAAQ,WAAW,IAAI,CACzB,QAAO,SAAS,QAAQ;AAI1B,KAAI,QAAQ,WAAW,MAAM,CAC3B,QAAO,SAAS,QAAQ;AAI1B,KAAI,QAAQ,WAAW,MAAM,CAC3B,QAAO,SAAS,QAAQ;AAI1B,KAAI,QAAQ,WAAW,MAAM,IAAI,QAAQ,WAAW,MAAM,CACxD,QAAO,SAAS,QAAQ;AAG1B,OAAM,IAAI,MAAM,CAAC,uBAAuB,EAAE,OAAO;AAClD;AAED,SAAS,SAASC,KAAuB;CACvC,IAAI,aAAa,IAAI,MAAM,EAAE;AAG7B,MAAK,iBAAiB,KAAK,WAAW,KAAK,iBAAiB,KAAK,WAAW,KAAK,iBAAiB,KAAK,WAAW,CAChH,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,IAAI,8CAA8C,CAAC;AAI3F,KAAI,WAAW,WAAW,EACxB,cAAa,WAAW,MAAM,GAAG,CAAC,IAAI,OAAK,IAAI,EAAE,CAAC,KAAK,GAAG;AAI5D,KAAI,WAAW,WAAW,GAAG;EAC3B,MAAM,SAAS,SAAS,YAAY,GAAG;AACvC,SAAO;GACL,OAAO;GACP,GAAI,UAAU,KAAM;GACpB,GAAI,UAAU,IAAK;GACnB,GAAG,SAAS;GACZ,OAAO;EACR;CACF;AAGD,KAAI,WAAW,WAAW,GAAG;EAC3B,MAAM,SAAS,SAAS,YAAY,GAAG;AACvC,SAAO;GACL,OAAO;GACP,GAAI,UAAU,KAAM;GACpB,GAAI,UAAU,KAAM;GACpB,GAAI,UAAU,IAAK;GACnB,QAAQ,SAAS,OAAO;EACzB;CACF;AAED,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;AAC5C;AAED,SAAS,SAASC,KAAuB;CACvC,MAAM,QAAQ,IAAI,MAAM,4EAA4E;AACpG,MAAK,MACH,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;AAG7C,QAAO;EACL,OAAO;EACP,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,OAAO,MAAM,KAAK,WAAW,MAAM,GAAG,GAAG;CAC1C;AACF;AAED,SAAS,SAASC,KAAuB;CACvC,MAAM,QAAQ,IAAI,MAAM,8EAA8E;AACtG,MAAK,MACH,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;AAG7C,QAAO;EACL,OAAO;EACP,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,OAAO,MAAM,KAAK,WAAW,MAAM,GAAG,GAAG;CAC1C;AACF;AAED,SAAS,SAASC,KAAuB;CACvC,MAAM,QAAQ,IAAI,MAAM,mFAAmF;AAC3G,MAAK,MACH,OAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE,KAAK;AAG7C,QAAO;EACL,OAAO;EACP,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,GAAG,WAAW,MAAM,GAAG;EACvB,OAAO,MAAM,KAAK,WAAW,MAAM,GAAG,GAAG;CAC1C;AACF;;;;;AAMD,SAAgB,eAAeC,OAA8B;AAC3D,YAAW,UAAU,SACnB,QAAO,WAAW,MAAM;AAE1B,QAAO;AACR;;;;AAKD,SAAgB,aAAaL,OAAwB;AACnD,KAAI;AACF,aAAW,MAAM;AACjB,SAAO;CACR,QACK;AACJ,SAAO;CACR;AACF"}