@cube-dev/ui-kit 0.124.1 → 0.124.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 (413) hide show
  1. package/dist/CHANGELOG.md +12 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -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 +1 -1
  41. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  42. package/dist/components/content/Alert/Alert.js +1 -1
  43. package/dist/components/content/Alert/use-alert.js +1 -1
  44. package/dist/components/content/Avatar/Avatar.js +1 -1
  45. package/dist/components/content/Badge/Badge.js +1 -1
  46. package/dist/components/content/Card/Card.js +1 -1
  47. package/dist/components/content/Content.js +1 -1
  48. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  49. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  50. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  51. package/dist/components/content/Divider.js +1 -1
  52. package/dist/components/content/Footer.js +1 -1
  53. package/dist/components/content/Header.js +1 -1
  54. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  55. package/dist/components/content/Item/Item.js +1 -1
  56. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  57. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  58. package/dist/components/content/Layout/GridLayout.js +1 -1
  59. package/dist/components/content/Layout/Layout.js +1 -1
  60. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  61. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  62. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  63. package/dist/components/content/Layout/LayoutContent.js +1 -1
  64. package/dist/components/content/Layout/LayoutContext.js +1 -1
  65. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  66. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  67. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  68. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  69. package/dist/components/content/Layout/LayoutPane.js +1 -1
  70. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  71. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  72. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  73. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  74. package/dist/components/content/Layout/index.js +1 -1
  75. package/dist/components/content/Layout/utils.js +1 -1
  76. package/dist/components/content/Paragraph.js +1 -1
  77. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  78. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  79. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  80. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  81. package/dist/components/content/Result/Result.js +1 -1
  82. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  83. package/dist/components/content/Tag/Tag.js +1 -1
  84. package/dist/components/content/Text.js +1 -1
  85. package/dist/components/content/TextItem/TextItem.js +1 -1
  86. package/dist/components/content/Title.js +1 -1
  87. package/dist/components/content/highlightText.js +1 -1
  88. package/dist/components/content/use-auto-tooltip.js +1 -1
  89. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  90. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  91. package/dist/components/fields/Checkbox/context.js +1 -1
  92. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  93. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  94. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  95. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  96. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  97. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  98. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  99. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  100. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  101. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  102. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  103. package/dist/components/fields/DatePicker/intl.js +1 -1
  104. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  105. package/dist/components/fields/DatePicker/props.js +1 -1
  106. package/dist/components/fields/DatePicker/utils.js +1 -1
  107. package/dist/components/fields/FileInput/FileInput.js +1 -1
  108. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  109. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  110. package/dist/components/fields/Input/Input.js +1 -1
  111. package/dist/components/fields/ListBox/ListBox.js +1 -1
  112. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  113. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  114. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  115. package/dist/components/fields/Picker/Picker.js +1 -1
  116. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  117. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  118. package/dist/components/fields/RadioGroup/context.js +1 -1
  119. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  120. package/dist/components/fields/Select/Select.d.ts +1 -830
  121. package/dist/components/fields/Select/Select.js +1 -1
  122. package/dist/components/fields/Slider/Gradation.js +1 -1
  123. package/dist/components/fields/Slider/HueSlider.js +1 -1
  124. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  125. package/dist/components/fields/Slider/Slider.js +1 -1
  126. package/dist/components/fields/Slider/SliderBase.js +1 -1
  127. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  128. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  129. package/dist/components/fields/Slider/elements.js +1 -1
  130. package/dist/components/fields/Slider/index.js +1 -1
  131. package/dist/components/fields/Switch/Switch.js +1 -1
  132. package/dist/components/fields/TextArea/TextArea.js +1 -1
  133. package/dist/components/fields/TextInput/TextInput.js +1 -1
  134. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  135. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  136. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  137. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  138. package/dist/components/form/Form/Field.js +1 -1
  139. package/dist/components/form/Form/Form.js +1 -1
  140. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  141. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  142. package/dist/components/form/Form/SubmitError.js +1 -1
  143. package/dist/components/form/Form/index.js +1 -1
  144. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  145. package/dist/components/form/Form/use-field/use-field.js +1 -1
  146. package/dist/components/form/Form/use-form.js +1 -1
  147. package/dist/components/form/Form/validation.js +1 -1
  148. package/dist/components/form/Label.js +1 -1
  149. package/dist/components/form/wrapper.js +1 -1
  150. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  151. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  152. package/dist/components/layout/Flex.js +1 -1
  153. package/dist/components/layout/Flow.js +1 -1
  154. package/dist/components/layout/Grid.js +1 -1
  155. package/dist/components/layout/Panel.js +1 -1
  156. package/dist/components/layout/Prefix.js +1 -1
  157. package/dist/components/layout/ResizablePanel.js +1 -1
  158. package/dist/components/layout/Space.js +1 -1
  159. package/dist/components/layout/Suffix.js +1 -1
  160. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  161. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  162. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  163. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  164. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  165. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  166. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  167. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  168. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  169. package/dist/components/navigation/Tabs/styled.js +1 -1
  170. package/dist/components/navigation/Tabs/types.js +1 -1
  171. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  172. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  173. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  174. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  175. package/dist/components/other/Calendar/Calendar.js +1 -1
  176. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  177. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  178. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  179. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  180. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  181. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  182. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  183. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  184. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  185. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  186. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  187. package/dist/components/overlays/Dialog/context.js +1 -1
  188. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  189. package/dist/components/overlays/Modal/Modal.js +1 -1
  190. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  191. package/dist/components/overlays/Modal/Overlay.js +1 -1
  192. package/dist/components/overlays/Modal/Popover.js +1 -1
  193. package/dist/components/overlays/Modal/Tray.js +1 -1
  194. package/dist/components/overlays/Modal/Underlay.js +1 -1
  195. package/dist/components/overlays/Notifications/Notification.js +1 -1
  196. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  197. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  198. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  199. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  200. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  201. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  202. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  203. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  204. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  205. package/dist/components/overlays/Notifications/index.js +1 -1
  206. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  207. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  208. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  209. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  210. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  211. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  212. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  213. package/dist/components/overlays/Toast/index.js +1 -1
  214. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  215. package/dist/components/overlays/Toast/useToast.js +1 -1
  216. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  217. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  218. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  219. package/dist/components/overlays/Tooltip/context.js +1 -1
  220. package/dist/components/portal/Portal.js +1 -1
  221. package/dist/components/portal/PortalProvider.js +1 -1
  222. package/dist/components/portal/usePortal.js +1 -1
  223. package/dist/components/shared/InvalidIcon.js +1 -1
  224. package/dist/components/shared/ValidIcon.js +1 -1
  225. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  226. package/dist/components/status/Spin/Cube.js +1 -1
  227. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  228. package/dist/components/status/Spin/Spin.js +1 -1
  229. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  230. package/dist/data/item-themes.js +1 -1
  231. package/dist/data/themes.js +1 -1
  232. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  233. package/dist/icons/AdjustmentsIcon.js +1 -1
  234. package/dist/icons/AiIcon.js +1 -1
  235. package/dist/icons/AreaChartIcon.js +1 -1
  236. package/dist/icons/BackwardIcon.js +1 -1
  237. package/dist/icons/BarChartIcon.js +1 -1
  238. package/dist/icons/BellFilledIcon.js +1 -1
  239. package/dist/icons/BellIcon.js +1 -1
  240. package/dist/icons/BooleanIcon.js +1 -1
  241. package/dist/icons/CalendarEditIcon.js +1 -1
  242. package/dist/icons/CalendarIcon.js +1 -1
  243. package/dist/icons/CaretDownIcon.js +1 -1
  244. package/dist/icons/CaretUpIcon.js +1 -1
  245. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  246. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  247. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  248. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  249. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  250. package/dist/icons/ChartBarLineIcon.js +1 -1
  251. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  252. package/dist/icons/ChartBarStackedIcon.js +1 -1
  253. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  254. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  255. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  256. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  257. package/dist/icons/ChartBubbleIcon.js +1 -1
  258. package/dist/icons/ChartDonut2Icon.js +1 -1
  259. package/dist/icons/ChartFunnelIcon.js +1 -1
  260. package/dist/icons/ChartHeatmapIcon.js +1 -1
  261. package/dist/icons/ChartKPIIcon.js +1 -1
  262. package/dist/icons/ChartPie2Icon.js +1 -1
  263. package/dist/icons/ChartScatterIcon.js +1 -1
  264. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  265. package/dist/icons/CheckCircleIcon.js +1 -1
  266. package/dist/icons/CheckIcon.js +1 -1
  267. package/dist/icons/CircleFilledIcon.js +1 -1
  268. package/dist/icons/ClearIcon.js +1 -1
  269. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  270. package/dist/icons/CloseCircleIcon.js +1 -1
  271. package/dist/icons/CloseIcon.js +1 -1
  272. package/dist/icons/CodeIcon.js +1 -1
  273. package/dist/icons/ColumnTotalIcon.js +1 -1
  274. package/dist/icons/CopyIcon.js +1 -1
  275. package/dist/icons/CountIcon.js +1 -1
  276. package/dist/icons/CubeIcon.js +1 -1
  277. package/dist/icons/CubePauseIcon.js +1 -1
  278. package/dist/icons/CubePlayIcon.js +1 -1
  279. package/dist/icons/CurrencyDollarIcon.js +1 -1
  280. package/dist/icons/DangerIcon.js +1 -1
  281. package/dist/icons/DashboardIcon.js +1 -1
  282. package/dist/icons/DatabaseIcon.js +1 -1
  283. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  284. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  285. package/dist/icons/DirectionIcon.js +1 -1
  286. package/dist/icons/DonutIcon.js +1 -1
  287. package/dist/icons/DownIcon.js +1 -1
  288. package/dist/icons/EditIcon.js +1 -1
  289. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  290. package/dist/icons/ExclamationCircleIcon.js +1 -1
  291. package/dist/icons/ExclamationIcon.js +1 -1
  292. package/dist/icons/EyeIcon.js +1 -1
  293. package/dist/icons/EyeInvisibleIcon.js +1 -1
  294. package/dist/icons/FilterIcon.js +1 -1
  295. package/dist/icons/FolderFilledIcon.js +1 -1
  296. package/dist/icons/FolderIcon.js +1 -1
  297. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  298. package/dist/icons/FolderOpenIcon.js +1 -1
  299. package/dist/icons/ForwardIcon.js +1 -1
  300. package/dist/icons/HierarchyIcon.js +1 -1
  301. package/dist/icons/HierarchyOpenIcon.js +1 -1
  302. package/dist/icons/Icon.js +1 -1
  303. package/dist/icons/InfoCircleIcon.js +1 -1
  304. package/dist/icons/InfoIcon.js +1 -1
  305. package/dist/icons/KeyIcon.js +1 -1
  306. package/dist/icons/LeftIcon.js +1 -1
  307. package/dist/icons/LineChartIcon.js +1 -1
  308. package/dist/icons/LoadingIcon.js +1 -1
  309. package/dist/icons/LockFilledIcon.js +1 -1
  310. package/dist/icons/LockIcon.js +1 -1
  311. package/dist/icons/MoreIcon.js +1 -1
  312. package/dist/icons/NotAllowedIcon.js +1 -1
  313. package/dist/icons/Number123Icon.js +1 -1
  314. package/dist/icons/NumberIcon.js +1 -1
  315. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  316. package/dist/icons/PauseCircleIcon.js +1 -1
  317. package/dist/icons/PauseIcon.js +1 -1
  318. package/dist/icons/PercentageIcon.js +1 -1
  319. package/dist/icons/PieChartIcon.js +1 -1
  320. package/dist/icons/PlayCircleIcon.js +1 -1
  321. package/dist/icons/PlayIcon.js +1 -1
  322. package/dist/icons/PlusIcon.js +1 -1
  323. package/dist/icons/ProgressBarIcon.js +1 -1
  324. package/dist/icons/ReloadIcon.js +1 -1
  325. package/dist/icons/ReportIcon.js +1 -1
  326. package/dist/icons/ReturnIcon.js +1 -1
  327. package/dist/icons/RightIcon.js +1 -1
  328. package/dist/icons/RowTotalsIcon.js +1 -1
  329. package/dist/icons/SchemeIcon.js +1 -1
  330. package/dist/icons/SearchIcon.js +1 -1
  331. package/dist/icons/SemanticQueryIcon.js +1 -1
  332. package/dist/icons/SettingsIcon.js +1 -1
  333. package/dist/icons/ShieldFilledIcon.js +1 -1
  334. package/dist/icons/ShieldIcon.js +1 -1
  335. package/dist/icons/SlashIcon.js +1 -1
  336. package/dist/icons/SparklesIcon.js +1 -1
  337. package/dist/icons/SqlIcon.js +1 -1
  338. package/dist/icons/StatsIcon.js +1 -1
  339. package/dist/icons/StopIcon.js +1 -1
  340. package/dist/icons/StringIcon.js +1 -1
  341. package/dist/icons/SubtotalsIcon.js +1 -1
  342. package/dist/icons/SwitchIcon.js +1 -1
  343. package/dist/icons/TableIcon.js +1 -1
  344. package/dist/icons/ThumbsDownIcon.js +1 -1
  345. package/dist/icons/ThumbsUpIcon.js +1 -1
  346. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  347. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  348. package/dist/icons/ThunderboltIcon.js +1 -1
  349. package/dist/icons/TimeIcon.js +1 -1
  350. package/dist/icons/TrashIcon.js +1 -1
  351. package/dist/icons/UnlockIcon.js +1 -1
  352. package/dist/icons/UpIcon.js +1 -1
  353. package/dist/icons/UserGroupIcon.js +1 -1
  354. package/dist/icons/UserIcon.js +1 -1
  355. package/dist/icons/UserLockIcon.js +1 -1
  356. package/dist/icons/ViewIcon.js +1 -1
  357. package/dist/icons/WarningFilledIcon.js +1 -1
  358. package/dist/icons/WarningIcon.js +1 -1
  359. package/dist/icons/wrap-icon.js +1 -1
  360. package/dist/index.js +1 -1
  361. package/dist/node_modules/.pnpm/csstype@3.1.2/node_modules/csstype/index.d.ts +1 -1
  362. package/dist/provider.js +1 -1
  363. package/dist/providers/TrackingProvider.js +1 -1
  364. package/dist/providers/navigationAdapter.default.js +1 -1
  365. package/dist/tokens/base.js +1 -1
  366. package/dist/tokens/colors.js +1 -1
  367. package/dist/tokens/index.js +1 -1
  368. package/dist/tokens/layout.js +1 -1
  369. package/dist/tokens/shadows.js +1 -1
  370. package/dist/tokens/sizes.js +1 -1
  371. package/dist/tokens/spacing.js +1 -1
  372. package/dist/tokens/typography.js +1 -1
  373. package/dist/utils/ResizeSensor.js +1 -1
  374. package/dist/utils/is-dev-env.js +1 -1
  375. package/dist/utils/modules.js +1 -1
  376. package/dist/utils/promise.js +1 -1
  377. package/dist/utils/raf.js +1 -1
  378. package/dist/utils/random.js +1 -1
  379. package/dist/utils/range.js +1 -1
  380. package/dist/utils/react/RenderCache.js +1 -1
  381. package/dist/utils/react/Slots.js +1 -1
  382. package/dist/utils/react/chain.js +1 -1
  383. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  384. package/dist/utils/react/index.js +1 -1
  385. package/dist/utils/react/interactions.js +1 -1
  386. package/dist/utils/react/isTextOnly.js +1 -1
  387. package/dist/utils/react/mapProps.js +1 -1
  388. package/dist/utils/react/mergeProps.js +1 -1
  389. package/dist/utils/react/nullableValue.js +1 -1
  390. package/dist/utils/react/resolveIcon.js +1 -1
  391. package/dist/utils/react/sharedStore.js +1 -1
  392. package/dist/utils/react/useCombinedRefs.js +1 -1
  393. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  394. package/dist/utils/react/useEventBus.js +1 -1
  395. package/dist/utils/react/useId.js +1 -1
  396. package/dist/utils/react/useIsDarwin.js +1 -1
  397. package/dist/utils/react/useKeySymbols.js +1 -1
  398. package/dist/utils/react/useLayoutEffect.js +1 -1
  399. package/dist/utils/react/useLocalStorage.js +1 -1
  400. package/dist/utils/react/useMergeStyles.js +1 -1
  401. package/dist/utils/react/useQaProps.js +1 -1
  402. package/dist/utils/react/useViewportSize.js +1 -1
  403. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  404. package/dist/utils/styles.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/tasty/design-system.md +8 -2
  409. package/docs/tasty/dsl.md +2 -0
  410. package/docs/tasty/methodology.md +68 -4
  411. package/docs/tasty/runtime.md +80 -0
  412. package/docs/tasty/styles.md +19 -17
  413. package/package.json +2 -2
