@cube-dev/ui-kit 0.121.2 → 0.121.3

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 (412) hide show
  1. package/README.md +155 -17
  2. package/dist/CHANGELOG.md +6 -0
  3. package/dist/README.md +155 -17
  4. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  5. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  6. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  7. package/dist/_internal/hooks/use-event.js +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  10. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  11. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/dist/_internal/hooks/use-warn.js +1 -1
  13. package/dist/components/Block.js +1 -1
  14. package/dist/components/CollectionItem.js +1 -1
  15. package/dist/components/GlobalStyles.js +1 -1
  16. package/dist/components/GridProvider.js +1 -1
  17. package/dist/components/HiddenInput.js +1 -1
  18. package/dist/components/Root.js +1 -1
  19. package/dist/components/actions/Action/Action.js +1 -1
  20. package/dist/components/actions/Banner/Banner.js +1 -1
  21. package/dist/components/actions/Button/Button.js +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  28. package/dist/components/actions/ItemActionContext.js +1 -1
  29. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/dist/components/actions/Link/Link.js +1 -1
  31. package/dist/components/actions/Menu/Menu.js +1 -1
  32. package/dist/components/actions/Menu/MenuItem.js +1 -1
  33. package/dist/components/actions/Menu/MenuSection.js +1 -1
  34. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/dist/components/actions/Menu/context.js +1 -1
  38. package/dist/components/actions/Menu/styled.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +1 -1
  42. package/dist/components/actions/use-context-menu.js +1 -1
  43. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  44. package/dist/components/content/Alert/Alert.js +1 -1
  45. package/dist/components/content/Alert/use-alert.js +1 -1
  46. package/dist/components/content/Avatar/Avatar.js +1 -1
  47. package/dist/components/content/Badge/Badge.js +1 -1
  48. package/dist/components/content/Card/Card.js +1 -1
  49. package/dist/components/content/Content.js +1 -1
  50. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  51. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  53. package/dist/components/content/Divider.js +1 -1
  54. package/dist/components/content/Footer.js +1 -1
  55. package/dist/components/content/Header.js +1 -1
  56. package/dist/components/content/HotKeys/HotKeys.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 +3 -2
  66. package/dist/components/content/Layout/LayoutContent.js.map +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 +1 -1
  87. package/dist/components/content/Text.js +1 -1
  88. package/dist/components/content/TextItem/TextItem.js +1 -1
  89. package/dist/components/content/Title.js +1 -1
  90. package/dist/components/content/highlightText.js +1 -1
  91. package/dist/components/content/use-auto-tooltip.js +1 -1
  92. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  93. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  94. package/dist/components/fields/Checkbox/context.js +1 -1
  95. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  96. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  97. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  98. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  99. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  100. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  101. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  102. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  103. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  104. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  105. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  106. package/dist/components/fields/DatePicker/intl.js +1 -1
  107. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  108. package/dist/components/fields/DatePicker/props.js +1 -1
  109. package/dist/components/fields/DatePicker/utils.js +1 -1
  110. package/dist/components/fields/FileInput/FileInput.js +1 -1
  111. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  112. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  113. package/dist/components/fields/Input/Input.js +1 -1
  114. package/dist/components/fields/ListBox/ListBox.js +1 -1
  115. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  116. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  117. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  118. package/dist/components/fields/Picker/Picker.js +1 -1
  119. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  120. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  121. package/dist/components/fields/RadioGroup/context.js +1 -1
  122. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  123. package/dist/components/fields/Select/Select.d.ts +2 -3
  124. package/dist/components/fields/Select/Select.js +1 -1
  125. package/dist/components/fields/Slider/Gradation.js +1 -1
  126. package/dist/components/fields/Slider/HueSlider.js +1 -1
  127. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  128. package/dist/components/fields/Slider/Slider.js +1 -1
  129. package/dist/components/fields/Slider/SliderBase.js +1 -1
  130. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  131. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  132. package/dist/components/fields/Slider/elements.js +1 -1
  133. package/dist/components/fields/Slider/index.js +1 -1
  134. package/dist/components/fields/Switch/Switch.js +1 -1
  135. package/dist/components/fields/TextArea/TextArea.js +1 -1
  136. package/dist/components/fields/TextInput/TextInput.js +1 -1
  137. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  138. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  139. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  140. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  141. package/dist/components/form/Form/Field.js +1 -1
  142. package/dist/components/form/Form/Form.js +1 -1
  143. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  144. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  145. package/dist/components/form/Form/SubmitError.js +1 -1
  146. package/dist/components/form/Form/index.js +1 -1
  147. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  148. package/dist/components/form/Form/use-field/use-field.js +1 -1
  149. package/dist/components/form/Form/use-form.js +1 -1
  150. package/dist/components/form/Form/validation.js +1 -1
  151. package/dist/components/form/Label.js +1 -1
  152. package/dist/components/form/wrapper.js +1 -1
  153. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  154. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  155. package/dist/components/layout/Flex.js +1 -1
  156. package/dist/components/layout/Flow.js +1 -1
  157. package/dist/components/layout/Grid.js +1 -1
  158. package/dist/components/layout/Panel.js +1 -1
  159. package/dist/components/layout/Prefix.js +1 -1
  160. package/dist/components/layout/ResizablePanel.js +1 -1
  161. package/dist/components/layout/Space.js +1 -1
  162. package/dist/components/layout/Suffix.js +1 -1
  163. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  164. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  165. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  166. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  167. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  168. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  169. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  170. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  171. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  172. package/dist/components/navigation/Tabs/styled.js +1 -1
  173. package/dist/components/navigation/Tabs/types.js +1 -1
  174. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  175. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  176. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  177. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  178. package/dist/components/other/Calendar/Calendar.js +1 -1
  179. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  180. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  181. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  182. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  183. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  184. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  185. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  186. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  187. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  188. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  189. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  190. package/dist/components/overlays/Dialog/context.js +1 -1
  191. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  192. package/dist/components/overlays/Modal/Modal.js +1 -1
  193. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  194. package/dist/components/overlays/Modal/Overlay.js +1 -1
  195. package/dist/components/overlays/Modal/Popover.js +1 -1
  196. package/dist/components/overlays/Modal/Tray.js +1 -1
  197. package/dist/components/overlays/Modal/Underlay.js +1 -1
  198. package/dist/components/overlays/Notifications/Notification.js +1 -1
  199. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  200. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  201. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  202. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  203. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  204. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  205. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  206. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  207. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  208. package/dist/components/overlays/Notifications/index.js +1 -1
  209. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  210. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  211. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  212. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  213. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  214. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  215. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  216. package/dist/components/overlays/Toast/index.js +1 -1
  217. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  218. package/dist/components/overlays/Toast/useToast.js +1 -1
  219. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  220. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  221. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  222. package/dist/components/overlays/Tooltip/context.js +1 -1
  223. package/dist/components/portal/Portal.js +1 -1
  224. package/dist/components/portal/PortalProvider.js +1 -1
  225. package/dist/components/portal/usePortal.js +1 -1
  226. package/dist/components/shared/InvalidIcon.js +1 -1
  227. package/dist/components/shared/ValidIcon.js +1 -1
  228. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  229. package/dist/components/status/Spin/Cube.js +1 -1
  230. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  231. package/dist/components/status/Spin/Spin.js +1 -1
  232. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  233. package/dist/data/item-themes.js +1 -1
  234. package/dist/data/themes.js +1 -1
  235. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  236. package/dist/icons/AdjustmentsIcon.js +1 -1
  237. package/dist/icons/AiIcon.js +1 -1
  238. package/dist/icons/AreaChartIcon.js +1 -1
  239. package/dist/icons/BackwardIcon.js +1 -1
  240. package/dist/icons/BarChartIcon.js +1 -1
  241. package/dist/icons/BellFilledIcon.js +1 -1
  242. package/dist/icons/BellIcon.js +1 -1
  243. package/dist/icons/BooleanIcon.js +1 -1
  244. package/dist/icons/CalendarEditIcon.js +1 -1
  245. package/dist/icons/CalendarIcon.js +1 -1
  246. package/dist/icons/CaretDownIcon.js +1 -1
  247. package/dist/icons/CaretUpIcon.js +1 -1
  248. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  249. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  250. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  251. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  252. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  253. package/dist/icons/ChartBarLineIcon.js +1 -1
  254. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  255. package/dist/icons/ChartBarStackedIcon.js +1 -1
  256. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  257. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  258. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  259. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  260. package/dist/icons/ChartBubbleIcon.js +1 -1
  261. package/dist/icons/ChartDonut2Icon.js +1 -1
  262. package/dist/icons/ChartFunnelIcon.js +1 -1
  263. package/dist/icons/ChartHeatmapIcon.js +1 -1
  264. package/dist/icons/ChartKPIIcon.js +1 -1
  265. package/dist/icons/ChartPie2Icon.js +1 -1
  266. package/dist/icons/ChartScatterIcon.js +1 -1
  267. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  268. package/dist/icons/CheckCircleIcon.js +1 -1
  269. package/dist/icons/CheckIcon.js +1 -1
  270. package/dist/icons/CircleFilledIcon.js +1 -1
  271. package/dist/icons/ClearIcon.js +1 -1
  272. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  273. package/dist/icons/CloseCircleIcon.js +1 -1
  274. package/dist/icons/CloseIcon.js +1 -1
  275. package/dist/icons/CodeIcon.js +1 -1
  276. package/dist/icons/ColumnTotalIcon.js +1 -1
  277. package/dist/icons/CopyIcon.js +1 -1
  278. package/dist/icons/CountIcon.js +1 -1
  279. package/dist/icons/CubeIcon.js +1 -1
  280. package/dist/icons/CubePauseIcon.js +1 -1
  281. package/dist/icons/CubePlayIcon.js +1 -1
  282. package/dist/icons/CurrencyDollarIcon.js +1 -1
  283. package/dist/icons/DangerIcon.js +1 -1
  284. package/dist/icons/DashboardIcon.js +1 -1
  285. package/dist/icons/DatabaseIcon.js +1 -1
  286. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  287. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  288. package/dist/icons/DirectionIcon.js +1 -1
  289. package/dist/icons/DonutIcon.js +1 -1
  290. package/dist/icons/DownIcon.js +1 -1
  291. package/dist/icons/EditIcon.js +1 -1
  292. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  293. package/dist/icons/ExclamationCircleIcon.js +1 -1
  294. package/dist/icons/ExclamationIcon.js +1 -1
  295. package/dist/icons/EyeIcon.js +1 -1
  296. package/dist/icons/EyeInvisibleIcon.js +1 -1
  297. package/dist/icons/FilterIcon.js +1 -1
  298. package/dist/icons/FolderFilledIcon.js +1 -1
  299. package/dist/icons/FolderIcon.js +1 -1
  300. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  301. package/dist/icons/FolderOpenIcon.js +1 -1
  302. package/dist/icons/ForwardIcon.js +1 -1
  303. package/dist/icons/HierarchyIcon.js +1 -1
  304. package/dist/icons/HierarchyOpenIcon.js +1 -1
  305. package/dist/icons/Icon.js +1 -1
  306. package/dist/icons/InfoCircleIcon.js +1 -1
  307. package/dist/icons/InfoIcon.js +1 -1
  308. package/dist/icons/KeyIcon.js +1 -1
  309. package/dist/icons/LeftIcon.js +1 -1
  310. package/dist/icons/LineChartIcon.js +1 -1
  311. package/dist/icons/LoadingIcon.js +1 -1
  312. package/dist/icons/LockFilledIcon.js +1 -1
  313. package/dist/icons/LockIcon.js +1 -1
  314. package/dist/icons/MoreIcon.js +1 -1
  315. package/dist/icons/NotAllowedIcon.js +1 -1
  316. package/dist/icons/Number123Icon.js +1 -1
  317. package/dist/icons/NumberIcon.js +1 -1
  318. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  319. package/dist/icons/PauseCircleIcon.js +1 -1
  320. package/dist/icons/PauseIcon.js +1 -1
  321. package/dist/icons/PercentageIcon.js +1 -1
  322. package/dist/icons/PieChartIcon.js +1 -1
  323. package/dist/icons/PlayCircleIcon.js +1 -1
  324. package/dist/icons/PlayIcon.js +1 -1
  325. package/dist/icons/PlusIcon.js +1 -1
  326. package/dist/icons/ProgressBarIcon.js +1 -1
  327. package/dist/icons/ReloadIcon.js +1 -1
  328. package/dist/icons/ReportIcon.js +1 -1
  329. package/dist/icons/ReturnIcon.js +1 -1
  330. package/dist/icons/RightIcon.js +1 -1
  331. package/dist/icons/RowTotalsIcon.js +1 -1
  332. package/dist/icons/SchemeIcon.js +1 -1
  333. package/dist/icons/SearchIcon.js +1 -1
  334. package/dist/icons/SemanticQueryIcon.js +1 -1
  335. package/dist/icons/SettingsIcon.js +1 -1
  336. package/dist/icons/ShieldFilledIcon.js +1 -1
  337. package/dist/icons/ShieldIcon.js +1 -1
  338. package/dist/icons/SlashIcon.js +1 -1
  339. package/dist/icons/SparklesIcon.js +1 -1
  340. package/dist/icons/SqlIcon.js +1 -1
  341. package/dist/icons/StatsIcon.js +1 -1
  342. package/dist/icons/StopIcon.js +1 -1
  343. package/dist/icons/StringIcon.js +1 -1
  344. package/dist/icons/SubtotalsIcon.js +1 -1
  345. package/dist/icons/SwitchIcon.js +1 -1
  346. package/dist/icons/TableIcon.js +1 -1
  347. package/dist/icons/ThumbsDownIcon.js +1 -1
  348. package/dist/icons/ThumbsUpIcon.js +1 -1
  349. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  350. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  351. package/dist/icons/ThunderboltIcon.js +1 -1
  352. package/dist/icons/TimeIcon.js +1 -1
  353. package/dist/icons/TrashIcon.js +1 -1
  354. package/dist/icons/UnlockIcon.js +1 -1
  355. package/dist/icons/UpIcon.js +1 -1
  356. package/dist/icons/UserGroupIcon.js +1 -1
  357. package/dist/icons/UserIcon.js +1 -1
  358. package/dist/icons/UserLockIcon.js +1 -1
  359. package/dist/icons/ViewIcon.js +1 -1
  360. package/dist/icons/WarningFilledIcon.js +1 -1
  361. package/dist/icons/WarningIcon.js +1 -1
  362. package/dist/icons/wrap-icon.js +1 -1
  363. package/dist/index.js +1 -1
  364. package/dist/provider.js +1 -1
  365. package/dist/providers/TrackingProvider.js +1 -1
  366. package/dist/providers/navigationAdapter.default.js +1 -1
  367. package/dist/tokens/base.js +1 -1
  368. package/dist/tokens/colors.js +1 -1
  369. package/dist/tokens/index.js +1 -1
  370. package/dist/tokens/layout.js +1 -1
  371. package/dist/tokens/shadows.js +1 -1
  372. package/dist/tokens/sizes.js +1 -1
  373. package/dist/tokens/spacing.js +1 -1
  374. package/dist/utils/ResizeSensor.js +1 -1
  375. package/dist/utils/is-dev-env.js +1 -1
  376. package/dist/utils/modules.js +1 -1
  377. package/dist/utils/promise.js +1 -1
  378. package/dist/utils/raf.js +1 -1
  379. package/dist/utils/random.js +1 -1
  380. package/dist/utils/range.js +1 -1
  381. package/dist/utils/react/RenderCache.js +1 -1
  382. package/dist/utils/react/Slots.js +1 -1
  383. package/dist/utils/react/chain.js +1 -1
  384. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  385. package/dist/utils/react/index.js +1 -1
  386. package/dist/utils/react/interactions.js +1 -1
  387. package/dist/utils/react/isTextOnly.js +1 -1
  388. package/dist/utils/react/mapProps.js +1 -1
  389. package/dist/utils/react/mergeProps.js +1 -1
  390. package/dist/utils/react/nullableValue.js +1 -1
  391. package/dist/utils/react/resolveIcon.js +1 -1
  392. package/dist/utils/react/sharedStore.js +1 -1
  393. package/dist/utils/react/useCombinedRefs.js +1 -1
  394. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  395. package/dist/utils/react/useEventBus.js +1 -1
  396. package/dist/utils/react/useId.js +1 -1
  397. package/dist/utils/react/useIsDarwin.js +1 -1
  398. package/dist/utils/react/useKeySymbols.js +1 -1
  399. package/dist/utils/react/useLayoutEffect.js +1 -1
  400. package/dist/utils/react/useLocalStorage.js +1 -1
  401. package/dist/utils/react/useMergeStyles.js +1 -1
  402. package/dist/utils/react/useQaProps.js +1 -1
  403. package/dist/utils/react/useViewportSize.js +1 -1
  404. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  405. package/dist/utils/tree.js +1 -1
  406. package/dist/utils/warnings.js +1 -1
  407. package/dist/version.js +2 -2
  408. package/docs/.generated +58 -0
  409. package/docs/CreateComponent.md +65 -8
  410. package/docs/Usage.md +304 -0
  411. package/docs/tasty/styles.md +19 -12
  412. package/package.json +2 -2
