@cube-dev/ui-kit 0.0.0-canary-e530064 → 0.0.0-canary-52c46a3

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 (609) 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.d.ts +0 -1
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/index.js +1 -1
  38. package/dist/components/actions/use-action.js +1 -1
  39. package/dist/components/actions/use-anchored-menu.js +1 -1
  40. package/dist/components/actions/use-context-menu.js +42 -44
  41. package/dist/components/actions/use-context-menu.js.map +1 -1
  42. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  43. package/dist/components/content/Alert/Alert.js +1 -1
  44. package/dist/components/content/Alert/use-alert.js +1 -1
  45. package/dist/components/content/Avatar/Avatar.js +1 -1
  46. package/dist/components/content/Badge/Badge.js +1 -1
  47. package/dist/components/content/Card/Card.js +1 -1
  48. package/dist/components/content/Content.js +1 -1
  49. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  51. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  52. package/dist/components/content/Divider.js +1 -1
  53. package/dist/components/content/Footer.js +1 -1
  54. package/dist/components/content/Header.js +1 -1
  55. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  56. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  57. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  58. package/dist/components/content/Item/Item.js +1 -1
  59. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  60. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  61. package/dist/components/content/Layout/GridLayout.js +1 -1
  62. package/dist/components/content/Layout/Layout.js +1 -1
  63. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  64. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  65. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  66. package/dist/components/content/Layout/LayoutContent.js +1 -1
  67. package/dist/components/content/Layout/LayoutContext.js +1 -1
  68. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  69. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  70. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  71. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  72. package/dist/components/content/Layout/LayoutPane.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  74. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  75. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  76. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  77. package/dist/components/content/Layout/index.js +1 -1
  78. package/dist/components/content/Layout/utils.js +1 -1
  79. package/dist/components/content/Paragraph.js +1 -1
  80. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  81. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  82. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  83. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  84. package/dist/components/content/Result/Result.js +1 -1
  85. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  86. package/dist/components/content/Tag/Tag.js +2 -2
  87. package/dist/components/content/Tag/Tag.js.map +1 -1
  88. package/dist/components/content/Text.d.ts +14 -14
  89. package/dist/components/content/Text.js +1 -1
  90. package/dist/components/content/TextItem/TextItem.js +1 -1
  91. package/dist/components/content/Title.js +1 -1
  92. package/dist/components/content/Tree/Tree.js +1 -1
  93. package/dist/components/content/Tree/TreeNode.js +1 -1
  94. package/dist/components/content/Tree/styled.js +1 -1
  95. package/dist/components/content/Tree/tree-index.js +1 -1
  96. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  97. package/dist/components/content/Tree/use-load-data.js +1 -1
  98. package/dist/components/content/highlightText.js +1 -1
  99. package/dist/components/content/use-auto-tooltip.js +1 -1
  100. package/dist/components/data/DataTable/DataTable.d.ts +13 -0
  101. package/dist/components/data/DataTable/DataTable.js +246 -0
  102. package/dist/components/data/DataTable/DataTable.js.map +1 -0
  103. package/dist/components/data/DataTable/index.d.ts +3 -0
  104. package/dist/components/data/DataTable/types.d.ts +145 -0
  105. package/dist/components/data/ItemTable/ItemTable.d.ts +19 -0
  106. package/dist/components/data/ItemTable/ItemTable.js +350 -0
  107. package/dist/components/data/ItemTable/ItemTable.js.map +1 -0
  108. package/dist/components/data/ItemTable/ItemTableBulkBar.d.ts +23 -0
  109. package/dist/components/data/ItemTable/ItemTableBulkBar.js +131 -0
  110. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -0
  111. package/dist/components/data/ItemTable/ItemTableDragPreview.js +46 -0
  112. package/dist/components/data/ItemTable/ItemTableDragPreview.js.map +1 -0
  113. package/dist/components/data/ItemTable/ItemTableFooter.js +79 -0
  114. package/dist/components/data/ItemTable/ItemTableFooter.js.map +1 -0
  115. package/dist/components/data/ItemTable/ItemTableToolbar.d.ts +34 -0
  116. package/dist/components/data/ItemTable/ItemTableToolbar.js +91 -0
  117. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -0
  118. package/dist/components/data/ItemTable/index.d.ts +4 -0
  119. package/dist/components/data/ItemTable/types.d.ts +327 -0
  120. package/dist/components/data/TableBase/ColumnResizer.js +70 -0
  121. package/dist/components/data/TableBase/ColumnResizer.js.map +1 -0
  122. package/dist/components/data/TableBase/RowCollection.js +99 -0
  123. package/dist/components/data/TableBase/RowCollection.js.map +1 -0
  124. package/dist/components/data/TableBase/TableRow.js +89 -0
  125. package/dist/components/data/TableBase/TableRow.js.map +1 -0
  126. package/dist/components/data/TableBase/TableView.d.ts +22 -0
  127. package/dist/components/data/TableBase/TableView.js +921 -0
  128. package/dist/components/data/TableBase/TableView.js.map +1 -0
  129. package/dist/components/data/TableBase/index.d.ts +5 -0
  130. package/dist/components/data/TableBase/row-menu.js +40 -0
  131. package/dist/components/data/TableBase/row-menu.js.map +1 -0
  132. package/dist/components/data/TableBase/styled.d.ts +5 -0
  133. package/dist/components/data/TableBase/styled.js +532 -0
  134. package/dist/components/data/TableBase/styled.js.map +1 -0
  135. package/dist/components/data/TableBase/types.d.ts +160 -0
  136. package/dist/components/data/TableBase/types.js +31 -0
  137. package/dist/components/data/TableBase/types.js.map +1 -0
  138. package/dist/components/data/TableBase/use-cell-selection.d.ts +3 -0
  139. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  140. package/dist/components/data/TableBase/use-cell-selection.js.map +1 -0
  141. package/dist/components/data/TableBase/use-container-width.js +35 -0
  142. package/dist/components/data/TableBase/use-container-width.js.map +1 -0
  143. package/dist/components/data/TableBase/use-row-move-animation.js +90 -0
  144. package/dist/components/data/TableBase/use-row-move-animation.js.map +1 -0
  145. package/dist/components/data/TableBase/use-scrollability.js +49 -0
  146. package/dist/components/data/TableBase/use-scrollability.js.map +1 -0
  147. package/dist/components/data/TableBase/use-table-columns.d.ts +2 -0
  148. package/dist/components/data/TableBase/use-table-columns.js +166 -0
  149. package/dist/components/data/TableBase/use-table-columns.js.map +1 -0
  150. package/dist/components/data/TableBase/use-table-search.js +64 -0
  151. package/dist/components/data/TableBase/use-table-search.js.map +1 -0
  152. package/dist/components/data/TableBase/use-table-selection.d.ts +4 -0
  153. package/dist/components/data/TableBase/use-table-selection.js +233 -0
  154. package/dist/components/data/TableBase/use-table-selection.js.map +1 -0
  155. package/dist/components/data/TableBase/use-table-sort.js +91 -0
  156. package/dist/components/data/TableBase/use-table-sort.js.map +1 -0
  157. package/dist/components/data/TableBase/use-table-sorts.js +97 -0
  158. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -0
  159. package/dist/components/data/TableBase/use-table-storage.d.ts +8 -0
  160. package/dist/components/data/TableBase/use-table-storage.js +58 -0
  161. package/dist/components/data/TableBase/use-table-storage.js.map +1 -0
  162. package/dist/components/data/index.d.ts +10 -0
  163. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  164. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  165. package/dist/components/fields/Checkbox/context.js +1 -1
  166. package/dist/components/fields/ColorPicker/ColorPicker.d.ts +37 -34
  167. package/dist/components/fields/ColorPicker/ColorPicker.js +182 -131
  168. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  169. package/dist/components/fields/{color/ColorPanel.js → ColorPicker/ColorPickerPanel.js} +11 -14
  170. package/dist/components/fields/ColorPicker/ColorPickerPanel.js.map +1 -0
  171. package/dist/components/fields/{color → ColorPicker}/channels.d.ts +1 -1
  172. package/dist/components/fields/{color → ColorPicker}/channels.js +2 -2
  173. package/dist/components/fields/ColorPicker/channels.js.map +1 -0
  174. package/dist/components/fields/ColorPicker/color.d.ts +15 -0
  175. package/dist/components/fields/{color → ColorPicker}/color.js +2 -2
  176. package/dist/components/fields/ColorPicker/color.js.map +1 -0
  177. package/dist/components/fields/ColorPicker/index.d.ts +3 -1
  178. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  179. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  180. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  181. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  182. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  183. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  184. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  185. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  186. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  187. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  188. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  189. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  190. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  191. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  192. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  193. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  194. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  195. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  196. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  197. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  198. package/dist/components/fields/DatePicker/period.js +1 -1
  199. package/dist/components/fields/DatePicker/props.js +1 -1
  200. package/dist/components/fields/DatePicker/utils.js +1 -1
  201. package/dist/components/fields/FileInput/FileInput.js +1 -1
  202. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  203. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  204. package/dist/components/fields/Input/Input.js +2 -2
  205. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  206. package/dist/components/fields/ListBox/ListBox.js +1 -1
  207. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  208. package/dist/components/fields/ListBoxPopover/index.d.ts +0 -1
  209. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  210. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  211. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  212. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  213. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  214. package/dist/components/fields/Picker/Picker.js +1 -1
  215. package/dist/components/fields/RadioGroup/Radio.d.ts +2 -2
  216. package/dist/components/fields/RadioGroup/Radio.js +4 -4
  217. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  218. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  219. package/dist/components/fields/RadioGroup/context.js +1 -1
  220. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  221. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  222. package/dist/components/fields/Select/Select.js +1 -1
  223. package/dist/components/fields/Slider/Gradation.js +1 -1
  224. package/dist/components/fields/Slider/HueSlider.js +1 -1
  225. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  226. package/dist/components/fields/Slider/Slider.js +1 -1
  227. package/dist/components/fields/Slider/SliderBase.js +1 -1
  228. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  229. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  230. package/dist/components/fields/Slider/elements.js +1 -1
  231. package/dist/components/fields/Slider/index.js +1 -1
  232. package/dist/components/fields/Switch/Switch.js +1 -1
  233. package/dist/components/fields/TextArea/TextArea.js +1 -1
  234. package/dist/components/fields/TextInput/TextInput.js +1 -1
  235. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  236. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  237. package/dist/components/fields/index.d.ts +3 -9
  238. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  239. package/dist/components/form/Form/Field.js +1 -1
  240. package/dist/components/form/Form/Form.js +1 -1
  241. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  242. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  243. package/dist/components/form/Form/SubmitError.js +1 -1
  244. package/dist/components/form/Form/index.js +1 -1
  245. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  246. package/dist/components/form/Form/use-field/use-field.js +1 -1
  247. package/dist/components/form/Form/use-form.js +1 -1
  248. package/dist/components/form/Form/validation.js +1 -1
  249. package/dist/components/form/Label.js +1 -1
  250. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  251. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  252. package/dist/components/form/validation/use-validation-props.js +1 -1
  253. package/dist/components/form/wrapper.js +1 -1
  254. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  255. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  256. package/dist/components/layout/Board/Board.js +1 -1
  257. package/dist/components/layout/Board/BoardProvider.js +1 -1
  258. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  259. package/dist/components/layout/Board/Widget.js +1 -1
  260. package/dist/components/layout/Board/WidgetHost.js +1 -1
  261. package/dist/components/layout/Board/board-context.js +1 -1
  262. package/dist/components/layout/Board/board-store.js +1 -1
  263. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  264. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  265. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  266. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  267. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  268. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  269. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  270. package/dist/components/layout/Board/index.js +1 -1
  271. package/dist/components/layout/Board/responsive-utils.js +1 -1
  272. package/dist/components/layout/Board/use-board-layout.js +1 -1
  273. package/dist/components/layout/Board/use-board-registry.js +1 -1
  274. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  275. package/dist/components/layout/Board/use-board-selection.js +1 -1
  276. package/dist/components/layout/Flex.js +1 -1
  277. package/dist/components/layout/Flow.js +1 -1
  278. package/dist/components/layout/Grid.js +1 -1
  279. package/dist/components/layout/Panel.js +1 -1
  280. package/dist/components/layout/Prefix.js +1 -1
  281. package/dist/components/layout/ResizablePanel.js +1 -1
  282. package/dist/components/layout/Space.js +1 -1
  283. package/dist/components/layout/Suffix.js +1 -1
  284. package/dist/components/navigation/Pagination/Pagination.d.ts +9 -0
  285. package/dist/components/navigation/Pagination/Pagination.js +258 -0
  286. package/dist/components/navigation/Pagination/Pagination.js.map +1 -0
  287. package/dist/components/navigation/Pagination/index.d.ts +4 -0
  288. package/dist/components/navigation/Pagination/types.d.ts +81 -0
  289. package/dist/components/navigation/Pagination/use-pagination.d.ts +52 -0
  290. package/dist/components/navigation/Pagination/use-pagination.js +83 -0
  291. package/dist/components/navigation/Pagination/use-pagination.js.map +1 -0
  292. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  293. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  294. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  295. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  296. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  297. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  298. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  299. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  300. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  301. package/dist/components/navigation/Tabs/styled.js +1 -1
  302. package/dist/components/navigation/Tabs/types.js +1 -1
  303. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  304. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  305. package/dist/components/navigation/index.d.ts +5 -1
  306. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  307. package/dist/components/other/Calendar/Calendar.js +1 -1
  308. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  309. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  310. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  311. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  312. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  313. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  314. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  315. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  316. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  317. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  318. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  319. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  320. package/dist/components/overlays/Dialog/context.js +1 -1
  321. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  322. package/dist/components/overlays/Modal/Modal.d.ts +1 -2
  323. package/dist/components/overlays/Modal/Modal.js +1 -1
  324. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  325. package/dist/components/overlays/Modal/Overlay.d.ts +0 -1
  326. package/dist/components/overlays/Modal/Overlay.js +1 -1
  327. package/dist/components/overlays/Modal/Popover.js +1 -1
  328. package/dist/components/overlays/Modal/Tray.js +1 -1
  329. package/dist/components/overlays/Modal/Underlay.js +1 -1
  330. package/dist/components/overlays/Modal/types.d.ts +0 -1
  331. package/dist/components/overlays/Notifications/Notification.js +1 -1
  332. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  333. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  334. package/dist/components/overlays/Notifications/NotificationContext.d.ts +0 -2
  335. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  336. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  337. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  338. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  339. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  340. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  341. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  342. package/dist/components/overlays/Notifications/index.js +1 -1
  343. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  344. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  345. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  346. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  347. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  348. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  349. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  350. package/dist/components/overlays/Toast/index.js +1 -1
  351. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  352. package/dist/components/overlays/Toast/useToast.js +1 -1
  353. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  354. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  355. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  356. package/dist/components/overlays/Tooltip/context.js +1 -1
  357. package/dist/components/portal/Portal.js +1 -1
  358. package/dist/components/portal/PortalProvider.js +1 -1
  359. package/dist/components/portal/index.d.ts +0 -1
  360. package/dist/components/portal/usePortal.js +1 -1
  361. package/dist/components/shared/DraggableCollection.js +24 -8
  362. package/dist/components/shared/DraggableCollection.js.map +1 -1
  363. package/dist/components/shared/InvalidIcon.js +1 -1
  364. package/dist/components/shared/ValidIcon.js +1 -1
  365. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  366. package/dist/components/status/Spin/Cube.js +1 -1
  367. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  368. package/dist/components/status/Spin/Spin.js +1 -1
  369. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  370. package/dist/data/item-themes.js +1 -1
  371. package/dist/data/themes.js +1 -1
  372. package/dist/eslint-plugin/defaults.generated.js +203 -1
  373. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  374. package/dist/eslint-plugin/index.js +1 -1
  375. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  376. package/dist/i18n/I18nProvider.js +1 -1
  377. package/dist/i18n/createFormatter.js +1 -1
  378. package/dist/i18n/index.js +1 -1
  379. package/dist/i18n/instance.js +1 -1
  380. package/dist/i18n/locales/de-DE/uikit.js +36 -1
  381. package/dist/i18n/locales/en-US/uikit.js +36 -1
  382. package/dist/i18n/locales/en-US/uikit.json.d.ts +41 -1
  383. package/dist/i18n/locales/es-ES/uikit.js +36 -1
  384. package/dist/i18n/locales/es-MX/uikit.js +36 -1
  385. package/dist/i18n/locales/fr-FR/uikit.js +36 -1
  386. package/dist/i18n/locales/it-IT/uikit.js +36 -1
  387. package/dist/i18n/locales/ja-JP/uikit.js +36 -1
  388. package/dist/i18n/locales/nb-NO/uikit.js +36 -1
  389. package/dist/i18n/locales/pt-BR/uikit.js +36 -1
  390. package/dist/i18n/locales/pt-PT/uikit.js +36 -1
  391. package/dist/i18n/locales/sv-SE/uikit.js +36 -1
  392. package/dist/i18n/locales/vi-VN/uikit.js +36 -1
  393. package/dist/i18n/locales.js +1 -1
  394. package/dist/i18n/useFormatter.js +1 -1
  395. package/dist/i18n/useI18n.js +1 -1
  396. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  397. package/dist/icons/AdjustmentsIcon.js +1 -1
  398. package/dist/icons/AiIcon.js +1 -1
  399. package/dist/icons/AreaChartIcon.js +1 -1
  400. package/dist/icons/BackwardIcon.js +1 -1
  401. package/dist/icons/BarChartIcon.js +1 -1
  402. package/dist/icons/BellFilledIcon.js +1 -1
  403. package/dist/icons/BellIcon.js +1 -1
  404. package/dist/icons/BooleanIcon.js +1 -1
  405. package/dist/icons/CalendarEditIcon.js +1 -1
  406. package/dist/icons/CalendarIcon.js +1 -1
  407. package/dist/icons/CaretDownIcon.js +1 -1
  408. package/dist/icons/CaretUpIcon.js +1 -1
  409. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  410. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  411. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  412. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  413. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  414. package/dist/icons/ChartBarLineIcon.js +1 -1
  415. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  416. package/dist/icons/ChartBarStackedIcon.js +1 -1
  417. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  418. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  419. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  420. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  421. package/dist/icons/ChartBubbleIcon.js +1 -1
  422. package/dist/icons/ChartDonut2Icon.js +1 -1
  423. package/dist/icons/ChartFunnelIcon.js +1 -1
  424. package/dist/icons/ChartHeatmapIcon.js +1 -1
  425. package/dist/icons/ChartKPIIcon.js +1 -1
  426. package/dist/icons/ChartPie2Icon.js +1 -1
  427. package/dist/icons/ChartScatterIcon.js +1 -1
  428. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  429. package/dist/icons/CheckCircleIcon.js +1 -1
  430. package/dist/icons/CheckIcon.js +1 -1
  431. package/dist/icons/CircleFilledIcon.js +1 -1
  432. package/dist/icons/ClearIcon.js +1 -1
  433. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  434. package/dist/icons/CloseCircleIcon.js +1 -1
  435. package/dist/icons/CloseIcon.js +1 -1
  436. package/dist/icons/CodeIcon.js +1 -1
  437. package/dist/icons/ColumnTotalIcon.js +1 -1
  438. package/dist/icons/CopyIcon.js +1 -1
  439. package/dist/icons/CountIcon.js +1 -1
  440. package/dist/icons/CubeIcon.js +1 -1
  441. package/dist/icons/CubePauseIcon.js +1 -1
  442. package/dist/icons/CubePlayIcon.js +1 -1
  443. package/dist/icons/CurrencyDollarIcon.js +1 -1
  444. package/dist/icons/DangerIcon.js +1 -1
  445. package/dist/icons/DashboardIcon.js +1 -1
  446. package/dist/icons/DatabaseIcon.js +1 -1
  447. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  448. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  449. package/dist/icons/DirectionIcon.js +1 -1
  450. package/dist/icons/DonutIcon.js +1 -1
  451. package/dist/icons/DownIcon.js +1 -1
  452. package/dist/icons/EditIcon.js +1 -1
  453. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  454. package/dist/icons/ExclamationCircleIcon.js +1 -1
  455. package/dist/icons/ExclamationIcon.js +1 -1
  456. package/dist/icons/EyeIcon.js +1 -1
  457. package/dist/icons/EyeInvisibleIcon.js +1 -1
  458. package/dist/icons/FilterIcon.js +1 -1
  459. package/dist/icons/FolderFilledIcon.js +1 -1
  460. package/dist/icons/FolderIcon.js +1 -1
  461. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  462. package/dist/icons/FolderOpenIcon.js +1 -1
  463. package/dist/icons/ForwardIcon.js +1 -1
  464. package/dist/icons/GripVerticalIcon.js +1 -1
  465. package/dist/icons/HierarchyIcon.js +1 -1
  466. package/dist/icons/HierarchyOpenIcon.js +1 -1
  467. package/dist/icons/Icon.js +1 -1
  468. package/dist/icons/InfoCircleIcon.js +1 -1
  469. package/dist/icons/InfoIcon.js +1 -1
  470. package/dist/icons/KeyIcon.js +1 -1
  471. package/dist/icons/LeftIcon.js +1 -1
  472. package/dist/icons/LineChartIcon.js +1 -1
  473. package/dist/icons/LoadingIcon.js +1 -1
  474. package/dist/icons/LockFilledIcon.js +1 -1
  475. package/dist/icons/LockIcon.js +1 -1
  476. package/dist/icons/MoreIcon.js +1 -1
  477. package/dist/icons/NotAllowedIcon.js +1 -1
  478. package/dist/icons/Number123Icon.js +1 -1
  479. package/dist/icons/NumberIcon.js +1 -1
  480. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  481. package/dist/icons/PauseCircleIcon.js +1 -1
  482. package/dist/icons/PauseIcon.js +1 -1
  483. package/dist/icons/PercentageIcon.js +1 -1
  484. package/dist/icons/PieChartIcon.js +1 -1
  485. package/dist/icons/PipetteIcon.js +1 -1
  486. package/dist/icons/PlayCircleIcon.js +1 -1
  487. package/dist/icons/PlayIcon.js +1 -1
  488. package/dist/icons/PlusIcon.js +1 -1
  489. package/dist/icons/ProgressBarIcon.js +1 -1
  490. package/dist/icons/ReloadIcon.js +1 -1
  491. package/dist/icons/ReportIcon.js +1 -1
  492. package/dist/icons/ReturnIcon.js +1 -1
  493. package/dist/icons/RightIcon.js +1 -1
  494. package/dist/icons/RowTotalsIcon.js +1 -1
  495. package/dist/icons/SchemeIcon.js +1 -1
  496. package/dist/icons/SearchIcon.js +1 -1
  497. package/dist/icons/SemanticQueryIcon.js +1 -1
  498. package/dist/icons/SettingsIcon.js +1 -1
  499. package/dist/icons/ShieldFilledIcon.js +1 -1
  500. package/dist/icons/ShieldIcon.js +1 -1
  501. package/dist/icons/SlashIcon.js +1 -1
  502. package/dist/icons/SparklesIcon.js +1 -1
  503. package/dist/icons/SqlIcon.js +1 -1
  504. package/dist/icons/StatsIcon.js +1 -1
  505. package/dist/icons/StopIcon.js +1 -1
  506. package/dist/icons/StringIcon.js +1 -1
  507. package/dist/icons/SubtotalsIcon.js +1 -1
  508. package/dist/icons/SwitchIcon.js +1 -1
  509. package/dist/icons/TableIcon.js +1 -1
  510. package/dist/icons/ThumbsDownIcon.js +1 -1
  511. package/dist/icons/ThumbsUpIcon.js +1 -1
  512. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  513. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  514. package/dist/icons/ThunderboltIcon.js +1 -1
  515. package/dist/icons/TimeIcon.js +1 -1
  516. package/dist/icons/TrashIcon.js +1 -1
  517. package/dist/icons/UnlockIcon.js +1 -1
  518. package/dist/icons/UpIcon.js +1 -1
  519. package/dist/icons/UserGroupIcon.js +1 -1
  520. package/dist/icons/UserIcon.js +1 -1
  521. package/dist/icons/UserLockIcon.js +1 -1
  522. package/dist/icons/ViewIcon.js +1 -1
  523. package/dist/icons/WarningFilledIcon.js +1 -1
  524. package/dist/icons/WarningIcon.js +1 -1
  525. package/dist/icons/wrap-icon.js +1 -1
  526. package/dist/index.d.ts +22 -15
  527. package/dist/index.js +10 -9
  528. package/dist/index.js.map +1 -1
  529. package/dist/provider.js +1 -1
  530. package/dist/providers/TrackingProvider.js +1 -1
  531. package/dist/providers/navigationAdapter.default.js +1 -1
  532. package/dist/tokens/base.js +1 -1
  533. package/dist/tokens/colors.js +1 -1
  534. package/dist/tokens/index.js +1 -1
  535. package/dist/tokens/layout.js +1 -1
  536. package/dist/tokens/lazy-styles.js +1 -1
  537. package/dist/tokens/palette-config.js +1 -1
  538. package/dist/tokens/palette.js +1 -1
  539. package/dist/tokens/shadows.js +1 -1
  540. package/dist/tokens/sizes.js +1 -1
  541. package/dist/tokens/spacing.js +1 -1
  542. package/dist/tokens/typography.d.ts +1 -1
  543. package/dist/tokens/typography.js +11 -2
  544. package/dist/tokens/typography.js.map +1 -1
  545. package/dist/utils/ResizeSensor.js +1 -1
  546. package/dist/utils/is-dev-env.js +1 -1
  547. package/dist/utils/modules.js +1 -1
  548. package/dist/utils/promise.js +1 -1
  549. package/dist/utils/raf.js +1 -1
  550. package/dist/utils/random.js +1 -1
  551. package/dist/utils/range.js +1 -1
  552. package/dist/utils/react/RenderCache.js +1 -1
  553. package/dist/utils/react/Slots.js +1 -1
  554. package/dist/utils/react/chain.js +1 -1
  555. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  556. package/dist/utils/react/index.js +1 -1
  557. package/dist/utils/react/interactions.js +1 -1
  558. package/dist/utils/react/isTextOnly.js +1 -1
  559. package/dist/utils/react/mapProps.js +1 -1
  560. package/dist/utils/react/mergeProps.js +1 -1
  561. package/dist/utils/react/nullableValue.js +1 -1
  562. package/dist/utils/react/resolveIcon.js +1 -1
  563. package/dist/utils/react/sharedStore.js +1 -1
  564. package/dist/utils/react/useBufferedValue.js +1 -1
  565. package/dist/utils/react/useCombinedRefs.js +1 -1
  566. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  567. package/dist/utils/react/useEventBus.js +1 -1
  568. package/dist/utils/react/useId.js +1 -1
  569. package/dist/utils/react/useIsDarwin.js +1 -1
  570. package/dist/utils/react/useKeySymbols.js +1 -1
  571. package/dist/utils/react/useLayoutEffect.js +1 -1
  572. package/dist/utils/react/useLocalStorage.js +1 -1
  573. package/dist/utils/react/useMergeStyles.js +1 -1
  574. package/dist/utils/react/usePopoverSync.js +1 -1
  575. package/dist/utils/react/useQaProps.js +1 -1
  576. package/dist/utils/react/useViewportSize.js +1 -1
  577. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  578. package/dist/utils/selection.js +1 -1
  579. package/dist/utils/styles.js +1 -1
  580. package/dist/utils/tree.js +1 -1
  581. package/dist/utils/warnings.js +1 -1
  582. package/dist/version.js +2 -2
  583. package/docs/components/data/DataTable.md +298 -0
  584. package/docs/components/data/ItemTable.md +984 -0
  585. package/docs/components/fields/ColorPicker.md +144 -85
  586. package/docs/components/navigation/Pagination.md +245 -0
  587. package/package.json +8 -3
  588. package/dist/components/fields/ColorInput/ColorInput.d.ts +0 -67
  589. package/dist/components/fields/ColorInput/ColorInput.js +0 -230
  590. package/dist/components/fields/ColorInput/ColorInput.js.map +0 -1
  591. package/dist/components/fields/ColorInput/index.d.ts +0 -2
  592. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.d.ts +0 -50
  593. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +0 -269
  594. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +0 -1
  595. package/dist/components/fields/ColorSwatchGroup/index.d.ts +0 -2
  596. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +0 -2
  597. package/dist/components/fields/color/ColorPanel.js.map +0 -1
  598. package/dist/components/fields/color/ColorSwatch.d.ts +0 -22
  599. package/dist/components/fields/color/ColorSwatch.js +0 -58
  600. package/dist/components/fields/color/ColorSwatch.js.map +0 -1
  601. package/dist/components/fields/color/channels.js.map +0 -1
  602. package/dist/components/fields/color/color.d.ts +0 -21
  603. package/dist/components/fields/color/color.js.map +0 -1
  604. package/dist/components/fields/color/context.js +0 -20
  605. package/dist/components/fields/color/context.js.map +0 -1
  606. package/dist/components/fields/color/index.d.ts +0 -4
  607. package/dist/components/portal/PortalProvider.d.ts +0 -2
  608. package/docs/components/fields/ColorInput.md +0 -284
  609. package/docs/components/fields/ColorSwatchGroup.md +0 -206
