@cube-dev/ui-kit 0.121.0 → 0.121.2

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 (516) 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 +8 -2
  121. package/dist/components/fields/Select/Select.js +1 -1
  122. package/dist/components/fields/Select/Select.js.map +1 -1
  123. package/dist/components/fields/Slider/Gradation.js +1 -1
  124. package/dist/components/fields/Slider/HueSlider.js +1 -1
  125. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  126. package/dist/components/fields/Slider/Slider.js +1 -1
  127. package/dist/components/fields/Slider/SliderBase.js +1 -1
  128. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  129. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  130. package/dist/components/fields/Slider/elements.js +1 -1
  131. package/dist/components/fields/Slider/index.js +1 -1
  132. package/dist/components/fields/Switch/Switch.js +1 -1
  133. package/dist/components/fields/TextArea/TextArea.js +1 -1
  134. package/dist/components/fields/TextInput/TextInput.js +1 -1
  135. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  136. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  137. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  138. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  139. package/dist/components/form/Form/Field.js +1 -1
  140. package/dist/components/form/Form/Form.js +1 -1
  141. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  142. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  143. package/dist/components/form/Form/SubmitError.js +1 -1
  144. package/dist/components/form/Form/index.js +1 -1
  145. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  146. package/dist/components/form/Form/use-field/use-field.js +1 -1
  147. package/dist/components/form/Form/use-form.js +1 -1
  148. package/dist/components/form/Form/validation.js +1 -1
  149. package/dist/components/form/Label.js +1 -1
  150. package/dist/components/form/wrapper.js +1 -1
  151. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  152. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  153. package/dist/components/layout/Flex.js +1 -1
  154. package/dist/components/layout/Flow.js +1 -1
  155. package/dist/components/layout/Grid.js +1 -1
  156. package/dist/components/layout/Panel.js +1 -1
  157. package/dist/components/layout/Prefix.js +1 -1
  158. package/dist/components/layout/ResizablePanel.js +1 -1
  159. package/dist/components/layout/Space.js +1 -1
  160. package/dist/components/layout/Suffix.js +1 -1
  161. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  162. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  163. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  164. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  165. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  166. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  167. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  168. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  169. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  170. package/dist/components/navigation/Tabs/styled.js +1 -1
  171. package/dist/components/navigation/Tabs/types.js +1 -1
  172. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  173. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  174. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  175. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  176. package/dist/components/other/Calendar/Calendar.js +1 -1
  177. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  178. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  179. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  180. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  181. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  182. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  183. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  184. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  185. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  186. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  187. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  188. package/dist/components/overlays/Dialog/context.js +1 -1
  189. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  190. package/dist/components/overlays/Modal/Modal.js +1 -1
  191. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  192. package/dist/components/overlays/Modal/Overlay.js +1 -1
  193. package/dist/components/overlays/Modal/Popover.js +1 -1
  194. package/dist/components/overlays/Modal/Tray.js +1 -1
  195. package/dist/components/overlays/Modal/Underlay.js +1 -1
  196. package/dist/components/overlays/Notifications/Notification.js +1 -1
  197. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  198. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  199. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  200. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  201. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  202. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  203. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  204. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  205. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  206. package/dist/components/overlays/Notifications/index.js +1 -1
  207. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  208. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  209. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  210. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  211. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  212. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  213. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  214. package/dist/components/overlays/Toast/index.js +1 -1
  215. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  216. package/dist/components/overlays/Toast/useToast.js +1 -1
  217. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  218. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  219. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  220. package/dist/components/overlays/Tooltip/context.js +1 -1
  221. package/dist/components/portal/Portal.js +1 -1
  222. package/dist/components/portal/PortalProvider.js +1 -1
  223. package/dist/components/portal/usePortal.js +1 -1
  224. package/dist/components/shared/InvalidIcon.js +1 -1
  225. package/dist/components/shared/ValidIcon.js +1 -1
  226. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  227. package/dist/components/status/Spin/Cube.js +1 -1
  228. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  229. package/dist/components/status/Spin/Spin.js +1 -1
  230. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  231. package/dist/data/item-themes.js +1 -1
  232. package/dist/data/themes.js +1 -1
  233. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  234. package/dist/icons/AdjustmentsIcon.js +1 -1
  235. package/dist/icons/AiIcon.js +1 -1
  236. package/dist/icons/AreaChartIcon.js +1 -1
  237. package/dist/icons/BackwardIcon.js +1 -1
  238. package/dist/icons/BarChartIcon.js +1 -1
  239. package/dist/icons/BellFilledIcon.js +1 -1
  240. package/dist/icons/BellIcon.js +1 -1
  241. package/dist/icons/BooleanIcon.js +1 -1
  242. package/dist/icons/CalendarEditIcon.js +1 -1
  243. package/dist/icons/CalendarIcon.js +1 -1
  244. package/dist/icons/CaretDownIcon.js +1 -1
  245. package/dist/icons/CaretUpIcon.js +1 -1
  246. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  247. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  248. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  249. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  250. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  251. package/dist/icons/ChartBarLineIcon.js +1 -1
  252. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  253. package/dist/icons/ChartBarStackedIcon.js +1 -1
  254. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  255. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  256. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  257. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  258. package/dist/icons/ChartBubbleIcon.js +1 -1
  259. package/dist/icons/ChartDonut2Icon.js +1 -1
  260. package/dist/icons/ChartFunnelIcon.js +1 -1
  261. package/dist/icons/ChartHeatmapIcon.js +1 -1
  262. package/dist/icons/ChartKPIIcon.js +1 -1
  263. package/dist/icons/ChartPie2Icon.js +1 -1
  264. package/dist/icons/ChartScatterIcon.js +1 -1
  265. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  266. package/dist/icons/CheckCircleIcon.js +1 -1
  267. package/dist/icons/CheckIcon.js +1 -1
  268. package/dist/icons/CircleFilledIcon.js +1 -1
  269. package/dist/icons/ClearIcon.js +1 -1
  270. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  271. package/dist/icons/CloseCircleIcon.js +1 -1
  272. package/dist/icons/CloseIcon.js +1 -1
  273. package/dist/icons/CodeIcon.js +1 -1
  274. package/dist/icons/ColumnTotalIcon.js +1 -1
  275. package/dist/icons/CopyIcon.js +1 -1
  276. package/dist/icons/CountIcon.js +1 -1
  277. package/dist/icons/CubeIcon.js +1 -1
  278. package/dist/icons/CubePauseIcon.js +1 -1
  279. package/dist/icons/CubePlayIcon.js +1 -1
  280. package/dist/icons/CurrencyDollarIcon.js +1 -1
  281. package/dist/icons/DangerIcon.js +1 -1
  282. package/dist/icons/DashboardIcon.js +1 -1
  283. package/dist/icons/DatabaseIcon.js +1 -1
  284. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  285. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  286. package/dist/icons/DirectionIcon.js +1 -1
  287. package/dist/icons/DonutIcon.js +1 -1
  288. package/dist/icons/DownIcon.js +1 -1
  289. package/dist/icons/EditIcon.js +1 -1
  290. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  291. package/dist/icons/ExclamationCircleIcon.js +1 -1
  292. package/dist/icons/ExclamationIcon.js +1 -1
  293. package/dist/icons/EyeIcon.js +1 -1
  294. package/dist/icons/EyeInvisibleIcon.js +1 -1
  295. package/dist/icons/FilterIcon.js +1 -1
  296. package/dist/icons/FolderFilledIcon.js +1 -1
  297. package/dist/icons/FolderIcon.js +1 -1
  298. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  299. package/dist/icons/FolderOpenIcon.js +1 -1
  300. package/dist/icons/ForwardIcon.js +1 -1
  301. package/dist/icons/HierarchyIcon.js +1 -1
  302. package/dist/icons/HierarchyOpenIcon.js +1 -1
  303. package/dist/icons/Icon.js +1 -1
  304. package/dist/icons/InfoCircleIcon.js +1 -1
  305. package/dist/icons/InfoIcon.js +1 -1
  306. package/dist/icons/KeyIcon.js +1 -1
  307. package/dist/icons/LeftIcon.js +1 -1
  308. package/dist/icons/LineChartIcon.js +1 -1
  309. package/dist/icons/LoadingIcon.js +1 -1
  310. package/dist/icons/LockFilledIcon.js +1 -1
  311. package/dist/icons/LockIcon.js +1 -1
  312. package/dist/icons/MoreIcon.js +1 -1
  313. package/dist/icons/NotAllowedIcon.js +1 -1
  314. package/dist/icons/Number123Icon.js +1 -1
  315. package/dist/icons/NumberIcon.js +1 -1
  316. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  317. package/dist/icons/PauseCircleIcon.js +1 -1
  318. package/dist/icons/PauseIcon.js +1 -1
  319. package/dist/icons/PercentageIcon.js +1 -1
  320. package/dist/icons/PieChartIcon.js +1 -1
  321. package/dist/icons/PlayCircleIcon.js +1 -1
  322. package/dist/icons/PlayIcon.js +1 -1
  323. package/dist/icons/PlusIcon.js +1 -1
  324. package/dist/icons/ProgressBarIcon.js +1 -1
  325. package/dist/icons/ReloadIcon.js +1 -1
  326. package/dist/icons/ReportIcon.js +1 -1
  327. package/dist/icons/ReturnIcon.js +1 -1
  328. package/dist/icons/RightIcon.js +1 -1
  329. package/dist/icons/RowTotalsIcon.js +1 -1
  330. package/dist/icons/SchemeIcon.js +1 -1
  331. package/dist/icons/SearchIcon.js +1 -1
  332. package/dist/icons/SemanticQueryIcon.js +1 -1
  333. package/dist/icons/SettingsIcon.js +1 -1
  334. package/dist/icons/ShieldFilledIcon.js +1 -1
  335. package/dist/icons/ShieldIcon.js +1 -1
  336. package/dist/icons/SlashIcon.js +1 -1
  337. package/dist/icons/SparklesIcon.js +1 -1
  338. package/dist/icons/SqlIcon.js +1 -1
  339. package/dist/icons/StatsIcon.js +1 -1
  340. package/dist/icons/StopIcon.js +1 -1
  341. package/dist/icons/StringIcon.js +1 -1
  342. package/dist/icons/SubtotalsIcon.js +1 -1
  343. package/dist/icons/SwitchIcon.js +1 -1
  344. package/dist/icons/TableIcon.js +1 -1
  345. package/dist/icons/ThumbsDownIcon.js +1 -1
  346. package/dist/icons/ThumbsUpIcon.js +1 -1
  347. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  348. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  349. package/dist/icons/ThunderboltIcon.js +1 -1
  350. package/dist/icons/TimeIcon.js +1 -1
  351. package/dist/icons/TrashIcon.js +1 -1
  352. package/dist/icons/UnlockIcon.js +1 -1
  353. package/dist/icons/UpIcon.js +1 -1
  354. package/dist/icons/UserGroupIcon.js +1 -1
  355. package/dist/icons/UserIcon.js +1 -1
  356. package/dist/icons/UserLockIcon.js +1 -1
  357. package/dist/icons/ViewIcon.js +1 -1
  358. package/dist/icons/WarningFilledIcon.js +1 -1
  359. package/dist/icons/WarningIcon.js +1 -1
  360. package/dist/icons/wrap-icon.js +1 -1
  361. package/dist/index.js +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/utils/ResizeSensor.js +1 -1
  373. package/dist/utils/is-dev-env.js +1 -1
  374. package/dist/utils/modules.js +1 -1
  375. package/dist/utils/promise.js +1 -1
  376. package/dist/utils/raf.js +1 -1
  377. package/dist/utils/random.js +1 -1
  378. package/dist/utils/range.js +1 -1
  379. package/dist/utils/react/RenderCache.js +1 -1
  380. package/dist/utils/react/Slots.js +1 -1
  381. package/dist/utils/react/chain.js +1 -1
  382. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  383. package/dist/utils/react/index.js +1 -1
  384. package/dist/utils/react/interactions.js +1 -1
  385. package/dist/utils/react/isTextOnly.js +1 -1
  386. package/dist/utils/react/mapProps.js +1 -1
  387. package/dist/utils/react/mergeProps.js +1 -1
  388. package/dist/utils/react/nullableValue.js +1 -1
  389. package/dist/utils/react/resolveIcon.js +1 -1
  390. package/dist/utils/react/sharedStore.js +1 -1
  391. package/dist/utils/react/useCombinedRefs.js +1 -1
  392. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  393. package/dist/utils/react/useEventBus.js +1 -1
  394. package/dist/utils/react/useId.js +1 -1
  395. package/dist/utils/react/useIsDarwin.js +1 -1
  396. package/dist/utils/react/useKeySymbols.js +1 -1
  397. package/dist/utils/react/useLayoutEffect.js +1 -1
  398. package/dist/utils/react/useLocalStorage.js +1 -1
  399. package/dist/utils/react/useMergeStyles.js +1 -1
  400. package/dist/utils/react/useQaProps.js +1 -1
  401. package/dist/utils/react/useViewportSize.js +1 -1
  402. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  403. package/dist/utils/tree.js +1 -1
  404. package/dist/utils/warnings.js +1 -1
  405. package/dist/version.js +2 -2
  406. package/docs/BaseProperties.md +78 -0
  407. package/docs/ComplexLayout.md +459 -0
  408. package/docs/CreateComponent.md +410 -0
  409. package/docs/FieldProperties.md +117 -0
  410. package/docs/Introduction.md +122 -0
  411. package/docs/RenderCache.md +177 -0
  412. package/docs/Result.md +42 -0
  413. package/docs/SimpleLayout.md +26 -0
  414. package/docs/Typography.md +38 -0
  415. package/docs/components/Block.md +33 -0
  416. package/docs/components/CollectionItem.md +293 -0
  417. package/docs/components/GridProvider.md +38 -0
  418. package/docs/components/Root.md +50 -0
  419. package/docs/components/actions/Action.md +47 -0
  420. package/docs/components/actions/Banner.md +195 -0
  421. package/docs/components/actions/Button.md +209 -0
  422. package/docs/components/actions/ButtonGroup.md +46 -0
  423. package/docs/components/actions/ButtonSplit.md +199 -0
  424. package/docs/components/actions/CommandMenu.md +422 -0
  425. package/docs/components/actions/ItemAction.md +60 -0
  426. package/docs/components/actions/ItemButton.md +316 -0
  427. package/docs/components/actions/Link.md +325 -0
  428. package/docs/components/actions/Menu.md +485 -0
  429. package/docs/components/actions/MenuTrigger.md +47 -0
  430. package/docs/components/actions/SubMenuTrigger.md +38 -0
  431. package/docs/components/actions/use-anchored-menu.md +209 -0
  432. package/docs/components/actions/use-context-menu.md +218 -0
  433. package/docs/components/content/ActiveZone.md +37 -0
  434. package/docs/components/content/Alert.md +40 -0
  435. package/docs/components/content/Avatar.md +37 -0
  436. package/docs/components/content/Badge.md +194 -0
  437. package/docs/components/content/Card.md +40 -0
  438. package/docs/components/content/Content.md +44 -0
  439. package/docs/components/content/CopyPasteBlock.md +36 -0
  440. package/docs/components/content/CopySnippet.md +43 -0
  441. package/docs/components/content/Disclosure.md +181 -0
  442. package/docs/components/content/Divider.md +39 -0
  443. package/docs/components/content/Footer.md +35 -0
  444. package/docs/components/content/Header.md +35 -0
  445. package/docs/components/content/HotKeys.md +352 -0
  446. package/docs/components/content/Item.md +499 -0
  447. package/docs/components/content/ItemBadge.md +31 -0
  448. package/docs/components/content/ItemCard.md +131 -0
  449. package/docs/components/content/Layout.md +843 -0
  450. package/docs/components/content/Paragraph.md +32 -0
  451. package/docs/components/content/Placeholder.md +37 -0
  452. package/docs/components/content/PrismCode.md +36 -0
  453. package/docs/components/content/PrismDiffCode.md +29 -0
  454. package/docs/components/content/Result.md +46 -0
  455. package/docs/components/content/Skeleton.md +35 -0
  456. package/docs/components/content/Tag.md +165 -0
  457. package/docs/components/content/Text.md +54 -0
  458. package/docs/components/content/TextItem.md +217 -0
  459. package/docs/components/content/Title.md +45 -0
  460. package/docs/components/fields/Checkbox.md +176 -0
  461. package/docs/components/fields/ComboBox.md +651 -0
  462. package/docs/components/fields/DatePicker.md +227 -0
  463. package/docs/components/fields/FileInput.md +194 -0
  464. package/docs/components/fields/FilterListBox.md +726 -0
  465. package/docs/components/fields/FilterPicker.md +776 -0
  466. package/docs/components/fields/HueSlider.md +175 -0
  467. package/docs/components/fields/ListBox.md +714 -0
  468. package/docs/components/fields/NumberInput.md +180 -0
  469. package/docs/components/fields/PasswordInput.md +214 -0
  470. package/docs/components/fields/Picker.md +906 -0
  471. package/docs/components/fields/RadioGroup.md +310 -0
  472. package/docs/components/fields/SearchInput.md +224 -0
  473. package/docs/components/fields/Select.md +576 -0
  474. package/docs/components/fields/Slider.md +53 -0
  475. package/docs/components/fields/Switch.md +169 -0
  476. package/docs/components/fields/TextArea.md +61 -0
  477. package/docs/components/fields/TextInput.md +205 -0
  478. package/docs/components/fields/TextInputMapper.md +34 -0
  479. package/docs/components/form/Field.md +333 -0
  480. package/docs/components/form/Form.md +644 -0
  481. package/docs/components/form/FormInstance.md +307 -0
  482. package/docs/components/helpers/DisplayTransition.md +268 -0
  483. package/docs/components/helpers/IconSwitch.md +160 -0
  484. package/docs/components/layout/Flex.md +51 -0
  485. package/docs/components/layout/Flow.md +32 -0
  486. package/docs/components/layout/Grid.md +46 -0
  487. package/docs/components/layout/Panel.md +65 -0
  488. package/docs/components/layout/Prefix.md +37 -0
  489. package/docs/components/layout/ResizablePanel.md +69 -0
  490. package/docs/components/layout/Space.md +44 -0
  491. package/docs/components/layout/Suffix.md +39 -0
  492. package/docs/components/navigation/Tabs.md +726 -0
  493. package/docs/components/organisms/FileTabs.md +39 -0
  494. package/docs/components/organisms/StatsCard.md +40 -0
  495. package/docs/components/other/CloudLogo.md +33 -0
  496. package/docs/components/overlays/AlertDialog.md +51 -0
  497. package/docs/components/overlays/Dialog.md +200 -0
  498. package/docs/components/overlays/DialogContainer.md +201 -0
  499. package/docs/components/overlays/DialogForm.md +295 -0
  500. package/docs/components/overlays/DialogTrigger.md +191 -0
  501. package/docs/components/overlays/Notifications.md +402 -0
  502. package/docs/components/overlays/Toast.md +289 -0
  503. package/docs/components/overlays/Tooltip.md +400 -0
  504. package/docs/components/overlays/TooltipProvider.md +42 -0
  505. package/docs/components/overlays/TooltipTrigger.md +42 -0
  506. package/docs/components/overlays/UseDialogContainer.md +597 -0
  507. package/docs/components/portal/Portal.md +29 -0
  508. package/docs/components/status/LoadingAnimation.md +27 -0
  509. package/docs/components/status/Spin.md +35 -0
  510. package/docs/tasty/configuration.md +211 -0
  511. package/docs/tasty/debug.md +505 -0
  512. package/docs/tasty/injector.md +528 -0
  513. package/docs/tasty/styles.md +567 -0
  514. package/docs/tasty/tasty-static.md +376 -0
  515. package/docs/tasty/usage.md +695 -0
  516. package/package.json +4 -8