package/dist/provider.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { EventBusProvider } from "./utils/react/useEventBus.js";
3
3
  import { defaultNavigationAdapter } from "./providers/navigationAdapter.default.js";
4
4
  import { createContext, useContext, useMemo } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { createContext, useContext, useMemo } from "react";
3
3
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/providers/navigationAdapter.default.ts
3
3
  /**
4
4
  * Converts a Path object to a string URL
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/tokens/base.ts
3
3
  /**
4
4
  * Base design system tokens.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/tokens/colors.ts
3
3
  const PINK_HUE = 5;
4
4
  const PURPLE_HUE = 280.3;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { BASE_TOKENS } from "./base.js";
3
3
  import { COLOR_TOKENS } from "./colors.js";
4
4
  import { LAYOUT_TOKENS } from "./layout.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/tokens/layout.ts
3
3
  /**
4
4
  * Layout-related tokens for common UI dimensions.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/tokens/shadows.ts
3
3
  /**
4
4
  * Shadow tokens using tasty shorthand syntax.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/tokens/sizes.ts
3
3
  /**
4
4
  * Component size values in pixels.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/tokens/spacing.ts
3
3
  /**
4
4
  * Spacing tokens using tasty multiplier syntax.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/tokens/typography.ts
3
3
  /**
4
4
  * Typography presets for headings, text, and special styles.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/ResizeSensor.ts
3
3
  /**
4
4
  * Iterate over each of the provided element(s).
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/is-dev-env.ts
3
3
  function isDevEnv() {
4
4
  if (typeof window !== "undefined" && window.localStorage) try {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/modules.ts
3
3
  function extractModule(promise) {
4
4
  return promise.then((module) => module.default || module);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/promise.ts
3
3
  function timeout(ms = 30) {
4
4
  return new Promise((resolve) => {
package/dist/utils/raf.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/raf.ts
3
3
  /**
4
4
  * Chains N requestAnimationFrame calls and returns a cancel function.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/random.ts
3
3
  function random(min, max) {
4
4
  const realMin = min < max ? min : max;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/range.ts
3
3
  function range(count) {
4
4
  return Array.from({ length: count }, (_, i) => i);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { useRef } from "react";
3
3
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { mergeProps } from "./mergeProps.js";
3
3
  import { Children, cloneElement, createContext, useContext, useMemo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/react/chain.ts
3
3
  /**
4
4
  * Calls all functions in the order they were chained with the same arguments.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/react/forwardRefWithGenerics.tsx
3
3
  /**
4
4
  * A helper for creating forwardRef components with generic types.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { forwardRefWithGenerics } from "./forwardRefWithGenerics.js";
4
4
  import { isTextOnly } from "./isTextOnly.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { useState } from "react";
3
3
  import { useFocus, useFocusVisible } from "react-aria";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { Children, isValidElement } from "react";
3
3
 
4
4
  //#region src/utils/react/isTextOnly.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/react/mapProps.ts
3
3
  /** Converts AriaButtonProps to CubeButtonProps */
