@cube-dev/ui-kit 0.0.0-canary-e76eb3e → 0.0.0-canary-9fab1b3

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 (595) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  27. package/dist/components/actions/Link/Link.js +1 -1
  28. package/dist/components/actions/Menu/Menu.js +1 -1
  29. package/dist/components/actions/Menu/MenuItem.js +1 -1
  30. package/dist/components/actions/Menu/MenuSection.js +1 -1
  31. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  32. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  34. package/dist/components/actions/Menu/context.js +1 -1
  35. package/dist/components/actions/Menu/styled.js +1 -1
  36. package/dist/components/actions/index.js +1 -1
  37. package/dist/components/actions/use-action.js +1 -1
  38. package/dist/components/actions/use-anchored-menu.js +1 -1
  39. package/dist/components/actions/use-context-menu.js +44 -42
  40. package/dist/components/actions/use-context-menu.js.map +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +1 -1
  48. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  49. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  50. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  51. package/dist/components/content/Divider.js +1 -1
  52. package/dist/components/content/Footer.js +1 -1
  53. package/dist/components/content/Header.js +1 -1
  54. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  55. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  56. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  57. package/dist/components/content/Item/Item.js +1 -1
  58. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  59. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  60. package/dist/components/content/Layout/GridLayout.js +1 -1
  61. package/dist/components/content/Layout/Layout.js +1 -1
  62. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  63. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  64. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  65. package/dist/components/content/Layout/LayoutContent.js +1 -1
  66. package/dist/components/content/Layout/LayoutContext.js +1 -1
  67. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  68. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  69. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  70. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutPane.js +1 -1
  72. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  74. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  75. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  76. package/dist/components/content/Layout/index.js +1 -1
  77. package/dist/components/content/Layout/utils.js +1 -1
  78. package/dist/components/content/Paragraph.js +1 -1
  79. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  80. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  81. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  82. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  83. package/dist/components/content/Result/Result.js +1 -1
  84. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  85. package/dist/components/content/Tag/Tag.js +2 -2
  86. package/dist/components/content/Tag/Tag.js.map +1 -1
  87. package/dist/components/content/Text.d.ts +14 -14
  88. package/dist/components/content/Text.js +1 -1
  89. package/dist/components/content/TextItem/TextItem.js +1 -1
  90. package/dist/components/content/Title.js +1 -1
  91. package/dist/components/content/Tree/Tree.js +1 -1
  92. package/dist/components/content/Tree/TreeNode.js +1 -1
  93. package/dist/components/content/Tree/styled.js +1 -1
  94. package/dist/components/content/Tree/tree-index.js +1 -1
  95. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  96. package/dist/components/content/Tree/use-load-data.js +1 -1
  97. package/dist/components/content/highlightText.js +1 -1
  98. package/dist/components/content/use-auto-tooltip.js +1 -1
  99. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  100. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  101. package/dist/components/fields/Checkbox/context.js +1 -1
  102. package/dist/components/fields/ColorInput/ColorInput.d.ts +67 -0
  103. package/dist/components/fields/ColorInput/ColorInput.js +230 -0
  104. package/dist/components/fields/ColorInput/ColorInput.js.map +1 -0
  105. package/dist/components/fields/ColorInput/index.d.ts +2 -0
  106. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +34 -37
  107. package/dist/components/fields/ColorPicker/ColorPicker.js +121 -184
  108. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  109. package/dist/components/fields/ColorPicker/index.d.ts +1 -3
  110. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +50 -0
  111. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +253 -0
  112. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -0
  113. package/dist/components/fields/ColorSwatchGroup/index.d.ts +2 -0
  114. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  115. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  116. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  117. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  118. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  119. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  120. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  121. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  122. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  123. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  124. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  125. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  126. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  127. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  128. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  129. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  130. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  131. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  132. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  133. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  134. package/dist/components/fields/DatePicker/period.js +1 -1
  135. package/dist/components/fields/DatePicker/props.js +1 -1
  136. package/dist/components/fields/DatePicker/utils.js +1 -1
  137. package/dist/components/fields/FileInput/FileInput.js +1 -1
  138. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  139. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  140. package/dist/components/fields/Input/Input.js +2 -2
  141. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  142. package/dist/components/fields/ListBox/ListBox.js +1 -1
  143. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  144. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  145. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  146. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  147. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  148. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  149. package/dist/components/fields/Picker/Picker.js +1 -1
  150. package/dist/components/fields/RadioGroup/Radio.d.ts +2 -2
  151. package/dist/components/fields/RadioGroup/Radio.js +4 -4
  152. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  153. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  154. package/dist/components/fields/RadioGroup/context.js +1 -1
  155. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  156. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  157. package/dist/components/fields/Select/Select.js +1 -1
  158. package/dist/components/fields/Slider/Gradation.js +1 -1
  159. package/dist/components/fields/Slider/HueSlider.js +1 -1
  160. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  161. package/dist/components/fields/Slider/Slider.js +1 -1
  162. package/dist/components/fields/Slider/SliderBase.js +1 -1
  163. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  164. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  165. package/dist/components/fields/Slider/elements.js +1 -1
  166. package/dist/components/fields/Slider/index.js +1 -1
  167. package/dist/components/fields/Switch/Switch.js +1 -1
  168. package/dist/components/fields/TextArea/TextArea.js +1 -1
  169. package/dist/components/fields/TextInput/TextInput.js +1 -1
  170. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  171. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  172. package/dist/components/fields/{ColorPicker/ColorPickerPanel.js → color/ColorPanel.js} +14 -11
  173. package/dist/components/fields/color/ColorPanel.js.map +1 -0
  174. package/dist/components/fields/color/ColorSwatch.d.ts +22 -0
  175. package/dist/components/fields/color/ColorSwatch.js +58 -0
  176. package/dist/components/fields/color/ColorSwatch.js.map +1 -0
  177. package/dist/components/fields/{ColorPicker → color}/channels.d.ts +1 -1
  178. package/dist/components/fields/{ColorPicker → color}/channels.js +2 -2
  179. package/dist/components/fields/color/channels.js.map +1 -0
  180. package/dist/components/fields/color/color.d.ts +21 -0
  181. package/dist/components/fields/{ColorPicker → color}/color.js +2 -2
  182. package/dist/components/fields/color/color.js.map +1 -0
  183. package/dist/components/fields/color/context.js +20 -0
  184. package/dist/components/fields/color/context.js.map +1 -0
  185. package/dist/components/fields/color/index.d.ts +4 -0
  186. package/dist/components/fields/index.d.ts +9 -3
  187. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  188. package/dist/components/form/Form/Field.js +1 -1
  189. package/dist/components/form/Form/Form.js +1 -1
  190. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  191. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  192. package/dist/components/form/Form/SubmitError.js +1 -1
  193. package/dist/components/form/Form/index.js +1 -1
  194. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  195. package/dist/components/form/Form/use-field/use-field.js +1 -1
  196. package/dist/components/form/Form/use-form.js +1 -1
  197. package/dist/components/form/Form/validation.js +1 -1
  198. package/dist/components/form/Label.js +1 -1
  199. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  200. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  201. package/dist/components/form/validation/use-validation-props.js +1 -1
  202. package/dist/components/form/wrapper.js +1 -1
  203. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  204. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  205. package/dist/components/layout/Board/Board.js +1 -1
  206. package/dist/components/layout/Board/BoardProvider.js +1 -1
  207. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  208. package/dist/components/layout/Board/Widget.js +1 -1
  209. package/dist/components/layout/Board/WidgetHost.js +1 -1
  210. package/dist/components/layout/Board/board-context.js +1 -1
  211. package/dist/components/layout/Board/board-store.js +1 -1
  212. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  213. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  214. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  215. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  216. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  217. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  218. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  219. package/dist/components/layout/Board/index.js +1 -1
  220. package/dist/components/layout/Board/responsive-utils.js +1 -1
  221. package/dist/components/layout/Board/use-board-layout.js +1 -1
  222. package/dist/components/layout/Board/use-board-registry.js +1 -1
  223. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  224. package/dist/components/layout/Board/use-board-selection.js +1 -1
  225. package/dist/components/layout/Flex.js +1 -1
  226. package/dist/components/layout/Flow.js +1 -1
  227. package/dist/components/layout/Grid.js +1 -1
  228. package/dist/components/layout/Panel.js +1 -1
  229. package/dist/components/layout/Prefix.js +1 -1
  230. package/dist/components/layout/ResizablePanel.js +1 -1
  231. package/dist/components/layout/Space.js +1 -1
  232. package/dist/components/layout/Suffix.js +1 -1
  233. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  234. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  235. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  236. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  237. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  238. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  239. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  240. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  241. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  242. package/dist/components/navigation/Tabs/styled.js +1 -1
  243. package/dist/components/navigation/Tabs/types.js +1 -1
  244. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  245. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  246. package/dist/components/navigation/index.d.ts +1 -5
  247. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  248. package/dist/components/other/Calendar/Calendar.js +1 -1
  249. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  250. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  251. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  252. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  253. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  254. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  255. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  256. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  257. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  258. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  259. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  260. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  261. package/dist/components/overlays/Dialog/context.js +1 -1
  262. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  263. package/dist/components/overlays/Modal/Modal.js +1 -1
  264. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  265. package/dist/components/overlays/Modal/Overlay.js +1 -1
  266. package/dist/components/overlays/Modal/Popover.js +1 -1
  267. package/dist/components/overlays/Modal/Tray.js +1 -1
  268. package/dist/components/overlays/Modal/Underlay.js +1 -1
  269. package/dist/components/overlays/Notifications/Notification.js +1 -1
  270. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  271. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  272. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  273. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  274. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  275. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  276. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  277. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  278. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  279. package/dist/components/overlays/Notifications/index.js +1 -1
  280. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  281. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  282. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  283. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  284. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  285. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  286. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  287. package/dist/components/overlays/Toast/index.js +1 -1
  288. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  289. package/dist/components/overlays/Toast/useToast.js +1 -1
  290. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  291. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  292. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  293. package/dist/components/overlays/Tooltip/context.js +1 -1
  294. package/dist/components/portal/Portal.js +1 -1
  295. package/dist/components/portal/PortalProvider.js +1 -1
  296. package/dist/components/portal/usePortal.js +1 -1
  297. package/dist/components/shared/DraggableCollection.js +8 -24
  298. package/dist/components/shared/DraggableCollection.js.map +1 -1
  299. package/dist/components/shared/InvalidIcon.js +1 -1
  300. package/dist/components/shared/ValidIcon.js +1 -1
  301. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  302. package/dist/components/status/Spin/Cube.js +1 -1
  303. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  304. package/dist/components/status/Spin/Spin.js +1 -1
  305. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  306. package/dist/data/item-themes.js +1 -1
  307. package/dist/data/themes.js +1 -1
  308. package/dist/eslint-plugin/defaults.generated.js +1 -199
  309. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  310. package/dist/eslint-plugin/index.js +1 -1
  311. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  312. package/dist/i18n/I18nProvider.js +1 -1
  313. package/dist/i18n/createFormatter.js +1 -1
  314. package/dist/i18n/index.js +1 -1
  315. package/dist/i18n/instance.js +1 -1
  316. package/dist/i18n/locales/de-DE/uikit.js +1 -35
  317. package/dist/i18n/locales/en-US/uikit.js +1 -35
  318. package/dist/i18n/locales/en-US/uikit.json.d.ts +1 -40
  319. package/dist/i18n/locales/es-ES/uikit.js +1 -35
  320. package/dist/i18n/locales/es-MX/uikit.js +1 -35
  321. package/dist/i18n/locales/fr-FR/uikit.js +1 -35
  322. package/dist/i18n/locales/it-IT/uikit.js +1 -35
  323. package/dist/i18n/locales/ja-JP/uikit.js +1 -35
  324. package/dist/i18n/locales/nb-NO/uikit.js +1 -35
  325. package/dist/i18n/locales/pt-BR/uikit.js +1 -35
  326. package/dist/i18n/locales/pt-PT/uikit.js +1 -35
  327. package/dist/i18n/locales/sv-SE/uikit.js +1 -35
  328. package/dist/i18n/locales/vi-VN/uikit.js +1 -35
  329. package/dist/i18n/locales.js +1 -1
  330. package/dist/i18n/useFormatter.js +1 -1
  331. package/dist/i18n/useI18n.js +1 -1
  332. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  333. package/dist/icons/AdjustmentsIcon.js +1 -1
  334. package/dist/icons/AiIcon.js +1 -1
  335. package/dist/icons/AreaChartIcon.js +1 -1
  336. package/dist/icons/BackwardIcon.js +1 -1
  337. package/dist/icons/BarChartIcon.js +1 -1
  338. package/dist/icons/BellFilledIcon.js +1 -1
  339. package/dist/icons/BellIcon.js +1 -1
  340. package/dist/icons/BooleanIcon.js +1 -1
  341. package/dist/icons/CalendarEditIcon.js +1 -1
  342. package/dist/icons/CalendarIcon.js +1 -1
  343. package/dist/icons/CaretDownIcon.js +1 -1
  344. package/dist/icons/CaretUpIcon.js +1 -1
  345. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  346. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  347. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  348. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  349. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  350. package/dist/icons/ChartBarLineIcon.js +1 -1
  351. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  352. package/dist/icons/ChartBarStackedIcon.js +1 -1
  353. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  354. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  355. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  356. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  357. package/dist/icons/ChartBubbleIcon.js +1 -1
  358. package/dist/icons/ChartDonut2Icon.js +1 -1
  359. package/dist/icons/ChartFunnelIcon.js +1 -1
  360. package/dist/icons/ChartHeatmapIcon.js +1 -1
  361. package/dist/icons/ChartKPIIcon.js +1 -1
  362. package/dist/icons/ChartPie2Icon.js +1 -1
  363. package/dist/icons/ChartScatterIcon.js +1 -1
  364. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  365. package/dist/icons/CheckCircleIcon.js +1 -1
  366. package/dist/icons/CheckIcon.js +1 -1
  367. package/dist/icons/CircleFilledIcon.js +1 -1
  368. package/dist/icons/ClearIcon.js +1 -1
  369. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  370. package/dist/icons/CloseCircleIcon.js +1 -1
  371. package/dist/icons/CloseIcon.js +1 -1
  372. package/dist/icons/CodeIcon.js +1 -1
  373. package/dist/icons/ColumnTotalIcon.js +1 -1
  374. package/dist/icons/CopyIcon.js +1 -1
  375. package/dist/icons/CountIcon.js +1 -1
  376. package/dist/icons/CubeIcon.js +1 -1
  377. package/dist/icons/CubePauseIcon.js +1 -1
  378. package/dist/icons/CubePlayIcon.js +1 -1
  379. package/dist/icons/CurrencyDollarIcon.js +1 -1
  380. package/dist/icons/DangerIcon.js +1 -1
  381. package/dist/icons/DashboardIcon.js +1 -1
  382. package/dist/icons/DatabaseIcon.js +1 -1
  383. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  384. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  385. package/dist/icons/DirectionIcon.js +1 -1
  386. package/dist/icons/DonutIcon.js +1 -1
  387. package/dist/icons/DownIcon.js +1 -1
  388. package/dist/icons/EditIcon.js +1 -1
  389. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  390. package/dist/icons/ExclamationCircleIcon.js +1 -1
  391. package/dist/icons/ExclamationIcon.js +1 -1
  392. package/dist/icons/EyeIcon.js +1 -1
  393. package/dist/icons/EyeInvisibleIcon.js +1 -1
  394. package/dist/icons/FilterIcon.js +1 -1
  395. package/dist/icons/FolderFilledIcon.js +1 -1
  396. package/dist/icons/FolderIcon.js +1 -1
  397. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  398. package/dist/icons/FolderOpenIcon.js +1 -1
  399. package/dist/icons/ForwardIcon.js +1 -1
  400. package/dist/icons/GripVerticalIcon.js +1 -1
  401. package/dist/icons/HierarchyIcon.js +1 -1
  402. package/dist/icons/HierarchyOpenIcon.js +1 -1
  403. package/dist/icons/Icon.js +1 -1
  404. package/dist/icons/InfoCircleIcon.js +1 -1
  405. package/dist/icons/InfoIcon.js +1 -1
  406. package/dist/icons/KeyIcon.js +1 -1
  407. package/dist/icons/LeftIcon.js +1 -1
  408. package/dist/icons/LineChartIcon.js +1 -1
  409. package/dist/icons/LoadingIcon.js +1 -1
  410. package/dist/icons/LockFilledIcon.js +1 -1
  411. package/dist/icons/LockIcon.js +1 -1
  412. package/dist/icons/MoreIcon.js +1 -1
  413. package/dist/icons/NotAllowedIcon.js +1 -1
  414. package/dist/icons/Number123Icon.js +1 -1
  415. package/dist/icons/NumberIcon.js +1 -1
  416. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  417. package/dist/icons/PauseCircleIcon.js +1 -1
  418. package/dist/icons/PauseIcon.js +1 -1
  419. package/dist/icons/PercentageIcon.js +1 -1
  420. package/dist/icons/PieChartIcon.js +1 -1
  421. package/dist/icons/PipetteIcon.js +1 -1
  422. package/dist/icons/PlayCircleIcon.js +1 -1
  423. package/dist/icons/PlayIcon.js +1 -1
  424. package/dist/icons/PlusIcon.js +1 -1
  425. package/dist/icons/ProgressBarIcon.js +1 -1
  426. package/dist/icons/ReloadIcon.js +1 -1
  427. package/dist/icons/ReportIcon.js +1 -1
  428. package/dist/icons/ReturnIcon.js +1 -1
  429. package/dist/icons/RightIcon.js +1 -1
  430. package/dist/icons/RowTotalsIcon.js +1 -1
  431. package/dist/icons/SchemeIcon.js +1 -1
  432. package/dist/icons/SearchIcon.js +1 -1
  433. package/dist/icons/SemanticQueryIcon.js +1 -1
  434. package/dist/icons/SettingsIcon.js +1 -1
  435. package/dist/icons/ShieldFilledIcon.js +1 -1
  436. package/dist/icons/ShieldIcon.js +1 -1
  437. package/dist/icons/SlashIcon.js +1 -1
  438. package/dist/icons/SparklesIcon.js +1 -1
  439. package/dist/icons/SqlIcon.js +1 -1
  440. package/dist/icons/StatsIcon.js +1 -1
  441. package/dist/icons/StopIcon.js +1 -1
  442. package/dist/icons/StringIcon.js +1 -1
  443. package/dist/icons/SubtotalsIcon.js +1 -1
  444. package/dist/icons/SwitchIcon.js +1 -1
  445. package/dist/icons/TableIcon.js +1 -1
  446. package/dist/icons/ThumbsDownIcon.js +1 -1
  447. package/dist/icons/ThumbsUpIcon.js +1 -1
  448. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  449. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  450. package/dist/icons/ThunderboltIcon.js +1 -1
  451. package/dist/icons/TimeIcon.js +1 -1
  452. package/dist/icons/TrashIcon.js +1 -1
  453. package/dist/icons/UnlockIcon.js +1 -1
  454. package/dist/icons/UpIcon.js +1 -1
  455. package/dist/icons/UserGroupIcon.js +1 -1
  456. package/dist/icons/UserIcon.js +1 -1
  457. package/dist/icons/UserLockIcon.js +1 -1
  458. package/dist/icons/ViewIcon.js +1 -1
  459. package/dist/icons/WarningFilledIcon.js +1 -1
  460. package/dist/icons/WarningIcon.js +1 -1
  461. package/dist/icons/wrap-icon.js +1 -1
  462. package/dist/index.d.ts +15 -22
  463. package/dist/index.js +9 -10
  464. package/dist/index.js.map +1 -1
  465. package/dist/provider.js +1 -1
  466. package/dist/providers/TrackingProvider.js +1 -1
  467. package/dist/providers/navigationAdapter.default.js +1 -1
  468. package/dist/tokens/base.js +1 -1
  469. package/dist/tokens/colors.js +1 -1
  470. package/dist/tokens/index.js +1 -1
  471. package/dist/tokens/layout.js +1 -1
  472. package/dist/tokens/lazy-styles.js +1 -1
  473. package/dist/tokens/palette-config.js +1 -1
  474. package/dist/tokens/palette.js +1 -1
  475. package/dist/tokens/shadows.js +1 -1
  476. package/dist/tokens/sizes.js +1 -1
  477. package/dist/tokens/spacing.js +1 -1
  478. package/dist/tokens/typography.d.ts +1 -1
  479. package/dist/tokens/typography.js +2 -11
  480. package/dist/tokens/typography.js.map +1 -1
  481. package/dist/utils/ResizeSensor.js +1 -1
  482. package/dist/utils/is-dev-env.js +1 -1
  483. package/dist/utils/modules.js +1 -1
  484. package/dist/utils/promise.js +1 -1
  485. package/dist/utils/raf.js +1 -1
  486. package/dist/utils/random.js +1 -1
  487. package/dist/utils/range.js +1 -1
  488. package/dist/utils/react/RenderCache.js +1 -1
  489. package/dist/utils/react/Slots.js +1 -1
  490. package/dist/utils/react/chain.js +1 -1
  491. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  492. package/dist/utils/react/index.js +1 -1
  493. package/dist/utils/react/interactions.js +1 -1
  494. package/dist/utils/react/isTextOnly.js +1 -1
  495. package/dist/utils/react/mapProps.js +1 -1
  496. package/dist/utils/react/mergeProps.js +1 -1
  497. package/dist/utils/react/nullableValue.js +1 -1
  498. package/dist/utils/react/resolveIcon.js +1 -1
  499. package/dist/utils/react/sharedStore.js +1 -1
  500. package/dist/utils/react/useCombinedRefs.js +1 -1
  501. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  502. package/dist/utils/react/useEventBus.js +1 -1
  503. package/dist/utils/react/useId.js +1 -1
  504. package/dist/utils/react/useIsDarwin.js +1 -1
  505. package/dist/utils/react/useKeySymbols.js +1 -1
  506. package/dist/utils/react/useLayoutEffect.js +1 -1
  507. package/dist/utils/react/useLocalStorage.js +1 -1
  508. package/dist/utils/react/useMergeStyles.js +1 -1
  509. package/dist/utils/react/usePopoverSync.js +1 -1
  510. package/dist/utils/react/useQaProps.js +1 -1
  511. package/dist/utils/react/useViewportSize.js +1 -1
  512. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  513. package/dist/utils/selection.js +1 -1
  514. package/dist/utils/styles.js +1 -1
  515. package/dist/utils/tree.js +1 -1
  516. package/dist/utils/warnings.js +1 -1
  517. package/dist/version.js +2 -2
  518. package/docs/components/fields/ColorInput.md +272 -0
  519. package/docs/components/fields/ColorPicker.md +80 -146
  520. package/docs/components/fields/ColorSwatchGroup.md +206 -0
  521. package/package.json +3 -8
  522. package/dist/components/data/DataTable/DataTable.d.ts +0 -13
  523. package/dist/components/data/DataTable/DataTable.js +0 -242
  524. package/dist/components/data/DataTable/DataTable.js.map +0 -1
  525. package/dist/components/data/DataTable/index.d.ts +0 -3
  526. package/dist/components/data/DataTable/types.d.ts +0 -140
  527. package/dist/components/data/ItemTable/ItemTable.d.ts +0 -19
  528. package/dist/components/data/ItemTable/ItemTable.js +0 -347
  529. package/dist/components/data/ItemTable/ItemTable.js.map +0 -1
  530. package/dist/components/data/ItemTable/ItemTableBulkBar.d.ts +0 -23
  531. package/dist/components/data/ItemTable/ItemTableBulkBar.js +0 -131
  532. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +0 -1
  533. package/dist/components/data/ItemTable/ItemTableDragPreview.js +0 -46
  534. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +0 -1
  535. package/dist/components/data/ItemTable/ItemTableFooter.js +0 -79
  536. package/dist/components/data/ItemTable/ItemTableFooter.js.map +0 -1
  537. package/dist/components/data/ItemTable/ItemTableToolbar.d.ts +0 -34
  538. package/dist/components/data/ItemTable/ItemTableToolbar.js +0 -91
  539. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +0 -1
  540. package/dist/components/data/ItemTable/index.d.ts +0 -4
  541. package/dist/components/data/ItemTable/types.d.ts +0 -322
  542. package/dist/components/data/TableBase/ColumnResizer.js +0 -70
  543. package/dist/components/data/TableBase/ColumnResizer.js.map +0 -1
  544. package/dist/components/data/TableBase/RowCollection.js +0 -99
  545. package/dist/components/data/TableBase/RowCollection.js.map +0 -1
  546. package/dist/components/data/TableBase/TableRow.js +0 -89
  547. package/dist/components/data/TableBase/TableRow.js.map +0 -1
  548. package/dist/components/data/TableBase/TableView.d.ts +0 -22
  549. package/dist/components/data/TableBase/TableView.js +0 -857
  550. package/dist/components/data/TableBase/TableView.js.map +0 -1
  551. package/dist/components/data/TableBase/index.d.ts +0 -5
  552. package/dist/components/data/TableBase/row-menu.js +0 -40
  553. package/dist/components/data/TableBase/row-menu.js.map +0 -1
  554. package/dist/components/data/TableBase/styled.d.ts +0 -5
  555. package/dist/components/data/TableBase/styled.js +0 -504
  556. package/dist/components/data/TableBase/styled.js.map +0 -1
  557. package/dist/components/data/TableBase/types.d.ts +0 -161
  558. package/dist/components/data/TableBase/use-cell-selection.d.ts +0 -3
  559. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  560. package/dist/components/data/TableBase/use-cell-selection.js.map +0 -1
  561. package/dist/components/data/TableBase/use-container-width.js +0 -35
  562. package/dist/components/data/TableBase/use-container-width.js.map +0 -1
  563. package/dist/components/data/TableBase/use-scrollability.js +0 -49
  564. package/dist/components/data/TableBase/use-scrollability.js.map +0 -1
  565. package/dist/components/data/TableBase/use-table-columns.d.ts +0 -2
  566. package/dist/components/data/TableBase/use-table-columns.js +0 -166
  567. package/dist/components/data/TableBase/use-table-columns.js.map +0 -1
  568. package/dist/components/data/TableBase/use-table-search.js +0 -50
  569. package/dist/components/data/TableBase/use-table-search.js.map +0 -1
  570. package/dist/components/data/TableBase/use-table-selection.d.ts +0 -4
  571. package/dist/components/data/TableBase/use-table-selection.js +0 -233
  572. package/dist/components/data/TableBase/use-table-selection.js.map +0 -1
  573. package/dist/components/data/TableBase/use-table-sort.js +0 -91
  574. package/dist/components/data/TableBase/use-table-sort.js.map +0 -1
  575. package/dist/components/data/TableBase/use-table-sorts.js +0 -97
  576. package/dist/components/data/TableBase/use-table-sorts.js.map +0 -1
  577. package/dist/components/data/TableBase/use-table-storage.d.ts +0 -8
  578. package/dist/components/data/TableBase/use-table-storage.js +0 -58
  579. package/dist/components/data/TableBase/use-table-storage.js.map +0 -1
  580. package/dist/components/data/index.d.ts +0 -10
  581. package/dist/components/fields/ColorPicker/ColorPickerPanel.js.map +0 -1
  582. package/dist/components/fields/ColorPicker/channels.js.map +0 -1
  583. package/dist/components/fields/ColorPicker/color.d.ts +0 -15
  584. package/dist/components/fields/ColorPicker/color.js.map +0 -1
  585. package/dist/components/navigation/Pagination/Pagination.d.ts +0 -9
  586. package/dist/components/navigation/Pagination/Pagination.js +0 -258
  587. package/dist/components/navigation/Pagination/Pagination.js.map +0 -1
  588. package/dist/components/navigation/Pagination/index.d.ts +0 -4
  589. package/dist/components/navigation/Pagination/types.d.ts +0 -81
  590. package/dist/components/navigation/Pagination/use-pagination.d.ts +0 -52
  591. package/dist/components/navigation/Pagination/use-pagination.js +0 -83
  592. package/dist/components/navigation/Pagination/use-pagination.js.map +0 -1
  593. package/docs/components/data/DataTable.md +0 -286
  594. package/docs/components/data/ItemTable.md +0 -970
  595. package/docs/components/navigation/Pagination.md +0 -245
