@cube-dev/ui-kit 0.138.5 → 0.139.0

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 (470) hide show
  1. package/dist/CHANGELOG.md +53 -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.d.ts +2 -2
  20. package/dist/components/actions/Button/Button.js +11 -17
  21. package/dist/components/actions/Button/Button.js.map +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.d.ts +2 -2
  28. package/dist/components/actions/ItemAction/ItemAction.js +8 -22
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.js +2 -2
  31. package/dist/components/actions/ItemActionContext.js.map +1 -1
  32. package/dist/components/actions/ItemButton/ItemButton.js +3 -3
  33. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +1 -1
  36. package/dist/components/actions/Menu/MenuItem.js +1 -1
  37. package/dist/components/actions/Menu/MenuSection.js +1 -1
  38. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  39. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  40. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  41. package/dist/components/actions/Menu/context.js +1 -1
  42. package/dist/components/actions/Menu/styled.js +3 -3
  43. package/dist/components/actions/Menu/styled.js.map +1 -1
  44. package/dist/components/actions/index.js +1 -1
  45. package/dist/components/actions/use-action.js +1 -1
  46. package/dist/components/actions/use-anchored-menu.js +1 -1
  47. package/dist/components/actions/use-context-menu.js +1 -1
  48. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  49. package/dist/components/content/Alert/Alert.js +1 -1
  50. package/dist/components/content/Alert/use-alert.js +1 -1
  51. package/dist/components/content/Avatar/Avatar.js +1 -1
  52. package/dist/components/content/Badge/Badge.js +1 -1
  53. package/dist/components/content/Card/Card.js +1 -1
  54. package/dist/components/content/Content.js +1 -1
  55. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  56. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  57. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  58. package/dist/components/content/Divider.js +1 -1
  59. package/dist/components/content/Footer.js +1 -1
  60. package/dist/components/content/Header.js +1 -1
  61. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  62. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  63. package/dist/components/content/Item/Item.d.ts +3 -3
  64. package/dist/components/content/Item/Item.js +19 -25
  65. package/dist/components/content/Item/Item.js.map +1 -1
  66. package/dist/components/content/ItemBadge/ItemBadge.d.ts +2 -2
  67. package/dist/components/content/ItemBadge/ItemBadge.js +12 -18
  68. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  69. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  70. package/dist/components/content/Layout/GridLayout.js +1 -1
  71. package/dist/components/content/Layout/Layout.js +1 -1
  72. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  73. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  74. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  75. package/dist/components/content/Layout/LayoutContent.js +1 -1
  76. package/dist/components/content/Layout/LayoutContext.js +1 -1
  77. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  78. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  79. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  80. package/dist/components/content/Layout/LayoutHeader.js +2 -2
  81. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  82. package/dist/components/content/Layout/LayoutPane.js +1 -1
  83. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  84. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  85. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  86. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  87. package/dist/components/content/Layout/index.js +1 -1
  88. package/dist/components/content/Layout/utils.js +1 -1
  89. package/dist/components/content/Paragraph.js +1 -1
  90. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  91. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  92. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  93. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  94. package/dist/components/content/Result/Result.js +1 -1
  95. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  96. package/dist/components/content/Tag/Tag.js +1 -1
  97. package/dist/components/content/Text.js +1 -1
  98. package/dist/components/content/TextItem/TextItem.js +1 -1
  99. package/dist/components/content/Title.js +1 -1
  100. package/dist/components/content/Tree/Tree.js +1 -1
  101. package/dist/components/content/Tree/TreeNode.js +1 -1
  102. package/dist/components/content/Tree/styled.js +1 -1
  103. package/dist/components/content/Tree/tree-index.js +1 -1
  104. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  105. package/dist/components/content/Tree/use-load-data.js +1 -1
  106. package/dist/components/content/highlightText.js +1 -1
  107. package/dist/components/content/use-auto-tooltip.js +1 -1
  108. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  109. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  110. package/dist/components/fields/Checkbox/context.js +1 -1
  111. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  112. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  113. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  114. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  115. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  116. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  117. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  118. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  119. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  120. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  121. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  122. package/dist/components/fields/DatePicker/intl.js +1 -1
  123. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  124. package/dist/components/fields/DatePicker/props.js +1 -1
  125. package/dist/components/fields/DatePicker/utils.js +1 -1
  126. package/dist/components/fields/FileInput/FileInput.js +1 -1
  127. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  128. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  129. package/dist/components/fields/Input/Input.js +1 -1
  130. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  131. package/dist/components/fields/ListBox/ListBox.js +1 -1
  132. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  133. package/dist/components/fields/NumberInput/StepButton.js +3 -3
  134. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  135. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  136. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  137. package/dist/components/fields/Picker/Picker.js +1 -1
  138. package/dist/components/fields/RadioGroup/Radio.d.ts +1 -1
  139. package/dist/components/fields/RadioGroup/Radio.js +40 -12
  140. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  141. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +1 -1
  142. package/dist/components/fields/RadioGroup/RadioGroup.js +15 -5
  143. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  144. package/dist/components/fields/RadioGroup/context.js +1 -1
  145. package/dist/components/fields/SearchInput/SearchInput.js +2 -2
  146. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  147. package/dist/components/fields/Select/Select.d.ts +1 -1
  148. package/dist/components/fields/Select/Select.js +1 -1
  149. package/dist/components/fields/Select/Select.js.map +1 -1
  150. package/dist/components/fields/Slider/Gradation.js +1 -1
  151. package/dist/components/fields/Slider/HueSlider.js +1 -1
  152. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  153. package/dist/components/fields/Slider/Slider.js +1 -1
  154. package/dist/components/fields/Slider/SliderBase.js +1 -1
  155. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  156. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  157. package/dist/components/fields/Slider/elements.js +1 -1
  158. package/dist/components/fields/Slider/index.js +1 -1
  159. package/dist/components/fields/Switch/Switch.js +1 -1
  160. package/dist/components/fields/TextArea/TextArea.js +1 -1
  161. package/dist/components/fields/TextInput/TextInput.js +1 -1
  162. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  163. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  164. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  165. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  166. package/dist/components/form/Form/Field.js +1 -1
  167. package/dist/components/form/Form/Form.js +1 -1
  168. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  169. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  170. package/dist/components/form/Form/SubmitError.js +1 -1
  171. package/dist/components/form/Form/index.js +1 -1
  172. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  173. package/dist/components/form/Form/use-field/use-field.js +1 -1
  174. package/dist/components/form/Form/use-form.js +1 -1
  175. package/dist/components/form/Form/validation.js +1 -1
  176. package/dist/components/form/Label.js +1 -1
  177. package/dist/components/form/wrapper.js +1 -1
  178. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  179. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  180. package/dist/components/layout/Flex.js +1 -1
  181. package/dist/components/layout/Flow.js +1 -1
  182. package/dist/components/layout/Grid.js +1 -1
  183. package/dist/components/layout/Panel.js +1 -1
  184. package/dist/components/layout/Prefix.js +1 -1
  185. package/dist/components/layout/ResizablePanel.js +1 -1
  186. package/dist/components/layout/Space.js +1 -1
  187. package/dist/components/layout/Suffix.js +1 -1
  188. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  189. package/dist/components/navigation/Tabs/TabButton.js +2 -2
  190. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  191. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  192. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  193. package/dist/components/navigation/Tabs/TabPicker.js +2 -2
  194. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  195. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  196. package/dist/components/navigation/Tabs/TabsAction.js +5 -5
  197. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  198. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  199. package/dist/components/navigation/Tabs/styled.js +2 -1
  200. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  201. package/dist/components/navigation/Tabs/types.js +1 -1
  202. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  203. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  204. package/dist/components/organisms/FileTabs/FileTabs.js +2 -2
  205. package/dist/components/organisms/FileTabs/FileTabs.js.map +1 -1
  206. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  207. package/dist/components/other/Calendar/Calendar.js +1 -1
  208. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  209. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  210. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  211. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  212. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  213. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  214. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  215. package/dist/components/overlays/Dialog/Dialog.js +2 -2
  216. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  217. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  218. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  219. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  220. package/dist/components/overlays/Dialog/context.js +1 -1
  221. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  222. package/dist/components/overlays/Modal/Modal.js +1 -1
  223. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  224. package/dist/components/overlays/Modal/Overlay.js +1 -1
  225. package/dist/components/overlays/Modal/Popover.js +1 -1
  226. package/dist/components/overlays/Modal/Tray.js +1 -1
  227. package/dist/components/overlays/Modal/Underlay.js +1 -1
  228. package/dist/components/overlays/Notifications/Notification.js +1 -1
  229. package/dist/components/overlays/Notifications/NotificationAction.d.ts +1 -1
  230. package/dist/components/overlays/Notifications/NotificationAction.js +4 -3
  231. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  232. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  233. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  234. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  235. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  236. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  237. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  238. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  239. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  240. package/dist/components/overlays/Notifications/index.js +1 -1
  241. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  242. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  243. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  244. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  245. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  246. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  247. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  248. package/dist/components/overlays/Toast/index.js +1 -1
  249. package/dist/components/overlays/Toast/useProgressToast.js +3 -2
  250. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  251. package/dist/components/overlays/Toast/useToast.js +1 -1
  252. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  253. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  254. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  255. package/dist/components/overlays/Tooltip/context.js +1 -1
  256. package/dist/components/portal/Portal.js +1 -1
  257. package/dist/components/portal/PortalProvider.js +1 -1
  258. package/dist/components/portal/usePortal.js +1 -1
  259. package/dist/components/shared/DraggableCollection.js +1 -1
  260. package/dist/components/shared/InvalidIcon.js +1 -1
  261. package/dist/components/shared/ValidIcon.js +1 -1
  262. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  263. package/dist/components/status/Spin/Cube.js +1 -1
  264. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  265. package/dist/components/status/Spin/Spin.js +1 -1
  266. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  267. package/dist/data/item-themes.d.ts +1 -1
  268. package/dist/data/item-themes.js +377 -467
  269. package/dist/data/item-themes.js.map +1 -1
  270. package/dist/data/themes.js +1 -1
  271. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  272. package/dist/icons/AdjustmentsIcon.js +1 -1
  273. package/dist/icons/AiIcon.js +1 -1
  274. package/dist/icons/AreaChartIcon.js +1 -1
  275. package/dist/icons/BackwardIcon.js +1 -1
  276. package/dist/icons/BarChartIcon.js +1 -1
  277. package/dist/icons/BellFilledIcon.js +1 -1
  278. package/dist/icons/BellIcon.js +1 -1
  279. package/dist/icons/BooleanIcon.js +1 -1
  280. package/dist/icons/CalendarEditIcon.js +1 -1
  281. package/dist/icons/CalendarIcon.js +1 -1
  282. package/dist/icons/CaretDownIcon.js +1 -1
  283. package/dist/icons/CaretUpIcon.js +1 -1
  284. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  285. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  286. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  287. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  288. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  289. package/dist/icons/ChartBarLineIcon.js +1 -1
  290. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  291. package/dist/icons/ChartBarStackedIcon.js +1 -1
  292. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  293. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  294. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  295. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  296. package/dist/icons/ChartBubbleIcon.js +1 -1
  297. package/dist/icons/ChartDonut2Icon.js +1 -1
  298. package/dist/icons/ChartFunnelIcon.js +1 -1
  299. package/dist/icons/ChartHeatmapIcon.js +1 -1
  300. package/dist/icons/ChartKPIIcon.js +1 -1
  301. package/dist/icons/ChartPie2Icon.js +1 -1
  302. package/dist/icons/ChartScatterIcon.js +1 -1
  303. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  304. package/dist/icons/CheckCircleIcon.js +1 -1
  305. package/dist/icons/CheckIcon.js +1 -1
  306. package/dist/icons/CircleFilledIcon.js +1 -1
  307. package/dist/icons/ClearIcon.js +1 -1
  308. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  309. package/dist/icons/CloseCircleIcon.js +1 -1
  310. package/dist/icons/CloseIcon.js +1 -1
  311. package/dist/icons/CodeIcon.js +1 -1
  312. package/dist/icons/ColumnTotalIcon.js +1 -1
  313. package/dist/icons/CopyIcon.js +1 -1
  314. package/dist/icons/CountIcon.js +1 -1
  315. package/dist/icons/CubeIcon.js +1 -1
  316. package/dist/icons/CubePauseIcon.js +1 -1
  317. package/dist/icons/CubePlayIcon.js +1 -1
  318. package/dist/icons/CurrencyDollarIcon.js +1 -1
  319. package/dist/icons/DangerIcon.js +1 -1
  320. package/dist/icons/DashboardIcon.js +1 -1
  321. package/dist/icons/DatabaseIcon.js +1 -1
  322. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  323. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  324. package/dist/icons/DirectionIcon.js +1 -1
  325. package/dist/icons/DonutIcon.js +1 -1
  326. package/dist/icons/DownIcon.js +1 -1
  327. package/dist/icons/EditIcon.js +1 -1
  328. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  329. package/dist/icons/ExclamationCircleIcon.js +1 -1
  330. package/dist/icons/ExclamationIcon.js +1 -1
  331. package/dist/icons/EyeIcon.js +1 -1
  332. package/dist/icons/EyeInvisibleIcon.js +1 -1
  333. package/dist/icons/FilterIcon.js +1 -1
  334. package/dist/icons/FolderFilledIcon.js +1 -1
  335. package/dist/icons/FolderIcon.js +1 -1
  336. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  337. package/dist/icons/FolderOpenIcon.js +1 -1
  338. package/dist/icons/ForwardIcon.js +1 -1
  339. package/dist/icons/GripVerticalIcon.js +1 -1
  340. package/dist/icons/HierarchyIcon.js +1 -1
  341. package/dist/icons/HierarchyOpenIcon.js +1 -1
  342. package/dist/icons/Icon.js +1 -1
  343. package/dist/icons/InfoCircleIcon.js +1 -1
  344. package/dist/icons/InfoIcon.js +1 -1
  345. package/dist/icons/KeyIcon.js +1 -1
  346. package/dist/icons/LeftIcon.js +1 -1
  347. package/dist/icons/LineChartIcon.js +1 -1
  348. package/dist/icons/LoadingIcon.js +1 -1
  349. package/dist/icons/LockFilledIcon.js +1 -1
  350. package/dist/icons/LockIcon.js +1 -1
  351. package/dist/icons/MoreIcon.js +1 -1
  352. package/dist/icons/NotAllowedIcon.js +1 -1
  353. package/dist/icons/Number123Icon.js +1 -1
  354. package/dist/icons/NumberIcon.js +1 -1
  355. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  356. package/dist/icons/PauseCircleIcon.js +1 -1
  357. package/dist/icons/PauseIcon.js +1 -1
  358. package/dist/icons/PercentageIcon.js +1 -1
  359. package/dist/icons/PieChartIcon.js +1 -1
  360. package/dist/icons/PlayCircleIcon.js +1 -1
  361. package/dist/icons/PlayIcon.js +1 -1
  362. package/dist/icons/PlusIcon.js +1 -1
  363. package/dist/icons/ProgressBarIcon.js +1 -1
  364. package/dist/icons/ReloadIcon.js +1 -1
  365. package/dist/icons/ReportIcon.js +1 -1
  366. package/dist/icons/ReturnIcon.js +1 -1
  367. package/dist/icons/RightIcon.js +1 -1
  368. package/dist/icons/RowTotalsIcon.js +1 -1
  369. package/dist/icons/SchemeIcon.js +1 -1
  370. package/dist/icons/SearchIcon.js +1 -1
  371. package/dist/icons/SemanticQueryIcon.js +1 -1
  372. package/dist/icons/SettingsIcon.js +1 -1
  373. package/dist/icons/ShieldFilledIcon.js +1 -1
  374. package/dist/icons/ShieldIcon.js +1 -1
  375. package/dist/icons/SlashIcon.js +1 -1
  376. package/dist/icons/SparklesIcon.js +1 -1
  377. package/dist/icons/SqlIcon.js +1 -1
  378. package/dist/icons/StatsIcon.js +1 -1
  379. package/dist/icons/StopIcon.js +1 -1
  380. package/dist/icons/StringIcon.js +1 -1
  381. package/dist/icons/SubtotalsIcon.js +1 -1
  382. package/dist/icons/SwitchIcon.js +1 -1
  383. package/dist/icons/TableIcon.js +1 -1
  384. package/dist/icons/ThumbsDownIcon.js +1 -1
  385. package/dist/icons/ThumbsUpIcon.js +1 -1
  386. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  387. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  388. package/dist/icons/ThunderboltIcon.js +1 -1
  389. package/dist/icons/TimeIcon.js +1 -1
  390. package/dist/icons/TrashIcon.js +1 -1
  391. package/dist/icons/UnlockIcon.js +1 -1
  392. package/dist/icons/UpIcon.js +1 -1
  393. package/dist/icons/UserGroupIcon.js +1 -1
  394. package/dist/icons/UserIcon.js +1 -1
  395. package/dist/icons/UserLockIcon.js +1 -1
  396. package/dist/icons/ViewIcon.js +1 -1
  397. package/dist/icons/WarningFilledIcon.js +1 -1
  398. package/dist/icons/WarningIcon.js +1 -1
  399. package/dist/icons/wrap-icon.js +1 -1
  400. package/dist/index.js +1 -1
  401. package/dist/provider.js +1 -1
  402. package/dist/providers/TrackingProvider.js +1 -1
  403. package/dist/providers/navigationAdapter.default.js +1 -1
  404. package/dist/tokens/base.js +1 -1
  405. package/dist/tokens/colors.js +1 -1
  406. package/dist/tokens/index.js +1 -1
  407. package/dist/tokens/layout.js +1 -1
  408. package/dist/tokens/palette.js +52 -22
  409. package/dist/tokens/palette.js.map +1 -1
  410. package/dist/tokens/shadows.js +1 -1
  411. package/dist/tokens/sizes.js +1 -1
  412. package/dist/tokens/spacing.js +1 -1
  413. package/dist/tokens/typography.js +1 -1
  414. package/dist/utils/ResizeSensor.js +1 -1
  415. package/dist/utils/is-dev-env.js +1 -1
  416. package/dist/utils/modules.js +1 -1
  417. package/dist/utils/promise.js +1 -1
  418. package/dist/utils/raf.js +1 -1
  419. package/dist/utils/random.js +1 -1
  420. package/dist/utils/range.js +1 -1
  421. package/dist/utils/react/RenderCache.js +1 -1
  422. package/dist/utils/react/Slots.js +1 -1
  423. package/dist/utils/react/chain.js +1 -1
  424. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  425. package/dist/utils/react/index.js +1 -1
  426. package/dist/utils/react/interactions.js +1 -1
  427. package/dist/utils/react/isTextOnly.js +1 -1
  428. package/dist/utils/react/mapProps.js +1 -1
  429. package/dist/utils/react/mergeProps.js +1 -1
  430. package/dist/utils/react/nullableValue.js +1 -1
  431. package/dist/utils/react/resolveIcon.js +1 -1
  432. package/dist/utils/react/sharedStore.js +1 -1
  433. package/dist/utils/react/useCombinedRefs.js +1 -1
  434. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  435. package/dist/utils/react/useEventBus.js +1 -1
  436. package/dist/utils/react/useId.js +1 -1
  437. package/dist/utils/react/useIsDarwin.js +1 -1
  438. package/dist/utils/react/useKeySymbols.js +1 -1
  439. package/dist/utils/react/useLayoutEffect.js +1 -1
  440. package/dist/utils/react/useLocalStorage.js +1 -1
  441. package/dist/utils/react/useMergeStyles.js +1 -1
  442. package/dist/utils/react/usePopoverSync.js +1 -1
  443. package/dist/utils/react/useQaProps.js +1 -1
  444. package/dist/utils/react/useViewportSize.js +1 -1
  445. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  446. package/dist/utils/selection.js +1 -1
  447. package/dist/utils/styles.js +1 -1
  448. package/dist/utils/tree.js +1 -1
  449. package/dist/utils/warnings.js +1 -1
  450. package/dist/version.js +2 -2
  451. package/docs/ComplexLayout.md +2 -2
  452. package/docs/components/CollectionItem.md +1 -1
  453. package/docs/components/actions/Banner.md +1 -1
  454. package/docs/components/actions/Button.md +3 -5
  455. package/docs/components/actions/ButtonGroup.md +1 -1
  456. package/docs/components/actions/ButtonSplit.md +1 -2
  457. package/docs/components/actions/ItemAction.md +5 -5
  458. package/docs/components/actions/ItemButton.md +4 -6
  459. package/docs/components/content/Item.md +9 -10
  460. package/docs/components/content/ItemBadge.md +4 -4
  461. package/docs/components/content/ItemCard.md +1 -1
  462. package/docs/components/content/Layout.md +2 -2
  463. package/docs/components/content/Tag.md +1 -1
  464. package/docs/components/fields/FilterListBox.md +1 -1
  465. package/docs/components/fields/FilterPicker.md +3 -5
  466. package/docs/components/fields/ListBox.md +1 -1
  467. package/docs/components/fields/Picker.md +3 -5
  468. package/docs/components/fields/RadioGroup.md +7 -9
  469. package/docs/components/fields/Select.md +2 -4
  470. package/package.json +1 -1
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,58 @@
1
1
  # @cube-dev/ui-kit