4
4
  function ariaToCubeButtonProps(props) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { mergeIds } from "./useId.js";
4
4
  import { mergeStyles } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/react/nullableValue.ts
3
3
  function castNullableStringValue(props) {
4
4
  return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v));
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/react/resolveIcon.ts
3
3
  /**
4
4
  * Resolves a dynamic icon prop to its content and slot state.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useCombinedRefs.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { createSharedStore } from "./sharedStore.js";
3
3
  import { useEffect } from "react";
4
4
  import { useFocusVisible } from "react-aria";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import React, { createContext, useCallback, useContext, useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useEventBus.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { useSSRSafeId } from "@react-aria/ssr";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useIsDarwin.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { useIsDarwin } from "./useIsDarwin.js";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import * as React$1 from "react";
3
3
 
4
4
  //#region src/utils/react/useLayoutEffect.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useCallback, useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { mergeStyles } from "@tenphi/tasty";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/react/useQaProps.ts
3
3
  /**
4
4
  * Processes QA props.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useViewportSize.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  import { isValidElement } from "react";
3
3
  import { isFragment } from "react-is";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/styles.ts
3
3
  /**
4
4
  * Split properties into style and non-style properties.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/tree.ts
3
3
  function toFlatTree(tree, includingFolders) {
4
4
  return tree.reduce((result, node) => {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/utils/warnings.ts
3
3
  const SUGGESTED_PROP_MAP = {
4
4
  disabled: "isDisabled",
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.124.1 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.124.3 | Cube Dev Team */
2
2
  //#region src/version.ts