@@ -1,21 +1,26 @@
1
1
  # ColorPicker
2
2
 
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.
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
7
 
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.
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.
10
13
 
11
14
  ## When to Use
12
15
 
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
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
16
21
 
17
- Use [ColorInput](./ColorInput.md) instead when the color has to be
18
- readable and pasteable as text.
22
+ Reach for a `RadioGroup` or `Picker` of swatches instead when the choice is
23
+ limited to a handful of approved colors.
19
24
 
20
25
  ## Component
21
26
 
@@ -25,26 +30,28 @@ readable and pasteable as text.
25
30
 
26
31
  - **`value`** `string | null` — The selected color (controlled)
27
32
  - **`defaultValue`** `string | null` — The selected color (uncontrolled)
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
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`
30
36
  - **`defaultSpace`** `'hst' | 'lch' | 'rgb'` (default: `hst`) — Color concept the popover opens with
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
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
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 trigger
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
43
45
 
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.
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.
48
55
 
49
56
  ### Base Properties
50
57
 
@@ -58,83 +65,108 @@ Supports all [Field properties](../../FieldProperties.md)
58
65
 
59
66
  #### styles
60
67
 
61
- Customizes the wrapper around the trigger.
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.
62
80
 
63
81
  #### triggerStyles
64
82
 
65
- Customizes the trigger button itself.
83
+ Customizes the popover trigger button.
66
84
 
67
85
  #### swatchStyles
68
86
 
69
- Customizes the color swatch.
87
+ Customizes the color swatch shown inside the input.
70
88
 
71
89
  ### Style Properties
72
90
 
73
91
  These properties allow direct style application without using the `styles` prop:
74
92
 
93
+ - **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
75
94
  - **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
76
95
  - **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
77
96
  - **Block:** `border`, `radius`, `shadow`, `outline`, `padding`, `paddingInline`, `paddingBlock`, `overflow`, `scrollbar`, `textAlign`
97
+ - **Color:** `color`, `fill`, `fade`, `image`
78
98
 
79
99
  ### Modifiers
80
100
 
81
101
  The `mods` property accepts the following modifiers you can override:
82
102
 
83
- | Modifier | Type | Description |
84
- | ------------- | --------- | ------------------------------------ |
85
- | `placeholder` | `boolean` | No color is selected yet |
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 |
86
112
 
87
113
  The swatch carries its own `empty` modifier while there is no color to show.
88
114
 
89
- ### The value as text
115
+ ## Format modes
90
116
 
91
- The popover carries a `ColorInput` above the preview, so the exact color can be
92
- read, copied, pasted and normalized in place rather than only dialed in. It has
93
- no trigger of its own — a disclosure inside the thing it discloses would be
94
- meaningless — and clearing it clears the picker.
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.
95
119
 
96
- ### A palette under the editor
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 |
97
125
 
98
- Pass `swatches` and a [ColorSwatchGroup](./ColorSwatchGroup.md)
99
- appears below the channels, so a common color is one press away.
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`.
100
129
 