2
2
 
3
+ ## 0.139.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - Added a new `outline-2` type. It mirrors `outline` but paints over `#surface-3` instead of `#surface-2`, so the component stays visually distinct when placed inside a `#surface-2` container. The matching theme constants (`DEFAULT_OUTLINE_2_STYLES`, `DANGER_OUTLINE_2_STYLES`, `SUCCESS_OUTLINE_2_STYLES`, `WARNING_OUTLINE_2_STYLES`, `NOTE_OUTLINE_2_STYLES`) are exported from `data/item-themes`. `outline-2` is wired into `Button`, `Item` (and every component that goes through `Item` — `ItemButton`, `ItemAction`, `ItemBadge`, `Select`, `FilterPicker`, `Picker`, `Menu`, etc.). The `special` theme intentionally has no `outline-2` variant (it paints over `#special-surface`); pairing `theme="special"` with `type="outline-2"` falls back to `outline`.
8
+
9
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - **Breaking:** Removed the `neutral` and `secondary` values from the `type` prop on `Button`, `ButtonSplit`, `Item`, `ItemAction`, `ItemBadge`, and `ItemButton`, and from `buttonType` on `RadioGroup`. Their visuals are now expressed through the existing `clear` and `outline` types combined with `isSelected`:
10
+
11
+ - `type="neutral"` → `type="clear"`
12
+ - `type="clear"` (selected look) → `type="clear" isSelected`
13
+ - `type="secondary"` → `type="outline" isSelected`
14
+
15
+ Default `type` for `ItemAction`, `ItemBadge`, and `ItemButton` changed from `neutral` to `clear`. `ItemBadge` now accepts the full `'primary' | 'outline' | 'clear' | 'link'` union and supports `isSelected`.
16
+
17
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - `RadioGroup` with `type="button"` now groups its buttons like `ButtonSplit`: zero gap, shared corner radius (only the first/last items keep their outer-side radius), overlapping borders, and the selected button is lifted via `z-index` so its brand-tinted border is visible from all four sides. Hover / focus-visible bump higher still so they always read on top.
18
+
19
+ Outline-style selected borders no longer use the alpha-blended `#<theme>-text.15` (which doubled up at every overlap into a darker stripe) — they now use the new opaque `#<theme>-border` token. The token comes from the existing neutral `border` ramp re-resolved per colored theme at `saturation: 0.5`, giving each theme a subtly hue-tinted border with no extra palette bookkeeping. This affects `DEFAULT_OUTLINE_STYLES`, `DANGER_OUTLINE_STYLES`, `SUCCESS_OUTLINE_STYLES`, `WARNING_OUTLINE_STYLES`, and `NOTE_OUTLINE_STYLES`.
20
+
21
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - **Breaking:** Renamed the special `icon` string from `'checkbox'` to `'checkmark'` on `Item`, `ItemAction`, and `ItemBadge` since the rendered glyph is a checkmark, not a checkbox. Replace `icon="checkbox"` with `icon="checkmark"`. The associated `checkbox` style modifier was renamed to `checkmark` accordingly.
22
+
23
+ ### Patch Changes
24
+
25
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - Fixed `special` theme `outline` and `clear` fills resolving to the wrong layer for `selected & hovered`, `selected & focused` and `selected & hovered & pressed` states. Two state entries within the same `fill` map shared the same `#white.X` value (`hovered` ↔ `disabled` for outline; `'hovered | focused'` ↔ `'selected & disabled'` for clear). Tasty's `mergeEntriesByValue` pass coalesced them into a single high-priority OR-condition entry that then negated against the lower-priority `'selected & (hovered | focused)'` rule, making it resolve to `FALSE` for selected-hover/focus. Each alpha step now uses a unique value string, restoring the intended monotonic-contrast progression. See `src/data/Claude.md` for the underlying pitfall.
26
+
27
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - Fixed `ItemAction` and `ItemBadge` rendering without variant styles when nested inside an `Item` / `ItemButton` with `type="outline-2"`. `ItemActionContext` now collapses `'outline-2'` to `'clear'` for child actions, matching the existing behavior for `'outline'` / `'item'` / `'header'` / `'card'`.
28
+
29
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - Internal: migrated every color reference in `src/data/item-themes.ts` to use Glaze palette tokens directly, removing all dependencies on the legacy alias layer in `src/tokens/colors.ts` (e.g. `#dark` → `#surface-text`, `#dark-02` → `#surface-text-soft`, `#primary-text` → `#primary-accent-text`, `#primary-hover` → `#primary-accent-surface-hover`, `#primary` brand fill → `#primary-accent-surface`, `#light` → `#surface-3`, `#clear` → `transparent`, and the matching `danger` / `success` / `warning` / `note` ramps). Resolved values are unchanged — every alias was a direct re-export of the same Glaze token — so component visuals are identical. The legacy aliases in `colors.ts` are still exported for backwards compatibility with consumer code.
30
+
31
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - Unified the `primary`-type fill ramp across all themes. `DANGER`, `SUCCESS`, `WARNING`, `NOTE` and `SPECIAL` now follow the same monotonically-darkening `accent-surface` → `-2` → `-3` (default → hover → pressed) ramp already used by the default theme, so contrast against the app background increases consistently with each interaction step in both light and dark schemes. Previously the colored themes used a `default` → `-hover` → `default` shape (no press feedback) and the special theme used a separate `accent-fill` / `accent-fill-hover` / `accent-fill` ramp.
32
+
33
+ The special theme palette was renamed for consistency: `accent-fill` → `accent-surface`, `accent-fill-text` → `accent-surface-text`, `accent-fill-hover` → `accent-surface-hover`, plus new `accent-surface-2` and `accent-surface-3` steps. The legacy `accent-surface-hover` token is retained for the `#primary-hover` / `#<theme>-hover` color aliases consumed by external code.
34
+
35
+ **Breaking (special theme tokens only):** `#special-accent-fill`, `#special-accent-fill-text`, and `#special-accent-fill-hover` were renamed to `#special-accent-surface`, `#special-accent-surface-text`, and `#special-accent-surface-hover` respectively. External consumers referencing these by name should update their references.
36
+
37
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - Fixed keyboard focus ring on `RadioGroup`:
38
+
39
+ - Classic `RadioGroup` (default `type="radio"`) — removed the redundant per-item wrapper outline; the inner radio circle already shows a `focused`-mod ring, and the duplicate wrapper ring driven by `:focus-within` also fired on mouse clicks.
40
+ - Button / Tabs `RadioGroup` (`type="button"` / `type="tabs"`) — added a keyboard-only focus ring on the group container itself (none was rendered before, since the per-item `Item` themes only swap the border color on focus). Implemented via React Aria's `useFocusRing({ within: true })` reading `isFocusVisible` (not `isFocused`), so mouse clicks don't trigger it.
41
+
42
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - `RadioGroup` with `type="tabs"`: the selected tab no longer looks active when the group is disabled. The selected-tab override now dims fill (`#surface` → `#surface.6`) and text (`#dark` → `#dark.3`) and drops `$item-shadow` for the `tabs & selected & disabled` state.
43
+
44
+ - [#1179](https://github.com/cube-js/cube-ui-kit/pull/1179) [`658f0b94`](https://github.com/cube-js/cube-ui-kit/commit/658f0b947ab942ba69db64fbdc9991c695d28425) Thanks [@tenphi](https://github.com/tenphi)! - Fixed a brief surface-color flash that appeared when toggling `isSelected` on `outline` / `outline-2` buttons (most visible inside `RadioGroup type="button"`) and when toggling `isDisabled` on `primary` buttons (e.g. on form submit). The flash came from a CSS-transition layer-count mismatch: tasty's `fill` renders single-color values as `background-color` only and two-color values as `background-color` + `--tasty-second-fill-color` + `background-image: linear-gradient(...)`. When a state with two layers transitioned to a state with one (or vice-versa), the gradient overlay snapped on/off instantly while `background-color` interpolated, exposing the base layer mid-transition.
45
+
46
+ Every `fill` state map in `src/data/item-themes.ts` now uses the same two-layer shape across non-selected, selected, and disabled states, with the same opaque base color (`#surface`, `#surface-2`, `#surface-3`, or `#special-surface` per variant). Only the overlay tint changes between states, so `background-color`, `--tasty-second-fill-color`, and `background-image` all interpolate smoothly. Visuals are essentially unchanged — the brand-tinted overlays now composite over the variant's own base instead of the body surface, producing a sub-1-OKHSL-point lightness shift that's imperceptible in side-by-side comparisons.
47
+
48
+ ## 0.138.6
49
+
50
+ ### Patch Changes
51
+
52
+ - [#1177](https://github.com/cube-js/cube-ui-kit/pull/1177) [`bf362325`](https://github.com/cube-js/cube-ui-kit/commit/bf3623250190e80c856a4a4aaf9eb914acf561e7) Thanks [@tenphi](https://github.com/tenphi)! - Use `#surface-2` instead of `#surface` as the base fill for outline item actions and buttons across default, danger, success, warning, and note themes.
53
+
54
+ This gives outline controls a slightly elevated background on surface-level containers.
55
+
3
56
  ## 0.138.5
4
57
 
5
58
  ### Patch Changes
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { useEvent } from "./use-event.js";
3
3
 
4
4
  //#region src/_internal/hooks/use-chained-callback.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { useEffect, useRef, useState } from "react";
3
3
 
4
4
  //#region src/_internal/hooks/use-debounced-value.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { deprecationWarning } from "../../utils/warnings.js";
3
3
  import React, { useEffect } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { useSyncRef } from "./use-sync-ref.js";
3
3
  import { useCallback } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { useRef } from "react";
3
3
 
4
4
  //#region src/_internal/hooks/use-is-first-render.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../utils/react/useLayoutEffect.js";
3
3
  import { useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  //#region src/_internal/hooks/use-timer/timer.ts
3
3
  var Timer = class {
4
4
  callback;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { useEvent } from "../use-event.js";
3
3
  import { Timer } from "./timer.js";
4
4
  import { useEffect, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { useEvent } from "./use-event.js";
3
3
  import { warn } from "../../utils/warnings.js";
4
4
  import { useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { ItemAction } from "./actions/ItemAction/ItemAction.js";
3
3
  import { ItemBadge } from "./content/ItemBadge/ItemBadge.js";
4
4
  import { Item } from "react-stately";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { TOKENS } from "../tokens/index.js";
3
3
  import { useGlobalStyles, useRawCSS } from "@tenphi/tasty";
4
4
  import { useMemo } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { useCombinedRefs } from "../utils/react/useCombinedRefs.js";
3
3
  import { filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef, useCallback, useEffect, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/components/HiddenInput.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../utils/styles.js";
3
3
  import { EventBusProvider } from "../utils/react/useEventBus.js";
4
4
  import { PortalProvider } from "./portal/PortalProvider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useAction } from "../use-action.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { _Item } from "../../content/Item/Item.js";
4
4
  import { Button } from "../Button/Button.js";
@@ -25,7 +25,7 @@ interface CubeButtonProps extends CubeActionProps {
25
25
  rightIcon?: DynamicIcon<ButtonMods>;
26
26
  isLoading?: boolean;
27
27
  isSelected?: boolean;
28
- type?: 'primary' | 'secondary' | 'danger' | 'link' | 'clear' | 'outline' | 'neutral' | (string & {});
28
+ type?: 'primary' | 'danger' | 'link' | 'clear' | 'outline' | 'outline-2' | (string & {});
29
29
  size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'inline' | number | (string & {});
30
30
  /**
31
31
  * Tooltip content and configuration:
@@ -43,7 +43,7 @@ interface CubeButtonProps extends CubeActionProps {
43
43
  */
44
44
  defaultTooltipPlacement?: OverlayProps['placement'];
45
45
  }
46
- type ButtonVariant = 'default.primary' | 'default.secondary' | 'default.outline' | 'default.neutral' | 'default.clear' | 'default.link' | 'danger.primary' | 'danger.secondary' | 'danger.outline' | 'danger.neutral' | 'danger.clear' | 'danger.link' | 'success.primary' | 'success.secondary' | 'success.outline' | 'success.neutral' | 'success.clear' | 'success.link' | 'warning.primary' | 'warning.secondary' | 'warning.outline' | 'warning.neutral' | 'warning.clear' | 'warning.link' | 'note.primary' | 'note.secondary' | 'note.outline' | 'note.neutral' | 'note.clear' | 'note.link' | 'special.primary' | 'special.secondary' | 'special.outline' | 'special.neutral' | 'special.clear' | 'special.link';
46
+ type ButtonVariant = 'default.primary' | 'default.outline' | 'default.outline-2' | 'default.clear' | 'default.link' | 'danger.primary' | 'danger.outline' | 'danger.outline-2' | 'danger.clear' | 'danger.link' | 'success.primary' | 'success.outline' | 'success.outline-2' | 'success.clear' | 'success.link' | 'warning.primary' | 'warning.outline' | 'warning.outline-2' | 'warning.clear' | 'warning.link' | 'note.primary' | 'note.outline' | 'note.outline-2' | 'note.clear' | 'note.link' | 'special.primary' | 'special.outline' | 'special.clear' | 'special.link';
47
47
  declare const DEFAULT_BUTTON_STYLES: Styles;
48
48
  //#endregion
49
49
  export { ButtonMods, ButtonVariant, CubeButtonProps, DEFAULT_BUTTON_STYLES };
@@ -1,10 +1,10 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { resolveIcon } from "../../../utils/react/resolveIcon.js";
5
5
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
6
6
  import { useAutoTooltip } from "../../content/use-auto-tooltip.js";
7
- import { DANGER_CLEAR_STYLES, DANGER_LINK_STYLES, DANGER_NEUTRAL_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DANGER_SECONDARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_LINK_STYLES, DEFAULT_NEUTRAL_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, DEFAULT_SECONDARY_STYLES, NOTE_CLEAR_STYLES, NOTE_LINK_STYLES, NOTE_NEUTRAL_STYLES, NOTE_OUTLINE_STYLES, NOTE_PRIMARY_STYLES, NOTE_SECONDARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_LINK_STYLES, SPECIAL_NEUTRAL_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SPECIAL_SECONDARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_LINK_STYLES, SUCCESS_NEUTRAL_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, SUCCESS_SECONDARY_STYLES, WARNING_CLEAR_STYLES, WARNING_LINK_STYLES, WARNING_NEUTRAL_STYLES, WARNING_OUTLINE_STYLES, WARNING_PRIMARY_STYLES, WARNING_SECONDARY_STYLES } from "../../../data/item-themes.js";
7
+ import { DANGER_CLEAR_STYLES, DANGER_LINK_STYLES, DANGER_OUTLINE_2_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_LINK_STYLES, DEFAULT_OUTLINE_2_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, NOTE_CLEAR_STYLES, NOTE_LINK_STYLES, NOTE_OUTLINE_2_STYLES, NOTE_OUTLINE_STYLES, NOTE_PRIMARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_LINK_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_LINK_STYLES, SUCCESS_OUTLINE_2_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, WARNING_CLEAR_STYLES, WARNING_LINK_STYLES, WARNING_OUTLINE_2_STYLES, WARNING_OUTLINE_STYLES, WARNING_PRIMARY_STYLES } from "../../../data/item-themes.js";
8
8
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
9
9
  import { useWarn } from "../../../_internal/hooks/use-warn.js";
10
10
  import { useIsFirstRender } from "../../../_internal/hooks/use-is-first-render.js";
@@ -80,7 +80,7 @@ const DEFAULT_BUTTON_STYLES = {
80
80
  },
81
81
  margin: {
82
82
  "": 0,
83
- "@parent(button-split, >) & !:first-child & (type=secondary | type=outline | type=primary)": "-1bw left"
83
+ "@parent(button-split, >) & !:first-child & (type=outline | type=outline-2 | type=primary)": "-1bw left"
84
84
  },
85
85
  zIndex: {
86
86
  "@parent(button-split, >) & :hover": 1,
@@ -164,39 +164,32 @@ const ButtonElement = tasty({
164
164
  styles: DEFAULT_BUTTON_STYLES,
165
165
  variants: {
166
166
  "default.primary": DEFAULT_PRIMARY_STYLES,
167
- "default.secondary": DEFAULT_SECONDARY_STYLES,
168
167
  "default.outline": DEFAULT_OUTLINE_STYLES,
169
- "default.neutral": DEFAULT_NEUTRAL_STYLES,
168
+ "default.outline-2": DEFAULT_OUTLINE_2_STYLES,
170
169
  "default.clear": DEFAULT_CLEAR_STYLES,
171
170
  "default.link": DEFAULT_LINK_STYLES,
172
171
  "danger.primary": DANGER_PRIMARY_STYLES,
173
- "danger.secondary": DANGER_SECONDARY_STYLES,
174
172
  "danger.outline": DANGER_OUTLINE_STYLES,
175
- "danger.neutral": DANGER_NEUTRAL_STYLES,
173
+ "danger.outline-2": DANGER_OUTLINE_2_STYLES,
176
174
  "danger.clear": DANGER_CLEAR_STYLES,
177
175
  "danger.link": DANGER_LINK_STYLES,
178
176
  "success.primary": SUCCESS_PRIMARY_STYLES,
179
- "success.secondary": SUCCESS_SECONDARY_STYLES,
180
177
  "success.outline": SUCCESS_OUTLINE_STYLES,
181
- "success.neutral": SUCCESS_NEUTRAL_STYLES,
178
+ "success.outline-2": SUCCESS_OUTLINE_2_STYLES,
182
179
  "success.clear": SUCCESS_CLEAR_STYLES,
183
180
  "success.link": SUCCESS_LINK_STYLES,
184
181
  "warning.primary": WARNING_PRIMARY_STYLES,
185
- "warning.secondary": WARNING_SECONDARY_STYLES,
186
182
  "warning.outline": WARNING_OUTLINE_STYLES,
187
- "warning.neutral": WARNING_NEUTRAL_STYLES,
183
+ "warning.outline-2": WARNING_OUTLINE_2_STYLES,
188
184
  "warning.clear": WARNING_CLEAR_STYLES,
189
185
  "warning.link": WARNING_LINK_STYLES,
190
186
  "note.primary": NOTE_PRIMARY_STYLES,
191
- "note.secondary": NOTE_SECONDARY_STYLES,
192
187
  "note.outline": NOTE_OUTLINE_STYLES,
193
- "note.neutral": NOTE_NEUTRAL_STYLES,
188
+ "note.outline-2": NOTE_OUTLINE_2_STYLES,
194
189
  "note.clear": NOTE_CLEAR_STYLES,
195
190
  "note.link": NOTE_LINK_STYLES,
196
191
  "special.primary": SPECIAL_PRIMARY_STYLES,
197
- "special.secondary": SPECIAL_SECONDARY_STYLES,
198
192
  "special.outline": SPECIAL_OUTLINE_STYLES,
199
- "special.neutral": SPECIAL_NEUTRAL_STYLES,
200
193
  "special.clear": SPECIAL_CLEAR_STYLES,
201
194
  "special.link": SPECIAL_LINK_STYLES
202
195
  }
@@ -293,6 +286,7 @@ const Button = forwardRef(function Button(allProps, ref) {
293
286
  };
294
287
  const isCustomSize = typeof size === "number" || size != null && !BUTTON_SIZE_VALUES.includes(size);
295
288
  const sizeTokenValue = typeof size === "number" ? `${size}px` : isCustomSize ? size : void 0;
289
+ const effectiveType = theme === "special" && type === "outline-2" ? "outline" : type;
296
290
  return /* @__PURE__ */ jsxs(ButtonElement, {
297
291
  download,
298
292
  ...mergeProps(actionProps, tooltipTriggerProps || {}),
@@ -302,9 +296,9 @@ const Button = forwardRef(function Button(allProps, ref) {
302
296
  ...modifiers
303
297
  },
304
298
  disabled: isDisabledElement,
305
- variant: `${theme}.${type ?? "outline"}`,
299
+ variant: `${theme}.${effectiveType ?? "outline"}`,
306
300
  "data-theme": theme,
307
- "data-type": type ?? "outline",
301
+ "data-type": effectiveType ?? "outline",
308
302
  "data-size": size,
309
303
  "data-popover-dismiss": "",
310
304
  styles,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":[],"sources":["../../../../src/components/actions/Button/Button.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport {\n CONTAINER_STYLES,\n Mods,\n Styles,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport {\n Children,\n forwardRef,\n HTMLAttributes,\n isValidElement,\n ReactNode,\n RefObject,\n useMemo,\n useState,\n} from 'react';\nimport { OverlayProps } from 'react-aria';\n\nimport { useIsFirstRender } from '../../../_internal/hooks/use-is-first-render';\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport {\n DANGER_CLEAR_STYLES,\n DANGER_LINK_STYLES,\n DANGER_NEUTRAL_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DANGER_SECONDARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_LINK_STYLES,\n DEFAULT_NEUTRAL_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n DEFAULT_SECONDARY_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_LINK_STYLES,\n NOTE_NEUTRAL_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n NOTE_SECONDARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_LINK_STYLES,\n SPECIAL_NEUTRAL_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SPECIAL_SECONDARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_LINK_STYLES,\n SUCCESS_NEUTRAL_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n SUCCESS_SECONDARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_LINK_STYLES,\n WARNING_NEUTRAL_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n WARNING_SECONDARY_STYLES,\n} from '../../../data/item-themes';\nimport { LoadingIcon } from '../../../icons';\nimport { DynamicIcon, mergeProps, resolveIcon } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { useAutoTooltip } from '../../content/use-auto-tooltip';\nimport { DisplayTransition } from '../../helpers/DisplayTransition';\nimport { IconSwitch } from '../../helpers/IconSwitch/IconSwitch';\nimport { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\nimport { CubeActionProps } from '../Action/Action';\nimport { useButtonSplitContext } from '../ButtonSplit/context';\nimport { useAction } from '../use-action';\n\nconst BUTTON_SIZE_VALUES = [\n 'xsmall',\n 'small',\n 'medium',\n 'large',\n 'xlarge',\n 'inline',\n] as const;\n\n/** Known modifiers for Button component */\nexport type ButtonMods = Mods<{\n pressed?: boolean;\n loading?: boolean;\n selected?: boolean;\n 'has-icons'?: boolean;\n 'has-icon'?: boolean;\n 'has-right-icon'?: boolean;\n 'single-icon'?: boolean;\n 'text-only'?: boolean;\n 'raw-children'?: boolean;\n}>;\n\nexport interface CubeButtonProps extends CubeActionProps {\n icon?: DynamicIcon<ButtonMods>;\n rightIcon?: DynamicIcon<ButtonMods>;\n isLoading?: boolean;\n isSelected?: boolean;\n type?:\n | 'primary'\n | 'secondary'\n | 'danger'\n | 'link'\n | 'clear'\n | 'outline'\n | 'neutral'\n | (string & {});\n size?:\n | 'xsmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xlarge'\n | 'inline'\n | number\n | (string & {});\n /**\n * Tooltip content and configuration:\n * - string: simple tooltip text\n * - true: auto tooltip on overflow (shows children as tooltip when truncated)\n * - object: advanced configuration with optional auto property\n */\n tooltip?:\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n /**\n * @private\n * Default tooltip placement for the button.\n * @default \"top\"\n */\n defaultTooltipPlacement?: OverlayProps['placement'];\n}\n\nexport type ButtonVariant =\n | 'default.primary'\n | 'default.secondary'\n | 'default.outline'\n | 'default.neutral'\n | 'default.clear'\n | 'default.link'\n | 'danger.primary'\n | 'danger.secondary'\n | 'danger.outline'\n | 'danger.neutral'\n | 'danger.clear'\n | 'danger.link'\n | 'success.primary'\n | 'success.secondary'\n | 'success.outline'\n | 'success.neutral'\n | 'success.clear'\n | 'success.link'\n | 'warning.primary'\n | 'warning.secondary'\n | 'warning.outline'\n | 'warning.neutral'\n | 'warning.clear'\n | 'warning.link'\n | 'note.primary'\n | 'note.secondary'\n | 'note.outline'\n | 'note.neutral'\n | 'note.clear'\n | 'note.link'\n | 'special.primary'\n | 'special.secondary'\n | 'special.outline'\n | 'special.neutral'\n | 'special.clear'\n | 'special.link';\n\nconst STYLE_PROPS = [...CONTAINER_STYLES, ...TEXT_STYLES];\n\nconst DEFAULT_ICON_STYLES: Styles = {\n $: '>',\n position: 'relative',\n display: 'grid',\n placeItems: 'center',\n placeContent: 'center',\n placeSelf: 'stretch',\n // overflow: 'hidden',\n width: 'fixed ($size - 2bw)',\n height: 'fixed ($size - 2bw)',\n pointerEvents: 'none',\n transition: 'theme, width, height, translate',\n};\n\nexport const DEFAULT_BUTTON_STYLES: Styles = {\n recipe: 'reset button',\n display: 'inline-grid',\n flow: 'column dense',\n gap: 0,\n placeItems: {\n '': 'stretch',\n 'raw-children': 'center stretch',\n },\n placeContent: 'center',\n position: 'relative',\n preset: {\n '': 't3m',\n 'size=xsmall': 't4',\n 'size=xlarge': 't2m',\n 'type=link': 'strong',\n },\n outlineOffset: 1,\n padding: {\n '': 0,\n 'raw-children & !has-icons':\n '$block-padding $inline-padding $block-padding $inline-padding',\n 'type=link': '0',\n },\n width: {\n '': 'min $size',\n 'has-icon & has-right-icon': 'min ($size * 2 - 2bw)',\n 'single-icon': 'fixed $size',\n 'type=link': 'min 1ch',\n },\n height: {\n '': 'fixed $size',\n 'type=link': 'initial',\n },\n whiteSpace: 'nowrap',\n radius: {\n '': true,\n 'type=link & !focused': 0,\n '@parent(button-split, >) & !:last-child': '1r left',\n '@parent(button-split, >) & !:first-child': '1r right',\n '@parent(button-split, >) & !:first-child & !:last-child': 0,\n },\n margin: {\n '': 0,\n '@parent(button-split, >) & !:first-child & (type=secondary | type=outline | type=primary)':\n '-1bw left',\n },\n zIndex: {\n '@parent(button-split, >) & :hover': 1,\n '@parent(button-split, >) & :focus-visible': 2,\n },\n transition: 'theme, grid-template, padding',\n verticalAlign: 'bottom',\n\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n 'size=inline': '(1lh + 2bw)',\n },\n '$inline-padding': {\n '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',\n },\n '$block-padding': {\n '': '.5x',\n 'size=xsmall | size=small': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(1x - 1bw)',\n '$left-padding': {\n '': '$inline-padding',\n 'is-icon-shown': '0px',\n },\n '$right-padding': {\n '': '$inline-padding',\n 'is-right-icon-shown': '0px',\n },\n\n // Icon sub-element (recommended format)\n Icon: {\n ...DEFAULT_ICON_STYLES,\n width: {\n '': 'fixed 0px',\n 'is-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-icon-shown': 1,\n },\n translate: {\n '': '($size * 1 / 4) 0',\n 'is-icon-shown': '0 0',\n },\n },\n\n // RightIcon sub-element (recommended format)\n RightIcon: {\n ...DEFAULT_ICON_STYLES,\n width: {\n '': 'fixed 0px',\n 'is-right-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-right-icon-shown': 1,\n },\n translate: {\n '': '($size * -1 / 4) 0',\n 'is-right-icon-shown': '0 0',\n },\n },\n\n // Label sub-element (recommended format)\n Label: {\n $: '>',\n display: 'block',\n placeSelf: 'center stretch',\n boxSizing: 'border-box',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '0 100%',\n textAlign: 'center',\n transition: 'theme, padding',\n padding: {\n '': '$block-padding $right-padding $block-padding $left-padding',\n 'type=link': '0',\n },\n },\n} as const;\n\nconst ButtonElement = tasty({\n qa: 'Button',\n styles: DEFAULT_BUTTON_STYLES,\n variants: {\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.secondary': DEFAULT_SECONDARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.neutral': DEFAULT_NEUTRAL_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n 'default.link': DEFAULT_LINK_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.secondary': DANGER_SECONDARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.neutral': DANGER_NEUTRAL_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n 'danger.link': DANGER_LINK_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.secondary': SUCCESS_SECONDARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.neutral': SUCCESS_NEUTRAL_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n 'success.link': SUCCESS_LINK_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.secondary': WARNING_SECONDARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.neutral': WARNING_NEUTRAL_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n 'warning.link': WARNING_LINK_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.secondary': NOTE_SECONDARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.neutral': NOTE_NEUTRAL_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n 'note.link': NOTE_LINK_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.secondary': SPECIAL_SECONDARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.neutral': SPECIAL_NEUTRAL_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n 'special.link': SPECIAL_LINK_STYLES,\n },\n});\n\nexport const Button = forwardRef(function Button(\n allProps: CubeButtonProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const splitContext = useButtonSplitContext();\n\n let {\n type,\n size: sizeProp,\n label,\n children,\n theme = splitContext?.theme ?? 'default',\n icon: iconProp,\n rightIcon: rightIconProp,\n mods,\n download,\n tooltip = true,\n defaultTooltipPlacement = 'top',\n ...props\n } = allProps;\n\n type = type ?? splitContext?.type;\n const size =\n sizeProp ?? splitContext?.size ?? (type === 'link' ? 'inline' : 'medium');\n\n const isDisabled =\n splitContext?.isDisabled || props.isDisabled || props.isLoading;\n const isLoading = props.isLoading;\n const isSelected = props.isSelected;\n\n const { actionProps, isPressed } = useAction(\n { ...allProps, isDisabled, ...(label ? { label } : {}) },\n ref,\n );\n\n const styles = extractStyles(props, STYLE_PROPS);\n const isDisabledElement = actionProps.isDisabled;\n\n delete actionProps.isDisabled;\n\n // Base mods for icon resolution (without icon-dependent mods)\n const baseMods = useMemo<ButtonMods>(\n () => ({\n pressed: isPressed && !isDisabled,\n loading: isLoading,\n selected: isSelected,\n ...mods,\n }),\n [isPressed, isDisabled, isLoading, isSelected, mods],\n );\n\n // Resolve dynamic icon props\n const resolvedIcon = useMemo(\n () => resolveIcon(iconProp, baseMods),\n [iconProp, baseMods],\n );\n const resolvedRightIcon = useMemo(\n () => resolveIcon(rightIconProp, baseMods),\n [rightIconProp, baseMods],\n );\n\n const hasLeftSlot = resolvedIcon.hasSlot;\n const hasRightSlot = resolvedRightIcon.hasSlot;\n\n const icon: ReactNode = resolvedIcon.content;\n const rightIcon: ReactNode = resolvedRightIcon.content;\n\n // Generate stable keys for icon transitions based on icon type\n const iconKey = isLoading\n ? 'loading'\n : isValidElement(icon)\n ? (icon.type as any)?.displayName || (icon.type as any)?.name || 'icon'\n : icon\n ? 'icon'\n : 'empty';\n\n const rightIconKey = isValidElement(rightIcon)\n ? (rightIcon.type as any)?.displayName ||\n (rightIcon.type as any)?.name ||\n 'icon'\n : rightIcon\n ? 'icon'\n : 'empty';\n\n children = children || hasLeftSlot || hasRightSlot ? children : label;\n\n const specifiedLabel =\n label ?? props['aria-label'] ?? props['aria-labelledby'];\n\n // Warn about accessibility issues when button has no accessible label\n useWarn(!children && hasLeftSlot && !specifiedLabel, {\n key: ['button-icon-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide `icon` property for a Button and do not provide any children then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n useWarn(!children && !hasLeftSlot && !specifiedLabel, {\n key: ['button-no-content-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide no children for a Button then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n if (!children && !specifiedLabel) {\n label = 'Unnamed'; // fix to avoid warning in production\n }\n\n const hasLeftIcon = !!(hasLeftSlot || isLoading);\n const hasChildren = children != null;\n const singleIcon = !!(\n ((hasLeftIcon && !hasRightSlot) || (hasRightSlot && !hasLeftIcon)) &&\n !hasChildren\n );\n\n const hasIcons = hasLeftIcon || hasRightSlot;\n const rawChildren = !!(\n hasChildren &&\n typeof children !== 'string' &&\n !Children.toArray(children).some((child) => typeof child === 'string')\n );\n\n const [isIconShown, setIsIconShown] = useState(hasLeftIcon);\n const [isRightIconShown, setIsRightIconShown] = useState(hasRightSlot);\n const isFirstRender = useIsFirstRender();\n\n const modifiers = useMemo<ButtonMods>(\n () => ({\n ...baseMods,\n 'has-icons': hasIcons,\n 'has-icon': hasLeftIcon,\n 'is-icon-shown': isIconShown,\n 'has-right-icon': hasRightSlot,\n 'is-right-icon-shown': isRightIconShown,\n 'single-icon': singleIcon,\n 'text-only': !!(hasChildren && typeof children === 'string' && !hasIcons),\n 'raw-children': rawChildren,\n 'has-content': children != null,\n }),\n [\n baseMods,\n children,\n hasLeftIcon,\n hasRightSlot,\n singleIcon,\n hasIcons,\n hasChildren,\n rawChildren,\n isIconShown,\n isRightIconShown,\n ],\n );\n\n const {\n labelProps: finalLabelProps,\n labelRef,\n renderWithTooltip,\n } = useAutoTooltip({\n tooltip,\n children,\n labelProps: undefined,\n });\n\n // Render function that creates the button element\n const renderButtonElement = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ): ReactNode => {\n // Use callback ref to merge multiple refs without calling hooks\n const handleRef = (element: HTMLElement | null) => {\n // Set the component's forwarded ref from useAction\n const domRef = actionProps.ref as any;\n if (typeof domRef === 'function') {\n domRef(element);\n } else if (domRef) {\n domRef.current = element;\n }\n // Set the tooltip ref if provided\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n };\n\n // Determine if size is custom (number or unrecognized string)\n const isCustomSize =\n typeof size === 'number' ||\n (size != null &&\n !(BUTTON_SIZE_VALUES as readonly string[]).includes(size));\n const sizeTokenValue =\n typeof size === 'number' ? `${size}px` : isCustomSize ? size : undefined;\n\n return (\n <ButtonElement\n download={download}\n {...mergeProps(actionProps, tooltipTriggerProps || {})}\n ref={handleRef}\n mods={{ ...actionProps.mods, ...modifiers }}\n disabled={isDisabledElement}\n variant={`${theme}.${type ?? 'outline'}` as ButtonVariant}\n data-theme={theme}\n data-type={type ?? 'outline'}\n data-size={size}\n data-popover-dismiss=\"\"\n styles={styles}\n tokens={sizeTokenValue ? { $size: sizeTokenValue } : undefined}\n >\n <DisplayTransition\n isShown={hasLeftIcon}\n animateOnMount={!isFirstRender}\n onToggle={setIsIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"Icon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={iconKey}>\n {isLoading ? <LoadingIcon /> : icon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n {hasChildren &&\n (rawChildren ? (\n children\n ) : (\n <div data-element=\"Label\" {...finalLabelProps} ref={labelRef}>\n {children}\n </div>\n ))}\n <DisplayTransition\n isShown={hasRightSlot}\n animateOnMount={!isFirstRender}\n onToggle={setIsRightIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"RightIcon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={rightIconKey}>\n {rightIcon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n </ButtonElement>\n );\n };\n\n return renderWithTooltip(renderButtonElement, defaultTooltipPlacement);\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","names":[],"sources":["../../../../src/components/actions/Button/Button.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport {\n CONTAINER_STYLES,\n Mods,\n Styles,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport {\n Children,\n forwardRef,\n HTMLAttributes,\n isValidElement,\n ReactNode,\n RefObject,\n useMemo,\n useState,\n} from 'react';\nimport { OverlayProps } from 'react-aria';\n\nimport { useIsFirstRender } from '../../../_internal/hooks/use-is-first-render';\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport {\n DANGER_CLEAR_STYLES,\n DANGER_LINK_STYLES,\n DANGER_OUTLINE_2_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_LINK_STYLES,\n DEFAULT_OUTLINE_2_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_LINK_STYLES,\n NOTE_OUTLINE_2_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_LINK_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_LINK_STYLES,\n SUCCESS_OUTLINE_2_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_LINK_STYLES,\n WARNING_OUTLINE_2_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { LoadingIcon } from '../../../icons';\nimport { DynamicIcon, mergeProps, resolveIcon } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { useAutoTooltip } from '../../content/use-auto-tooltip';\nimport { DisplayTransition } from '../../helpers/DisplayTransition';\nimport { IconSwitch } from '../../helpers/IconSwitch/IconSwitch';\nimport { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\nimport { CubeActionProps } from '../Action/Action';\nimport { useButtonSplitContext } from '../ButtonSplit/context';\nimport { useAction } from '../use-action';\n\nconst BUTTON_SIZE_VALUES = [\n 'xsmall',\n 'small',\n 'medium',\n 'large',\n 'xlarge',\n 'inline',\n] as const;\n\n/** Known modifiers for Button component */\nexport type ButtonMods = Mods<{\n pressed?: boolean;\n loading?: boolean;\n selected?: boolean;\n 'has-icons'?: boolean;\n 'has-icon'?: boolean;\n 'has-right-icon'?: boolean;\n 'single-icon'?: boolean;\n 'text-only'?: boolean;\n 'raw-children'?: boolean;\n}>;\n\nexport interface CubeButtonProps extends CubeActionProps {\n icon?: DynamicIcon<ButtonMods>;\n rightIcon?: DynamicIcon<ButtonMods>;\n isLoading?: boolean;\n isSelected?: boolean;\n type?:\n | 'primary'\n | 'danger'\n | 'link'\n | 'clear'\n | 'outline'\n | 'outline-2'\n | (string & {});\n size?:\n | 'xsmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xlarge'\n | 'inline'\n | number\n | (string & {});\n /**\n * Tooltip content and configuration:\n * - string: simple tooltip text\n * - true: auto tooltip on overflow (shows children as tooltip when truncated)\n * - object: advanced configuration with optional auto property\n */\n tooltip?:\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n /**\n * @private\n * Default tooltip placement for the button.\n * @default \"top\"\n */\n defaultTooltipPlacement?: OverlayProps['placement'];\n}\n\nexport type ButtonVariant =\n | 'default.primary'\n | 'default.outline'\n | 'default.outline-2'\n | 'default.clear'\n | 'default.link'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.outline-2'\n | 'danger.clear'\n | 'danger.link'\n | 'success.primary'\n | 'success.outline'\n | 'success.outline-2'\n | 'success.clear'\n | 'success.link'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.outline-2'\n | 'warning.clear'\n | 'warning.link'\n | 'note.primary'\n | 'note.outline'\n | 'note.outline-2'\n | 'note.clear'\n | 'note.link'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear'\n | 'special.link';\n\nconst STYLE_PROPS = [...CONTAINER_STYLES, ...TEXT_STYLES];\n\nconst DEFAULT_ICON_STYLES: Styles = {\n $: '>',\n position: 'relative',\n display: 'grid',\n placeItems: 'center',\n placeContent: 'center',\n placeSelf: 'stretch',\n // overflow: 'hidden',\n width: 'fixed ($size - 2bw)',\n height: 'fixed ($size - 2bw)',\n pointerEvents: 'none',\n transition: 'theme, width, height, translate',\n};\n\nexport const DEFAULT_BUTTON_STYLES: Styles = {\n recipe: 'reset button',\n display: 'inline-grid',\n flow: 'column dense',\n gap: 0,\n placeItems: {\n '': 'stretch',\n 'raw-children': 'center stretch',\n },\n placeContent: 'center',\n position: 'relative',\n preset: {\n '': 't3m',\n 'size=xsmall': 't4',\n 'size=xlarge': 't2m',\n 'type=link': 'strong',\n },\n outlineOffset: 1,\n padding: {\n '': 0,\n 'raw-children & !has-icons':\n '$block-padding $inline-padding $block-padding $inline-padding',\n 'type=link': '0',\n },\n width: {\n '': 'min $size',\n 'has-icon & has-right-icon': 'min ($size * 2 - 2bw)',\n 'single-icon': 'fixed $size',\n 'type=link': 'min 1ch',\n },\n height: {\n '': 'fixed $size',\n 'type=link': 'initial',\n },\n whiteSpace: 'nowrap',\n radius: {\n '': true,\n 'type=link & !focused': 0,\n '@parent(button-split, >) & !:last-child': '1r left',\n '@parent(button-split, >) & !:first-child': '1r right',\n '@parent(button-split, >) & !:first-child & !:last-child': 0,\n },\n margin: {\n '': 0,\n '@parent(button-split, >) & !:first-child & (type=outline | type=outline-2 | type=primary)':\n '-1bw left',\n },\n zIndex: {\n '@parent(button-split, >) & :hover': 1,\n '@parent(button-split, >) & :focus-visible': 2,\n },\n transition: 'theme, grid-template, padding',\n verticalAlign: 'bottom',\n\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n 'size=inline': '(1lh + 2bw)',\n },\n '$inline-padding': {\n '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',\n },\n '$block-padding': {\n '': '.5x',\n 'size=xsmall | size=small': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(1x - 1bw)',\n '$left-padding': {\n '': '$inline-padding',\n 'is-icon-shown': '0px',\n },\n '$right-padding': {\n '': '$inline-padding',\n 'is-right-icon-shown': '0px',\n },\n\n // Icon sub-element (recommended format)\n Icon: {\n ...DEFAULT_ICON_STYLES,\n width: {\n '': 'fixed 0px',\n 'is-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-icon-shown': 1,\n },\n translate: {\n '': '($size * 1 / 4) 0',\n 'is-icon-shown': '0 0',\n },\n },\n\n // RightIcon sub-element (recommended format)\n RightIcon: {\n ...DEFAULT_ICON_STYLES,\n width: {\n '': 'fixed 0px',\n 'is-right-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-right-icon-shown': 1,\n },\n translate: {\n '': '($size * -1 / 4) 0',\n 'is-right-icon-shown': '0 0',\n },\n },\n\n // Label sub-element (recommended format)\n Label: {\n $: '>',\n display: 'block',\n placeSelf: 'center stretch',\n boxSizing: 'border-box',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '0 100%',\n textAlign: 'center',\n transition: 'theme, padding',\n padding: {\n '': '$block-padding $right-padding $block-padding $left-padding',\n 'type=link': '0',\n },\n },\n} as const;\n\nconst ButtonElement = tasty({\n qa: 'Button',\n styles: DEFAULT_BUTTON_STYLES,\n variants: {\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.outline-2': DEFAULT_OUTLINE_2_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n 'default.link': DEFAULT_LINK_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.outline-2': DANGER_OUTLINE_2_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n 'danger.link': DANGER_LINK_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.outline-2': SUCCESS_OUTLINE_2_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n 'success.link': SUCCESS_LINK_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.outline-2': WARNING_OUTLINE_2_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n 'warning.link': WARNING_LINK_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.outline-2': NOTE_OUTLINE_2_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n 'note.link': NOTE_LINK_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n 'special.link': SPECIAL_LINK_STYLES,\n },\n});\n\nexport const Button = forwardRef(function Button(\n allProps: CubeButtonProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const splitContext = useButtonSplitContext();\n\n let {\n type,\n size: sizeProp,\n label,\n children,\n theme = splitContext?.theme ?? 'default',\n icon: iconProp,\n rightIcon: rightIconProp,\n mods,\n download,\n tooltip = true,\n defaultTooltipPlacement = 'top',\n ...props\n } = allProps;\n\n type = type ?? splitContext?.type;\n const size =\n sizeProp ?? splitContext?.size ?? (type === 'link' ? 'inline' : 'medium');\n\n const isDisabled =\n splitContext?.isDisabled || props.isDisabled || props.isLoading;\n const isLoading = props.isLoading;\n const isSelected = props.isSelected;\n\n const { actionProps, isPressed } = useAction(\n { ...allProps, isDisabled, ...(label ? { label } : {}) },\n ref,\n );\n\n const styles = extractStyles(props, STYLE_PROPS);\n const isDisabledElement = actionProps.isDisabled;\n\n delete actionProps.isDisabled;\n\n // Base mods for icon resolution (without icon-dependent mods)\n const baseMods = useMemo<ButtonMods>(\n () => ({\n pressed: isPressed && !isDisabled,\n loading: isLoading,\n selected: isSelected,\n ...mods,\n }),\n [isPressed, isDisabled, isLoading, isSelected, mods],\n );\n\n // Resolve dynamic icon props\n const resolvedIcon = useMemo(\n () => resolveIcon(iconProp, baseMods),\n [iconProp, baseMods],\n );\n const resolvedRightIcon = useMemo(\n () => resolveIcon(rightIconProp, baseMods),\n [rightIconProp, baseMods],\n );\n\n const hasLeftSlot = resolvedIcon.hasSlot;\n const hasRightSlot = resolvedRightIcon.hasSlot;\n\n const icon: ReactNode = resolvedIcon.content;\n const rightIcon: ReactNode = resolvedRightIcon.content;\n\n // Generate stable keys for icon transitions based on icon type\n const iconKey = isLoading\n ? 'loading'\n : isValidElement(icon)\n ? (icon.type as any)?.displayName || (icon.type as any)?.name || 'icon'\n : icon\n ? 'icon'\n : 'empty';\n\n const rightIconKey = isValidElement(rightIcon)\n ? (rightIcon.type as any)?.displayName ||\n (rightIcon.type as any)?.name ||\n 'icon'\n : rightIcon\n ? 'icon'\n : 'empty';\n\n children = children || hasLeftSlot || hasRightSlot ? children : label;\n\n const specifiedLabel =\n label ?? props['aria-label'] ?? props['aria-labelledby'];\n\n // Warn about accessibility issues when button has no accessible label\n useWarn(!children && hasLeftSlot && !specifiedLabel, {\n key: ['button-icon-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide `icon` property for a Button and do not provide any children then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n useWarn(!children && !hasLeftSlot && !specifiedLabel, {\n key: ['button-no-content-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide no children for a Button then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n if (!children && !specifiedLabel) {\n label = 'Unnamed'; // fix to avoid warning in production\n }\n\n const hasLeftIcon = !!(hasLeftSlot || isLoading);\n const hasChildren = children != null;\n const singleIcon = !!(\n ((hasLeftIcon && !hasRightSlot) || (hasRightSlot && !hasLeftIcon)) &&\n !hasChildren\n );\n\n const hasIcons = hasLeftIcon || hasRightSlot;\n const rawChildren = !!(\n hasChildren &&\n typeof children !== 'string' &&\n !Children.toArray(children).some((child) => typeof child === 'string')\n );\n\n const [isIconShown, setIsIconShown] = useState(hasLeftIcon);\n const [isRightIconShown, setIsRightIconShown] = useState(hasRightSlot);\n const isFirstRender = useIsFirstRender();\n\n const modifiers = useMemo<ButtonMods>(\n () => ({\n ...baseMods,\n 'has-icons': hasIcons,\n 'has-icon': hasLeftIcon,\n 'is-icon-shown': isIconShown,\n 'has-right-icon': hasRightSlot,\n 'is-right-icon-shown': isRightIconShown,\n 'single-icon': singleIcon,\n 'text-only': !!(hasChildren && typeof children === 'string' && !hasIcons),\n 'raw-children': rawChildren,\n 'has-content': children != null,\n }),\n [\n baseMods,\n children,\n hasLeftIcon,\n hasRightSlot,\n singleIcon,\n hasIcons,\n hasChildren,\n rawChildren,\n isIconShown,\n isRightIconShown,\n ],\n );\n\n const {\n labelProps: finalLabelProps,\n labelRef,\n renderWithTooltip,\n } = useAutoTooltip({\n tooltip,\n children,\n labelProps: undefined,\n });\n\n // Render function that creates the button element\n const renderButtonElement = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ): ReactNode => {\n // Use callback ref to merge multiple refs without calling hooks\n const handleRef = (element: HTMLElement | null) => {\n // Set the component's forwarded ref from useAction\n const domRef = actionProps.ref as any;\n if (typeof domRef === 'function') {\n domRef(element);\n } else if (domRef) {\n domRef.current = element;\n }\n // Set the tooltip ref if provided\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n };\n\n // Determine if size is custom (number or unrecognized string)\n const isCustomSize =\n typeof size === 'number' ||\n (size != null &&\n !(BUTTON_SIZE_VALUES as readonly string[]).includes(size));\n const sizeTokenValue =\n typeof size === 'number' ? `${size}px` : isCustomSize ? size : undefined;\n\n // The `special` theme has no `outline-2` variant (it paints over\n // `#special-surface`, not `#surface-2`/`#surface-3`); fall back to\n // `outline` so the button still renders.\n const effectiveType =\n theme === 'special' && type === 'outline-2' ? 'outline' : type;\n\n return (\n <ButtonElement\n download={download}\n {...mergeProps(actionProps, tooltipTriggerProps || {})}\n ref={handleRef}\n mods={{ ...actionProps.mods, ...modifiers }}\n disabled={isDisabledElement}\n variant={`${theme}.${effectiveType ?? 'outline'}` as ButtonVariant}\n data-theme={theme}\n data-type={effectiveType ?? 'outline'}\n data-size={size}\n data-popover-dismiss=\"\"\n styles={styles}\n tokens={sizeTokenValue ? { $size: sizeTokenValue } : undefined}\n >\n <DisplayTransition\n isShown={hasLeftIcon}\n animateOnMount={!isFirstRender}\n onToggle={setIsIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"Icon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={iconKey}>\n {isLoading ? <LoadingIcon /> : icon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n {hasChildren &&\n (rawChildren ? (\n children\n ) : (\n <div data-element=\"Label\" {...finalLabelProps} ref={labelRef}>\n {children}\n </div>\n ))}\n <DisplayTransition\n isShown={hasRightSlot}\n animateOnMount={!isFirstRender}\n onToggle={setIsRightIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"RightIcon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={rightIconKey}>\n {rightIcon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n </ButtonElement>\n );\n };\n\n return renderWithTooltip(renderButtonElement, defaultTooltipPlacement);\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { useSlotProps } from "../../../utils/react/Slots.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { DirectionIcon } from "../../../icons/DirectionIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/actions/ButtonSplit/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/components/actions/CommandMenu/styled.tsx
@@ -8,11 +8,11 @@ import * as _react_types_shared0 from "@react-types/shared";
8
8
 
9
9
  //#region src/components/actions/ItemAction/ItemAction.d.ts
10
10
  interface CubeItemActionProps extends Omit<CubeUseActionProps, 'as' | 'htmlType'>, Omit<BaseProps, 'as'> {
11
- icon?: ReactNode | 'checkbox';
11
+ icon?: ReactNode | 'checkmark';
12
12
  children?: ReactNode;
13
13
  isLoading?: boolean;
14
14
  isSelected?: boolean;
15
- type?: 'primary' | 'secondary' | 'outline' | 'neutral' | 'clear' | (string & {});
15
+ type?: 'primary' | 'outline' | 'clear' | (string & {});
16
16
  theme?: 'default' | 'danger' | 'success' | 'warning' | 'note' | 'special' | (string & {});
17
17
  tooltip?: string | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {
18
18
  title?: string;
@@ -1,7 +1,7 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.5 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.139.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
4
- import { DANGER_CLEAR_STYLES, DANGER_NEUTRAL_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DANGER_SECONDARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_NEUTRAL_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, DEFAULT_SECONDARY_STYLES, ITEM_ACTION_BASE_STYLES, NOTE_CLEAR_STYLES, NOTE_NEUTRAL_STYLES, NOTE_OUTLINE_STYLES, NOTE_PRIMARY_STYLES, NOTE_SECONDARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_NEUTRAL_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SPECIAL_SECONDARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_NEUTRAL_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, SUCCESS_SECONDARY_STYLES, WARNING_CLEAR_STYLES, WARNING_NEUTRAL_STYLES, WARNING_OUTLINE_STYLES, WARNING_PRIMARY_STYLES, WARNING_SECONDARY_STYLES } from "../../../data/item-themes.js";
4
+ import { DANGER_CLEAR_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, ITEM_ACTION_BASE_STYLES, NOTE_CLEAR_STYLES, NOTE_OUTLINE_STYLES, NOTE_PRIMARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, WARNING_CLEAR_STYLES, WARNING_OUTLINE_STYLES, WARNING_PRIMARY_STYLES } from "../../../data/item-themes.js";
5
5
  import { CheckIcon } from "../../../icons/CheckIcon.js";
6
6
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
7
7
  import { useItemActionContext } from "../ItemActionContext.js";
@@ -45,45 +45,33 @@ const ItemActionElement = tasty({
45
45
  },
46
46
  variants: {
47
47
  "default.primary": DEFAULT_PRIMARY_STYLES,
48
- "default.secondary": DEFAULT_SECONDARY_STYLES,
49
48
  "default.outline": DEFAULT_OUTLINE_STYLES,
50
- "default.neutral": DEFAULT_NEUTRAL_STYLES,
51
49
  "default.clear": DEFAULT_CLEAR_STYLES,
52
50
  "danger.primary": DANGER_PRIMARY_STYLES,
53
- "danger.secondary": DANGER_SECONDARY_STYLES,
54
51
  "danger.outline": DANGER_OUTLINE_STYLES,
55
- "danger.neutral": DANGER_NEUTRAL_STYLES,
56
52
  "danger.clear": DANGER_CLEAR_STYLES,
57
53
  "success.primary": SUCCESS_PRIMARY_STYLES,
58
- "success.secondary": SUCCESS_SECONDARY_STYLES,
59
54
  "success.outline": SUCCESS_OUTLINE_STYLES,
60
- "success.neutral": SUCCESS_NEUTRAL_STYLES,
61
55
  "success.clear": SUCCESS_CLEAR_STYLES,
62
56
  "warning.primary": WARNING_PRIMARY_STYLES,
63
- "warning.secondary": WARNING_SECONDARY_STYLES,
64
57
  "warning.outline": WARNING_OUTLINE_STYLES,
65
- "warning.neutral": WARNING_NEUTRAL_STYLES,
66
58
  "warning.clear": WARNING_CLEAR_STYLES,
67
59
  "note.primary": NOTE_PRIMARY_STYLES,
68
- "note.secondary": NOTE_SECONDARY_STYLES,
69
60
  "note.outline": NOTE_OUTLINE_STYLES,
70
- "note.neutral": NOTE_NEUTRAL_STYLES,
71
61
  "note.clear": NOTE_CLEAR_STYLES,
72
62
  "special.primary": SPECIAL_PRIMARY_STYLES,
73
- "special.secondary": SPECIAL_SECONDARY_STYLES,
74
63
  "special.outline": SPECIAL_OUTLINE_STYLES,
75
- "special.neutral": SPECIAL_NEUTRAL_STYLES,
76
64
  "special.clear": SPECIAL_CLEAR_STYLES
77
65
  }
78
66
  });
79
67
  const ItemAction = forwardRef(function ItemAction(allProps, ref) {
80
68
  const { type: contextType, theme: contextTheme, disableActionsFocus, isDisabled: contextIsDisabled } = useItemActionContext();
81
- const { type = contextType === "outline" ? "neutral" : contextType ?? "neutral", theme = contextTheme ?? "default", icon, children, isLoading = false, isSelected = false, tooltip, mods, styles, isDisabled: isDisabledProp, ...rest } = allProps;
69
+ const { type = contextType ?? "clear", theme = contextTheme ?? "default", icon, children, isLoading = false, isSelected = false, tooltip, mods, styles, isDisabled: isDisabledProp, ...rest } = allProps;
82
70
  const isDisabled = isDisabledProp ?? contextIsDisabled;
83
- const hasCheckbox = icon === "checkbox";
84
- const finalIcon = isLoading ? /* @__PURE__ */ jsx(LoadingIcon, {}) : hasCheckbox ? /* @__PURE__ */ jsx(CheckIcon, {}) : icon;
71
+ const hasCheckmark = icon === "checkmark";
72
+ const finalIcon = isLoading ? /* @__PURE__ */ jsx(LoadingIcon, {}) : hasCheckmark ? /* @__PURE__ */ jsx(CheckIcon, {}) : icon;
85
73
  const finalMods = useMemo(() => ({
86
- checkbox: hasCheckbox,
74
+ checkmark: hasCheckmark,
87
75
  selected: isSelected,
88
76
  loading: isLoading,
89
77
  "has-label": !!children,
@@ -91,7 +79,7 @@ const ItemAction = forwardRef(function ItemAction(allProps, ref) {
91
79
  "has-icon": !!icon,
92
80
  ...mods
93
81
  }), [
94
- hasCheckbox,
82
+ hasCheckmark,
95
83
  isSelected,
96
84
  isLoading,
97
85
  children,
@@ -123,9 +111,7 @@ const ItemAction = forwardRef(function ItemAction(allProps, ref) {
123
111
  }
124
112
  return {};
125
113
  }, [tooltip]);
126
- const finalType = useMemo(() => {
127
- return theme !== "default" && type === "neutral" ? "clear" : type;
128
- }, [theme, type]);
114
+ const finalType = type;
129
115
  const renderButton = (tooltipTriggerProps, tooltipRef) => {
130
116
  return /* @__PURE__ */ jsxs(ItemActionElement, {
131
117
  ...tooltipRef ? mergeProps(actionProps, tooltipTriggerProps || {}, { ref: (element) => {