3
- const VERSION = "0.124.1";
3
+ const VERSION = "0.124.3";
4
4
  if (typeof window !== "undefined") {
5
5
  const version = VERSION;
6
6
  window.CubeUIKit = window.CubeUIKit || { version };
@@ -333,13 +333,19 @@ A design system works best when the rules for customization are explicit. Tasty
333
333
  <Space flow="row" gap="3x" padding="2x">
334
334
  ```
335
335
 
336
- 2. **Pass tokens** — inject runtime values through the `tokens` prop for per-instance customization:
336
+ 2. **Use modProps** — control component states through typed props instead of `mods`:
337
+
338
+ ```tsx
339
+ <Button isLoading size="large">Submit</Button>
340
+ ```
341
+
342
+ 3. **Pass tokens** — inject runtime values through the `tokens` prop for per-instance customization:
337
343
 
338
344
  ```tsx
339
345
  <ProgressBar tokens={{ '$progress': `${percent}%` }} />
340
346
  ```
341
347
 
342
- 3. **Create styled wrappers** — extend a component's styles with `tasty(Base, { styles })`:
348
+ 4. **Create styled wrappers** — extend a component's styles with `tasty(Base, { styles })`:
343
349
 
344
350
  ```tsx
345
351
  const DangerButton = tasty(Button, {
package/docs/tasty/dsl.md CHANGED
@@ -93,6 +93,8 @@ mods={{ hovered: true, theme: 'danger' }}
93
93
  // → data-hovered="" data-theme="danger"
94
94
  ```
95
95
 
96
+ Modifiers can also be exposed as top-level component props via `modProps` — see [Runtime — Mod Props](runtime.md#mod-props).
97
+
96
98
  ---
97
99
 
98
100
  ## Color Tokens & Opacity
@@ -163,6 +163,61 @@ Exposing every CSS property as a prop defeats the purpose of a design system. Th
163
163
 
164
164
  ---
165
165
 
166
+ ## modProps and mods
167
+
168
+ `modProps` expose modifier keys as top-level component props — the modifier equivalent of `styleProps`. Use them when a component has a fixed set of known state modifiers.
169
+
170
+ ```tsx
171
+ const Card = tasty({
172
+ modProps: {
173
+ isLoading: Boolean,
174
+ isSelected: Boolean,
175
+ },
176
+ styles: {
177
+ fill: { '': '#surface', isLoading: '#surface.5' },
178
+ border: { '': '1bw solid #outline', isSelected: '2bw solid #primary' },
179
+ },
180
+ });
181
+
182
+ // Clean prop API — no mods object needed
183
+ <Card isLoading isSelected>Content</Card>
184
+ ```
185
+
186
+ ### When to use which
187
+
188
+ | Pattern | Use when |
189
+ |---|---|
190
+ | `modProps` | The component has a fixed set of known boolean/string states that drive styles. Provides TypeScript autocomplete and a cleaner JSX API. |
191
+ | `mods` prop | The component needs arbitrary or dynamic modifiers that aren't known at definition time. |
192
+ | Both | Combine `modProps` for the known states and `mods` for ad-hoc overrides. Mod props take precedence. |
193
+ | `styleProps` | Exposing CSS properties (layout, sizing) for customization — different from modifiers. |
194
+
195
+ ### Typed modProps vs array form
196
+
197
+ The object form gives precise TypeScript types using JS constructors (`Boolean`, `String`, `Number`) or enum arrays:
198
+
199
+ ```tsx
200
+ const Button = tasty({
201
+ modProps: {
202
+ isLoading: Boolean,
203
+ size: ['small', 'medium', 'large'] as const,
204
+ },
205
+ // ...
206
+ });
207
+
208
+ // TypeScript knows: isLoading?: boolean, size?: 'small' | 'medium' | 'large'
209
+ ```
210
+
211
+ The array form is simpler but types all values as `ModValue`:
212
+
213
+ ```tsx
214
+ modProps: ['isLoading', 'isSelected'] as const,
215
+ ```
216
+
217
+ For the full API reference, see [Runtime — Mod Props](runtime.md#mod-props).
218
+
219
+ ---
220
+
166
221
  ## tokens prop for dynamic values
167
222
 
168
223
  Every Tasty component accepts a `tokens` prop that renders as inline CSS custom properties on the element. This is the mechanism for per-instance dynamic values.
@@ -402,8 +457,9 @@ See [Configuration](configuration.md) for the full `configure()` API.
402
457
  - **Use semantic transition names** (`transition: 'theme 0.3s'`) instead of listing CSS properties
403
458
  - **Use `elements` prop** to declare typed sub-components for compound components
404
459
  - **Use `styleProps`** to define what product engineers can customize
460
+ - **Use `modProps`** to expose known modifier states as clean component props
405
461
  - **Use `tokens` prop** for per-instance dynamic values (progress, user color)
406
- - **Use modifiers** (`mods`) for state-driven style changes instead of runtime `styles` prop changes
462
+ - **Use modifiers** (`mods` or `modProps`) for state-driven style changes instead of runtime `styles` prop changes
407
463
 
408
464
  ### Avoid
409
465
 
@@ -441,11 +497,19 @@ Tasty's enhanced properties provide concise syntax, better composability, and si
441
497
  // Bad: styles object changes every render
442
498
  <Card styles={{ padding: isCompact ? '2x' : '4x' }} />
443
499
 
444
- // Good: use modifiers
445
- <Card mods={{ compact: isCompact }} />
500
+ // Good: use modifiers via modProps
501
+ <Card isCompact={isCompact} />
502
+
503
+ // Or via mods object
504
+ <Card mods={{ isCompact }} />
446
505
 
447
506
  // In the component definition:
448
- padding: { '': '4x', compact: '2x' },
507
+ const Card = tasty({
508
+ modProps: ['isCompact'] as const,
509
+ styles: {
510
+ padding: { '': '4x', isCompact: '2x' },
511
+ },
512
+ });
449
513
  ```
450
514
 
451
515
  Modifiers are compiled into exclusive selectors once. Changing `styles` at runtime forces Tasty to regenerate and re-inject CSS.
@@ -74,6 +74,86 @@ For predefined style prop lists (`FLOW_STYLES`, `POSITION_STYLES`, `DIMENSION_ST
74
74
 
75
75
  ---
76
76
 
77
+ ## Mod Props
78
+
79
+ Use `modProps` to expose modifier keys as direct component props instead of requiring the `mods` object:
80
+
81
+ ```jsx
82
+ // Before: mods object
83
+ <Button mods={{ isLoading: true, size: 'large' }}>Submit</Button>
84
+
85
+ // After: mod props
86
+ <Button isLoading size="large">Submit</Button>
87
+ ```
88
+
89
+ ### Array form
90
+
91
+ List modifier key names. Types default to `ModValue` (`boolean | string | number | undefined | null`):
92
+
93
+ ```jsx
94
+ const Button = tasty({
95
+ modProps: ['isLoading', 'isSelected'] as const,
96
+ styles: {
97
+ fill: { '': '#surface', isLoading: '#surface.5' },
98
+ border: { '': '1bw solid #outline', isSelected: '2bw solid #primary' },
99
+ },
100
+ });
101
+
102
+ <Button isLoading isSelected>Submit</Button>
103
+ // Renders: <button data-is-loading="" data-is-selected="">Submit</button>
104
+ ```
105
+
106
+ ### Object form (typed)
107
+
108
+ Map modifier names to type descriptors for precise TypeScript types:
109
+
110
+ ```tsx
111
+ const Button = tasty({
112
+ modProps: {
113
+ isLoading: Boolean, // isLoading?: boolean
114
+ isSelected: Boolean, // isSelected?: boolean
115
+ size: ['small', 'medium', 'large'] as const, // size?: 'small' | 'medium' | 'large'
116
+ },
117
+ styles: {
118
+ padding: { '': '2x 4x', 'size=small': '1x 2x', 'size=large': '3x 6x' },
119
+ fill: { '': '#surface', isLoading: '#surface.5' },
120
+ },
121
+ });
122
+
123
+ <Button isLoading size="large">Submit</Button>
124
+ // Renders: <button data-is-loading="" data-size="large">Submit</button>
125
+ ```
126
+
127
+ Available type descriptors:
128
+
129
+ | Descriptor | TypeScript type | Example |
130
+ |---|---|---|
131
+ | `Boolean` | `boolean` | `isLoading: Boolean` |
132
+ | `String` | `string` | `label: String` |
133
+ | `Number` | `number` | `count: Number` |
134
+ | `['a', 'b'] as const` | `'a' \| 'b'` | `size: ['sm', 'md', 'lg'] as const` |
135
+
136
+ ### Merge with `mods`
137
+
138
+ Mod props and the `mods` object can be used together. Mod props take precedence:
139
+
140
+ ```jsx
141
+ <Button mods={{ isLoading: false, extra: true }} isLoading>
142
+ // isLoading=true wins (from mod prop), extra=true preserved from mods
143
+ ```
144
+
145
+ ### When to use `modProps` vs `mods`
146
+
147
+ | Use case | Recommendation |
148
+ |---|---|
149
+ | Component has a fixed set of known modifiers | `modProps` — cleaner API, better TypeScript autocomplete |
150
+ | Component needs arbitrary/dynamic modifiers | `mods` — open-ended `Record<string, ModValue>` |
151
+ | Both fixed and dynamic | Combine: `modProps` for known keys, `mods` for ad-hoc |
152
+
153
+ For architecture guidance on when to use modifiers vs `styleProps`, see [Methodology — modProps and mods](methodology.md#modprops-and-mods).
154
+
155
+ ---
156
+
77
157
  ## Variants
78
158
 
79
159
  Define named style variations. Only CSS for variants actually used at runtime is injected:
@@ -146,37 +146,39 @@ Individual props `marginTop`, `marginRight`, `marginBottom`, `marginLeft`, `marg
146
146
 
147
147
  ### `width`
148
148
 
149
- Element width with min/max control.
149
+ Element width with min/max control. One, two, or three values set `min-width`, `width`, and `max-width` together.
150
150
 
151
- **Syntax:** `[value]` | `[min max]` | `[min value max]` | `[modifier value]`
151
+ **Positional syntax:**
152
152
 
153
- **Modifiers:** `min`, `max`, `fixed`
153
+ | Value | min-width | width | max-width |
154
+ |-------|-----------|-------|-----------|
155
+ | `"10x"` | initial | `10x` | initial |
156
+ | `"1x 10x"` | `1x` | auto | `10x` |
157
+ | `"1x 5x 10x"` | `1x` | `5x` | `10x` |
158
+ | `"0 100% 800px"` | `0` | `100%` | `800px` |
159
+ | `"initial 100% 1400px"` | initial | `100%` | `1400px` |
160
+
161
+ **Modifier syntax:**
162
+
163
+ | Value | min-width | width | max-width |
164
+ |-------|-----------|-------|-----------|
165
+ | `"min 2x"` | `2x` | auto | initial |
166
+ | `"max 100%"` | initial | auto | `100%` |
167
+ | `"fixed 200px"` | `200px` | `200px` | `200px` |
154
168
 
155
169
  **Keywords:** `stretch`, `max-content`, `min-content`, `fit-content`
156
170
 
157
171
  | Value | Effect |
158
172
  |-------|--------|
159
- | `"10x"` | Width `10x`, min `initial`, max `initial` |
160
- | `"1x 10x"` | Width `auto`, min `1x`, max `10x` |
161
- | `"1x 5x 10x"` | Min `1x`, width `5x`, max `10x` |
162
- | `"min 2x"` | Min-width `2x`, width `auto`, max `initial` |
163
- | `"max 100%"` | Max-width `100%`, width `auto`, min `initial` |
164
- | `"fixed 200px"` | Min, width, and max all set to `200px` |
165
173
  | `"stretch"` | Fill available space (cross-browser) |
166
- | `true` | Width `auto`, min `initial`, max `initial` |
174
+ | `true` | Reset to `auto` / `initial` / `initial` |
167
175
  | Number | Converted to `px` |
168
176
 
169
177
  Separate `minWidth` and `maxWidth` props are supported and override values from the `width` syntax.
170
178
 
171
179
  ### `height`
172
180
 
173
- Element height. Same syntax and modifiers as `width`.
174
-
175
- **Syntax:** `[value]` | `[min max]` | `[min value max]` | `[modifier value]`
176
-
177
- **Modifiers:** `min`, `max`, `fixed`
178
-
179
- **Keywords:** `max-content`, `min-content`, `fit-content`
181
+ Element height. Same syntax, modifiers, and positional patterns as `width`.
180
182
 
181
183
  Separate `minHeight` and `maxHeight` props are supported and override values from the `height` syntax.
182
184
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.124.1",
3
+ "version": "0.124.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.14.2",
48
+ "@tenphi/tasty": "0.15.3",
49
49
  "clipboard-copy": "^4.0.1",
50
50
  "clsx": "^1.1.1",
51
51
  "diff": "^8.0.3",