@@ -0,0 +1,47 @@
1
+ # Action
2
+
3
+ A low-level action element that can render as `<button>`, `<a>`, or `<span>`. When `to` is provided, it renders as a link. Used as a base for `Button` and `Link`.
4
+
5
+ ## When to Use
6
+
7
+ - Building custom interactive elements
8
+ - Actions that may navigate or submit
9
+ - When you need a button that can become a link via the `to` prop
10
+
11
+ ## Properties
12
+
13
+ - **`to`** `NavigateArg` — Navigation target (renders as `<a>` when provided)
14
+ - **`label`** `string` — Accessible label for screen readers
15
+ - **`htmlType`** `'button' | 'submit' | 'reset'` — HTML button type
16
+ - **`download`** `string` — Download attribute for link mode
17
+ - **`onPress`** `() => void` — Press event handler (React Aria)
18
+
19
+ ### Style Defaults
20
+
21
+ - `position` — `relative`
22
+ - `preset` — `inherit`
23
+ - `transition` — `theme`
24
+
25
+ ### Base Properties
26
+
27
+ Supports [Base properties](../../BaseProperties.md). Extends React Aria `AriaButtonProps`.
28
+
29
+ ## Examples
30
+
31
+ ### Button action
32
+
33
+ ```jsx
34
+ <Action onPress={() => doSomething()}>Click me</Action>
35
+ ```
36
+
37
+ ### Navigation action
38
+
39
+ ```jsx
40
+ <Action to="/dashboard">Go to Dashboard</Action>
41
+ ```
42
+
43
+ ### Form submit
44
+
45
+ ```jsx
46
+ <Action htmlType="submit">Submit</Action>
47
+ ```
@@ -0,0 +1,195 @@
1
+ # Banner
2
+
3
+ Banner displays prominent messages and notifications to users. It supports different visual themes with appropriate icons and can include action buttons and inline links.
4
+
5
+ ## When to Use
6
+
7
+ - Display system-wide notifications or alerts that require user attention
8
+ - Show billing, subscription, or account status warnings
9
+ - Communicate deployment errors or operational issues
10
+ - Provide contextual information with optional calls-to-action
11
+
12
+ ## Component
13
+
14
+ ---
15
+
16
+ ### Properties
17
+
18
+ - **`theme`** `'danger' | 'warning' | 'note' | 'success'` (default: `'note'`) — Visual theme of the banner with corresponding icon and colors
19
+ - **`isDismissable`** `boolean` (default: `false`) — Whether the banner shows a dismiss button
20
+ - **`onDismiss`** `() => void` — Callback fired when the dismiss button is clicked
21
+ - **`icon`** `ReactNode` — Custom icon to display; defaults to a theme-appropriate icon
22
+ - **`actions`** `ReactNode` — Action buttons displayed on the right side of the banner. Use `Banner.Action` for consistent styling
23
+ - **`description`** `string` — Secondary text shown below the main content, truncated with ellipsis after two lines
24
+ - **`shape`** `'sharp'` — Use `'sharp'` to remove rounded corners when stacking multiple banners
25
+
26
+ ### Base Properties
27
+
28
+ Supports [Base properties](../../BaseProperties.md)
29
+
30
+ ### Styling Properties
31
+
32
+ #### styles
33
+
34
+ Customizes the root element of the component.
35
+
36
+ **Sub-elements:**
37
+ - `Label` - The main text content area
38
+ - `Actions` - Container for action buttons
39
+
40
+ ### Modifiers
41
+
42
+ The `mods` property accepts the following modifiers you can override:
43
+
44
+ - **`theme`** `'danger' \| 'warning' \| 'note' \| 'success'` — Visual theme of the banner
45
+
46
+ ## Variants
47
+
48
+ ### Themes
49
+
50
+ - `note` (default) - Informational messages, tips, or neutral notifications
51
+ - `warning` - Alerts that require attention but are not critical
52
+ - `danger` - Critical errors or issues that need immediate action
53
+ - `success` - Confirmation of successful operations
54
+
55
+ ## Sub-components
56
+
57
+ ### Banner.Action
58
+
59
+ Action button styled to match the banner's theme. Use for primary calls-to-action.
60
+
61
+ ```jsx
62
+ <Banner theme="warning" actions={<Banner.Action to="/upgrade">Upgrade Plan</Banner.Action>}>
63
+ You are approaching your monthly API request limit.
64
+ </Banner>
65
+ ```
66
+
67
+ ### Banner.Link
68
+
69
+ Inline link styled with white color and underline. Use for links within the banner's text content.
70
+
71
+ ```jsx
72
+ <Banner theme="danger">
73
+ <Banner.Link to="https://docs.example.com">Daily limit</Banner.Link> exceeded.
74
+ Please contact support.
75
+ </Banner>
76
+ ```
77
+
78
+ ## Examples
79
+
80
+ ### Basic Banner
81
+
82
+ ```jsx
83
+ <Banner theme="note">
84
+ Scheduled maintenance will occur on Sunday at 2:00 AM UTC.
85
+ </Banner>
86
+ ```
87
+
88
+ ### Dismissible Banner
89
+
90
+ ```jsx
91
+ <Banner theme="success" isDismissable onDismiss={() => console.log('Dismissed')}>
92
+ Your deployment has been successfully updated.
93
+ </Banner>
94
+ ```
95
+
96
+ ### Banner with Actions
97
+
98
+ ```jsx
99
+ <Banner
100
+ theme="danger"
101
+ actions={
102
+ <>
103
+ <Banner.Action to="/billing">Go to Billing</Banner.Action>
104
+ <Banner.Action onPress={() => openChat()}>Contact us</Banner.Action>
105
+ </>
106
+ }
107
+ >
108
+ Your account has been suspended due to payment failure.
109
+ </Banner>
110
+ ```
111
+
112
+ ### Banner with Inline Links
113
+
114
+ ```jsx
115
+ <Banner theme="warning" actions={<Banner.Action>Upgrade tier</Banner.Action>}>
116
+ The selected time range exceeds{' '}
117
+ <Banner.Link to="https://docs.example.com/retention">
118
+ the retention period
119
+ </Banner.Link>
120
+ . To extend this period, please upgrade or contact us.
121
+ </Banner>
122
+ ```
123
+
124
+ ### Stacked Banners
125
+
126
+ Use `shape="sharp"` when stacking multiple banners to remove gaps between them.
127
+
128
+ ```jsx
129
+ <Flex flow="column">
130
+ <Banner theme="danger" shape="sharp">Critical alert</Banner>
131
+ <Banner theme="warning" shape="sharp">Warning message</Banner>
132
+ <Banner theme="note" shape="sharp">Information</Banner>
133
+ </Flex>
134
+ ```
135
+
136
+ ### Custom Icon
137
+
138
+ ```jsx
139
+ import { IconBell } from '@tabler/icons-react';
140
+
141
+ <Banner theme="note" icon={<IconBell />} isDismissable>
142
+ You have new notifications.
143
+ </Banner>
144
+ ```
145
+
146
+ ## Accessibility
147
+
148
+ ### Keyboard Navigation
149
+
150
+ - `Tab` - Moves focus to action buttons within the banner
151
+ - `Space/Enter` - Activates focused action button or dismiss button
152
+
153
+ ### Screen Reader Support
154
+
155
+ - Banner has `role="status"` to announce content changes
156
+ - Dismiss button includes tooltip "Hide banner" for accessibility
157
+
158
+ ### ARIA Properties
159
+
160
+ - `role="status"` - Announces the banner as a status message
161
+ - Action buttons inherit proper focus management from Item.Action
162
+
163
+ ## Best Practices
164
+
165
+ 1. **Do**: Use appropriate theme for the message severity
166
+
167
+ ```jsx
168
+ <Banner theme="danger">Critical error requiring immediate action</Banner>
169
+ <Banner theme="warning">Warning that needs attention</Banner>
170
+ <Banner theme="note">Informational message</Banner>
171
+ <Banner theme="success">Success confirmation</Banner>
172
+ ```
173
+
174
+ 2. **Do**: Keep banner messages concise and actionable
175
+
176
+ ```jsx
177
+ <Banner theme="warning" actions={<Banner.Action>Upgrade</Banner.Action>}>
178
+ API usage at 85% of monthly limit.
179
+ </Banner>
180
+ ```
181
+
182
+ 3. **Don't**: Use banners for non-important information that doesn't need prominent display
183
+
184
+ 4. **Do**: Use Banner.Link for inline links within content, Banner.Action for buttons
185
+
186
+ ```jsx
187
+ <Banner theme="danger" actions={<Banner.Action>Contact us</Banner.Action>}>
188
+ <Banner.Link to="/docs/limits">Daily limit</Banner.Link> exceeded.
189
+ </Banner>
190
+ ```
191
+
192
+ ## Related Components
193
+
194
+ - [Item](../content/Item.md) - Base component that Banner extends
195
+ - [ItemAction](./ItemAction.md) - Action button component used by Banner.Action
@@ -0,0 +1,209 @@
1
+ # Button
2
+
3
+ A versatile action component that triggers commands and navigates users.
4
+
5
+ ## When to Use
6
+
7
+ - Trigger an immediate in-page action (e.g., open a dialog)
8
+ - Navigate to another route or URL using the `to` prop while keeping button styling
9
+ - Toggle a boolean state with `isSelected`
10
+ - Display progress feedback with `isLoading`
11
+
12
+ ## Component
13
+
14
+ ---
15
+
16
+ ## Properties
17
+
18
+ - **`type`** `'primary' | 'secondary' | 'outline' | 'neutral' | 'clear' | 'link'` (default: `outline`) — Visual style variant of the button
19
+ - **`theme`** `'default' | 'danger' | 'success' | 'warning' | 'note' | 'special'` (default: `default`) — Semantic colour palette theme
20
+ - **`size`** `'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'inline' | number` (default: `medium`) — Button size. Use `'inline'` for link-type buttons or a number/string for custom sizes (e.g. `64` or `'8x'`)
21
+ - **`icon`** — Icon rendered before the content. Can be: ReactNode, `true` (empty slot), or function `({ loading, selected, ...mods }) => ReactNode | true`
22
+ - **`rightIcon`** — Icon rendered after the content. Can be: ReactNode, `true` (empty slot), or function `({ loading, selected, ...mods }) => ReactNode | true`
23
+ - **`children`** `ReactNode` — Button label or custom content
24
+ - **`label`** `string` — Accessible label for the button (used as `aria-label`)
25
+ - **`tooltip`** `string | boolean | object` — Tooltip content. Use a string for simple text, `true` for auto tooltip on overflow, or an object with `{ title, auto, placement, ...tooltipProps }`
26
+ - **`isLoading`** `boolean` (default: `false`) — Show loading spinner and disable interactions
27
+ - **`isSelected`** `boolean` (default: `false`) — Marks the button as pressed / selected (toggle)
28
+ - **`to`** `string` — Destination URL or route; prefix with `!` to open in new tab, `@` to bypass router
29
+ - **`htmlType`** `'button' | 'submit' | 'reset'` — HTML button type attribute
30
+ - **`onPress`** `function` — Callback fired when the button is activated by mouse, touch, or keyboard
31
+
32
+ ### Base Properties
33
+
34
+ Supports [Base properties](../../BaseProperties.md)
35
+
36
+ ### Styling Properties
37
+
38
+ #### styles
39
+
40
+ Customises the root element of the component.
41
+
42
+ **Sub-elements:**
43
+ - `Icon` – wrapper around the leading icon
44
+ - `RightIcon` – wrapper around the trailing icon
45
+ - `Label` – the button text content
46
+
47
+ ### Style Properties
48
+
49
+ These properties allow direct styling without using the `styles` prop: `width`, `height`.
50
+
51
+ ### Modifiers
52
+
53
+ The `mods` prop accepts the following modifiers you can override:
54
+
55
+ - **`hovered`** `boolean` — Forces hover state
56
+ - **`pressed`** `boolean` — Forces pressed state
57
+ - **`focused`** `boolean` — Forces focus ring
58
+ - **`disabled`** `boolean` — Forces disabled appearance
59
+ - **`loading`** `boolean` — Displays loading spinner
60
+ - **`selected`** `boolean` — Displays selected state
61
+ - **`has-icons`** `boolean` — Indicates that the button contains at least one icon
62
+ - **`has-icon`** `boolean` — Indicates that the button has a leading icon
63
+ - **`has-right-icon`** `boolean` — Indicates that the button has a trailing icon
64
+ - **`single-icon`** `boolean` — Icon-only button without text
65
+ - **`text-only`** `boolean` — Button has only text content, no icons
66
+
67
+ ## Variants
68
+
69
+ ### Types. `type` prop
70
+
71
+ - `primary` – Emphasised call-to-action.
72
+ - `secondary` – Less emphasised, alternative action.
73
+ - `outline` – Transparent background with border.
74
+ - `neutral` – Minimal style that blends with surroundings.
75
+ - `clear` – Text-only variant without background and border.
76
+ - `link` – Styled as a textual link.
77
+
78
+ ### Themes. `theme` prop
79
+
80
+ - `default` – Brand purple colours.
81
+ - `danger` – Red palette for destructive actions.
82
+ - `success` – Green palette for positive actions.
83
+ - `warning` – Yellow/amber palette for caution or attention.
84
+ - `note` – Violet palette for informational context.
85
+ - `special` – White palette for dark backgrounds.
86
+
87
+ ### Sizes. `size` prop
88
+
89
+ - `xsmall` – Extra compact height (24px).
90
+ - `small` – Compact height (28px).
91
+ - `medium` – Default height (32px).
92
+ - `large` – Spacious height (40px).
93
+ - `xlarge` – Extra spacious height (48px).
94
+ - `inline` – Inline size for link-type buttons (no fixed height).
95
+ - Custom values – Pass a number (pixels) or a string (e.g. `'8x'`) for custom sizing.
96
+
97
+ ## Examples
98
+
99
+ ### Basic Usage
100
+
101
+ ```jsx
102
+ <Button onPress={() => console.log('Pressed')}>Save</Button>
103
+ ```
104
+
105
+ ### Icon Button
106
+
107
+ ```jsx
108
+ import { IconPlus } from '@tabler/icons-react';
109
+
110
+ {/* Standard icon */}
111
+ <Button icon={<IconPlus />} aria-label="Add item" />
112
+
113
+ {/* Empty slot (reserves space but shows nothing) */}
114
+ <Button icon={true} aria-label="Empty slot" />
115
+
116
+ {/* Dynamic icon based on mods */}
117
+ <Button
118
+ icon={({ loading }) => loading ? <SpinnerIcon /> : <IconPlus />}
119
+ aria-label="Dynamic icon"
120
+ >
121
+ Save
122
+ </Button>
123
+
124
+ {/* Return true from function for empty slot */}
125
+ <Button
126
+ icon={({ selected }) => selected ? <CheckIcon /> : true}
127
+ aria-label="Conditional icon"
128
+ >
129
+ Option
130
+ </Button>
131
+ ```
132
+
133
+ ### Link Button
134
+
135
+ ```jsx
136
+ <!-- Navigate to a new page using the router -->
137
+ <Button to="/pricing">Pricing</Button>
138
+ <!-- Use `!` prefix to open in a new tab -->
139
+ <Button to="!/pricing">Pricing</Button>
140
+ <!-- Use `@` prefix to navigate to a new page without using the router -->
141
+ <Button to="@/pricing">Pricing</Button>
142
+ <!-- Use `@` to reload the page -->
143
+ <Button to="@/pricing">Pricing</Button>
144
+ ```
145
+
146
+ ### Loading State
147
+
148
+ ```jsx
149
+ <Button isLoading>Processing…</Button>
150
+ ```
151
+
152
+ ### With Tooltip
153
+
154
+ ```jsx
155
+ {/* Simple tooltip text */}
156
+ <Button icon={<IconPlus />} tooltip="Add new item" aria-label="Add" />
157
+
158
+ {/* Auto tooltip on overflow */}
159
+ <Button tooltip={true} width="100px">This text will be truncated</Button>
160
+ ```
161
+
162
+ ### Custom Size
163
+
164
+ ```jsx
165
+ {/* Using a number (pixels) */}
166
+ <Button size={64}>Large Custom</Button>
167
+
168
+ {/* Using a string multiplier */}
169
+ <Button size="8x">8x Size</Button>
170
+ ```
171
+
172
+ ## Accessibility
173
+
174
+ ### Keyboard Navigation
175
+
176
+ - `Tab` – Moves focus to the button.
177
+ - `Space` / `Enter` – Activates the button.
178
+
179
+ ### Screen Reader Support
180
+
181
+ - Announces role "button".
182
+ - Announces state changes such as "pressed", "disabled", or "selected".
183
+ - Provide `label`/`aria-label` when the button has no visible text.
184
+
185
+ ### ARIA Properties
186
+
187
+ - `aria-label`, `aria-labelledby` – Accessible name.
188
+ - `aria-pressed` – Managed automatically when `isSelected` is used.
189
+ - Additional ARIA attributes supported by React Aria's `useButton`.
190
+
191
+ ## Best Practices
192
+
193
+ 1. **Do**: Provide a label for icon-only buttons
194
+ ```jsx
195
+ <Button icon={<IconPlus />} aria-label="Add" />
196
+ ```
197
+ 2. **Don't**: Use the `link` type for destructive actions – prefer `danger.primary` instead.
198
+ 3. **Callbacks**: Always use `onPress` for actions that don't navigate. Use `onClick` only if you need to access the event object.
199
+ 4. **Accessibility**: Use `isLoading` rather than disabling a button without feedback.
200
+ 5. **Performance**: Reuse icon components to avoid unnecessary re-renders.
201
+
202
+ ## Suggested Improvements
203
+
204
+ - Provide `block` modifier to stretch the button 100% width.
205
+
206
+ ## Related Components
207
+
208
+ - [Link](./Link.md) – Semantic navigation styled like a button.
209
+ - [ItemButton](./ItemButton.md) – Interactive button built on Item with icon support.
@@ -0,0 +1,46 @@
1
+ # ButtonGroup
2
+
3
+ A container for grouping buttons with consistent spacing. Extends `Space` and inherits all its defaults.
4
+
5
+ ## When to Use
6
+
7
+ - Grouping related actions (Save/Cancel)
8
+ - Button bars and toolbars
9
+
10
+ ## Properties
11
+
12
+ Inherits all Space properties.
13
+
14
+ ### Style Defaults
15
+
16
+ Inherits Space defaults:
17
+
18
+ - `display` — `flex`
19
+ - `gap` — `1x`
20
+ - `flow` — `row`
21
+ - `placeItems` — `center stretch`
22
+ - `gridArea` — `buttonGroup`
23
+
24
+ ### Base Properties
25
+
26
+ Supports [Base properties](../../BaseProperties.md).
27
+
28
+ ## Examples
29
+
30
+ ### Horizontal group
31
+
32
+ ```jsx
33
+ <Button.Group>
34
+ <Button>Save</Button>
35
+ <Button type="secondary">Cancel</Button>
36
+ </Button.Group>
37
+ ```
38
+
39
+ ### Vertical group
40
+
41
+ ```jsx
42
+ <Button.Group direction="vertical">
43
+ <Button>Option 1</Button>
44
+ <Button>Option 2</Button>
45
+ </Button.Group>
46
+ ```
@@ -0,0 +1,199 @@
1
+ # Button.Split
2
+
3
+ A split button that groups a primary action with a dropdown trigger for secondary actions. Supports two modes: **custom** (arbitrary button children) and **strict** (declarative action list with built-in menu).
4
+
5
+ ## When to Use
6
+
7
+ - Present a default action alongside alternative actions in a compact control
8
+ - Allow users to switch between related operations (e.g., deploy targets, save modes)
9
+ - Group two or more buttons visually as a single connected unit
10
+
11
+ ## Component
12
+
13
+ ---
14
+
15
+ ## Properties
16
+
17
+ - **`actions`** `ButtonSplitAction[]` — Array of actions for strict mode. Each action requires `key` and `label`
18
+ - **`actionKey`** `string` — Currently selected action key (controlled)
19
+ - **`defaultActionKey`** `string` — Initially selected action key (uncontrolled)
20
+ - **`onAction`** `(key: string) => void` — Called when the action button is pressed
21
+ - **`onActionChange`** `(key: string) => void` — Called when the selected action changes via the menu
22
+ - **`type`** `'primary' | 'secondary' | 'outline' | 'neutral' | 'clear'` (default: `'outline'`) — Button type (inherited by children via context)
23
+ - **`theme`** `'default' | 'danger' | 'success' | 'warning' | 'note' | 'special'` (default: `'default'`) — Button theme (inherited by children via context)
24
+ - **`size`** `'xsmall' | 'small' | 'medium' | 'large' | 'xlarge'` (default: `'medium'`) — Button size (inherited by children via context)
25
+ - **`isDisabled`** `boolean` (default: `false`) — Disables all buttons (inherited via context)
26
+
27
+ ### Base Properties
28
+
29
+ Supports [Base properties](../../BaseProperties.md)
30
+
31
+ ### Styling Properties
32
+
33
+ #### styles
34
+
35
+ Customises the root wrapper element of the split button.
36
+
37
+ ### Style Properties
38
+
39
+ These properties allow direct styling without using the `styles` prop: `width`, `height`.
40
+
41
+ ### Context Inheritance
42
+
43
+ `type`, `theme`, `size`, and `isDisabled` set on `Button.Split` are inherited by all child `Button` components via context. Explicitly passed props on individual buttons always take precedence.
44
+
45
+ ## Modes
46
+
47
+ ### Strict Mode
48
+
49
+ Pass an `actions` array to automatically render an action button and a trigger button with a dropdown menu. The trigger displays a `DirectionIcon` pointing down.
50
+
51
+ Each action object requires `key` and `label`, and inherits all other props from `Menu.Item` (`icon`, `rightIcon`, `description`, `descriptionPlacement`, `prefix`, `suffix`, `hotkeys`, `textValue`, `isDisabled`, `qa`, `styles`, etc.).
52
+
53
+ ```jsx
54
+ import { Button } from '@cube-dev/ui-kit';
55
+
56
+ const actions = [
57
+ { key: 'deploy', label: 'Deploy', icon: <IconSend />, hotkeys: 'Mod+D' },
58
+ { key: 'deploy-staging', label: 'Deploy to Staging', icon: <IconSend />, description: 'Preview environment' },
59
+ { key: 'deploy-preview', label: 'Deploy Preview', icon: <IconPlayerPlay /> },
60
+ ];
61
+
62
+ <Button.Split
63
+ actions={actions}
64
+ defaultActionKey="deploy"
65
+ type="primary"
66
+ onAction={(key) => console.log('Executed:', key)}
67
+ onActionChange={(key) => console.log('Switched to:', key)}
68
+ />
69
+ ```
70
+
71
+ #### Controlled
72
+
73
+ Use `actionKey` and `onActionChange` for controlled state.
74
+
75
+ ```jsx
76
+ const [currentKey, setCurrentKey] = useState('deploy');
77
+
78
+ <Button.Split
79
+ actions={actions}
80
+ actionKey={currentKey}
81
+ type="primary"
82
+ onAction={(key) => console.log('Executed:', key)}
83
+ onActionChange={setCurrentKey}
84
+ />
85
+ ```
86
+
87
+ ### Custom Mode
88
+
89
+ Pass `children` to render arbitrary buttons with split-group styling (joined radius, collapsed borders). Set `type` and `theme` on the wrapper -- child buttons inherit them via context.
90
+
91
+ ```jsx
92
+ import { Button, Menu } from '@cube-dev/ui-kit';
93
+ import { DirectionIcon } from '@cube-dev/ui-kit';
94
+
95
+ <Button.Split type="primary">
96
+ <Button onPress={() => console.log('Save')}>Save</Button>
97
+ <Menu.Trigger placement="bottom end">
98
+ <Button
99
+ aria-label="More save options"
100
+ icon={({ pressed }) => <DirectionIcon to={pressed ? 'up' : 'down'} />}
101
+ />
102
+ <Menu onAction={(key) => console.log(key)}>
103
+ <Menu.Item key="save-draft">Save as Draft</Menu.Item>
104
+ <Menu.Item key="save-publish">Save & Publish</Menu.Item>
105
+ </Menu>
106
+ </Menu.Trigger>
107
+ </Button.Split>
108
+ ```
109
+
110
+ ### Multiple Buttons
111
+
112
+ More than two buttons are supported. Middle buttons have no border radius.
113
+
114
+ ```jsx
115
+ <Button.Split type="outline">
116
+ <Button icon={<IconPlus />}>Add</Button>
117
+ <Button icon={<IconCopy />}>Copy</Button>
118
+ <Button icon={<IconDownload />}>Export</Button>
119
+ </Button.Split>
120
+ ```
121
+
122
+ ## Examples
123
+
124
+ ### Variants
125
+
126
+ Different types and themes can be applied. All child buttons inherit the styling.
127
+
128
+ ```jsx
129
+ <Button.Split actions={actions} defaultActionKey="copy" type="primary" />
130
+ <Button.Split actions={actions} defaultActionKey="copy" type="secondary" />
131
+ <Button.Split actions={actions} defaultActionKey="copy" type="outline" />
132
+ <Button.Split actions={actions} defaultActionKey="copy" type="primary" theme="danger" />
133
+ <Button.Split actions={actions} defaultActionKey="copy" type="primary" isDisabled />
134
+ ```
135
+
136
+ ### Customizing Sub-Components
137
+
138
+ Use `actionProps`, `triggerProps`, and `menuProps` to customise individual parts in strict mode.
139
+
140
+ ```jsx
141
+ <Button.Split
142
+ actions={actions}
143
+ defaultActionKey="deploy"
144
+ type="primary"
145
+ actionProps={{ size: 'large' }}
146
+ triggerProps={{ 'aria-label': 'Select deploy target' }}
147
+ menuProps={{ placement: 'bottom start' }}
148
+ />
149
+ ```
150
+
151
+ ## Accessibility
152
+
153
+ ### Keyboard Navigation
154
+
155
+ - `Tab` -- Moves focus between the action button and the trigger button.
156
+ - `Space` / `Enter` -- Activates the focused button. On the trigger, opens the dropdown menu.
157
+ - `Arrow Down` -- When the menu is open, navigates menu items.
158
+ - `Escape` -- Closes the dropdown menu and returns focus to the trigger.
159
+
160
+ ### Screen Reader Support
161
+
162
+ - The action button announces its label.
163
+ - The trigger button has `aria-label="More options"` by default (override via `triggerProps`).
164
+ - The dropdown menu announces selection changes.
165
+
166
+ ### ARIA Properties
167
+
168
+ - `aria-label` -- Provide on the trigger for context (e.g., "Select deploy target").
169
+ - Menu items support `aria-disabled` via the `isDisabled` property on actions.
170
+
171
+ ## Best Practices
172
+
173
+ 1. **Do**: Use strict mode for standard action+trigger patterns.
174
+ ```jsx
175
+ <Button.Split actions={actions} defaultActionKey="deploy" type="primary" />
176
+ ```
177
+
178
+ 2. **Do**: Set `type` and `theme` on the wrapper instead of repeating on each child.
179
+ ```jsx
180
+ <Button.Split type="primary">
181
+ <Button>Save</Button>
182
+ <Button icon={<DirectionIcon to="down" />} aria-label="Options" />
183
+ </Button.Split>
184
+ ```
185
+
186
+ 3. **Don't**: Mix `actions` prop with `children`. Use one mode or the other.
187
+
188
+ 4. **Accessibility**: Always provide `aria-label` on icon-only trigger buttons.
189
+
190
+ ## Suggested Improvements
191
+
192
+ - Support `isLoading` on the action button in strict mode.
193
+ - Add keyboard shortcut display in menu items via `hotkeys` prop.
194
+
195
+ ## Related Components
196
+
197
+ - [Button](./Button.md) -- Standalone action button.
198
+ - [Menu](./Menu.md) -- Dropdown menu for action lists.
199
+ - Button.Group -- Layout wrapper for spacing multiple buttons.