@cube-dev/ui-kit 0.0.0-canary-b75ab37 → 0.0.0-canary-4499da7

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 (567) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +7 -12
  18. package/dist/components/actions/Banner/Banner.js.map +1 -1
  19. package/dist/components/actions/Button/Button.d.ts +3 -3
  20. package/dist/components/actions/Button/Button.js +6 -16
  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 +5 -15
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  32. package/dist/components/actions/Link/Link.js +1 -1
  33. package/dist/components/actions/Menu/Menu.js +1 -1
  34. package/dist/components/actions/Menu/MenuItem.js +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +1 -1
  36. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  37. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  39. package/dist/components/actions/Menu/context.js +1 -1
  40. package/dist/components/actions/Menu/styled.js +1 -1
  41. package/dist/components/actions/index.js +1 -1
  42. package/dist/components/actions/use-action.js +1 -1
  43. package/dist/components/actions/use-anchored-menu.js +1 -1
  44. package/dist/components/actions/use-context-menu.js +1 -1
  45. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  46. package/dist/components/content/Alert/Alert.js +1 -1
  47. package/dist/components/content/Alert/use-alert.js +1 -1
  48. package/dist/components/content/Avatar/Avatar.js +1 -1
  49. package/dist/components/content/Badge/Badge.js +1 -1
  50. package/dist/components/content/Card/Card.js +1 -1
  51. package/dist/components/content/Content.js +1 -1
  52. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  53. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  54. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  55. package/dist/components/content/Divider.js +1 -1
  56. package/dist/components/content/Footer.js +1 -1
  57. package/dist/components/content/Header.js +1 -1
  58. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  59. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  60. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  61. package/dist/components/content/Item/Item.d.ts +2 -2
  62. package/dist/components/content/Item/Item.js +11 -10
  63. package/dist/components/content/Item/Item.js.map +1 -1
  64. package/dist/components/content/ItemBadge/ItemBadge.d.ts +2 -2
  65. package/dist/components/content/ItemBadge/ItemBadge.js +6 -14
  66. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  67. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  68. package/dist/components/content/Layout/GridLayout.js +1 -1
  69. package/dist/components/content/Layout/Layout.js +1 -1
  70. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  71. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  72. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  73. package/dist/components/content/Layout/LayoutContent.js +1 -1
  74. package/dist/components/content/Layout/LayoutContext.js +1 -1
  75. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  76. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  77. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  78. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  79. package/dist/components/content/Layout/LayoutPane.js +1 -1
  80. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  81. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  82. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  83. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  84. package/dist/components/content/Layout/index.js +1 -1
  85. package/dist/components/content/Layout/utils.js +1 -1
  86. package/dist/components/content/Paragraph.js +1 -1
  87. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  88. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  89. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  90. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  91. package/dist/components/content/Result/Result.js +1 -1
  92. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  93. package/dist/components/content/Tag/Tag.js +1 -1
  94. package/dist/components/content/Text.d.ts +14 -14
  95. package/dist/components/content/Text.js +1 -1
  96. package/dist/components/content/TextItem/TextItem.js +1 -1
  97. package/dist/components/content/Title.js +1 -1
  98. package/dist/components/content/Tree/Tree.js +1 -1
  99. package/dist/components/content/Tree/TreeNode.js +1 -1
  100. package/dist/components/content/Tree/styled.js +1 -1
  101. package/dist/components/content/Tree/tree-index.js +1 -1
  102. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  103. package/dist/components/content/Tree/use-load-data.js +1 -1
  104. package/dist/components/content/highlightText.js +1 -1
  105. package/dist/components/content/use-auto-tooltip.js +1 -1
  106. package/dist/components/data/DataTable/DataTable.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  110. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  111. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  112. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  113. package/dist/components/data/TableBase/RowCollection.js +1 -1
  114. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  115. package/dist/components/data/TableBase/TableRow.js +1 -1
  116. package/dist/components/data/TableBase/TableView.js +1 -1
  117. package/dist/components/data/TableBase/column-menu.js +1 -1
  118. package/dist/components/data/TableBase/column-tint.js +1 -1
  119. package/dist/components/data/TableBase/row-menu.js +1 -1
  120. package/dist/components/data/TableBase/styled.d.ts +2 -1
  121. package/dist/components/data/TableBase/styled.js +1 -1
  122. package/dist/components/data/TableBase/types.js +1 -1
  123. package/dist/components/data/TableBase/use-cell-selection.d.ts +1 -0
  124. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  125. package/dist/components/data/TableBase/use-column-order.js +1 -1
  126. package/dist/components/data/TableBase/use-container-width.js +1 -1
  127. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  128. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  129. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  130. package/dist/components/data/TableBase/use-table-search.js +1 -1
  131. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  132. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  133. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  134. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  135. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  136. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  137. package/dist/components/fields/Checkbox/context.js +1 -1
  138. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  139. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  140. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  141. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  142. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  143. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  144. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  145. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  146. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  147. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  148. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  149. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  150. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  151. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  152. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  153. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  154. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  155. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  156. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  157. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  158. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  159. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  160. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  161. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  162. package/dist/components/fields/DatePicker/period.js +1 -1
  163. package/dist/components/fields/DatePicker/props.js +1 -1
  164. package/dist/components/fields/DatePicker/utils.js +1 -1
  165. package/dist/components/fields/FileInput/FileInput.js +1 -1
  166. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  167. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  168. package/dist/components/fields/Input/Input.js +1 -1
  169. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  170. package/dist/components/fields/ListBox/ListBox.js +1 -1
  171. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  172. package/dist/components/fields/ListBoxPopover/index.d.ts +1 -0
  173. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  174. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +2 -0
  175. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  176. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  177. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  178. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  179. package/dist/components/fields/Picker/Picker.js +1 -1
  180. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  181. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  182. package/dist/components/fields/RadioGroup/context.js +1 -1
  183. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  184. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  185. package/dist/components/fields/Select/Select.js +1 -1
  186. package/dist/components/fields/Slider/Gradation.js +1 -1
  187. package/dist/components/fields/Slider/HueSlider.js +1 -1
  188. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  189. package/dist/components/fields/Slider/Slider.js +1 -1
  190. package/dist/components/fields/Slider/SliderBase.js +1 -1
  191. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  192. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  193. package/dist/components/fields/Slider/elements.js +1 -1
  194. package/dist/components/fields/Slider/index.js +1 -1
  195. package/dist/components/fields/Switch/Switch.js +1 -1
  196. package/dist/components/fields/TextArea/TextArea.js +1 -1
  197. package/dist/components/fields/TextInput/TextInput.js +1 -1
  198. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  199. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  200. package/dist/components/fields/color/ColorPanel.js +1 -1
  201. package/dist/components/fields/color/channels.js +1 -1
  202. package/dist/components/fields/color/color.js +1 -1
  203. package/dist/components/fields/color/context.js +1 -1
  204. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  205. package/dist/components/form/Form/Field.js +1 -1
  206. package/dist/components/form/Form/Form.js +1 -1
  207. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  208. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  209. package/dist/components/form/Form/SubmitError.js +1 -1
  210. package/dist/components/form/Form/index.js +1 -1
  211. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  212. package/dist/components/form/Form/use-field/use-field.js +1 -1
  213. package/dist/components/form/Form/use-form.js +1 -1
  214. package/dist/components/form/Form/validation.js +1 -1
  215. package/dist/components/form/Label.js +1 -1
  216. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  217. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  218. package/dist/components/form/validation/use-validation-props.js +1 -1
  219. package/dist/components/form/wrapper.js +1 -1
  220. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  221. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  222. package/dist/components/layout/Board/Board.js +1 -1
  223. package/dist/components/layout/Board/BoardProvider.js +1 -1
  224. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  225. package/dist/components/layout/Board/Widget.js +1 -1
  226. package/dist/components/layout/Board/WidgetHost.js +1 -1
  227. package/dist/components/layout/Board/board-context.js +1 -1
  228. package/dist/components/layout/Board/board-store.js +1 -1
  229. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  230. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  231. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  232. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  233. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  234. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  235. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  236. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  237. package/dist/components/layout/Board/index.js +1 -1
  238. package/dist/components/layout/Board/responsive-utils.js +1 -1
  239. package/dist/components/layout/Board/use-board-layout.js +1 -1
  240. package/dist/components/layout/Board/use-board-registry.js +1 -1
  241. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  242. package/dist/components/layout/Board/use-board-selection.js +1 -1
  243. package/dist/components/layout/Flex.js +1 -1
  244. package/dist/components/layout/Flow.js +1 -1
  245. package/dist/components/layout/Grid.js +1 -1
  246. package/dist/components/layout/Panel.js +1 -1
  247. package/dist/components/layout/Prefix.js +1 -1
  248. package/dist/components/layout/ResizablePanel.js +1 -1
  249. package/dist/components/layout/Space.js +1 -1
  250. package/dist/components/layout/Suffix.js +1 -1
  251. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  252. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  253. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  254. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  255. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  256. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  257. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  258. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  259. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  260. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  261. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  262. package/dist/components/navigation/Tabs/styled.js +1 -1
  263. package/dist/components/navigation/Tabs/types.js +1 -1
  264. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  265. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  266. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  267. package/dist/components/other/Calendar/Calendar.js +1 -1
  268. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  269. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  270. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  271. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  272. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  273. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  274. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  275. package/dist/components/other/Calendar/styled.js +1 -1
  276. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  277. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  278. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  279. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  280. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  281. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  282. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  283. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  284. package/dist/components/overlays/Dialog/context.js +1 -1
  285. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  286. package/dist/components/overlays/Modal/Modal.d.ts +2 -1
  287. package/dist/components/overlays/Modal/Modal.js +1 -1
  288. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  289. package/dist/components/overlays/Modal/Overlay.d.ts +1 -0
  290. package/dist/components/overlays/Modal/Overlay.js +1 -1
  291. package/dist/components/overlays/Modal/Popover.js +1 -1
  292. package/dist/components/overlays/Modal/Tray.js +1 -1
  293. package/dist/components/overlays/Modal/Underlay.js +1 -1
  294. package/dist/components/overlays/Modal/types.d.ts +1 -0
  295. package/dist/components/overlays/Notifications/Notification.js +1 -1
  296. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  297. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  298. package/dist/components/overlays/Notifications/NotificationContext.d.ts +2 -0
  299. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  300. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  301. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  302. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  303. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  304. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  305. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  306. package/dist/components/overlays/Notifications/index.js +1 -1
  307. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  308. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  309. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  310. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  311. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  312. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  313. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  314. package/dist/components/overlays/Toast/index.js +1 -1
  315. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  316. package/dist/components/overlays/Toast/useToast.js +1 -1
  317. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  318. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  319. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  320. package/dist/components/overlays/Tooltip/context.js +1 -1
  321. package/dist/components/portal/Portal.js +1 -1
  322. package/dist/components/portal/PortalProvider.d.ts +2 -0
  323. package/dist/components/portal/PortalProvider.js +1 -1
  324. package/dist/components/portal/index.d.ts +1 -0
  325. package/dist/components/portal/usePortal.js +1 -1
  326. package/dist/components/shared/DraggableCollection.js +1 -1
  327. package/dist/components/shared/InvalidIcon.js +1 -1
  328. package/dist/components/shared/ValidIcon.js +1 -1
  329. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  330. package/dist/components/status/LoadingAnimation/LoadingAnimation.js.map +1 -1
  331. package/dist/components/status/Spin/Cube.js +1 -1
  332. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  333. package/dist/components/status/Spin/Spin.js +1 -1
  334. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  335. package/dist/data/item-themes.d.ts +1 -1
  336. package/dist/data/item-themes.js +49 -201
  337. package/dist/data/item-themes.js.map +1 -1
  338. package/dist/data/themes.js +1 -1
  339. package/dist/eslint-plugin/defaults.generated.js +9 -7
  340. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  341. package/dist/eslint-plugin/index.js +1 -1
  342. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  343. package/dist/i18n/I18nProvider.js +1 -1
  344. package/dist/i18n/createFormatter.js +1 -1
  345. package/dist/i18n/index.js +1 -1
  346. package/dist/i18n/instance.js +1 -1
  347. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  348. package/dist/i18n/locales/en-US/uikit.js +1 -1
  349. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  350. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  351. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  352. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  353. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  354. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  355. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  356. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  357. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  358. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  359. package/dist/i18n/locales.js +1 -1
  360. package/dist/i18n/useFormatter.js +1 -1
  361. package/dist/i18n/useI18n.js +1 -1
  362. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  363. package/dist/icons/AdjustmentsIcon.js +1 -1
  364. package/dist/icons/AiIcon.js +1 -1
  365. package/dist/icons/AreaChartIcon.js +1 -1
  366. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  367. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  368. package/dist/icons/BackwardIcon.js +1 -1
  369. package/dist/icons/BarChartIcon.js +1 -1
  370. package/dist/icons/BellFilledIcon.js +1 -1
  371. package/dist/icons/BellIcon.js +1 -1
  372. package/dist/icons/BooleanIcon.js +1 -1
  373. package/dist/icons/CalendarEditIcon.js +1 -1
  374. package/dist/icons/CalendarIcon.js +1 -1
  375. package/dist/icons/CaretDownIcon.js +1 -1
  376. package/dist/icons/CaretUpIcon.js +1 -1
  377. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  378. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  379. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  380. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  381. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  382. package/dist/icons/ChartBarLineIcon.js +1 -1
  383. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  384. package/dist/icons/ChartBarStackedIcon.js +1 -1
  385. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  386. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  387. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  388. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  389. package/dist/icons/ChartBubbleIcon.js +1 -1
  390. package/dist/icons/ChartDonut2Icon.js +1 -1
  391. package/dist/icons/ChartFunnelIcon.js +1 -1
  392. package/dist/icons/ChartHeatmapIcon.js +1 -1
  393. package/dist/icons/ChartKPIIcon.js +1 -1
  394. package/dist/icons/ChartPie2Icon.js +1 -1
  395. package/dist/icons/ChartScatterIcon.js +1 -1
  396. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  397. package/dist/icons/CheckCircleIcon.js +1 -1
  398. package/dist/icons/CheckIcon.js +1 -1
  399. package/dist/icons/CircleFilledIcon.js +1 -1
  400. package/dist/icons/ClearIcon.js +1 -1
  401. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  402. package/dist/icons/CloseCircleIcon.js +1 -1
  403. package/dist/icons/CloseIcon.js +1 -1
  404. package/dist/icons/CodeIcon.js +1 -1
  405. package/dist/icons/ColumnTotalIcon.js +1 -1
  406. package/dist/icons/CopyIcon.js +1 -1
  407. package/dist/icons/CountIcon.js +1 -1
  408. package/dist/icons/CubeIcon.js +1 -1
  409. package/dist/icons/CubePauseIcon.js +1 -1
  410. package/dist/icons/CubePlayIcon.js +1 -1
  411. package/dist/icons/CurrencyDollarIcon.js +1 -1
  412. package/dist/icons/DangerIcon.js +1 -1
  413. package/dist/icons/DashboardIcon.js +1 -1
  414. package/dist/icons/DatabaseIcon.js +1 -1
  415. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  416. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  417. package/dist/icons/DirectionIcon.js +1 -1
  418. package/dist/icons/DonutIcon.js +1 -1
  419. package/dist/icons/DownIcon.js +1 -1
  420. package/dist/icons/EditIcon.js +1 -1
  421. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  422. package/dist/icons/ExclamationCircleIcon.js +1 -1
  423. package/dist/icons/ExclamationIcon.js +1 -1
  424. package/dist/icons/EyeIcon.js +1 -1
  425. package/dist/icons/EyeInvisibleIcon.js +1 -1
  426. package/dist/icons/FilterIcon.js +1 -1
  427. package/dist/icons/FolderFilledIcon.js +1 -1
  428. package/dist/icons/FolderIcon.js +1 -1
  429. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  430. package/dist/icons/FolderOpenIcon.js +1 -1
  431. package/dist/icons/ForwardIcon.js +1 -1
  432. package/dist/icons/GripVerticalIcon.js +1 -1
  433. package/dist/icons/HierarchyIcon.js +1 -1
  434. package/dist/icons/HierarchyOpenIcon.js +1 -1
  435. package/dist/icons/Icon.js +1 -1
  436. package/dist/icons/InfoCircleIcon.js +1 -1
  437. package/dist/icons/InfoIcon.js +1 -1
  438. package/dist/icons/KeyIcon.js +1 -1
  439. package/dist/icons/LeftIcon.js +1 -1
  440. package/dist/icons/LineChartIcon.js +1 -1
  441. package/dist/icons/LoadingIcon.js +1 -1
  442. package/dist/icons/LockFilledIcon.js +1 -1
  443. package/dist/icons/LockIcon.js +1 -1
  444. package/dist/icons/MoreIcon.js +1 -1
  445. package/dist/icons/NoDataIcon.d.ts +30 -0
  446. package/dist/icons/NoDataIcon.js +50 -0
  447. package/dist/icons/NoDataIcon.js.map +1 -0
  448. package/dist/icons/NotAllowedIcon.js +1 -1
  449. package/dist/icons/Number123Icon.js +1 -1
  450. package/dist/icons/NumberIcon.js +1 -1
  451. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  452. package/dist/icons/PauseCircleIcon.js +1 -1
  453. package/dist/icons/PauseIcon.js +1 -1
  454. package/dist/icons/PercentageIcon.js +1 -1
  455. package/dist/icons/PieChartIcon.js +1 -1
  456. package/dist/icons/PipetteIcon.js +1 -1
  457. package/dist/icons/PlayCircleIcon.js +1 -1
  458. package/dist/icons/PlayIcon.js +1 -1
  459. package/dist/icons/PlusIcon.js +1 -1
  460. package/dist/icons/ProgressBarIcon.js +1 -1
  461. package/dist/icons/ReloadIcon.js +1 -1
  462. package/dist/icons/ReportIcon.js +1 -1
  463. package/dist/icons/ReturnIcon.js +1 -1
  464. package/dist/icons/RightIcon.js +1 -1
  465. package/dist/icons/RowTotalsIcon.js +1 -1
  466. package/dist/icons/SchemeIcon.js +1 -1
  467. package/dist/icons/SearchIcon.js +1 -1
  468. package/dist/icons/SemanticQueryIcon.js +1 -1
  469. package/dist/icons/SettingsIcon.js +1 -1
  470. package/dist/icons/ShieldFilledIcon.js +1 -1
  471. package/dist/icons/ShieldIcon.js +1 -1
  472. package/dist/icons/SlashIcon.js +1 -1
  473. package/dist/icons/SparklesIcon.js +1 -1
  474. package/dist/icons/SqlIcon.js +1 -1
  475. package/dist/icons/StatsIcon.js +1 -1
  476. package/dist/icons/StopIcon.js +1 -1
  477. package/dist/icons/StringIcon.js +1 -1
  478. package/dist/icons/SubtotalsIcon.js +1 -1
  479. package/dist/icons/SwitchIcon.js +1 -1
  480. package/dist/icons/TableIcon.js +1 -1
  481. package/dist/icons/ThumbsDownIcon.js +1 -1
  482. package/dist/icons/ThumbsUpIcon.js +1 -1
  483. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  484. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  485. package/dist/icons/ThunderboltIcon.js +1 -1
  486. package/dist/icons/TimeIcon.js +1 -1
  487. package/dist/icons/TrashIcon.js +1 -1
  488. package/dist/icons/UnlockIcon.js +1 -1
  489. package/dist/icons/UpIcon.js +1 -1
  490. package/dist/icons/UserGroupIcon.js +1 -1
  491. package/dist/icons/UserIcon.js +1 -1
  492. package/dist/icons/UserLockIcon.js +1 -1
  493. package/dist/icons/ViewIcon.js +1 -1
  494. package/dist/icons/WarningFilledIcon.js +1 -1
  495. package/dist/icons/WarningIcon.js +1 -1
  496. package/dist/icons/index.d.ts +1 -0
  497. package/dist/icons/wrap-icon.js +1 -1
  498. package/dist/index.d.ts +2 -1
  499. package/dist/index.js +3 -2
  500. package/dist/index.js.map +1 -1
  501. package/dist/probe/canonicalize.js +1 -1
  502. package/dist/probe/css.js +1 -1
  503. package/dist/probe/index.js +1 -1
  504. package/dist/provider.js +1 -1
  505. package/dist/providers/TrackingProvider.js +1 -1
  506. package/dist/providers/navigationAdapter.default.js +1 -1
  507. package/dist/tokens/base.js +1 -1
  508. package/dist/tokens/color-seed.js +1 -1
  509. package/dist/tokens/color-theme.js +1 -1
  510. package/dist/tokens/colors.js +1 -1
  511. package/dist/tokens/index.js +1 -1
  512. package/dist/tokens/layout.js +1 -1
  513. package/dist/tokens/lazy-styles.js +1 -1
  514. package/dist/tokens/palette-config.js +1 -1
  515. package/dist/tokens/palette.js +12 -11
  516. package/dist/tokens/palette.js.map +1 -1
  517. package/dist/tokens/shadows.js +1 -1
  518. package/dist/tokens/sizes.js +1 -1
  519. package/dist/tokens/spacing.js +1 -1
  520. package/dist/tokens/typography.js +1 -1
  521. package/dist/utils/ResizeSensor.js +1 -1
  522. package/dist/utils/is-dev-env.js +1 -1
  523. package/dist/utils/modules.js +1 -1
  524. package/dist/utils/promise.js +1 -1
  525. package/dist/utils/raf.js +1 -1
  526. package/dist/utils/random.js +1 -1
  527. package/dist/utils/range.js +1 -1
  528. package/dist/utils/react/RenderCache.js +1 -1
  529. package/dist/utils/react/Slots.js +1 -1
  530. package/dist/utils/react/chain.js +1 -1
  531. package/dist/utils/react/disabledProps.js +1 -1
  532. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  533. package/dist/utils/react/index.js +1 -1
  534. package/dist/utils/react/interactions.js +1 -1
  535. package/dist/utils/react/isTextOnly.js +1 -1
  536. package/dist/utils/react/mapProps.js +1 -1
  537. package/dist/utils/react/mergeProps.js +1 -1
  538. package/dist/utils/react/nullableValue.js +1 -1
  539. package/dist/utils/react/resolveIcon.js +1 -1
  540. package/dist/utils/react/sharedStore.js +1 -1
  541. package/dist/utils/react/useBufferedValue.js +1 -1
  542. package/dist/utils/react/useCombinedRefs.js +1 -1
  543. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  544. package/dist/utils/react/useEventBus.js +1 -1
  545. package/dist/utils/react/useId.js +1 -1
  546. package/dist/utils/react/useIsDarwin.js +1 -1
  547. package/dist/utils/react/useKeySymbols.js +1 -1
  548. package/dist/utils/react/useLayoutEffect.js +1 -1
  549. package/dist/utils/react/useLocalStorage.js +1 -1
  550. package/dist/utils/react/useMergeStyles.js +1 -1
  551. package/dist/utils/react/usePopoverSync.js +1 -1
  552. package/dist/utils/react/useQaProps.js +1 -1
  553. package/dist/utils/react/useViewportSize.js +1 -1
  554. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  555. package/dist/utils/selection.js +1 -1
  556. package/dist/utils/styles.js +1 -1
  557. package/dist/utils/tree.js +1 -1
  558. package/dist/utils/warnings.js +1 -1
  559. package/dist/version.js +2 -2
  560. package/docs/Theming.md +1 -1
  561. package/docs/Usage.md +6 -1
  562. package/docs/components/actions/Button.md +3 -10
  563. package/docs/components/actions/ItemAction.md +3 -3
  564. package/docs/components/content/Item.md +10 -11
  565. package/docs/components/content/ItemBadge.md +2 -2
  566. package/docs/components/status/LoadingAnimation.md +12 -0
  567. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | Cube Dev Team */