@@ -44,30 +44,73 @@ function MyComponent(props: MyComponentProps) {
44
44
 
45
45
  ### 2. Style Properties
46
46
 
47
- Style properties allow direct styling without using the `styles` prop. Use predefined style property sets from `/src/tasty/styles/list.ts`:
47
+ Style properties allow consumers to apply layout and styling directly as component props. There are two approaches:
48
+
49
+ **Approach A — `styleProps` on `tasty()`** (simpler, when rest props go directly to the tasty element):
50
+
51
+ `styleProps` tells tasty which CSS properties the component accepts as typed React props. The component still needs to declare the matching TypeScript interfaces so consumers get autocomplete. This works when rest props are spread directly onto the tasty element.
52
+
53
+ ```tsx
54
+ import { tasty, BaseProps, OUTER_STYLES, CONTAINER_STYLES } from '@tenphi/tasty';
55
+ import type { OuterStyleProps, ContainerStyleProps } from '@tenphi/tasty';
56
+
57
+ interface CubeMyComponentProps extends BaseProps, OuterStyleProps, ContainerStyleProps {
58
+ label?: string;
59
+ isDisabled?: boolean;
60
+ }
61
+
62
+ const MyElement = tasty({
63
+ qa: 'MyComponent',
64
+ styles: {
65
+ display: 'flex',
66
+ flow: 'column',
67
+ padding: '2x',
68
+ fill: '#surface',
69
+ radius: '1r',
70
+ border: {
71
+ '': '#border',
72
+ disabled: '#border.5',
73
+ },
74
+ },
75
+ styleProps: [...OUTER_STYLES, ...CONTAINER_STYLES],
76
+ });
77
+
78
+ function MyComponent({ label, isDisabled, ...props }: CubeMyComponentProps) {
79
+ return (
80
+ <MyElement {...props} mods={{ disabled: isDisabled }}>
81
+ {label}
82
+ </MyElement>
83
+ );
84
+ }
85
+ ```
86
+
87
+ **Approach B — `extractStyles` + `filterBaseProps`** (when you need to split props between multiple elements or add custom logic):
48
88
 
49
89
  ```tsx
50
90
  import {
51
91
  CONTAINER_STYLES,
52
92
  ContainerStyleProps,
53
- BASE_STYLES,
54
- BaseStyleProps,
55
93
  TEXT_STYLES,
56
94
  TextStyleProps,
57
95
  extractStyles,
96
+ filterBaseProps,
58
97
  } from '@tenphi/tasty';
59
98
 
60
99
  interface MyComponentProps
61
100
  extends AllBaseProps,
62
- ContainerStyleProps, // All container styles
63
- TextStyleProps { // Text-specific styles
64
- // Component-specific props
101
+ ContainerStyleProps,
102
+ TextStyleProps {
65
103
  }
66
104
 
67
105
  function MyComponent(props: MyComponentProps) {
68
106
  const styles = extractStyles(props, [...CONTAINER_STYLES, ...TEXT_STYLES]);
69
107
 
70
- return <Element styles={styles} />;
108
+ return (
109
+ <Element
110
+ {...filterBaseProps(props, { eventProps: true })}
111
+ styles={styles}
112
+ />
113
+ );
71
114
  }
72
115
  ```
73
116
 
@@ -378,7 +421,7 @@ For input components that need to integrate with forms, see the [Field documenta
378
421
 
379
422
  ## Best Practices
380
423
 
381
- 1. **Always support base properties**: Use `filterBaseProps` and extend `AllBaseProps`
424
+ 1. **Always support base properties**: Use `styleProps` (recommended) or `filterBaseProps`, and extend `AllBaseProps`
382
425
 
383
426
  2. **Provide appropriate style properties**: Choose the right combination of style property sets for your component's needs
384
427
 
@@ -392,6 +435,20 @@ For input components that need to integrate with forms, see the [Field documenta
392
435
 
393
436
  7. **Keep it simple when appropriate**: Not every component needs all features - use what makes sense for your use case
394
437
 
438
+ 8. **Use named React imports**: Import `useCallback`, `useState`, `forwardRef` etc. directly from `'react'` instead of using `React.useCallback(...)`.
439
+
440
+ 9. **Use `useEvent` for stable callbacks**: When a callback doesn't need to trigger re-renders, prefer `useEvent` from `src/_internal/hooks/use-event` for a stable identity that always calls the latest implementation:
441
+
442
+ ```tsx
443
+ import { useEvent } from '../_internal/hooks/use-event';
444
+
445
+ const handleClick = useEvent((e) => {
446
+ // always has latest closure, but stable identity
447
+ });
448
+ ```
449
+
450
+ 10. **Use `variants` for theming, not sizing**: The `variants` option in `tasty()` defines mutually exclusive visual variations (e.g. `default`, `danger`, `outline`). CSS is only generated for variants actually rendered at runtime. Use modifiers for dimensions like `size`.
451
+
395
452
  ## Component Checklist
396
453
 
397
454
  When creating a new component, consider:
package/docs/Usage.md ADDED
@@ -0,0 +1,304 @@
1
+ # Usage Guide
2
+
3
+ This guide covers the design system foundations — tokens, presets, colors, units, and patterns — needed to build and maintain components in Cube UI Kit.
4
+
5
+ For styling engine internals see the [Tasty documentation](./tasty/usage.md). Tasty docs are also bundled with this package in `docs/tasty/`:
6
+
7
+ - **usage.md** — `tasty()` component creation, state mappings, sub-elements, variants, extending components, hooks.
8
+ - **configuration.md** — `configure()` options: tokens, recipes, custom units, style handlers, TypeScript module augmentation.
9
+ - **styles.md** — Complete reference for all enhanced style properties (`fill`, `flow`, `preset`, `border`, `radius`, `transition`, etc.).
10
+ - **debug.md** — `tastyDebug` runtime API for inspecting injected CSS and troubleshooting.
11
+ - **injector.md** — Low-level style injector: `inject()`, `injectGlobal()`, deduplication, SSR.
12
+ - **tasty-static.md** — Zero-runtime `tastyStatic()`, Babel plugin, Next.js/Vite integration.
13
+
14
+ ## Units
15
+
16
+ Tasty provides custom units that map to CSS custom properties defined on the Root component. Use these instead of raw pixel values to keep styling consistent.
17
+
18
+ | Unit | CSS Variable | Example | Computed (defaults) |
19
+ |------|-------------|---------|---------------------|
20
+ | `x` | `var(--gap)` | `2x` → `calc(var(--gap) * 2)` | 16px |
21
+ | `r` | `var(--radius)` | `1r` → `var(--radius)` | 6px |
22
+ | `cr` | `var(--card-radius)` | `1cr` → `var(--card-radius)` | 10px |
23
+ | `bw` | `var(--border-width)` | `1bw` → `var(--border-width)` | 1px |
24
+ | `ow` | `var(--outline-width)` | `1ow` → `var(--outline-width)` | 3px |
25
+
26
+ ## Base Tokens
27
+
28
+ These CSS custom properties are defined in `src/tokens/base.ts` and applied globally.
29
+
30
+ | Token | Default | Description |
31
+ |-------|---------|-------------|
32
+ | `$gap` | `8px` | Base spacing unit (used with `x` multiplier) |
33
+ | `$radius` | `6px` | Base border radius (used with `r` multiplier) |
34
+ | `$border-width` | `1px` | Base border width (used with `bw` multiplier) |
35
+ | `$outline-width` | `3px` | Focus outline width (used with `ow` multiplier) |
36
+ | `$stroke-width` | `1.5` | Icon stroke width |
37
+ | `$disabled-opacity` | `0.4` | Opacity for disabled elements |
38
+ | `$transition` | `80ms` | Default transition duration |
39
+ | `$disclosure-transition` | `120ms` | Disclosure animation duration |
40
+ | `$tab-transition` | `120ms` | Tab animation duration |
41
+ | `$fade-transition` | `200ms` | Fade animation duration |
42
+ | `$large-radius` | `(1r + .5x)` | Larger radius for cards/dialogs |
43
+ | `$card-radius` | `(1r + .5x)` | Card border radius |
44
+ | `$min-dialog-size` | `min(288px, calc(100vw - 2*var(--gap)))` | Minimum dialog width |
45
+
46
+ ## Spacing Tokens
47
+
48
+ Defined in `src/tokens/spacing.ts`. Values use the `x` unit.
49
+
50
+ | Token | Value | Computed (gap=8px) |
51
+ |-------|-------|-------------------|
52
+ | `$space-xs` | `0.5x` | 4px |
53
+ | `$space-sm` | `0.75x` | 6px |
54
+ | `$space-md` | `1x` | 8px |
55
+ | `$space-lg` | `1.5x` | 12px |
56
+ | `$space-xl` | `2x` | 16px |
57
+
58
+ ## Size Tokens
59
+
60
+ Defined in `src/tokens/sizes.ts`. Used for component heights and icon sizes.
61
+
62
+ | Token | Value |
63
+ |-------|-------|
64
+ | `$size-xs` | `24px` |
65
+ | `$size-sm` | `28px` |
66
+ | `$size-md` | `32px` |
67
+ | `$size-lg` | `40px` |
68
+ | `$size-xl` | `48px` |
69
+
70
+ ## Shadow Tokens
71
+
72
+ Defined in `src/tokens/shadows.ts`.
73
+
74
+ | Token | Value |
75
+ |-------|-------|
76
+ | `$item-shadow` | `0 1bw 0.375x #dark.15` |
77
+ | `$card-shadow` | `0 0.5x 2x #shadow` |
78
+ | `$dialog-shadow` | `0 1x 4x #dark.15` |
79
+
80
+ ## Layout Tokens
81
+
82
+ Defined in `src/tokens/layout.ts`.
83
+
84
+ | Token | Value |
85
+ |-------|-------|
86
+ | `$max-content-width` | `1440px` |
87
+ | `$topbar-height` | `48px` |
88
+ | `$sidebar-width` | `200px` |
89
+
90
+ ## Color Tokens
91
+
92
+ All color tokens use `#name` syntax in styles. Opacity variants use `#name.NN` (e.g. `#dark.06` for 6% opacity). Defined in `src/tokens/colors.ts`.
93
+
94
+ ### Base Colors
95
+
96
+ | Token | Description |
97
+ |-------|-------------|
98
+ | `#white`, `#black`, `#clear` | Absolute white, black, and transparent |
99
+ | `#text` | Default text color |
100
+ | `#border` | Default border color |
101
+ | `#placeholder` | Input placeholder text |
102
+ | `#shadow` | Shadow color |
103
+ | `#minor` | Secondary/muted text |
104
+ | `#focus` | Focus ring color |
105
+ | `#pink` | Accent pink |
106
+ | `#light` | Light background |
107
+
108
+ ### Semantic Color Groups
109
+
110
+ Each semantic group provides a base color and variants following the pattern: `#name`, `#name-text`, `#name-bg`, `#name-icon`, `#name-desaturated`, `#name-disabled`.
111
+
112
+ | Group | Hue | Purpose |
113
+ |-------|-----|---------|
114
+ | `#primary` / `#purple` | 280.3° | Primary actions, brand color |
115
+ | `#danger` | 23.1° | Errors, destructive actions |
116
+ | `#success` | 156.9° | Success states, confirmations |
117
+ | `#warning` | 84.3° | Warning states, caution |
118
+ | `#note` | 302.3° | Informational notes |
119
+
120
+ ### Neutral Scales
121
+
122
+ **Dark scale:** `#dark`, `#dark-01` through `#dark-05`, `#dark-bg` — six-step neutral scale from near-black to light gray.
123
+
124
+ **Purple scale:** `#purple-01` through `#purple-04` — additional purple shades for gradients and accents.
125
+
126
+ ### Disabled Colors
127
+
128
+ `#disabled`, `#disabled-text`, `#disabled-bg` — dedicated colors for disabled UI elements.
129
+
130
+ ## Typography Presets
131
+
132
+ Use via the `preset` style property. Modifiers can be appended with a space: `'t1 strong'`, `'h2 italic'`.
133
+
134
+ Defined in `src/tokens/typography.ts`.
135
+
136
+ ### Headings
137
+
138
+ | Preset | Size | Line Height | Weight |
139
+ |--------|------|-------------|--------|
140
+ | `h1` | 36px | 44px | 600 |
141
+ | `h2` | 24px | 32px | 600 |
142
+ | `h3` | 20px | 28px | 600 |
143
+ | `h4` | 18px | 24px | 600 |
144
+ | `h5` | 16px | 22px | 600 |
145
+ | `h6` | 14px | 20px | 600 |
146
+
147
+ ### Text
148
+
149
+ | Preset | Size | Line Height | Weight | Notes |
150
+ |--------|------|-------------|--------|-------|
151
+ | `t1` | 18px | 24px | 400 | |
152
+ | `t2` | 16px | 22px | 400 | |
153
+ | `t2m` | 16px | 22px | 500 | Medium weight variant |
154
+ | `t3` | 14px | 20px | 400 | Base text size |
155
+ | `t3m` | 14px | 20px | 500 | Medium weight variant |
156
+ | `t4` | 12px | 18px | 500 | Small text |
157
+ | `t4m` | 12px | 18px | 600 | Small text, semi-bold |
158
+
159
+ ### Paragraph
160
+
161
+ Paragraph presets have slightly increased line heights compared to text presets at the same size, optimized for multi-line reading.
162
+
163
+ | Preset | Size | Line Height | Weight |
164
+ |--------|------|-------------|--------|
165
+ | `p1` | 18px | 28px | 400 |
166
+ | `p2` | 16px | 24px | 400 |
167
+ | `p3` | 14px | 22px | 400 |
168
+ | `p4` | 12px | 20px | 500 |
169
+
170
+ ### Markdown / Prose
171
+
172
+ Largest line heights, designed for long-form content blocks.
173
+
174
+ | Preset | Size | Line Height | Weight |
175
+ |--------|------|-------------|--------|
176
+ | `m1` | 18px | 32px | 400 |
177
+ | `m2` | 16px | 28px | 400 |
178
+ | `m3` | 14px | 24px | 400 |
179
+
180
+ ### Special Presets
181
+
182
+ | Preset | Description |
183
+ |--------|-------------|
184
+ | `c1` | 14px, weight 600, uppercase — section captions |
185
+ | `c2` | 12px, weight 600, uppercase — small captions |
186
+ | `tag` | 12px, weight 600 — tag/badge text |
187
+ | `strong` | Inherits everything, applies bold weight |
188
+ | `em` | Inherits everything, applies italic style |
189
+ | `default` | Aliases `t3` values — the base text style |
190
+
191
+ ## Themes
192
+
193
+ Component themes are set via the `theme` prop or `theme=name` modifier:
194
+
195
+ | Theme | Purpose |
196
+ |-------|---------|
197
+ | `default` | Standard appearance |
198
+ | `danger` | Destructive / error actions |
199
+ | `special` | Highlighted / promoted actions |
200
+ | `success` | Success / positive states |
201
+ | `warning` | Warning / caution states |
202
+ | `note` | Informational / note states |
203
+
204
+ ## Recipes
205
+
206
+ Reusable style presets applied via the `recipe` style property. Defined in `src/components/Root.tsx`.
207
+
208
+ | Recipe | Purpose |
209
+ |--------|---------|
210
+ | `reset` | Zero out margin, padding, border, outline; set `box-sizing: border-box` |
211
+ | `button` | Base button appearance: no native styling, `touch-action: manipulation` |
212
+ | `input` | Base input appearance: no native styling, inherit color |
213
+ | `input-autofill` | Handle `:-webkit-autofill` styling |
214
+ | `input-placeholder` | Placeholder text styling via `-webkit-text-fill-color` |
215
+ | `input-search-cancel-button` | Hide native search cancel button |
216
+
217
+ ## Common Modifiers
218
+
219
+ These are data-attribute modifiers used in component style maps (via the `mods` prop):
220
+
221
+ | Modifier | Description |
222
+ |----------|-------------|
223
+ | `disabled` | Disabled state |
224
+ | `hovered` | Hover state |
225
+ | `focused` | Focus state |
226
+ | `pressed` | Active/pressed state |
227
+ | `selected` | Selected state |
228
+ | `checked` | Checked state (checkbox, switch) |
229
+ | `invalid` | Invalid validation state |
230
+ | `valid` | Valid validation state |
231
+ | `indeterminate` | Indeterminate state |
232
+ | `collapsed` | Collapsed state |
233
+ | `type=primary` | Primary variant |
234
+ | `type=outline` | Outline variant |
235
+ | `size=small` / `size=medium` / `size=large` | Size modifiers |
236
+
237
+ ## State Syntax
238
+
239
+ In style value maps, keys define when styles apply. States can be combined with boolean logic:
240
+
241
+ ```jsx
242
+ fill: {
243
+ '': '#surface', // default
244
+ ':hover': '#surface-hover', // pseudo-class
245
+ disabled: '#disabled-bg', // data-attribute modifier
246
+ 'type=danger': '#danger', // data-attribute with value
247
+ '@media(w < 768px)': '...', // media query
248
+ '@(panel, w >= 300px)': '...', // container query
249
+ 'disabled & :hover': '...', // combined with AND
250
+ 'a | b': '...', // combined with OR
251
+ '!disabled': '...', // negated
252
+ }
253
+ ```
254
+
255
+ ## Icons
256
+
257
+ Icons live in `src/icons/`. Use existing icons when possible; otherwise use `@tabler/icons-react`.
258
+
259
+ - **`<Icon>`** — wrapper component for sizing and coloring icons. Props: `size`, `stroke`, plus style props.
260
+ - **`wrapIcon(name, icon)`** — creates a Cube icon component from a tabler icon.
261
+ - Always wrap tabler icons with `<Icon>` for custom size/color. Never add props directly to tabler icons.
262
+ - To add new icons run: `pnpm add-icons`
263
+
264
+ ## Form System
265
+
266
+ ### Form Component
267
+
268
+ `<Form>` wraps a native `<form>` and provides validation context:
269
+
270
+ ```jsx
271
+ const [form] = useForm();
272
+
273
+ <Form form={form} onSubmit={(data) => save(data)}>
274
+ <TextInput name="email" label="Email" rules={[{ required: true }, { type: 'email' }]} />
275
+ <SubmitButton>Save</SubmitButton>
276
+ </Form>
277
+ ```
278
+
279
+ ### useForm Hook
280
+
281
+ Returns a `CubeFormInstance` with:
282
+
283
+ - **Get/Set:** `getFieldValue`, `setFieldValue`, `getFieldsValue`, `setFieldsValue`, `getFormData`
284
+ - **Validation:** `validateField`, `validateFields`, `resetFieldsValidation`
285
+ - **State queries:** `isFieldValid`, `isFieldInvalid`, `isFieldTouched`, `isValid`, `isDirty`
286
+ - **Errors:** `getFieldError`, `setFieldError`
287
+
288
+ ### Validation Rules
289
+
290
+ Async rule-based system. Each rule is an object with one of these properties:
291
+
292
+ | Rule | Description |
293
+ |------|-------------|
294
+ | `required` | Field must have a value |
295
+ | `type` | Type check: `email`, `url`, `number`, `integer`, `date`, `hex`, etc. |
296
+ | `pattern` | Regex pattern match |
297
+ | `min` / `max` | Length or value constraints |
298
+ | `enum` | List of allowed values |
299
+ | `whitespace` | Must contain non-whitespace content |
300
+ | `validator` | Custom async function: `(rule, value) => Promise<void>` |
301
+
302
+ ### Field Integration
303
+
304
+ Fields with a `name` prop inside `<Form>` automatically register with the form instance — no `<Field>` wrapper needed. The `useFieldProps` hook handles this internally.
@@ -489,33 +489,40 @@ If the name is not a semantic name, it is used as a literal CSS property name.
489
489
 
490
490
  ### `scrollbar`
491
491
 
492
- Cross-browser scrollbar styling. Sets Firefox (`scrollbar-width`, `scrollbar-color`) and WebKit (`::-webkit-scrollbar` pseudo-elements) properties.
492
+ Scrollbar styling using CSS standard properties (`scrollbar-width`, `scrollbar-color`, `scrollbar-gutter`).
493
493
 
494
- **Syntax:** `[modifiers...] [size] [thumb-color] [track-color] [corner-color]`
494
+ **Syntax:** `[width] [modifiers...] [thumb-color] [track-color]`
495
495
 
496
- **Modifiers:**
496
+ **Width values** (controls `scrollbar-width`, default is `thin`):
497
+
498
+ | Value | Effect |
499
+ |-------|--------|
500
+ | `thin` | Thin scrollbar (default) |
501
+ | `auto` | Browser-default scrollbar width |
502
+ | `none` | Hide scrollbar (still scrollable, no colors applied) |
503
+
504
+ **Modifiers** (controls gutter and overflow behavior):
497
505
 
498
506
  | Modifier | Effect |
499
507
  |----------|--------|
500
- | `thin` | Thin scrollbar (`scrollbar-width: thin`) |
501
- | `none` | Hide scrollbar (still scrollable) |
502
- | `auto` | Browser-default scrollbar width |
503
508
  | `stable` | Reserve space for scrollbar (`scrollbar-gutter: stable`) |
504
509
  | `both-edges` | Reserve space on both sides (`scrollbar-gutter: stable both-edges`) |
505
510
  | `always` | Force scrollbars visible (`overflow: scroll` + `scrollbar-gutter: stable`) |
506
- | `styled` | Enhanced appearance with rounded thumb, transitions, and custom sizing |
507
511
 
508
- **Colors:** Up to 3 color values for thumb, track, and corner (optional).
512
+ **Colors:** Up to 2 color values for thumb and track (optional), applied via `scrollbar-color`.
513
+
514
+ **Defaults:** When no colors are specified, the thumb color comes from the `#scrollbar-thumb` token (`#text.5`) and the track color from the `#scrollbar-track` token (`#dark-bg`). These tokens are provided by the base token set. If the base tokens are not loaded, the track falls back to `transparent` via a CSS fallback, while the thumb has no CSS-level fallback — the browser treats the entire `scrollbar-color` declaration as invalid and reverts to the platform-default scrollbar appearance.
509
515
 
510
- **Defaults:** size = `8px`, thumb = `$scrollbar-thumb-color`, track = `transparent`, corner = same as track
516
+ **Note:** `none` takes precedence over all other modifiers and colors. Combining `none` with other tokens (e.g., `"none always #red"`) produces a warning, and only `scrollbar-width: none` is applied.
511
517
 
512
518
  | Value | Effect |
513
519
  |-------|--------|
514
520
  | `true` | Thin scrollbar with default thumb/track colors |
515
521
  | `"none"` | Hidden scrollbar (still scrollable) |
516
- | `"thin 10px #purple.40 #dark.04"` | Thin, 10px, thumb `#purple.40`, track `#dark.04` |
517
- | `"styled 12px #purple.40 #dark.04 #white.10"` | Styled, 12px, thumb `#purple.40`, track `#dark.04`, corner `#white.10` |
518
- | `"always 8px #primary.50 #white.02"` | Always visible, 8px, thumb `#primary.50`, track `#white.02` |
522
+ | `"thin #purple.40 #dark.04"` | Thin scrollbar with custom colors |
523
+ | `"auto #red #blue"` | Browser-default width with custom colors |
524
+ | `"always #primary.50 #white.02"` | Always visible with custom colors |
525
+ | `"thin stable #red #blue"` | Thin, gutter reserved, custom colors |
519
526
 
520
527
  ### `fade`
521
528
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.121.2",
3
+ "version": "0.121.3",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {
@@ -45,7 +45,7 @@
45
45
  "@react-types/shared": "^3.32.1",
46
46
  "@tabler/icons-react": "^3.31.0",
47
47
  "@tanstack/react-virtual": "^3.13.12",
48
- "@tenphi/tasty": "0.8.0",
48
+ "@tenphi/tasty": "0.9.0",
49
49
  "clipboard-copy": "^4.0.1",
50
50
  "clsx": "^1.1.1",
51
51
  "diff": "^8.0.3",