101
130
  ```jsx
102
- <ColorPicker label="Brand color" swatches={palette} swatchColumns={4} />
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} />
103
136
  ```
104
137
 
105
- That group never offers its own custom-color escape hatch, since the escape
106
- hatch is a `ColorPicker` and would nest popovers without end.
138
+ ## Color spaces
107
139
 
108
- ## Examples
140
+ The popover edits one canonical color through three sets of axes:
109
141
 
110
- ### Basic usage
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|
111
147
 
112
- ```jsx
113
- <ColorPicker label="Series color" defaultValue="#7a4dbf" />
114
- ```
148
+ Each of these opens on its own space; the switcher inside the popover moves
149
+ between them at any time.
115
150
 
116
- ### A swatch on its own
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.
117
154
 
118
- Drop the label for a compact button — a toolbar, or a cell in a table.
155
+ ## Examples
156
+
157
+ ### Basic usage
119
158
 
120
159
  ```jsx
121
- <ColorPicker aria-label="Series color" value={color} onChange={setColor}>
122
- {null}
123
- </ColorPicker>
160
+ <ColorPicker label="Brand color" defaultValue="#7a4dbf" />
124
161
  ```
125
162
 
126
- Give it an `aria-label` when you do: with no visible text, that is the only
127
- thing naming the control.
128
-
129
- ### A label of your own
163
+ ### Controlled
130
164
 