2
2
  import { usePaletteVersion } from "../tokens/palette-config.js";
3
3
  import { getTokens } from "../tokens/index.js";
4
4
  import { useGlobalStyles, useRawCSS } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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 { useI18n } from "../../../i18n/useI18n.js";
@@ -21,19 +21,14 @@ const BannerElement = tasty(_Item, { styles: {
21
21
  textOverflow: "ellipsis / 2",
22
22
  whiteSpace: "normal"
23
23
  },
24
- Actions: {
25
- gap: "1x",
26
- "$current-accent": {
27
- "theme=note": "#note-accent-text",
28
- "theme=danger": "#danger-accent-text",
29
- "theme=warning": "#warning-accent-text",
30
- "theme=success": "#success-accent-text"
31
- }
32
- }
24
+ Actions: { gap: "1x" }
33
25
  } });
34
26
  const BannerActionElement = tasty(_Item.Action, {
35
- type: "invert",
36
- styles: { preset: "t3m" }
27
+ type: "outline",
28
+ styles: {
29
+ preset: "t3m",
30
+ border: "#clear"
31
+ }
37
32
  });
38
33
  const BannerLinkElement = tasty(Button, {
39
34
  type: "link",
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","names":["Item"],"sources":["../../../../src/components/actions/Banner/Banner.tsx"],"sourcesContent":["import {\n IconAlertTriangle,\n IconCircleCheck,\n IconExclamationCircle,\n IconInfoCircle,\n IconX,\n} from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport { ReactNode, useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { CubeItemProps, Item } from '../../content/Item/Item';\nimport { Button, CubeButtonProps } from '../Button/Button';\nimport { CubeItemActionProps } from '../ItemAction/ItemAction';\n\nexport type BannerTheme = 'danger' | 'warning' | 'note' | 'success';\n\nexport type BannerProps = Omit<CubeItemProps, 'type' | 'size' | 'theme'> & {\n /**\n * The visual theme of the banner.\n * @default 'note'\n */\n theme?: BannerTheme;\n /**\n * Controls whether the banner can be dismissed by the user.\n * @default false\n */\n isDismissable?: boolean;\n /**\n * Callback fired when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n};\n\nexport type BannerActionProps = Omit<CubeItemActionProps, 'preset' | 'type'>;\n\nexport type BannerLinkProps = Omit<CubeButtonProps, 'type' | 'size' | 'color'>;\n\nconst DEFAULT_ICONS: Record<BannerTheme, ReactNode> = {\n danger: <IconExclamationCircle />,\n warning: <IconAlertTriangle />,\n note: <IconInfoCircle />,\n success: <IconCircleCheck />,\n};\n\nconst BannerElement = tasty(Item, {\n styles: {\n width: '100%',\n\n Description: {\n textOverflow: 'ellipsis / 2',\n whiteSpace: 'normal',\n },\n\n Actions: {\n gap: '1x',\n // The color this banner OFFERS to `current`-themed children that cannot\n // use the inherited one. `Banner.Action` is `current.invert`: it writes\n // its label on a `#surface` pill, and a banner's inherited color is\n // `#white` — which IS `#surface` in light mode, so unaided it measures\n // cr 1.00. Handing down `accent-text` puts it at 6.87–7.90 in both\n // schemes, with the pill still 1.5 (light) / 2.4 (dark) off the banner.\n //\n // Declared here rather than on `Banner.Action` so the banner states its\n // color context once and its children stay theme-agnostic — the wrapper\n // is the natural place for it, and custom properties inherit. It is safe\n // for the dismiss button to sit in the same wrapper: that one is\n // `current.clear`, which paints from `#current` and never reads this, so\n // it keeps the `#white` that measures 4.62 against the banner where this\n // accent would measure 1.53.\n '$current-accent': {\n 'theme=note': '#note-accent-text',\n 'theme=danger': '#danger-accent-text',\n 'theme=warning': '#warning-accent-text',\n 'theme=success': '#success-accent-text',\n },\n },\n },\n});\n\n// `invert` on the banner's OWN theme, which is the one pairing that gives a\n// banner a filled action legible in both schemes.\n//\n// The obvious choice — `Item.Action`'s default `current` theme — cannot do it\n// here, and the reason is specific rather than general. A banner labels itself\n// `#white` in both schemes (see `BannerLinkElement` and `*_PRIMARY_STYLES`), so\n// `currentcolor` inside one is white; and `#surface`, the page token both filled\n// `current` flavours reach for, is ALSO white in light mode. Every arrangement\n// of those two collapses:\n//\n// theme=current type=primary fill #current (white) label #surface (white)\n// theme=current type=invert fill #surface (white) label #current (white)\n//\n// Both measure cr 1.00 in light on all four banner themes. The theme's own\n// tokens have no such coincidence: `accent-text` is the dark end of the brand\n// ramp and `#surface` is the page, so `<theme>.invert` measures 6.87–7.90 across\n// the four themes in both schemes, and the chip still separates from the banner\n// (cr ~1.5 light, ~2.4 dark, either side of the 1.48 a `primary` rim measures).\n//\n// The previous default was `current.outline`: label cr 4.3–5.0, but a chip only\n// 1.06 off the banner, which is what an outline is meant to be. `invert` is the\n// filled counterpart, for a banner whose action should read as the thing to\n// press.\nconst BannerActionElement = tasty(Item.Action, {\n type: 'invert',\n // No `theme`: it stays on `Item.Action`'s `current` default and takes its\n // color from the `--current-accent` the banner offers above.\n\n styles: {\n preset: 't3m',\n },\n});\n\nconst BannerLinkElement = tasty(Button, {\n type: 'link',\n size: 'inline',\n styles: {\n color: '#white',\n textDecoration: 'underline',\n },\n});\n\n/**\n * Sub-component for action buttons within a Banner.\n * Automatically styled to match the banner's theme.\n */\nexport function BannerAction(props: BannerActionProps) {\n return <BannerActionElement {...props} />;\n}\n\n/**\n * Sub-component for inline links within Banner content.\n * Styled with white color and underline to stand out against the banner background.\n */\nexport function BannerLink(props: BannerLinkProps) {\n return <BannerLinkElement {...props} />;\n}\n\n/**\n * Banner displays prominent messages and notifications to users.\n * Supports different themes (danger, warning, note, success) with appropriate icons.\n * Use Banner.Action for action buttons and Banner.Link for inline links.\n */\nexport function Banner(props: BannerProps) {\n const { t } = useI18n();\n\n const {\n theme = 'note',\n actions,\n isDismissable = false,\n onDismiss,\n children,\n icon,\n ...rest\n } = props;\n\n const onDismissEvent = useEvent(() => {\n onDismiss?.();\n });\n\n const defaultIcon = useMemo(() => DEFAULT_ICONS[theme], [theme]);\n\n const hasActions = !!(actions || isDismissable);\n\n return (\n <BannerElement\n qa=\"Banner\"\n role=\"status\"\n type=\"primary\"\n theme={theme}\n size=\"large\"\n icon={icon ?? defaultIcon}\n {...rest}\n actions={\n hasActions ? (\n <>\n {actions}\n {isDismissable && (\n <Item.Action\n icon={<IconX />}\n tooltip={t('banner.hideBanner', 'Hide banner')}\n onPress={onDismissEvent}\n />\n )}\n </>\n ) : undefined\n }\n >\n {children}\n </BannerElement>\n );\n}\n\nBanner.Action = BannerAction;\nBanner.Link = BannerLink;\n"],"mappings":";;;;;;;;;;;AAuCA,MAAM,gBAAgD;CACpD,QAAQ,oBAAC,0BAAwB;CACjC,SAAS,oBAAC,sBAAoB;CAC9B,MAAM,oBAAC,mBAAiB;CACxB,SAAS,oBAAC,oBAAkB;CAC7B;AAED,MAAM,gBAAgB,MAAMA,OAAM,EAChC,QAAQ;CACN,OAAO;CAEP,aAAa;EACX,cAAc;EACd,YAAY;EACb;CAED,SAAS;EACP,KAAK;EAeL,mBAAmB;GACjB,cAAc;GACd,gBAAgB;GAChB,iBAAiB;GACjB,iBAAiB;GAClB;EACF;CACF,EACF,CAAC;AAyBF,MAAM,sBAAsB,MAAMA,MAAK,QAAQ;CAC7C,MAAM;CAIN,QAAQ,EACN,QAAQ,OACT;CACF,CAAC;AAEF,MAAM,oBAAoB,MAAM,QAAQ;CACtC,MAAM;CACN,MAAM;CACN,QAAQ;EACN,OAAO;EACP,gBAAgB;EACjB;CACF,CAAC;;;;;AAMF,SAAgB,aAAa,OAA0B;AACrD,QAAO,oBAAC,uBAAoB,GAAI,QAAS;;;;;;AAO3C,SAAgB,WAAW,OAAwB;AACjD,QAAO,oBAAC,qBAAkB,GAAI,QAAS;;;;;;;AAQzC,SAAgB,OAAO,OAAoB;CACzC,MAAM,EAAE,MAAM,SAAS;CAEvB,MAAM,EACJ,QAAQ,QACR,SACA,gBAAgB,OAChB,WACA,UACA,MACA,GAAG,SACD;CAEJ,MAAM,iBAAiB,eAAe;AACpC,eAAa;GACb;CAEF,MAAM,cAAc,cAAc,cAAc,QAAQ,CAAC,MAAM,CAAC;CAEhE,MAAM,aAAa,CAAC,EAAE,WAAW;AAEjC,QACE,oBAAC;EACC,IAAG;EACH,MAAK;EACL,MAAK;EACE;EACP,MAAK;EACL,MAAM,QAAQ;EACd,GAAI;EACJ,SACE,aACE,8CACG,SACA,iBACC,oBAACA,MAAK;GACJ,MAAM,oBAAC,UAAQ;GACf,SAAS,EAAE,qBAAqB,cAAc;GAC9C,SAAS;IACT,IAEH,GACD;EAGL;GACa;;AAIpB,OAAO,SAAS;AAChB,OAAO,OAAO"}
1
+ {"version":3,"file":"Banner.js","names":["Item"],"sources":["../../../../src/components/actions/Banner/Banner.tsx"],"sourcesContent":["import {\n IconAlertTriangle,\n IconCircleCheck,\n IconExclamationCircle,\n IconInfoCircle,\n IconX,\n} from '@tabler/icons-react';\nimport { tasty } from '@tenphi/tasty';\nimport { ReactNode, useMemo } from 'react';\n\nimport { useEvent } from '../../../_internal/hooks/use-event';\nimport { useI18n } from '../../../i18n';\nimport { CubeItemProps, Item } from '../../content/Item/Item';\nimport { Button, CubeButtonProps } from '../Button/Button';\nimport { CubeItemActionProps } from '../ItemAction/ItemAction';\n\nexport type BannerTheme = 'danger' | 'warning' | 'note' | 'success';\n\nexport type BannerProps = Omit<CubeItemProps, 'type' | 'size' | 'theme'> & {\n /**\n * The visual theme of the banner.\n * @default 'note'\n */\n theme?: BannerTheme;\n /**\n * Controls whether the banner can be dismissed by the user.\n * @default false\n */\n isDismissable?: boolean;\n /**\n * Callback fired when the dismiss button is clicked.\n */\n onDismiss?: () => void;\n};\n\nexport type BannerActionProps = Omit<CubeItemActionProps, 'preset' | 'type'>;\n\nexport type BannerLinkProps = Omit<CubeButtonProps, 'type' | 'size' | 'color'>;\n\nconst DEFAULT_ICONS: Record<BannerTheme, ReactNode> = {\n danger: <IconExclamationCircle />,\n warning: <IconAlertTriangle />,\n note: <IconInfoCircle />,\n success: <IconCircleCheck />,\n};\n\nconst BannerElement = tasty(Item, {\n styles: {\n width: '100%',\n\n Description: {\n textOverflow: 'ellipsis / 2',\n whiteSpace: 'normal',\n },\n\n Actions: {\n gap: '1x',\n },\n },\n});\n\nconst BannerActionElement = tasty(Item.Action, {\n type: 'outline',\n styles: {\n preset: 't3m',\n border: '#clear',\n },\n});\n\nconst BannerLinkElement = tasty(Button, {\n type: 'link',\n size: 'inline',\n styles: {\n color: '#white',\n textDecoration: 'underline',\n },\n});\n\n/**\n * Sub-component for action buttons within a Banner.\n * Automatically styled to match the banner's theme.\n */\nexport function BannerAction(props: BannerActionProps) {\n return <BannerActionElement {...props} />;\n}\n\n/**\n * Sub-component for inline links within Banner content.\n * Styled with white color and underline to stand out against the banner background.\n */\nexport function BannerLink(props: BannerLinkProps) {\n return <BannerLinkElement {...props} />;\n}\n\n/**\n * Banner displays prominent messages and notifications to users.\n * Supports different themes (danger, warning, note, success) with appropriate icons.\n * Use Banner.Action for action buttons and Banner.Link for inline links.\n */\nexport function Banner(props: BannerProps) {\n const { t } = useI18n();\n\n const {\n theme = 'note',\n actions,\n isDismissable = false,\n onDismiss,\n children,\n icon,\n ...rest\n } = props;\n\n const onDismissEvent = useEvent(() => {\n onDismiss?.();\n });\n\n const defaultIcon = useMemo(() => DEFAULT_ICONS[theme], [theme]);\n\n const hasActions = !!(actions || isDismissable);\n\n return (\n <BannerElement\n qa=\"Banner\"\n role=\"status\"\n type=\"primary\"\n theme={theme}\n size=\"large\"\n icon={icon ?? defaultIcon}\n {...rest}\n actions={\n hasActions ? (\n <>\n {actions}\n {isDismissable && (\n <Item.Action\n icon={<IconX />}\n tooltip={t('banner.hideBanner', 'Hide banner')}\n onPress={onDismissEvent}\n />\n )}\n </>\n ) : undefined\n }\n >\n {children}\n </BannerElement>\n );\n}\n\nBanner.Action = BannerAction;\nBanner.Link = BannerLink;\n"],"mappings":";;;;;;;;;;;AAuCA,MAAM,gBAAgD;CACpD,QAAQ,oBAAC,0BAAwB;CACjC,SAAS,oBAAC,sBAAoB;CAC9B,MAAM,oBAAC,mBAAiB;CACxB,SAAS,oBAAC,oBAAkB;CAC7B;AAED,MAAM,gBAAgB,MAAMA,OAAM,EAChC,QAAQ;CACN,OAAO;CAEP,aAAa;EACX,cAAc;EACd,YAAY;EACb;CAED,SAAS,EACP,KAAK,MACN;CACF,EACF,CAAC;AAEF,MAAM,sBAAsB,MAAMA,MAAK,QAAQ;CAC7C,MAAM;CACN,QAAQ;EACN,QAAQ;EACR,QAAQ;EACT;CACF,CAAC;AAEF,MAAM,oBAAoB,MAAM,QAAQ;CACtC,MAAM;CACN,MAAM;CACN,QAAQ;EACN,OAAO;EACP,gBAAgB;EACjB;CACF,CAAC;;;;;AAMF,SAAgB,aAAa,OAA0B;AACrD,QAAO,oBAAC,uBAAoB,GAAI,QAAS;;;;;;AAO3C,SAAgB,WAAW,OAAwB;AACjD,QAAO,oBAAC,qBAAkB,GAAI,QAAS;;;;;;;AAQzC,SAAgB,OAAO,OAAoB;CACzC,MAAM,EAAE,MAAM,SAAS;CAEvB,MAAM,EACJ,QAAQ,QACR,SACA,gBAAgB,OAChB,WACA,UACA,MACA,GAAG,SACD;CAEJ,MAAM,iBAAiB,eAAe;AACpC,eAAa;GACb;CAEF,MAAM,cAAc,cAAc,cAAc,QAAQ,CAAC,MAAM,CAAC;CAEhE,MAAM,aAAa,CAAC,EAAE,WAAW;AAEjC,QACE,oBAAC;EACC,IAAG;EACH,MAAK;EACL,MAAK;EACE;EACP,MAAK;EACL,MAAM,QAAQ;EACd,GAAI;EACJ,SACE,aACE,8CACG,SACA,iBACC,oBAACA,MAAK;GACJ,MAAM,oBAAC,UAAQ;GACf,SAAS,EAAE,qBAAqB,cAAc;GAC9C,SAAS;IACT,IAEH,GACD;EAGL;GACa;;AAIpB,OAAO,SAAS;AAChB,OAAO,OAAO"}
@@ -4,6 +4,7 @@ import { DynamicIcon } from "../../../utils/react/resolveIcon.js";
4
4
  import "../../../utils/react/index.js";
5
5
  import { CubeActionProps } from "../Action/Action.js";
6
6
  import { Mods, Styles } from "@tenphi/tasty";
7
+ import "react";
7
8
  import { OverlayProps } from "react-aria";
8
9
 
9
10
  //#region src/components/actions/Button/Button.d.ts
@@ -24,8 +25,7 @@ interface CubeButtonProps extends CubeActionProps {
24
25
  rightIcon?: DynamicIcon<ButtonMods>;
25
26
  isLoading?: boolean;
26
27
  isSelected?: boolean;
27
- type?: 'primary' | 'invert' | 'danger' | 'link' | 'clear' | 'outline' | 'outline-2' | (string & {});
28
- theme?: 'default' | 'danger' | 'success' | 'warning' | 'note' | 'special' | 'current' | (string & {});
28
+ type?: 'primary' | 'danger' | 'link' | 'clear' | 'outline' | 'outline-2' | 'current' | (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 = 'current.primary' | 'current.invert' | 'current.outline' | 'current.outline-2' | 'current.clear' | 'current.link' | 'default.primary' | 'default.invert' | 'default.outline' | 'default.outline-2' | 'default.clear' | 'default.link' | 'danger.primary' | 'danger.invert' | 'danger.outline' | 'danger.outline-2' | 'danger.clear' | 'danger.link' | 'success.primary' | 'success.invert' | 'success.outline' | 'success.outline-2' | 'success.clear' | 'success.link' | 'warning.primary' | 'warning.invert' | 'warning.outline' | 'warning.outline-2' | 'warning.clear' | 'warning.link' | 'note.primary' | 'note.invert' | 'note.outline' | 'note.outline-2' | 'note.clear' | 'note.link' | 'special.primary' | 'special.invert' | 'special.outline' | 'special.clear' | 'special.link';
46
+ type ButtonVariant = 'default.current' | '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,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { getDisabledElementProps } from "../../../utils/react/disabledProps.js";
4
4
  import { mergeProps } from "../../../utils/react/mergeProps.js";
@@ -7,7 +7,7 @@ import { useEvent } from "../../../_internal/hooks/use-event.js";
7
7
  import { resolveIcon } from "../../../utils/react/resolveIcon.js";
8
8
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
9
9
  import { useAutoTooltip } from "../../content/use-auto-tooltip.js";
10
- import { CURRENT_CLEAR_STYLES, CURRENT_INVERT_STYLES, CURRENT_LINK_STYLES, CURRENT_OUTLINE_2_STYLES, CURRENT_OUTLINE_STYLES, CURRENT_PRIMARY_STYLES, DANGER_CLEAR_STYLES, DANGER_INVERT_STYLES, DANGER_LINK_STYLES, DANGER_OUTLINE_2_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_INVERT_STYLES, DEFAULT_LINK_STYLES, DEFAULT_OUTLINE_2_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, NOTE_CLEAR_STYLES, NOTE_INVERT_STYLES, NOTE_LINK_STYLES, NOTE_OUTLINE_2_STYLES, NOTE_OUTLINE_STYLES, NOTE_PRIMARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_INVERT_STYLES, SPECIAL_LINK_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_INVERT_STYLES, SUCCESS_LINK_STYLES, SUCCESS_OUTLINE_2_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, WARNING_CLEAR_STYLES, WARNING_INVERT_STYLES, WARNING_LINK_STYLES, WARNING_OUTLINE_2_STYLES, WARNING_OUTLINE_STYLES, WARNING_PRIMARY_STYLES } from "../../../data/item-themes.js";
10
+ import { CURRENT_BUTTON_STYLES, 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";
11
11
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
12
12
  import { useWarn } from "../../../_internal/hooks/use-warn.js";
13
13
  import { useIsFirstRender } from "../../../_internal/hooks/use-is-first-render.js";
@@ -83,7 +83,7 @@ const DEFAULT_BUTTON_STYLES = {
83
83
  },
84
84
  margin: {
85
85
  "": 0,
86
- "@parent(button-split, >) & !:first-child & (type=outline | type=outline-2 | type=primary | type=invert)": "-1bw left"
86
+ "@parent(button-split, >) & !:first-child & (type=outline | type=outline-2 | type=primary)": "-1bw left"
87
87
  },
88
88
  zIndex: {
89
89
  "@parent(button-split, >) & :hover": 1,
@@ -166,44 +166,33 @@ const ButtonElement = tasty({
166
166
  qa: "Button",
167
167
  styles: DEFAULT_BUTTON_STYLES,
168
168
  variants: {
169
- "current.primary": CURRENT_PRIMARY_STYLES,
170
- "current.invert": CURRENT_INVERT_STYLES,
171
- "current.outline": CURRENT_OUTLINE_STYLES,
172
- "current.outline-2": CURRENT_OUTLINE_2_STYLES,
173
- "current.clear": CURRENT_CLEAR_STYLES,
174
- "current.link": CURRENT_LINK_STYLES,
169
+ "default.current": CURRENT_BUTTON_STYLES,
175
170
  "default.primary": DEFAULT_PRIMARY_STYLES,
176
- "default.invert": DEFAULT_INVERT_STYLES,
177
171
  "default.outline": DEFAULT_OUTLINE_STYLES,
178
172
  "default.outline-2": DEFAULT_OUTLINE_2_STYLES,
179
173
  "default.clear": DEFAULT_CLEAR_STYLES,
180
174
  "default.link": DEFAULT_LINK_STYLES,
181
175
  "danger.primary": DANGER_PRIMARY_STYLES,
182
- "danger.invert": DANGER_INVERT_STYLES,
183
176
  "danger.outline": DANGER_OUTLINE_STYLES,
184
177
  "danger.outline-2": DANGER_OUTLINE_2_STYLES,
185
178
  "danger.clear": DANGER_CLEAR_STYLES,
186
179
  "danger.link": DANGER_LINK_STYLES,
187
180
  "success.primary": SUCCESS_PRIMARY_STYLES,
188
- "success.invert": SUCCESS_INVERT_STYLES,
189
181
  "success.outline": SUCCESS_OUTLINE_STYLES,
190
182
  "success.outline-2": SUCCESS_OUTLINE_2_STYLES,
191
183
  "success.clear": SUCCESS_CLEAR_STYLES,
192
184
  "success.link": SUCCESS_LINK_STYLES,
193
185
  "warning.primary": WARNING_PRIMARY_STYLES,
194
- "warning.invert": WARNING_INVERT_STYLES,
195
186
  "warning.outline": WARNING_OUTLINE_STYLES,
196
187
  "warning.outline-2": WARNING_OUTLINE_2_STYLES,
197
188
  "warning.clear": WARNING_CLEAR_STYLES,
198
189
  "warning.link": WARNING_LINK_STYLES,
199
190
  "note.primary": NOTE_PRIMARY_STYLES,
200
- "note.invert": NOTE_INVERT_STYLES,
201
191
  "note.outline": NOTE_OUTLINE_STYLES,
202
192
  "note.outline-2": NOTE_OUTLINE_2_STYLES,
203
193
  "note.clear": NOTE_CLEAR_STYLES,
204
194
  "note.link": NOTE_LINK_STYLES,
205
195
  "special.primary": SPECIAL_PRIMARY_STYLES,
206
- "special.invert": SPECIAL_INVERT_STYLES,
207
196
  "special.outline": SPECIAL_OUTLINE_STYLES,
208
197
  "special.clear": SPECIAL_CLEAR_STYLES,
209
198
  "special.link": SPECIAL_LINK_STYLES
@@ -319,6 +308,7 @@ const Button = forwardRef(function Button(allProps, ref) {
319
308
  const isCustomSize = typeof size === "number" || size != null && !BUTTON_SIZE_VALUES.includes(size);
320
309
  const sizeTokenValue = typeof size === "number" ? `${size}px` : isCustomSize ? size : void 0;
321
310
  const effectiveType = theme === "special" && type === "outline-2" ? "outline" : type;
311
+ const variantTheme = effectiveType === "current" ? "default" : theme;
322
312
  return /* @__PURE__ */ jsxs(ButtonElement, {
323
313
  download,
324
314
  ...mergeProps(actionProps, tooltipTriggerProps || {}, inertProps),
@@ -328,7 +318,7 @@ const Button = forwardRef(function Button(allProps, ref) {
328
318
  ...modifiers
329
319
  },
330
320
  disabled: isNativelyDisabled,
331
- variant: `${theme}.${effectiveType ?? "outline"}`,
321
+ variant: `${variantTheme}.${effectiveType ?? "outline"}`,
332
322
  "data-theme": theme,
333
323
  "data-type": effectiveType ?? "outline",
334
324
  "data-size": size,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":[],"sources":["../../../../src/components/actions/Button/Button.tsx"],"sourcesContent":["import { FocusableRef, PressEvent } 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 useRef,\n useState,\n} from 'react';\nimport { OverlayProps } from 'react-aria';\n\nimport { useEvent } from '../../../_internal';\nimport { useIsFirstRender } from '../../../_internal/hooks/use-is-first-render';\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport {\n CURRENT_CLEAR_STYLES,\n CURRENT_INVERT_STYLES,\n CURRENT_LINK_STYLES,\n CURRENT_OUTLINE_2_STYLES,\n CURRENT_OUTLINE_STYLES,\n CURRENT_PRIMARY_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_INVERT_STYLES,\n DANGER_LINK_STYLES,\n DANGER_OUTLINE_2_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_INVERT_STYLES,\n DEFAULT_LINK_STYLES,\n DEFAULT_OUTLINE_2_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_INVERT_STYLES,\n NOTE_LINK_STYLES,\n NOTE_OUTLINE_2_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_INVERT_STYLES,\n SPECIAL_LINK_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_INVERT_STYLES,\n SUCCESS_LINK_STYLES,\n SUCCESS_OUTLINE_2_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_INVERT_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 {\n DynamicIcon,\n getDisabledElementProps,\n mergeProps,\n resolveIcon,\n useDismissParentPopover,\n} 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 | 'invert'\n | 'danger'\n | 'link'\n | 'clear'\n | 'outline'\n | 'outline-2'\n | (string & {});\n theme?:\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | 'current'\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 // The `current` theme mixes every color from the inherited `currentcolor`\n // instead of a brand ramp — see the CURRENT THEME section of `item-themes`.\n | 'current.primary'\n | 'current.invert'\n | 'current.outline'\n | 'current.outline-2'\n | 'current.clear'\n | 'current.link'\n | 'default.primary'\n | 'default.invert'\n | 'default.outline'\n | 'default.outline-2'\n | 'default.clear'\n | 'default.link'\n | 'danger.primary'\n | 'danger.invert'\n | 'danger.outline'\n | 'danger.outline-2'\n | 'danger.clear'\n | 'danger.link'\n | 'success.primary'\n | 'success.invert'\n | 'success.outline'\n | 'success.outline-2'\n | 'success.clear'\n | 'success.link'\n | 'warning.primary'\n | 'warning.invert'\n | 'warning.outline'\n | 'warning.outline-2'\n | 'warning.clear'\n | 'warning.link'\n | 'note.primary'\n | 'note.invert'\n | 'note.outline'\n | 'note.outline-2'\n | 'note.clear'\n | 'note.link'\n | 'special.primary'\n | 'special.invert'\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 | type=invert)':\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 // Current theme — colors mixed from the inherited `currentcolor`\n 'current.primary': CURRENT_PRIMARY_STYLES,\n 'current.invert': CURRENT_INVERT_STYLES,\n 'current.outline': CURRENT_OUTLINE_STYLES,\n 'current.outline-2': CURRENT_OUTLINE_2_STYLES,\n 'current.clear': CURRENT_CLEAR_STYLES,\n 'current.link': CURRENT_LINK_STYLES,\n\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.invert': DEFAULT_INVERT_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.invert': DANGER_INVERT_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.invert': SUCCESS_INVERT_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.invert': WARNING_INVERT_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.invert': NOTE_INVERT_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.invert': SPECIAL_INVERT_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 onPress: userOnPress,\n tokens,\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 // Default: pressing a Button inside an open popover closes that popover.\n // Opt-outs (handled inline below):\n // - `data-popover-trigger` (auto, applied by MenuTrigger/DialogTrigger\n // type='popover' so triggers don't dismiss the popover they live in)\n // - `data-popover-keep` on self or any ancestor (manual opt-out for\n // toggles, custom inline editors, etc.)\n // Modals/trays don't subscribe at all, so this is a no-op there.\n const dismissParentPopover = useDismissParentPopover();\n const buttonElementRef = useRef<HTMLElement | null>(null);\n\n const wrappedOnPress = useEvent((e: PressEvent) => {\n userOnPress?.(e);\n const el = buttonElementRef.current;\n if (!el) return;\n if (el.hasAttribute('data-popover-trigger')) return;\n if (el.closest('[data-popover-keep]')) return;\n dismissParentPopover(el);\n });\n\n const { actionProps, isPressed } = useAction(\n {\n ...allProps,\n isDisabled,\n onPress: wrappedOnPress,\n ...(label ? { label } : {}),\n },\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 isTooltipActive,\n } = useAutoTooltip({\n tooltip,\n children,\n labelProps: undefined,\n });\n\n // A disabled button still has to be able to show its tooltip — that is\n // usually where the reason for being unavailable is written. The native\n // `disabled` attribute would make the browser drop the hover that opens it,\n // so when a tooltip is present the button is marked `aria-disabled` and kept\n // inert instead. The attribute is skipped for links too, where it is not\n // valid markup and `aria-disabled` is the only thing announcing the state.\n const { isNativelyDisabled, inertProps } = getDisabledElementProps({\n isDisabled: isDisabledElement,\n keepEvents: isTooltipActive,\n as: typeof actionProps.as === 'string' ? actionProps.as : 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 // Track the rendered DOM node so the dismiss wrapper around `onPress`\n // can read it synchronously without coupling to `useAction`'s ref shape.\n buttonElementRef.current = element;\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 || {}, inertProps)}\n ref={handleRef}\n mods={{ ...actionProps.mods, ...modifiers }}\n disabled={isNativelyDisabled}\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={{\n ...tokens,\n ...(sizeTokenValue ? { $size: sizeTokenValue } : {}),\n }}\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, PressEvent } 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 useRef,\n useState,\n} from 'react';\nimport { OverlayProps } from 'react-aria';\n\nimport { useEvent } from '../../../_internal';\nimport { useIsFirstRender } from '../../../_internal/hooks/use-is-first-render';\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport {\n CURRENT_BUTTON_STYLES,\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 {\n DynamicIcon,\n getDisabledElementProps,\n mergeProps,\n resolveIcon,\n useDismissParentPopover,\n} 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 | 'current'\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 // The `current` type derives every color from the inherited `currentcolor`,\n // so it has no per-theme flavours — see `CURRENT_BUTTON_STYLES`.\n | 'default.current'\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 // Inherited-color type — theme-agnostic, see `CURRENT_BUTTON_STYLES`\n 'default.current': CURRENT_BUTTON_STYLES,\n\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 onPress: userOnPress,\n tokens,\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 // Default: pressing a Button inside an open popover closes that popover.\n // Opt-outs (handled inline below):\n // - `data-popover-trigger` (auto, applied by MenuTrigger/DialogTrigger\n // type='popover' so triggers don't dismiss the popover they live in)\n // - `data-popover-keep` on self or any ancestor (manual opt-out for\n // toggles, custom inline editors, etc.)\n // Modals/trays don't subscribe at all, so this is a no-op there.\n const dismissParentPopover = useDismissParentPopover();\n const buttonElementRef = useRef<HTMLElement | null>(null);\n\n const wrappedOnPress = useEvent((e: PressEvent) => {\n userOnPress?.(e);\n const el = buttonElementRef.current;\n if (!el) return;\n if (el.hasAttribute('data-popover-trigger')) return;\n if (el.closest('[data-popover-keep]')) return;\n dismissParentPopover(el);\n });\n\n const { actionProps, isPressed } = useAction(\n {\n ...allProps,\n isDisabled,\n onPress: wrappedOnPress,\n ...(label ? { label } : {}),\n },\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 isTooltipActive,\n } = useAutoTooltip({\n tooltip,\n children,\n labelProps: undefined,\n });\n\n // A disabled button still has to be able to show its tooltip — that is\n // usually where the reason for being unavailable is written. The native\n // `disabled` attribute would make the browser drop the hover that opens it,\n // so when a tooltip is present the button is marked `aria-disabled` and kept\n // inert instead. The attribute is skipped for links too, where it is not\n // valid markup and `aria-disabled` is the only thing announcing the state.\n const { isNativelyDisabled, inertProps } = getDisabledElementProps({\n isDisabled: isDisabledElement,\n keepEvents: isTooltipActive,\n as: typeof actionProps.as === 'string' ? actionProps.as : 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 // Track the rendered DOM node so the dismiss wrapper around `onPress`\n // can read it synchronously without coupling to `useAction`'s ref shape.\n buttonElementRef.current = element;\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 // `current` paints from the inherited `currentcolor`, so a theme would have\n // nothing to change — it has a single, theme-agnostic variant.\n const variantTheme = effectiveType === 'current' ? 'default' : theme;\n\n return (\n <ButtonElement\n download={download}\n {...mergeProps(actionProps, tooltipTriggerProps || {}, inertProps)}\n ref={handleRef}\n mods={{ ...actionProps.mods, ...modifiers }}\n disabled={isNativelyDisabled}\n variant={\n `${variantTheme}.${effectiveType ?? 'outline'}` as ButtonVariant\n }\n data-theme={theme}\n data-type={effectiveType ?? 'outline'}\n data-size={size}\n data-popover-dismiss=\"\"\n styles={styles}\n tokens={{\n ...tokens,\n ...(sizeTokenValue ? { $size: sizeTokenValue } : {}),\n }}\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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | 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.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/components/actions/CommandMenu/styled.tsx
@@ -12,8 +12,8 @@ interface CubeItemActionProps extends Omit<CubeUseActionProps, 'as' | 'htmlType'
12
12
  children?: ReactNode;
13
13
  isLoading?: boolean;
14
14
  isSelected?: boolean;
15
- type?: 'primary' | 'invert' | 'outline' | 'clear' | (string & {});
16
- theme?: 'current' | 'default' | 'danger' | 'success' | 'warning' | 'note' | 'special' | (string & {});
15
+ type?: 'primary' | 'outline' | 'clear' | 'current' | (string & {});
16
+ theme?: 'default' | 'danger' | 'success' | 'warning' | 'note' | 'special' | (string & {});
17
17
  tooltip?: string | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {
18
18
  title?: ReactNode;
19
19
  });
@@ -1,7 +1,7 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b75ab37 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-4499da7 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
4
- import { CURRENT_CLEAR_STYLES, CURRENT_INVERT_STYLES, CURRENT_OUTLINE_STYLES, CURRENT_PRIMARY_STYLES, DANGER_CLEAR_STYLES, DANGER_INVERT_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_INVERT_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, ITEM_ACTION_BASE_STYLES, NOTE_CLEAR_STYLES, NOTE_INVERT_STYLES, NOTE_OUTLINE_STYLES, NOTE_PRIMARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_INVERT_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_INVERT_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, WARNING_CLEAR_STYLES, WARNING_INVERT_STYLES, WARNING_OUTLINE_STYLES, WARNING_PRIMARY_STYLES } from "../../../data/item-themes.js";
4
+ import { CURRENT_ITEM_STYLES, 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";
@@ -48,39 +48,30 @@ const ItemActionElement = tasty({
48
48
  }
49
49
  },
50
50
  variants: {
51
- "current.primary": CURRENT_PRIMARY_STYLES,
52
- "current.invert": CURRENT_INVERT_STYLES,
53
- "current.outline": CURRENT_OUTLINE_STYLES,
54
- "current.clear": CURRENT_CLEAR_STYLES,
51
+ "default.current": CURRENT_ITEM_STYLES,
55
52
  "default.primary": DEFAULT_PRIMARY_STYLES,
56
- "default.invert": DEFAULT_INVERT_STYLES,
57
53
  "default.outline": DEFAULT_OUTLINE_STYLES,
58
54
  "default.clear": DEFAULT_CLEAR_STYLES,
59
55
  "danger.primary": DANGER_PRIMARY_STYLES,
60
- "danger.invert": DANGER_INVERT_STYLES,
61
56
  "danger.outline": DANGER_OUTLINE_STYLES,
62
57
  "danger.clear": DANGER_CLEAR_STYLES,
63
58
  "success.primary": SUCCESS_PRIMARY_STYLES,
64
- "success.invert": SUCCESS_INVERT_STYLES,
65
59
  "success.outline": SUCCESS_OUTLINE_STYLES,
66
60
  "success.clear": SUCCESS_CLEAR_STYLES,
67
61
  "warning.primary": WARNING_PRIMARY_STYLES,
68
- "warning.invert": WARNING_INVERT_STYLES,
69
62
  "warning.outline": WARNING_OUTLINE_STYLES,
70
63
  "warning.clear": WARNING_CLEAR_STYLES,
71
64
  "note.primary": NOTE_PRIMARY_STYLES,
72
- "note.invert": NOTE_INVERT_STYLES,
73
65
  "note.outline": NOTE_OUTLINE_STYLES,
74
66
  "note.clear": NOTE_CLEAR_STYLES,
75
67
  "special.primary": SPECIAL_PRIMARY_STYLES,
76
- "special.invert": SPECIAL_INVERT_STYLES,
77
68
  "special.outline": SPECIAL_OUTLINE_STYLES,
78
69
  "special.clear": SPECIAL_CLEAR_STYLES
79
70
  }
80
71
  });
81
72
  const ItemAction = forwardRef(function ItemAction(allProps, ref) {
82
73
  const { type: contextType, theme: contextTheme, disableActionsFocus, isDisabled: contextIsDisabled } = useItemActionContext();
83
- const { type = "clear", theme = "current", icon, children, isLoading = false, isSelected = false, tooltip, mods, styles, isDisabled: isDisabledProp, ...rest } = allProps;
74
+ const { type = allProps.theme && allProps.theme !== "default" ? "clear" : "current", theme = contextTheme ?? "default", icon, children, isLoading = false, isSelected = false, tooltip, mods, styles, isDisabled: isDisabledProp, ...rest } = allProps;
84
75
  const isDisabled = isDisabledProp ?? contextIsDisabled;
85
76
  const isDisabledInherited = isDisabledProp == null && !!contextIsDisabled;
86
77
  const hasCheckmark = icon === "checkmark";
@@ -137,10 +128,9 @@ const ItemAction = forwardRef(function ItemAction(allProps, ref) {
137
128
  if (actionRef) if (typeof actionRef === "function") actionRef(element);
138
129
  else actionRef.current = element;
139
130
  } }) : mergeProps(actionProps, tooltipTriggerProps || {}),
140
- variant: `${theme}.${finalType}`,
131
+ variant: `${finalType === "current" ? "default" : theme}.${finalType}`,
141
132
  "data-theme": theme,
142
133
  "data-type": finalType,
143
- "data-surface": contextTheme,
144
134
  tabIndex: finalTabIndex,
145
135
  styles,
146
136
  children: [finalIcon && /* @__PURE__ */ jsx("div", {