@@ -0,0 +1,272 @@
1
+ # ColorInput
2
+
3
+ An input for a single color. It reads and writes color **text** — hex, `rgb()`,
4
+ `hsl()`, `okhsl()`, `okhst()` and `oklch()` — shows the current color as a
5
+ swatch, and opens a popover where the color can be dialed in on three
6
+ perceptual axes.
7
+
8
+ Every conversion goes through [Glaze](https://github.com/tenphi/glaze), so the
9
+ canonical value the picker holds is OKHSL: bounded on every channel, and always
10
+ inside the sRGB gamut. That is what makes an out-of-gamut state impossible and
11
+ lets the same value be re-serialized into any of the supported notations without
12
+ drift.
13
+
14
+ ## When to Use
15
+
16
+ - Theme and branding forms — a seed color, an accent, a chart series color
17
+ - Anywhere a color has to be typed *or* explored, rather than chosen from a
18
+ fixed palette
19
+ - When the stored format matters (a design token file wants `oklch()`, a legacy
20
+ API wants hex) and the input has to guarantee it
21
+
22
+ Reach for a `RadioGroup` or `Picker` of swatches instead when the choice is
23
+ limited to a handful of approved colors.
24
+
25
+ ## Component
26
+
27
+ ---
28
+
29
+ ### Properties
30
+
31
+ - **`value`** `string | null` — The selected color (controlled)
32
+ - **`defaultValue`** `string | null` — The selected color (uncontrolled)
33
+ - **`onChange`** `(value: string | null) => void` — Fired with the color string, or `null` when the field is cleared
34
+ - **`format`** `'hex' | 'rgb' | 'hsl' | 'okhsl' | 'okhst' | 'oklch'` (default: `hex`) — Notation the value is written in, and the one `forced` mode displays
35
+ - **`formatMode`** `'forced' | 'derive' | 'free'` (default: `forced`) — How strictly the input text is tied to `format`
36
+ - **`defaultSpace`** `'hst' | 'lch' | 'rgb'` (default: `hst`) — Color concept the popover opens with
37
+ - **`placeholder`** `string` (default: `Pick a color`) — Text shown while the field is empty
38
+ - **`size`** `'small' | 'medium' | 'large' | (string & {})` (default: `medium`) — Input size
39
+ - **`isOpen`** `boolean` — Whether the popover is open (controlled)
40
+ - **`defaultOpen`** `boolean` (default: `false`) — Whether the popover is open initially
41
+ - **`onOpenChange`** `(isOpen: boolean) => void` — Fired when the popover opens or closes
42
+ - **`shouldFlip`** `boolean` (default: `true`) — Whether the popover may flip to the other side of the input
43
+ - **`onFocus`** `(event: FocusEvent) => void` — Fired when the text input receives focus
44
+ - **`onBlur`** `(event: FocusEvent) => void` — Fired when the text input loses focus
45
+
46
+ Named CSS colors (`red`, `rebeccapurple`) are **not** accepted — they are not a
47
+ color space, and Glaze does not resolve them either. Alpha is parsed but
48
+ dropped: the value is always opaque.
49
+
50
+ Focusing the field selects the whole value, so a pasted color replaces it
51
+ outright. The string is the unit of editing here: a single channel is tuned with
52
+ the sliders rather than by hand-editing one number inside `oklch(…)`. Clicking a
53
+ field that already has focus positions the caret as usual, so the text stays
54
+ editable by hand.
55
+
56
+ ### Base Properties
57
+
58
+ Supports [Base properties](../../BaseProperties.md)
59
+
60
+ ### Field Properties
61
+
62
+ Supports all [Field properties](../../FieldProperties.md)
63
+
64
+ ### Styling Properties
65
+
66
+ #### styles
67
+
68
+ Customizes the input wrapper — the element that owns the border, fill and size.
69
+
70
+ **Sub-elements:**
71
+
72
+ - `Prefix` — the container holding the color swatch
73
+ - `Suffix` — the container holding the validation state, then the popover trigger
74
+ - `InputIcon` — the swatch slot
75
+ - `State` — the validation / loading indicator
76
+
77
+ #### inputStyles
78
+
79
+ Customizes the `<input>` element itself.
80
+
81
+ #### triggerStyles
82
+
83
+ Customizes the popover trigger button.
84
+
85
+ #### swatchStyles
86
+
87
+ Customizes the color swatch shown inside the input.
88
+
89
+ ### Style Properties
90
+
91
+ These properties allow direct style application without using the `styles` prop:
92
+
93
+ - **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
94
+ - **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
95
+ - **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
96
+ - **Block:** `border`, `radius`, `shadow`, `outline`, `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
97
+ - **Color:** `color`, `fill`, `fade`, `image`
98
+
99
+ ### Modifiers
100
+
101
+ The `mods` property accepts the following modifiers you can override:
102
+
103
+ | Modifier | Type | Description |
104
+ | ---------- | --------- | ------------------------------------------------- |
105
+ | `focused` | `boolean` | The text input has focus |
106
+ | `hovered` | `boolean` | The pointer is over the input |
107
+ | `disabled` | `boolean` | The picker is disabled |
108
+ | `valid` | `boolean` | The field is in the valid state |
109
+ | `invalid` | `boolean` | The field is in the invalid state |
110
+ | `prefix` | `boolean` | A prefix (the swatch) is rendered |
111
+ | `suffix` | `boolean` | A suffix (the trigger) is rendered |
112
+
113
+ The swatch carries its own `empty` modifier while there is no color to show.
114
+
115
+ ## Format modes
116
+
117
+ The three modes differ in how much freedom the *text* gets. The value is always
118
+ a real color in every one of them.
119
+
120
+ | Mode | Text | Value |
121
+ | -------- | ----------------------------------- | ---------------------------------------------------- |
122
+ | `forced` | Rewritten in `format` on blur/Enter | Always written in `format` |
123
+ | `derive` | Left exactly as typed | Normalized in the notation the text is written in |
124
+ | `free` | Left exactly as typed | The text itself, verbatim |
125
+
126
+ In every mode an entry that is not a color is rejected: the previous valid color
127
+ stays the value while it is being typed, and the text snaps back to it on blur.
128
+ Emptying the field is not an error — it commits `null`.
129
+
130
+ ```jsx
131
+ // A design-token form that must store OKLCH
132
+ <ColorInput label="Accent" format="oklch" onChange={setAccent} />
133
+
134
+ // A CSS editor: keep whatever the author wrote, but guarantee it parses
135
+ <ColorInput label="Color" formatMode="free" onChange={setCss} />
136
+ ```
137
+
138
+ ## Color spaces
139
+
140
+ The popover edits one canonical color through three sets of axes:
141
+
142
+ | Space | Axes | Good for |
143
+ | ----- | ----------------------------- | ----------------------------------------------------- |
144
+ | `hst` | Hue, Saturation, Tone (OKHST) | Building ramps — equal tone steps read as equal steps |
145
+ | `lch` | Lightness, Chroma, Hue (OKLCH)| Matching a value from a design-token file |
146
+ | `rgb` | Red, Green, Blue | Matching a value from a legacy palette or a screenshot|
147
+
148
+ Each of these opens on its own space; the switcher inside the popover moves
149
+ between them at any time.
150
+
151
+ `H` means the same angle in HST and LCH, so the hue strip is identical in both.
152
+ The chroma slider is bounded by the sRGB gamut at the current lightness and hue,
153
+ which is why its range changes as `L` moves.
154
+
155
+ ## Examples
156
+
157
+ ### Basic usage
158
+
159
+ ```jsx
160
+ <ColorInput label="Brand color" defaultValue="#7a4dbf" />
161
+ ```
162
+
163
+ ### Controlled
164
+
165
+ ```jsx
166
+ const [color, setColor] = useState('#7a4dbf');
167
+
168
+ <ColorInput label="Brand color" value={color} onChange={setColor} />;
169
+ ```
170
+
171
+ ### Inside a form
172
+
173
+ ```jsx
174
+ <Form onSubmit={onSubmit}>
175
+ <ColorInput
176
+ name="accent"
177
+ label="Accent color"
178
+ format="oklch"
179
+ rules={[{ required: true, message: 'Pick an accent color' }]}
180
+ />
181
+ </Form>
182
+ ```
183
+
184
+ ### Opening on a specific space
185
+
186
+ ```jsx
187
+ <ColorInput label="Series color" defaultSpace="rgb" defaultValue="#26fcb2" />
188
+ ```
189
+
190
+ ### Using the value as a style
191
+
192
+ Because the emitted value is a plain color string, it can go straight into a
193
+ tasty style — including the `okhsl()` and `okhst()` notations, which tasty
194
+ parses natively.
195
+
196
+ ```jsx
197
+ const [color, setColor] = useState('okhst(264 80% 60%)');
198
+
199
+ <>
200
+ <ColorInput label="Fill" format="okhst" value={color} onChange={setColor} />
201
+ <Block fill={color} height="10x" radius="1r" />
202
+ </>;
203
+ ```
204
+
205
+ ## Accessibility
206
+
207
+ ### Keyboard Navigation
208
+
209
+ - `Tab` — moves focus to the text input, then to the popover trigger
210
+ - `Enter` — commits and normalizes the typed color without leaving the field
211
+ - `Space` / `Enter` on the trigger — opens the popover
212
+ - `Escape` — closes the popover
213
+ - `Left` / `Right`, `Home` / `End` on a channel slider — moves that channel
214
+ - `Left` / `Right` on the space switcher — moves between HST, LCH and RGB
215
+
216
+ ### Screen Reader Support
217
+
218
+ - The text input announces as a textbox with the field's label
219
+ - The trigger announces as "Open the color picker"
220
+ - The popover announces as a dialog named "Color picker"
221
+ - Each channel slider sits in a group named after its axis (`Hue`,
222
+ `Saturation`, `Tone`, `Lightness`, `Chroma`, `Red`, `Green`, `Blue`)
223
+ - The swatch is decorative and is not announced — the text carries the value
224
+
225
+ ### ARIA Properties
226
+
227
+ - `aria-label` — names the field when there is no visible label
228
+ - `aria-describedby` — wired to the field description by the form system
229
+
230
+ ## Best Practices
231
+
232
+ 1. **Do**: name the field, so the text input is announced meaningfully
233
+
234
+ ```jsx
235
+ <ColorInput label="Brand color" />
236
+ ```
237
+
238
+ 2. **Don't**: rely on the swatch alone to convey the value
239
+
240
+ ```jsx
241
+ <ColorInput aria-label="" />
242
+ ```
243
+
244
+ 3. **Do**: pick the `format` your backend stores, and leave `formatMode` at
245
+ `forced` so the two can never disagree.
246
+
247
+ 4. **Don't**: use `free` mode when the value is later parsed by something
248
+ stricter than a browser — the text is passed through as written.
249
+
250
+ ## Integration with Forms
251
+
252
+ This component supports all
253
+ [Field properties](../../FieldProperties.md) when used
254
+ within a Form. The field value is the color string, and clearing the input
255
+ stores `null`, which makes `required` rules behave as expected.
256
+
257
+ ## Suggested Improvements
258
+
259
+ - An eyedropper that samples a pixel from the page, where
260
+ [`EyeDropper`](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper) is
261
+ available
262
+ - Optional alpha support, which the canonical value currently drops
263
+ - A row of recent or preset swatches inside the popover
264
+ - Editable numeric inputs next to each channel slider, for exact entry without
265
+ going through the text field
266
+
267
+ ## Related Components
268
+
269
+ - [ColorPicker](./ColorPicker.md) — the same popover behind a swatch button, when the color is never typed
270
+ - [HueSlider](./HueSlider.md) — just the hue axis, when only a hue is needed
271
+ - [Slider](./Slider.md) — the primitive each channel is built from
272
+ - [TextInput](./TextInput.md) — the input chrome this component reuses
@@ -1,26 +1,21 @@
1
1
  # ColorPicker
2
2
 
3
- An input for a single color. It reads and writes color **text** — hex, `rgb()`,
4
- `hsl()`, `okhsl()`, `okhst()` and `oklch()` shows the current color as a
5
- swatch, and opens a popover where the color can be dialed in on three
6
- perceptual axes.
3
+ A swatch button that opens the color popover. It is the same popover
4
+ [ColorInput](./ColorInput.md) usesthree perceptual axes backed
5
+ by [Glaze](https://github.com/tenphi/glaze) without the text field in front of
6
+ it.
7
7
 
8
- Every conversion goes through [Glaze](https://github.com/tenphi/glaze), so the
9
- canonical value the picker holds is OKHSL: bounded on every channel, and always
10
- inside the sRGB gamut. That is what makes an out-of-gamut state impossible and
11
- lets the same value be re-serialized into any of the supported notations without
12
- drift.
8
+ Reach for it when a color is **chosen but never typed**. Reach for `ColorInput`
9
+ when someone needs to paste `#7a4dbf` from a brand guide.
13
10
 
14
11
  ## When to Use
15
12
 
16
- - Theme and branding forms a seed color, an accent, a chart series color
17
- - Anywhere a color has to be typed *or* explored, rather than chosen from a
18
- fixed palette
19
- - When the stored format matters (a design token file wants `oklch()`, a legacy
20
- API wants hex) and the input has to guarantee it
13
+ - A toolbar or inspector where space is tight
14
+ - A chart legend, a tag color, a cell in a dense table
15
+ - Anywhere the exact notation is an implementation detail the user never sees
21
16
 
22
- Reach for a `RadioGroup` or `Picker` of swatches instead when the choice is
23
- limited to a handful of approved colors.
17
+ Use [ColorInput](./ColorInput.md) instead when the color has to be
18
+ readable and pasteable as text.
24
19
 
25
20
  ## Component
26
21
 
@@ -30,28 +25,26 @@ limited to a handful of approved colors.
30
25
 
31
26
  - **`value`** `string | null` — The selected color (controlled)
32
27
  - **`defaultValue`** `string | null` — The selected color (uncontrolled)
33
- - **`onChange`** `(value: string | null) => void` — Fired with the color string, or `null` when the field is cleared
34
- - **`format`** `'hex' | 'rgb' | 'hsl' | 'okhsl' | 'okhst' | 'oklch'` (default: `hex`) — Notation the value is written in, and the one `forced` mode displays
35
- - **`formatMode`** `'forced' | 'derive' | 'free'` (default: `forced`) — How strictly the input text is tied to `format`
28
+ - **`onChange`** `(value: string | null) => void` — Fired with the color string
29
+ - **`format`** `'hex' | 'rgb' | 'hsl' | 'okhsl' | 'okhst' | 'oklch'` (default: `hex`) — Notation the value is written in, and the one shown on the trigger
36
30
  - **`defaultSpace`** `'hst' | 'lch' | 'rgb'` (default: `hst`) — Color concept the popover opens with
37
- - **`placeholder`** `string` (default: `Pick a color`) — Text shown while the field is empty
38
- - **`size`** `'small' | 'medium' | 'large' | (string & {})` (default: `medium`) — Input size
31
+ - **`children`** `ReactNode` Replaces the color shown on the trigger. Pass `null` for a swatch on its own
32
+ - **`placeholder`** `ReactNode` (default: `Pick a color`) — Shown on the trigger while there is no color
33
+ - **`type`** `CubeItemProps['type']` (default: `outline`) — Visual type of the trigger
34
+ - **`theme`** `CubeItemProps['theme']` (default: `default`) — Theme of the trigger
35
+ - **`size`** `CubeItemProps['size']` — Size of the trigger
36
+ - **`triggerTooltip`** `CubeItemProps['tooltip']` — Tooltip for the trigger, separate from the field tooltip
37
+ - **`swatches`** `Array<string | { color: string; label?: string }>` — Colors to offer under the editor, as a [ColorSwatchGroup](./ColorSwatchGroup.md)
38
+ - **`swatchColumns`** `number` — How many swatches per row. Defaults to a single row
39
39
  - **`isOpen`** `boolean` — Whether the popover is open (controlled)
40
40
  - **`defaultOpen`** `boolean` (default: `false`) — Whether the popover is open initially
41
41
  - **`onOpenChange`** `(isOpen: boolean) => void` — Fired when the popover opens or closes
42
- - **`shouldFlip`** `boolean` (default: `true`) — Whether the popover may flip to the other side of the input
43
- - **`onFocus`** `(event: FocusEvent) => void` — Fired when the text input receives focus
44
- - **`onBlur`** `(event: FocusEvent) => void` — Fired when the text input loses focus
42
+ - **`shouldFlip`** `boolean` (default: `true`) — Whether the popover may flip to the other side of the trigger
45
43
 
46
- Named CSS colors (`red`, `rebeccapurple`) are **not** accepted they are not a
47
- color space, and Glaze does not resolve them either. Alpha is parsed but
48
- dropped: the value is always opaque.
49
-
50
- Focusing the field selects the whole value, so a pasted color replaces it
51
- outright. The string is the unit of editing here: a single channel is tuned with
52
- the sliders rather than by hand-editing one number inside `oklch(…)`. Clicking a
53
- field that already has focus positions the caret as usual, so the text stays
54
- editable by hand.
44
+ There is no `formatMode`: with no text to reconcile, `format` alone decides how
45
+ the value is written. Everything else about the color model the notations it
46
+ reads, the gamut handling, the three spaces — is identical to `ColorInput` and
47
+ documented there.
55
48
 
56
49
  ### Base Properties
57
50
 
@@ -65,109 +58,77 @@ Supports all [Field properties](../../FieldProperties.md)
65
58
 
66
59
  #### styles
67
60
 
68
- Customizes the input wrapper the element that owns the border, fill and size.
69
-
70
- **Sub-elements:**
71
-
72
- - `Prefix` — the container holding the color swatch
73
- - `Suffix` — the container holding the validation state, then the popover trigger
74
- - `InputIcon` — the swatch slot
75
- - `State` — the validation / loading indicator
76
-
77
- #### inputStyles
78
-
79
- Customizes the `<input>` element itself.
61
+ Customizes the wrapper around the trigger.
80
62
 
81
63
  #### triggerStyles
82
64
 
83
- Customizes the popover trigger button.
65
+ Customizes the trigger button itself.
84
66
 
85
67
  #### swatchStyles
86
68
 
87
- Customizes the color swatch shown inside the input.
69
+ Customizes the color swatch.
88
70
 
89
71
  ### Style Properties
90
72
 
91
73
  These properties allow direct style application without using the `styles` prop:
92
74
 
93
- - **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
94
75
  - **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
95
76
  - **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
96
77
  - **Block:** `border`, `radius`, `shadow`, `outline`, `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
97
- - **Color:** `color`, `fill`, `fade`, `image`
98
78
 
99
79
  ### Modifiers
100
80
 
101
81
  The `mods` property accepts the following modifiers you can override:
102
82
 
103
- | Modifier | Type | Description |
104
- | ---------- | --------- | ------------------------------------------------- |
105
- | `focused` | `boolean` | The text input has focus |
106
- | `hovered` | `boolean` | The pointer is over the input |
107
- | `disabled` | `boolean` | The picker is disabled |
108
- | `valid` | `boolean` | The field is in the valid state |
109
- | `invalid` | `boolean` | The field is in the invalid state |
110
- | `prefix` | `boolean` | A prefix (the swatch) is rendered |
111
- | `suffix` | `boolean` | A suffix (the trigger) is rendered |
83
+ | Modifier | Type | Description |
84
+ | ------------- | --------- | ------------------------------------ |
85
+ | `placeholder` | `boolean` | No color is selected yet |
112
86
 
113
87
  The swatch carries its own `empty` modifier while there is no color to show.
114
88
 
115
- ## Format modes
116
-
117
- The three modes differ in how much freedom the *text* gets. The value is always
118
- a real color in every one of them.
89
+ ### A palette under the editor
119
90
 
120
- | Mode | Text | Value |
121
- | -------- | ----------------------------------- | ---------------------------------------------------- |
122
- | `forced` | Rewritten in `format` on blur/Enter | Always written in `format` |
123
- | `derive` | Left exactly as typed | Normalized in the notation the text is written in |
124
- | `free` | Left exactly as typed | The text itself, verbatim |
125
-
126
- In every mode an entry that is not a color is rejected: the previous valid color
127
- stays the value while it is being typed, and the text snaps back to it on blur.
128
- Emptying the field is not an error — it commits `null`.
91
+ Pass `swatches` and a [ColorSwatchGroup](./ColorSwatchGroup.md)
92
+ appears below the channels, so a common color is one press away.
129
93
 
130
94
  ```jsx
131
- // A design-token form that must store OKLCH
132
- <ColorPicker label="Accent" format="oklch" onChange={setAccent} />
133
-
134
- // A CSS editor: keep whatever the author wrote, but guarantee it parses
135
- <ColorPicker label="Color" formatMode="free" onChange={setCss} />
95
+ <ColorPicker label="Brand color" swatches={palette} swatchColumns={4} />
136
96
  ```
137
97
 
138
- ## Color spaces
139
-
140
- The popover edits one canonical color through three sets of axes:
141
-
142
- | Space | Axes | Good for |
143
- | ----- | ----------------------------- | ----------------------------------------------------- |
144
- | `hst` | Hue, Saturation, Tone (OKHST) | Building ramps — equal tone steps read as equal steps |
145
- | `lch` | Lightness, Chroma, Hue (OKLCH)| Matching a value from a design-token file |
146
- | `rgb` | Red, Green, Blue | Matching a value from a legacy palette or a screenshot|
147
-
148
- Each of these opens on its own space; the switcher inside the popover moves
149
- between them at any time.
150
-
151
- `H` means the same angle in HST and LCH, so the hue strip is identical in both.
152
- The chroma slider is bounded by the sRGB gamut at the current lightness and hue,
153
- which is why its range changes as `L` moves.
98
+ That group never offers its own custom-color escape hatch, since the escape
99
+ hatch is a `ColorPicker` and would nest popovers without end.
154
100
 
155
101
  ## Examples
156
102
 
157
103
  ### Basic usage
158
104
 
159
105
  ```jsx
160
- <ColorPicker label="Brand color" defaultValue="#7a4dbf" />
106
+ <ColorPicker label="Series color" defaultValue="#7a4dbf" />
161
107
  ```
162
108
 
163
- ### Controlled
109
+ ### A swatch on its own
110
+
111
+ Drop the label for a compact button — a toolbar, or a cell in a table.
164
112
 
165
113
  ```jsx
166
- const [color, setColor] = useState('#7a4dbf');
114
+ <ColorPicker aria-label="Series color" value={color} onChange={setColor}>
115
+ {null}
116
+ </ColorPicker>
117
+ ```
118
+
119
+ Give it an `aria-label` when you do: with no visible text, that is the only
120
+ thing naming the control.
121
+
122
+ ### A label of your own
167
123
 
168
- <ColorPicker label="Brand color" value={color} onChange={setColor} />;
124
+ ```jsx
125
+ <ColorPicker value={color} onChange={setColor}>
126
+ Accent
127
+ </ColorPicker>
169
128
  ```
170
129
 
130
+ ### Trigger types
131
+
171
132
  ### Inside a form
172
133
 
173
134
  ```jsx
@@ -181,91 +142,64 @@ const [color, setColor] = useState('#7a4dbf');
181
142
  </Form>
182
143
  ```
183
144
 
184
- ### Opening on a specific space
185
-
186
- ```jsx
187
- <ColorPicker label="Series color" defaultSpace="rgb" defaultValue="#26fcb2" />
188
- ```
189
-
190
- ### Using the value as a style
191
-
192
- Because the emitted value is a plain color string, it can go straight into a
193
- tasty style — including the `okhsl()` and `okhst()` notations, which tasty
194
- parses natively.
195
-
196
- ```jsx
197
- const [color, setColor] = useState('okhst(264 80% 60%)');
198
-
199
- <>
200
- <ColorPicker label="Fill" format="okhst" value={color} onChange={setColor} />
201
- <Block fill={color} height="10x" radius="1r" />
202
- </>;
203
- ```
204
-
205
145
  ## Accessibility
206
146
 
207
147
  ### Keyboard Navigation
208
148
 
209
- - `Tab` — moves focus to the text input, then to the popover trigger
210
- - `Enter` — commits and normalizes the typed color without leaving the field
211
- - `Space` / `Enter` on the trigger opens the popover
212
- - `Escape` — closes the popover
149
+ - `Tab` — moves focus to the trigger
150
+ - `Space` / `Enter` — opens the popover
151
+ - `Escape` — closes it
213
152
  - `Left` / `Right`, `Home` / `End` on a channel slider — moves that channel
214
153
  - `Left` / `Right` on the space switcher — moves between HST, LCH and RGB
215
154
 
216
155
  ### Screen Reader Support
217
156
 
218
- - The text input announces as a textbox with the field's label
219
- - The trigger announces as "Open the color picker"
157
+ - The trigger announces as a button, named by the field label, `aria-label`, or
158
+ its own text
220
159
  - The popover announces as a dialog named "Color picker"
221
- - Each channel slider sits in a group named after its axis (`Hue`,
222
- `Saturation`, `Tone`, `Lightness`, `Chroma`, `Red`, `Green`, `Blue`)
223
- - The swatch is decorative and is not announced — the text carries the value
160
+ - Each channel slider sits in a group named after its axis
161
+ - The swatch is decorative; the color is announced as the trigger's text unless
162
+ you replace it
224
163
 
225
164
  ### ARIA Properties
226
165
 
227
- - `aria-label` — names the field when there is no visible label
228
- - `aria-describedby` — wired to the field description by the form system
166
+ - `aria-label` — names the trigger when there is no visible label or text
167
+ - `aria-expanded` — reflects the popover state
229
168
 
230
169
  ## Best Practices
231
170
 
232
- 1. **Do**: name the field, so the text input is announced meaningfully
171
+ 1. **Do**: name a swatch-only picker
233
172
 
234
173
  ```jsx
235
- <ColorPicker label="Brand color" />
174
+ <ColorPicker aria-label="Series color">{null}</ColorPicker>
236
175
  ```
237
176
 
238
- 2. **Don't**: rely on the swatch alone to convey the value
177
+ 2. **Don't**: leave a swatch-only picker unnamed — the swatch says nothing to a
178
+ screen reader
239
179
 
240
180
  ```jsx
241
- <ColorPicker aria-label="" />
181
+ <ColorPicker>{null}</ColorPicker>
242
182
  ```
243
183
 
244
- 3. **Do**: pick the `format` your backend stores, and leave `formatMode` at
245
- `forced` so the two can never disagree.
246
-
247
- 4. **Don't**: use `free` mode when the value is later parsed by something
248
- stricter than a browser — the text is passed through as written.
184
+ 3. **Do**: reach for `ColorInput` the moment someone might want to paste a hex
185
+ value; a picker alone makes that impossible.
249
186
 
250
187
  ## Integration with Forms
251
188
 
252
189
  This component supports all
253
190
  [Field properties](../../FieldProperties.md) when used
254
- within a Form. The field value is the color string, and clearing the input
255
- stores `null`, which makes `required` rules behave as expected.
191
+ within a Form. The field value is the color string.
256
192
 
257
193
  ## Suggested Improvements
258
194
 
195
+ - A row of recent or preset swatches inside the popover
259
196
  - An eyedropper that samples a pixel from the page, where
260
197
  [`EyeDropper`](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper) is
261
198
  available
262
- - Optional alpha support, which the canonical value currently drops
263
- - A row of recent or preset swatches inside the popover
264
- - Editable numeric inputs next to each channel slider, for exact entry without
265
- going through the text field
199
+ - Clearing the color back to `null` from the trigger
266
200
 
267
201
  ## Related Components
268
202
 
269
- - [HueSlider](./HueSlider.md) — just the hue axis, when only a hue is needed
270
- - [Slider](./Slider.md) — the primitive each channel is built from
271
- - [TextInput](./TextInput.md) — the input chrome this component reuses
203
+ - [ColorInput](./ColorInput.md) — the same popover behind a text field
204
+ - [Picker](./Picker.md) — the same trigger-plus-popover shape, for lists
205
+ - [HueSlider](./HueSlider.md) — just the hue axis