131
165
  ```jsx
132
- <ColorPicker value={color} onChange={setColor}>
133
- Accent
134
- </ColorPicker>
135
- ```
166
+ const [color, setColor] = useState('#7a4dbf');
136
167
 
137
- ### Trigger types
168
+ <ColorPicker label="Brand color" value={color} onChange={setColor} />;
169
+ ```
138
170
 
139
171
  ### Inside a form
140
172
 
@@ -149,64 +181,91 @@ thing naming the control.
149
181
  </Form>
150
182
  ```
151
183
 
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
+
152
205
  ## Accessibility
153
206
 
154
207
  ### Keyboard Navigation
155
208
 
156
- - `Tab` — moves focus to the trigger
157
- - `Space` / `Enter` — opens the popover
158
- - `Escape` — closes it
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
159
213
  - `Left` / `Right`, `Home` / `End` on a channel slider — moves that channel
160
214
  - `Left` / `Right` on the space switcher — moves between HST, LCH and RGB
161
215
 
162
216
  ### Screen Reader Support
163
217
 
164
- - The trigger announces as a button, named by the field label, `aria-label`, or
165
- its own text
218
+ - The text input announces as a textbox with the field's label
219
+ - The trigger announces as "Open the color picker"
166
220
  - The popover announces as a dialog named "Color picker"
167
- - Each channel slider sits in a group named after its axis
168
- - The swatch is decorative; the color is announced as the trigger's text unless
169
- you replace it
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
170
224
 
171
225
  ### ARIA Properties
172
226
 
173
- - `aria-label` — names the trigger when there is no visible label or text
174
- - `aria-expanded` — reflects the popover state
227
+ - `aria-label` — names the field when there is no visible label
228
+ - `aria-describedby` — wired to the field description by the form system
175
229
 
176
230
  ## Best Practices
177
231
 
178
- 1. **Do**: name a swatch-only picker
232
+ 1. **Do**: name the field, so the text input is announced meaningfully
179
233
 
180
234
  ```jsx
181
- <ColorPicker aria-label="Series color">{null}</ColorPicker>
235
+ <ColorPicker label="Brand color" />
182
236
  ```
183
237
 
184
- 2. **Don't**: leave a swatch-only picker unnamed the swatch says nothing to a
185
- screen reader
238
+ 2. **Don't**: rely on the swatch alone to convey the value
186
239
 
187
240
  ```jsx
188
- <ColorPicker>{null}</ColorPicker>
241
+ <ColorPicker aria-label="" />
189
242
  ```
190
243
 
191
- 3. **Do**: reach for `ColorInput` the moment someone might want to paste a hex
192
- value; a picker alone makes that impossible.
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.
193
249
 
194
250
  ## Integration with Forms
195
251
 
196
252
  This component supports all
197
253
  [Field properties](../../FieldProperties.md) when used
198
- within a Form. The field value is the color string.
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.
199
256
 
200
257
  ## Suggested Improvements
201
258
 
202
- - A row of recent or preset swatches inside the popover
203
259
  - An eyedropper that samples a pixel from the page, where
204
260
  [`EyeDropper`](https://developer.mozilla.org/en-US/docs/Web/API/EyeDropper) is
205
261
  available
206
- - Clearing the color back to `null` from the trigger
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
207
266
 
208
267
  ## Related Components
209
268
 
210
- - [ColorInput](./ColorInput.md) — the same popover behind a text field
211
- - [Picker](./Picker.md) — the same trigger-plus-popover shape, for lists
212
- - [HueSlider](./HueSlider.md) — just the hue axis
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
@@ -0,0 +1,245 @@
1
+ # Pagination
2
+
3
+ Pagination is the control for moving through a paged collection. It renders a
4
+ bounded run of page buttons, optional first/last jumps, an optional page-size
5
+ selector, and an optional item-range summary.
6
+
7
+ It is a pure control: it owns no data. Client-side slicing lives in the
8
+ companion `usePagination` hook, and `ItemTable` composes the two.
9
+
10
+ ## When to Use
11
+
12
+ - Paging through a list, table, or grid where the user needs to jump around
13
+ rather than scroll.
14
+ - Cursor pagination with an unknown total — supply `hasNextPage` and omit
15
+ `total`/`totalPages`, and the control degrades to prev/next.
16
+ - Anywhere you need a page-size selector wired to the same state.
17
+
18
+ Prefer infinite scroll when the collection is a feed the user skims, and
19
+ pagination when they need stable, addressable positions.
20
+
21
+ ## Component
22
+
23
+ ### Properties
24
+
25
+ - **`page`** `number` — Controlled current page, 1-based. Pair with
26
+ `onPageChange`.
27
+ - **`defaultPage`** `number` (default: `1`) — Initial page for uncontrolled
28
+ usage.
29
+ - **`onPageChange`** `(page: number) => void` — Never fires with a page outside
30
+ `1…totalPages` when the total is known.
31
+ - **`total`** `number` — Total items across all pages. Preferred over
32
+ `totalPages`; it also powers the range summary and the `select` type's range
33
+ labels.
34
+ - **`totalPages`** `number` — Total pages. Only needed when the item count is
35
+ genuinely unavailable. Wins over the value derived from `total` + `pageSize`.
36
+ - **`pageSize`** `number` — Controlled page size.
37
+ - **`defaultPageSize`** `number` (default: `50`) — Initial page size for
38
+ uncontrolled usage.
39
+ - **`onPageSizeChange`** `(pageSize: number) => void` — Changing the size also
40
+ resets to page 1, because the old page index no longer refers to the same
41
+ items.
42
+ - **`pageSizeOptions`** `number[]` — Supplying this **and** `onPageSizeChange`
43
+ renders the size selector.
44
+ - **`type`** `'numbers' | 'select' | 'compact'` (default: `'numbers'`) — How the
45
+ page control is rendered. `numbers` is the default because it is the only mode
46
+ whose rendered element count is independent of the page count; `select`
47
+ materializes one entry per page, so above a safety cap the component falls
48
+ back to `compact` on its own.
49
+ - **`siblingCount`** `number` (default: `1`) — Page buttons either side of the
50
+ current page.
51
+ - **`boundaryCount`** `number` (default: `1`) — Page buttons pinned at each end.
52
+ Together with `siblingCount` this bounds the rendered count at
53
+ `boundaryCount * 2 + siblingCount * 2 + 3`.
54
+ - **`size`** `'small' | 'medium'` (default: `'small'`) — Control size.
55
+ - **`isDisabled`** `boolean` — Disable every control.
56
+ - **`hasNextPage`** `boolean` — Keeps "next" enabled when the total is unknown.
57
+ Ignored once `total` or `totalPages` is supplied — a known total is always
58
+ authoritative.
59
+ - **`isCompact`** `boolean` (default: `false`) — Hide the first/last jump
60
+ buttons.
61
+ - **`summary`** `boolean | ((info: CubeTablePageInfo) => ReactNode)` (default:
62
+ `false`) — `true` renders the localized `1–50 of 1,204`, with numbers
63
+ formatted for the active locale. Pass a function for full control.
64
+ - **`labelFormatter`** `(info: CubeTablePageInfo) => ReactNode` — Labels the
65
+ entries of `type="select"`. Receives the page info with `page` set to the
66
+ entry being labelled.
67
+ - **`ariaLabel`** `string` — Labels the `<nav>` landmark. Defaults to the
68
+ localized "Pagination".
69
+
70
+ #### `CubeTablePageInfo`
71
+
72
+ Handed to `summary` and `labelFormatter`:
73
+
74
+ ```ts
75
+ interface CubeTablePageInfo {
76
+ page: number; // 1-based
77
+ pageSize: number;
78
+ totalPages: number;
79
+ total: number; // 0 when unknown
80
+ from: number; // 1-based index of the first item on this page
81
+ to: number; // 1-based index of the last item on this page
82
+ }
83
+ ```
84
+
85
+ ### Base Properties
86
+
87
+ Supports Base Properties.
88
+
89
+ ### Styling Properties
90
+
91
+ #### styles
92
+
93
+ Customizes the root element.
94
+
95
+ **Sub-elements:**
96
+
97
+ - `Summary` — the range summary and the `compact` page label
98
+ - `Controls` — the row of nav and page buttons
99
+ - `Gap` — the `…` between two runs of page numbers
100
+
101
+ #### pageSizeSelectStyles
102
+
103
+ Customizes the page-size `Select`.
104
+
105
+ ### Style Properties
106
+
107
+ These properties allow direct style application without using the `styles` prop:
108
+
109
+ - **Position:** `gridArea`, `order`, `gridColumn`, `gridRow`, `placeSelf`, `alignSelf`, `justifySelf`, `zIndex`, `margin`, `inset`, `position`, `scrollMargin`
110
+ - **Dimension:** `width`, `height`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
111
+ - **Block:** `border`, `radius`, `shadow`, `outline`
112
+
113
+ ### Modifiers
114
+
115
+ | Modifier | Type | Description |
116
+ | -------- | ---- | ----------- |
117
+ | `size` | `'small' \| 'medium'` | Control size |
118
+
119
+ ## Examples
120
+
121
+ ### Basic Usage
122
+
123
+ ```jsx
124
+ const [page, setPage] = useState(1);
125
+
126
+ <Pagination page={page} pageSize={50} total={1204} onPageChange={setPage} />;
127
+ ```
128
+
129
+ ### With a Summary
130
+
131
+ ```jsx
132
+ <Pagination page={3} pageSize={50} total={1204} summary onPageChange={setPage} />
133
+ ```
134
+
135
+ ### Many Pages
136
+
137
+ A million rows at 50 per page is 20 000 pages — and still ~7 buttons.
138
+
139
+ ```jsx
140
+ <Pagination page={9421} pageSize={50} total={1000000} summary onPageChange={setPage} />
141
+ ```
142
+
143
+ ### Page Size Selector
144
+
145
+ ```jsx
146
+ const [page, setPage] = useState(1);
147
+ const [pageSize, setPageSize] = useState(50);
148
+
149
+ <Pagination
150
+ page={page}
151
+ pageSize={pageSize}
152
+ total={1204}
153
+ pageSizeOptions={[10, 20, 50, 100, 500]}
154
+ summary
155
+ onPageChange={setPage}
156
+ onPageSizeChange={setPageSize}
157
+ />;
158
+ ```
159
+
160
+ ### Unknown Total (Cursor Pagination)
161
+
162
+ ```jsx
163
+ <Pagination page={page} hasNextPage={hasNextPage} onPageChange={setPage} />
164
+ ```
165
+
166
+ ### Compact
167
+
168
+ ```jsx
169
+ <Pagination type="compact" page={3} pageSize={50} total={1204} summary />
170
+ ```
171
+
172
+ ### Client-side Slicing with `usePagination`
173
+
174
+ ```jsx
175
+ const { pageItems, page, pageSize, total, setPage, setPageSize } =
176
+ usePagination(items, { defaultPageSize: 10 });
177
+
178
+ return (
179
+ <>
180
+ {pageItems.map((item) => (
181
+ <Text key={item}>{item}</Text>
182
+ ))}
183
+ <Pagination
184
+ page={page}
185
+ pageSize={pageSize}
186
+ total={total}
187
+ pageSizeOptions={[5, 10, 25]}
188
+ summary
189
+ onPageChange={setPage}
190
+ onPageSizeChange={setPageSize}
191
+ />
192
+ </>
193
+ );
194
+ ```
195
+
196
+ ## Accessibility
197
+
198
+ ### Keyboard Navigation
199
+
200
+ - `Tab` — moves through the controls in visual order.
201
+ - `Enter` / `Space` — activates the focused button.
202
+
203
+ Every control is a real `<button>`, so there is nothing bespoke to learn.
204
+
205
+ ### Screen Reader Support
206
+
207
+ - The root is a `<nav>` landmark labelled "Pagination" (override with
208
+ `ariaLabel`).
209
+ - The current page button carries `aria-current="page"`.
210
+ - Every button has an explicit `aria-label` — "Page 3", "Next page", and so on
211
+ — so an icon-only button is never announced as unlabelled.
212
+ - The `…` gap is `aria-hidden`; it conveys nothing a screen reader user needs.
213
+
214
+ ### ARIA Properties
215
+
216
+ | Property | Applied to |
217
+ | -------- | ---------- |
218
+ | `aria-label` | The `<nav>` and every button |
219
+ | `aria-current="page"` | The current page button |
220
+ | `aria-hidden="true"` | The `…` gap |
221
+
222
+ ## Best Practices
223
+
224
+ - Do: pass `total` rather than `totalPages` when you know the item count — the
225
+ summary and range labels both need it.
226
+ - Do: use `type="numbers"` (the default) for anything that can grow. It is the
227
+ only mode whose cost does not scale with the page count.
228
+ - Do: reset to page 1 whenever the underlying query changes (a new search term,
229
+ a new filter). A stale page index against a smaller result set shows an empty
230
+ page.
231
+ - Don't: render `type="select"` over a large page count. It builds one
232
+ collection item per page.
233
+ - Don't: pass both `hasNextPage` and a known total and expect the former to win
234
+ — it doesn't.
235
+
236
+ ## Suggested Improvements
237
+
238
+ - A "jump to page" input for very large page counts.
239
+ - Optional URL synchronization, so a page is linkable.
240
+
241
+ ## Related Components
242
+
243
+ - ItemTable — composes `Pagination` in its footer
244
+ - [Select](../fields/Select.md) — used for the page-size selector
245
+ - [Button](../actions/Button.md) — used for every nav and page control
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.0.0-canary-e530064",
3
+ "version": "0.0.0-canary-52c46a3",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {
@@ -37,6 +37,7 @@
37
37
  "build": "tsdown",
38
38
  "watch": "tsdown --watch",
39
39
  "test": "vitest run",
40
+ "test:browser": "vitest run --config vitest.browser.config.ts",
40
41
  "test-cover": "vitest run --coverage",
41
42
  "test-watch": "vitest",
42
43
  "prettier": "prettier --check \"src/**/*.{js,jsx,ts,tsx}\"",
@@ -79,6 +80,7 @@
79
80
  "@react-aria/ssr": "^3.9.10",
80
81
  "@react-aria/utils": "^3.32.0",
81
82
  "@react-spectrum/utils": "^3.12.10",
83
+ "@react-stately/selection": "^3.20.7",
82
84
  "@react-stately/utils": "^3.11.0",
83
85
  "@react-types/shared": "^3.32.1",
84
86
  "@tabler/icons-react": "^3.31.0",
@@ -135,7 +137,9 @@
135
137
  "@types/react-test-renderer": "^18.0.7",
136
138
  "@uiw/react-codemirror": "^4.25.4",
137
139
  "@vitejs/plugin-react": "^6.0.0",
138
- "@vitest/coverage-v8": "^4.1.0",
140
+ "@vitest/browser": "^4.1.10",
141
+ "@vitest/browser-playwright": "^4.1.10",
142
+ "@vitest/coverage-v8": "^4.1.10",
139
143
  "best-effort-json-parser": "^1.2.1",
140
144
  "bytes": "^3.1.2",
141
145
  "chromatic": "^13.1.4",
@@ -148,6 +152,7 @@
148
152
  "markdown-table": "^3.0.3",
149
153
  "npm-run-all": "^4.1.5",
150
154
  "oxlint": "^1.72.0",
155
+ "playwright": "^1.62.1",
151
156
  "prettier": "^3.2.5",
152
157
  "react": "^19.1.1",
153
158
  "react-dom": "^19.1.1",
@@ -162,7 +167,7 @@
162
167
  "tsdown": "^0.20.3",
163
168
  "typescript": "^5.6.3",
164
169
  "vite": "^8.0.0",
165
- "vitest": "^4.1.0"
170
+ "vitest": "^4.1.10"
166
171
  },
167
172
  "browserslist": [
168
173
  "last 2 Chrome versions",