@cube-dev/ui-kit 0.0.0-canary-ed0ffec → 0.0.0-canary-f040419

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 (578) 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.d.ts +4 -5
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/Root.js.map +1 -1
  18. package/dist/components/actions/Action/Action.js +1 -1
  19. package/dist/components/actions/Banner/Banner.js +2 -5
  20. package/dist/components/actions/Banner/Banner.js.map +1 -1
  21. package/dist/components/actions/Button/Button.d.ts +4 -2
  22. package/dist/components/actions/Button/Button.js +8 -5
  23. package/dist/components/actions/Button/Button.js.map +1 -1
  24. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  25. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  26. package/dist/components/actions/ButtonSplit/context.js +1 -1
  27. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/dist/components/actions/CommandMenu/styled.js +1 -1
  29. package/dist/components/actions/ItemAction/ItemAction.d.ts +2 -2
  30. package/dist/components/actions/ItemAction/ItemAction.js +8 -6
  31. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  32. package/dist/components/actions/ItemActionContext.js +1 -1
  33. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +1 -1
  36. package/dist/components/actions/Menu/MenuItem.js +1 -1
  37. package/dist/components/actions/Menu/MenuSection.js +1 -1
  38. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  39. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  40. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  41. package/dist/components/actions/Menu/context.js +1 -1
  42. package/dist/components/actions/Menu/styled.js +1 -1
  43. package/dist/components/actions/index.js +1 -1
  44. package/dist/components/actions/use-action.js +1 -1
  45. package/dist/components/actions/use-anchored-menu.js +1 -1
  46. package/dist/components/actions/use-context-menu.js +1 -1
  47. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  48. package/dist/components/content/Alert/Alert.js +1 -1
  49. package/dist/components/content/Alert/use-alert.js +1 -1
  50. package/dist/components/content/Avatar/Avatar.js +1 -1
  51. package/dist/components/content/Badge/Badge.js +1 -1
  52. package/dist/components/content/Card/Card.js +1 -1
  53. package/dist/components/content/Content.js +1 -1
  54. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  55. package/dist/components/content/CopySnippet/CopySnippet.d.ts +10 -0
  56. package/dist/components/content/CopySnippet/CopySnippet.js +7 -4
  57. package/dist/components/content/CopySnippet/CopySnippet.js.map +1 -1
  58. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  59. package/dist/components/content/Divider.js +1 -1
  60. package/dist/components/content/Footer.js +1 -1
  61. package/dist/components/content/Header.js +1 -1
  62. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  63. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  64. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  65. package/dist/components/content/Item/Item.d.ts +2 -2
  66. package/dist/components/content/Item/Item.js +10 -11
  67. package/dist/components/content/Item/Item.js.map +1 -1
  68. package/dist/components/content/ItemBadge/ItemBadge.d.ts +2 -2
  69. package/dist/components/content/ItemBadge/ItemBadge.js +8 -6
  70. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  71. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  72. package/dist/components/content/Layout/GridLayout.js +1 -1
  73. package/dist/components/content/Layout/Layout.js +1 -1
  74. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  75. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  76. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  77. package/dist/components/content/Layout/LayoutContent.js +1 -1
  78. package/dist/components/content/Layout/LayoutContext.js +1 -1
  79. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  80. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  81. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  82. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  83. package/dist/components/content/Layout/LayoutPane.js +1 -1
  84. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  85. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  86. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  87. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  88. package/dist/components/content/Layout/index.js +1 -1
  89. package/dist/components/content/Layout/utils.js +1 -1
  90. package/dist/components/content/Paragraph.js +1 -1
  91. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  92. package/dist/components/content/PrismCode/PrismCode.d.ts +6 -0
  93. package/dist/components/content/PrismCode/PrismCode.js +12 -3
  94. package/dist/components/content/PrismCode/PrismCode.js.map +1 -1
  95. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  96. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  97. package/dist/components/content/Result/Result.js +1 -1
  98. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  99. package/dist/components/content/Tag/Tag.js +1 -1
  100. package/dist/components/content/Text.d.ts +28 -28
  101. package/dist/components/content/Text.js +1 -1
  102. package/dist/components/content/TextItem/TextItem.js +1 -1
  103. package/dist/components/content/Title.js +1 -1
  104. package/dist/components/content/Tree/Tree.js +1 -1
  105. package/dist/components/content/Tree/TreeNode.js +1 -1
  106. package/dist/components/content/Tree/styled.js +1 -1
  107. package/dist/components/content/Tree/tree-index.js +1 -1
  108. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  109. package/dist/components/content/Tree/use-load-data.js +1 -1
  110. package/dist/components/content/highlightText.js +1 -1
  111. package/dist/components/content/use-auto-tooltip.js +1 -1
  112. package/dist/components/data/DataTable/DataTable.js +1 -1
  113. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  114. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  115. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  116. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  117. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  118. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  119. package/dist/components/data/TableBase/RowCollection.js +1 -1
  120. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  121. package/dist/components/data/TableBase/TableRow.js +1 -1
  122. package/dist/components/data/TableBase/TableView.js +1 -1
  123. package/dist/components/data/TableBase/column-menu.js +1 -1
  124. package/dist/components/data/TableBase/column-tint.js +2 -12
  125. package/dist/components/data/TableBase/column-tint.js.map +1 -1
  126. package/dist/components/data/TableBase/row-menu.js +1 -1
  127. package/dist/components/data/TableBase/styled.d.ts +2 -1
  128. package/dist/components/data/TableBase/styled.js +1 -1
  129. package/dist/components/data/TableBase/types.js +1 -1
  130. package/dist/components/data/TableBase/use-cell-selection.d.ts +1 -0
  131. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  132. package/dist/components/data/TableBase/use-column-order.js +1 -1
  133. package/dist/components/data/TableBase/use-container-width.js +1 -1
  134. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  135. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  136. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  137. package/dist/components/data/TableBase/use-table-search.js +1 -1
  138. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  139. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  140. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  141. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  142. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  143. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  144. package/dist/components/fields/Checkbox/context.js +1 -1
  145. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  146. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  147. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  148. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  149. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  150. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  151. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  152. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  153. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  154. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  155. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  156. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  157. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  158. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  159. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  160. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  161. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  162. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  163. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  164. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  165. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  166. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  167. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  168. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  169. package/dist/components/fields/DatePicker/period.js +1 -1
  170. package/dist/components/fields/DatePicker/props.js +1 -1
  171. package/dist/components/fields/DatePicker/utils.js +1 -1
  172. package/dist/components/fields/FileInput/FileInput.js +1 -1
  173. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  174. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  175. package/dist/components/fields/Input/Input.js +1 -1
  176. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  177. package/dist/components/fields/ListBox/ListBox.js +1 -1
  178. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  179. package/dist/components/fields/ListBoxPopover/index.d.ts +1 -0
  180. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  181. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +2 -0
  182. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  183. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  184. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  185. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  186. package/dist/components/fields/Picker/Picker.js +1 -1
  187. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  188. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  189. package/dist/components/fields/RadioGroup/context.js +1 -1
  190. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  191. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  192. package/dist/components/fields/Select/Select.js +1 -1
  193. package/dist/components/fields/Slider/Gradation.js +1 -1
  194. package/dist/components/fields/Slider/HueSlider.js +1 -1
  195. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  196. package/dist/components/fields/Slider/Slider.js +1 -1
  197. package/dist/components/fields/Slider/SliderBase.js +1 -1
  198. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  199. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  200. package/dist/components/fields/Slider/elements.js +1 -1
  201. package/dist/components/fields/Slider/index.js +1 -1
  202. package/dist/components/fields/Switch/Switch.js +1 -1
  203. package/dist/components/fields/TextArea/TextArea.js +1 -1
  204. package/dist/components/fields/TextInput/TextInput.js +1 -1
  205. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  206. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  207. package/dist/components/fields/color/ColorPanel.js +1 -1
  208. package/dist/components/fields/color/channels.js +1 -1
  209. package/dist/components/fields/color/color.js +1 -1
  210. package/dist/components/fields/color/context.js +1 -1
  211. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  212. package/dist/components/form/Form/Field.js +1 -1
  213. package/dist/components/form/Form/Form.js +1 -1
  214. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  215. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  216. package/dist/components/form/Form/SubmitError.js +1 -1
  217. package/dist/components/form/Form/index.js +1 -1
  218. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  219. package/dist/components/form/Form/use-field/use-field.js +1 -1
  220. package/dist/components/form/Form/use-form.js +1 -1
  221. package/dist/components/form/Form/validation.js +1 -1
  222. package/dist/components/form/Label.js +1 -1
  223. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  224. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  225. package/dist/components/form/validation/use-validation-props.js +1 -1
  226. package/dist/components/form/wrapper.js +1 -1
  227. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  228. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  229. package/dist/components/layout/Board/Board.js +1 -1
  230. package/dist/components/layout/Board/BoardProvider.js +1 -1
  231. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  232. package/dist/components/layout/Board/Widget.js +1 -1
  233. package/dist/components/layout/Board/WidgetHost.js +1 -1
  234. package/dist/components/layout/Board/board-context.js +1 -1
  235. package/dist/components/layout/Board/board-store.js +1 -1
  236. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  237. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  238. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  239. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  240. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  241. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  242. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  243. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  244. package/dist/components/layout/Board/index.js +1 -1
  245. package/dist/components/layout/Board/responsive-utils.js +1 -1
  246. package/dist/components/layout/Board/use-board-layout.js +1 -1
  247. package/dist/components/layout/Board/use-board-registry.js +1 -1
  248. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  249. package/dist/components/layout/Board/use-board-selection.js +1 -1
  250. package/dist/components/layout/Flex.js +1 -1
  251. package/dist/components/layout/Flow.js +1 -1
  252. package/dist/components/layout/Grid.js +1 -1
  253. package/dist/components/layout/Panel.js +1 -1
  254. package/dist/components/layout/Prefix.js +1 -1
  255. package/dist/components/layout/ResizablePanel.js +1 -1
  256. package/dist/components/layout/Space.js +1 -1
  257. package/dist/components/layout/Suffix.js +1 -1
  258. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  259. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  260. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  261. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  262. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  263. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  264. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  265. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  266. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  267. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  268. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  269. package/dist/components/navigation/Tabs/styled.js +1 -1
  270. package/dist/components/navigation/Tabs/types.js +1 -1
  271. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  272. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  273. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  274. package/dist/components/other/Calendar/Calendar.js +1 -1
  275. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  276. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  277. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  278. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  279. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  280. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  281. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  282. package/dist/components/other/Calendar/styled.js +1 -1
  283. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  284. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  285. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  286. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  287. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  288. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  289. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  290. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  291. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  292. package/dist/components/overlays/Dialog/context.js +1 -1
  293. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  294. package/dist/components/overlays/Modal/Modal.d.ts +2 -1
  295. package/dist/components/overlays/Modal/Modal.js +1 -1
  296. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  297. package/dist/components/overlays/Modal/Overlay.d.ts +1 -0
  298. package/dist/components/overlays/Modal/Overlay.js +1 -1
  299. package/dist/components/overlays/Modal/Popover.js +1 -1
  300. package/dist/components/overlays/Modal/Tray.js +1 -1
  301. package/dist/components/overlays/Modal/Underlay.js +1 -1
  302. package/dist/components/overlays/Modal/types.d.ts +1 -0
  303. package/dist/components/overlays/Notifications/Notification.js +1 -1
  304. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  305. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  306. package/dist/components/overlays/Notifications/NotificationContext.d.ts +2 -0
  307. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  308. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  309. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  310. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  311. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  312. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  313. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  314. package/dist/components/overlays/Notifications/index.js +1 -1
  315. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  316. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  317. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  318. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  319. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  320. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  321. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  322. package/dist/components/overlays/Toast/index.js +1 -1
  323. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  324. package/dist/components/overlays/Toast/useToast.js +1 -1
  325. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  326. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  327. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  328. package/dist/components/overlays/Tooltip/context.js +1 -1
  329. package/dist/components/portal/Portal.js +1 -1
  330. package/dist/components/portal/PortalProvider.d.ts +2 -0
  331. package/dist/components/portal/PortalProvider.js +1 -1
  332. package/dist/components/portal/index.d.ts +1 -0
  333. package/dist/components/portal/usePortal.js +1 -1
  334. package/dist/components/shared/DraggableCollection.js +1 -1
  335. package/dist/components/shared/InvalidIcon.js +1 -1
  336. package/dist/components/shared/ValidIcon.js +1 -1
  337. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  338. package/dist/components/status/Spin/Cube.js +1 -1
  339. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  340. package/dist/components/status/Spin/Spin.js +1 -1
  341. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  342. package/dist/data/item-themes.d.ts +1 -1
  343. package/dist/data/item-themes.js +141 -55
  344. package/dist/data/item-themes.js.map +1 -1
  345. package/dist/data/themes.js +1 -1
  346. package/dist/eslint-plugin/defaults.generated.js +7 -9
  347. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  348. package/dist/eslint-plugin/index.js +1 -1
  349. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  350. package/dist/i18n/I18nProvider.js +1 -1
  351. package/dist/i18n/createFormatter.js +1 -1
  352. package/dist/i18n/index.js +1 -1
  353. package/dist/i18n/instance.js +1 -1
  354. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  355. package/dist/i18n/locales/en-US/uikit.js +1 -1
  356. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  357. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  358. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  359. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  360. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  361. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  362. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  363. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  364. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  365. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  366. package/dist/i18n/locales.js +1 -1
  367. package/dist/i18n/useFormatter.js +1 -1
  368. package/dist/i18n/useI18n.js +1 -1
  369. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  370. package/dist/icons/AdjustmentsIcon.js +1 -1
  371. package/dist/icons/AiIcon.js +1 -1
  372. package/dist/icons/AreaChartIcon.js +1 -1
  373. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  374. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  375. package/dist/icons/BackwardIcon.js +1 -1
  376. package/dist/icons/BarChartIcon.js +1 -1
  377. package/dist/icons/BellFilledIcon.js +1 -1
  378. package/dist/icons/BellIcon.js +1 -1
  379. package/dist/icons/BooleanIcon.js +1 -1
  380. package/dist/icons/CalendarEditIcon.js +1 -1
  381. package/dist/icons/CalendarIcon.js +1 -1
  382. package/dist/icons/CaretDownIcon.js +1 -1
  383. package/dist/icons/CaretUpIcon.js +1 -1
  384. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  385. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  386. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  387. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  388. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  389. package/dist/icons/ChartBarLineIcon.js +1 -1
  390. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  391. package/dist/icons/ChartBarStackedIcon.js +1 -1
  392. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  393. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  394. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  395. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  396. package/dist/icons/ChartBubbleIcon.js +1 -1
  397. package/dist/icons/ChartDonut2Icon.js +1 -1
  398. package/dist/icons/ChartFunnelIcon.js +1 -1
  399. package/dist/icons/ChartHeatmapIcon.js +1 -1
  400. package/dist/icons/ChartKPIIcon.js +1 -1
  401. package/dist/icons/ChartPie2Icon.js +1 -1
  402. package/dist/icons/ChartScatterIcon.js +1 -1
  403. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  404. package/dist/icons/CheckCircleIcon.js +1 -1
  405. package/dist/icons/CheckIcon.js +1 -1
  406. package/dist/icons/CircleFilledIcon.js +1 -1
  407. package/dist/icons/ClearIcon.js +1 -1
  408. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  409. package/dist/icons/CloseCircleIcon.js +1 -1
  410. package/dist/icons/CloseIcon.js +1 -1
  411. package/dist/icons/CodeIcon.js +1 -1
  412. package/dist/icons/ColumnTotalIcon.js +1 -1
  413. package/dist/icons/CopyIcon.js +1 -1
  414. package/dist/icons/CountIcon.js +1 -1
  415. package/dist/icons/CubeIcon.js +1 -1
  416. package/dist/icons/CubePauseIcon.js +1 -1
  417. package/dist/icons/CubePlayIcon.js +1 -1
  418. package/dist/icons/CurrencyDollarIcon.js +1 -1
  419. package/dist/icons/DangerIcon.js +1 -1
  420. package/dist/icons/DashboardIcon.js +1 -1
  421. package/dist/icons/DatabaseIcon.js +1 -1
  422. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  423. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  424. package/dist/icons/DirectionIcon.js +1 -1
  425. package/dist/icons/DonutIcon.js +1 -1
  426. package/dist/icons/DownIcon.js +1 -1
  427. package/dist/icons/EditIcon.js +1 -1
  428. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  429. package/dist/icons/ExclamationCircleIcon.js +1 -1
  430. package/dist/icons/ExclamationIcon.js +1 -1
  431. package/dist/icons/EyeIcon.js +1 -1
  432. package/dist/icons/EyeInvisibleIcon.js +1 -1
  433. package/dist/icons/FilterIcon.js +1 -1
  434. package/dist/icons/FolderFilledIcon.js +1 -1
  435. package/dist/icons/FolderIcon.js +1 -1
  436. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  437. package/dist/icons/FolderOpenIcon.js +1 -1
  438. package/dist/icons/ForwardIcon.js +1 -1
  439. package/dist/icons/GripVerticalIcon.js +1 -1
  440. package/dist/icons/HierarchyIcon.js +1 -1
  441. package/dist/icons/HierarchyOpenIcon.js +1 -1
  442. package/dist/icons/Icon.js +1 -1
  443. package/dist/icons/InfoCircleIcon.js +1 -1
  444. package/dist/icons/InfoIcon.js +1 -1
  445. package/dist/icons/KeyIcon.js +1 -1
  446. package/dist/icons/LeftIcon.js +1 -1
  447. package/dist/icons/LineChartIcon.js +1 -1
  448. package/dist/icons/LoadingIcon.js +1 -1
  449. package/dist/icons/LockFilledIcon.js +1 -1
  450. package/dist/icons/LockIcon.js +1 -1
  451. package/dist/icons/MoreIcon.js +1 -1
  452. package/dist/icons/NotAllowedIcon.js +1 -1
  453. package/dist/icons/Number123Icon.js +1 -1
  454. package/dist/icons/NumberIcon.js +1 -1
  455. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  456. package/dist/icons/PauseCircleIcon.js +1 -1
  457. package/dist/icons/PauseIcon.js +1 -1
  458. package/dist/icons/PercentageIcon.js +1 -1
  459. package/dist/icons/PieChartIcon.js +1 -1
  460. package/dist/icons/PipetteIcon.js +1 -1
  461. package/dist/icons/PlayCircleIcon.js +1 -1
  462. package/dist/icons/PlayIcon.js +1 -1
  463. package/dist/icons/PlusIcon.js +1 -1
  464. package/dist/icons/ProgressBarIcon.js +1 -1
  465. package/dist/icons/ReloadIcon.js +1 -1
  466. package/dist/icons/ReportIcon.js +1 -1
  467. package/dist/icons/ReturnIcon.js +1 -1
  468. package/dist/icons/RightIcon.js +1 -1
  469. package/dist/icons/RowTotalsIcon.js +1 -1
  470. package/dist/icons/SchemeIcon.js +1 -1
  471. package/dist/icons/SearchIcon.js +1 -1
  472. package/dist/icons/SemanticQueryIcon.js +1 -1
  473. package/dist/icons/SettingsIcon.js +1 -1
  474. package/dist/icons/ShieldFilledIcon.js +1 -1
  475. package/dist/icons/ShieldIcon.js +1 -1
  476. package/dist/icons/SlashIcon.js +1 -1
  477. package/dist/icons/SparklesIcon.js +1 -1
  478. package/dist/icons/SqlIcon.js +1 -1
  479. package/dist/icons/StatsIcon.js +1 -1
  480. package/dist/icons/StopIcon.js +1 -1
  481. package/dist/icons/StringIcon.js +1 -1
  482. package/dist/icons/SubtotalsIcon.js +1 -1
  483. package/dist/icons/SwitchIcon.js +1 -1
  484. package/dist/icons/TableIcon.js +1 -1
  485. package/dist/icons/ThumbsDownIcon.js +1 -1
  486. package/dist/icons/ThumbsUpIcon.js +1 -1
  487. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  488. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  489. package/dist/icons/ThunderboltIcon.js +1 -1
  490. package/dist/icons/TimeIcon.js +1 -1
  491. package/dist/icons/TrashIcon.js +1 -1
  492. package/dist/icons/UnlockIcon.js +1 -1
  493. package/dist/icons/UpIcon.js +1 -1
  494. package/dist/icons/UserGroupIcon.js +1 -1
  495. package/dist/icons/UserIcon.js +1 -1
  496. package/dist/icons/UserLockIcon.js +1 -1
  497. package/dist/icons/ViewIcon.js +1 -1
  498. package/dist/icons/WarningFilledIcon.js +1 -1
  499. package/dist/icons/WarningIcon.js +1 -1
  500. package/dist/icons/wrap-icon.js +1 -1
  501. package/dist/index.d.ts +2 -2
  502. package/dist/index.js +1 -1
  503. package/dist/probe/canonicalize.js +1 -1
  504. package/dist/probe/css.js +1 -1
  505. package/dist/probe/index.js +1 -1
  506. package/dist/provider.js +1 -1
  507. package/dist/providers/TrackingProvider.js +1 -1
  508. package/dist/providers/navigationAdapter.default.js +1 -1
  509. package/dist/tokens/base.js +1 -1
  510. package/dist/tokens/color-seed.js +1 -1
  511. package/dist/tokens/color-theme.d.ts +1 -2
  512. package/dist/tokens/color-theme.js +2 -3
  513. package/dist/tokens/color-theme.js.map +1 -1
  514. package/dist/tokens/colors.js +20 -3
  515. package/dist/tokens/colors.js.map +1 -1
  516. package/dist/tokens/index.d.ts +1 -1
  517. package/dist/tokens/index.js +1 -1
  518. package/dist/tokens/index.js.map +1 -1
  519. package/dist/tokens/layout.js +1 -1
  520. package/dist/tokens/lazy-styles.js +1 -1
  521. package/dist/tokens/palette-config.d.ts +171 -213
  522. package/dist/tokens/palette-config.js +59 -144
  523. package/dist/tokens/palette-config.js.map +1 -1
  524. package/dist/tokens/palette.js +18 -45
  525. package/dist/tokens/palette.js.map +1 -1
  526. package/dist/tokens/shadows.js +1 -1
  527. package/dist/tokens/sizes.js +1 -1
  528. package/dist/tokens/spacing.js +1 -1
  529. package/dist/tokens/typography.js +1 -1
  530. package/dist/utils/ResizeSensor.js +1 -1
  531. package/dist/utils/is-dev-env.js +1 -1
  532. package/dist/utils/modules.js +1 -1
  533. package/dist/utils/promise.js +1 -1
  534. package/dist/utils/raf.js +1 -1
  535. package/dist/utils/random.js +1 -1
  536. package/dist/utils/range.js +1 -1
  537. package/dist/utils/react/RenderCache.js +1 -1
  538. package/dist/utils/react/Slots.js +1 -1
  539. package/dist/utils/react/chain.js +1 -1
  540. package/dist/utils/react/disabledProps.js +1 -1
  541. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  542. package/dist/utils/react/index.js +1 -1
  543. package/dist/utils/react/interactions.js +1 -1
  544. package/dist/utils/react/isTextOnly.js +1 -1
  545. package/dist/utils/react/mapProps.js +1 -1
  546. package/dist/utils/react/mergeProps.js +1 -1
  547. package/dist/utils/react/nullableValue.js +1 -1
  548. package/dist/utils/react/resolveIcon.js +1 -1
  549. package/dist/utils/react/sharedStore.js +1 -1
  550. package/dist/utils/react/useBufferedValue.js +1 -1
  551. package/dist/utils/react/useCombinedRefs.js +1 -1
  552. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  553. package/dist/utils/react/useEventBus.js +1 -1
  554. package/dist/utils/react/useId.js +1 -1
  555. package/dist/utils/react/useIsDarwin.js +1 -1
  556. package/dist/utils/react/useKeySymbols.js +1 -1
  557. package/dist/utils/react/useLayoutEffect.js +1 -1
  558. package/dist/utils/react/useLocalStorage.js +1 -1
  559. package/dist/utils/react/useMergeStyles.js +1 -1
  560. package/dist/utils/react/usePopoverSync.js +1 -1
  561. package/dist/utils/react/useQaProps.js +1 -1
  562. package/dist/utils/react/useViewportSize.js +1 -1
  563. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  564. package/dist/utils/selection.js +1 -1
  565. package/dist/utils/styles.js +1 -1
  566. package/dist/utils/tree.js +1 -1
  567. package/dist/utils/warnings.js +1 -1
  568. package/dist/version.js +2 -2
  569. package/docs/Theming.md +134 -226
  570. package/docs/Usage.md +30 -2
  571. package/docs/components/Root.md +1 -1
  572. package/docs/components/actions/Button.md +9 -3
  573. package/docs/components/actions/ItemAction.md +3 -3
  574. package/docs/components/content/CopySnippet.md +5 -5
  575. package/docs/components/content/Item.md +10 -10
  576. package/docs/components/content/ItemBadge.md +2 -2
  577. package/docs/components/content/PrismCode.md +1 -0
  578. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ItemAction.js","names":[],"sources":["../../../../src/components/actions/ItemAction/ItemAction.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport {\n ComponentProps,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n RefObject,\n useMemo,\n} from 'react';\n\nimport {\n CURRENT_ITEM_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n ITEM_ACTION_BASE_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { CheckIcon } from '../../../icons/CheckIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { TooltipProvider } from '../../overlays/Tooltip/TooltipProvider';\nimport { useItemActionContext } from '../ItemActionContext';\nimport { CubeUseActionProps, useAction } from '../use-action';\n\nexport interface CubeItemActionProps\n extends Omit<CubeUseActionProps, 'as' | 'htmlType'>,\n Omit<BaseProps, 'as'> {\n icon?: ReactNode | 'checkmark';\n children?: ReactNode;\n isLoading?: boolean;\n isSelected?: boolean;\n type?: 'primary' | 'outline' | 'clear' | 'current' | (string & {});\n theme?:\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | (string & {});\n tooltip?:\n | string\n | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {\n title?: ReactNode;\n });\n styles?: Styles;\n tabIndex?: number;\n}\n\ntype ItemActionVariant =\n // Theme-agnostic inherited-color type — see `CURRENT_ITEM_STYLES`.\n | 'default.current'\n | 'default.primary'\n | 'default.outline'\n | 'default.clear'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.clear'\n | 'success.primary'\n | 'success.outline'\n | 'success.clear'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.clear'\n | 'note.primary'\n | 'note.outline'\n | 'note.clear'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear';\n\nconst ItemActionElement = tasty({\n qa: 'ItemAction',\n styles: {\n ...ITEM_ACTION_BASE_STYLES,\n recipe: 'reset button',\n // Every variant below defines its own ring and overrides this one. It exists\n // for `current`, which reuses `CURRENT_ITEM_STYLES` — an `*_ITEM_STYLES`\n // flavour, and those leave focus to the collection that owns the row. A\n // focusable action is not a row, so it needs the ring back, and it uses the\n // same `#primary-accent-text` as every other type in `item-themes.ts`.\n outline: {\n '': '0 #primary-accent-text.0',\n focused: '1bw #primary-accent-text',\n },\n outlineOffset: 1,\n cursor: { '': '$pointer', disabled: 'default' },\n preset: {\n '': 't4',\n 'size=xlarge': 't3m',\n },\n padding: {\n '': '0 $inline-padding',\n 'has-icon': 0,\n 'has-icon & has-label': '$inline-padding right',\n },\n\n '$inline-padding': {\n '': 'max($min-inline-padding, (($action-size - 1lh - 2bw) / 2 + $inline-compensation))',\n 'size=inline': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(.5x - 1bw)',\n '$local-icon-size': '$icon-size',\n\n Icon: {\n $: '>',\n ...(ITEM_ACTION_BASE_STYLES.Icon as Styles),\n '$icon-size': 'min($local-icon-size, ($action-size - .25x))',\n },\n },\n variants: {\n // Inherited-color type — theme-agnostic, see `CURRENT_ITEM_STYLES`. Actions\n // inside a `current` Item use the borderless item flavour, not the chip.\n 'default.current': CURRENT_ITEM_STYLES,\n\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n },\n});\n\nexport const ItemAction = forwardRef(function ItemAction(\n allProps: CubeItemActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const {\n type: contextType,\n theme: contextTheme,\n disableActionsFocus,\n isDisabled: contextIsDisabled,\n } = useItemActionContext();\n\n const {\n // `current` derives every color from the row's inherited `currentcolor`, so\n // one type covers every host type and theme — no need to mirror the row's\n // `type` from context.\n //\n // An explicitly *themed* action is the exception: it is asking to paint\n // itself, not to match its host, and `current` is theme-agnostic by\n // construction, so it would have nothing to color with. Such actions fall\n // back to `clear`. The `!== 'default'` guard keeps `theme=\"default\"` inert —\n // passing a prop's own default value must never change what renders, which\n // is the invariant `no-redundant-default-prop` lints for.\n type = allProps.theme && allProps.theme !== 'default' ? 'clear' : 'current',\n theme = contextTheme ?? 'default',\n icon,\n children,\n isLoading = false,\n isSelected = false,\n tooltip,\n mods,\n styles,\n isDisabled: isDisabledProp,\n ...rest\n } = allProps;\n\n // Inherit disabled state from context, but allow local override\n const isDisabled = isDisabledProp ?? contextIsDisabled;\n\n // Whether that disabled state came from the host row rather than this action's\n // own prop. The `current` type paints from the inherited color, and a disabled\n // host has already faded it — so fading a second time washes the label out. See\n // `CURRENT_ITEM_STYLES.color`.\n const isDisabledInherited = isDisabledProp == null && !!contextIsDisabled;\n\n // Determine if we should show a checkmark\n const hasCheckmark = icon === 'checkmark';\n\n // Determine final icon (loading takes precedence)\n const finalIcon = isLoading ? (\n <LoadingIcon />\n ) : hasCheckmark ? (\n <CheckIcon />\n ) : (\n icon\n );\n\n // Build modifiers\n const finalMods = useMemo(\n () => ({\n checkmark: hasCheckmark,\n selected: isSelected,\n loading: isLoading,\n 'has-label': !!children,\n context: !!contextType,\n 'has-icon': !!icon,\n 'inherit-disabled': isDisabledInherited,\n ...mods,\n }),\n [\n hasCheckmark,\n isSelected,\n isLoading,\n children,\n contextType,\n isDisabledInherited,\n mods,\n ],\n );\n\n // An explicit label always wins; a tooltip only fills in the accessible name\n // when there isn't one. Rich tooltip content can't serve as a name, so only\n // plain strings are used here.\n const ariaLabel = useMemo(() => {\n if (rest['aria-label']) {\n return rest['aria-label'];\n }\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n if (typeof tooltip === 'object' && typeof tooltip.title === 'string') {\n return tooltip.title;\n }\n return undefined;\n }, [tooltip, rest]);\n\n // Call useAction hook\n const { actionProps } = useAction(\n {\n ...rest,\n isDisabled,\n 'aria-label': ariaLabel,\n mods: finalMods,\n htmlType: 'button',\n },\n ref,\n );\n\n // Set tabIndex when in context\n const finalTabIndex = disableActionsFocus ? -1 : rest.tabIndex;\n\n // Determine if we should show tooltip (icon-only buttons)\n const showTooltip = !children && tooltip;\n\n // Extract tooltip content and props\n const tooltipContent = useMemo(() => {\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n if (typeof tooltip === 'object' && tooltip.title) {\n return tooltip.title;\n }\n return undefined;\n }, [tooltip]);\n\n const tooltipProps = useMemo(() => {\n if (typeof tooltip === 'object') {\n const { title, ...rest } = tooltip;\n return rest;\n }\n return {};\n }, [tooltip]);\n\n const finalType = type;\n\n // Render function that accepts tooltip trigger props and ref\n const renderButton = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n // Merge tooltip ref with actionProps if provided\n const mergedProps = tooltipRef\n ? mergeProps(actionProps, tooltipTriggerProps || {}, {\n ref: (element: HTMLElement | null) => {\n // Set the tooltip ref\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n // Set the action ref if it exists in actionProps\n const actionRef = (actionProps as any).ref;\n if (actionRef) {\n if (typeof actionRef === 'function') {\n actionRef(element);\n } else {\n actionRef.current = element;\n }\n }\n },\n })\n : mergeProps(actionProps, tooltipTriggerProps || {});\n\n return (\n <ItemActionElement\n {...mergedProps}\n variant={\n `${finalType === 'current' ? 'default' : theme}.${finalType}` as ItemActionVariant\n }\n data-theme={theme}\n data-type={finalType}\n tabIndex={finalTabIndex}\n styles={styles}\n >\n {finalIcon && <div data-element=\"Icon\">{finalIcon}</div>}\n {children}\n </ItemActionElement>\n );\n };\n\n // Wrap with tooltip if needed\n if (showTooltip && tooltipContent) {\n return (\n <TooltipProvider title={tooltipContent} {...tooltipProps}>\n {(triggerProps, tooltipRef) => renderButton(triggerProps, tooltipRef)}\n </TooltipProvider>\n );\n }\n\n return renderButton();\n});\n\nexport type { CubeItemActionProps as ItemActionProps };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ItemAction.js","names":[],"sources":["../../../../src/components/actions/ItemAction/ItemAction.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport {\n ComponentProps,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n RefObject,\n useMemo,\n} from 'react';\n\nimport {\n CURRENT_CLEAR_STYLES,\n CURRENT_OUTLINE_STYLES,\n CURRENT_PRIMARY_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n ITEM_ACTION_BASE_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { CheckIcon } from '../../../icons/CheckIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { TooltipProvider } from '../../overlays/Tooltip/TooltipProvider';\nimport { useItemActionContext } from '../ItemActionContext';\nimport { CubeUseActionProps, useAction } from '../use-action';\n\nexport interface CubeItemActionProps\n extends Omit<CubeUseActionProps, 'as' | 'htmlType'>,\n Omit<BaseProps, 'as'> {\n icon?: ReactNode | 'checkmark';\n children?: ReactNode;\n isLoading?: boolean;\n isSelected?: boolean;\n type?: 'primary' | 'outline' | 'clear' | (string & {});\n theme?:\n | 'current'\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | (string & {});\n tooltip?:\n | string\n | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {\n title?: ReactNode;\n });\n styles?: Styles;\n tabIndex?: number;\n}\n\ntype ItemActionVariant =\n // Inherited-color theme — see the CURRENT THEME section of `item-themes`.\n | 'current.primary'\n | 'current.outline'\n | 'current.clear'\n | 'default.primary'\n | 'default.outline'\n | 'default.clear'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.clear'\n | 'success.primary'\n | 'success.outline'\n | 'success.clear'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.clear'\n | 'note.primary'\n | 'note.outline'\n | 'note.clear'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear';\n\nconst ItemActionElement = tasty({\n qa: 'ItemAction',\n styles: {\n ...ITEM_ACTION_BASE_STYLES,\n recipe: 'reset button',\n // Every variant below defines its own ring and overrides this one, which is\n // kept as the floor for a custom `type` that resolves to no variant at all.\n // It uses the same `#primary-accent-text` as every variant in\n // `item-themes.ts`.\n outline: {\n '': '0 #primary-accent-text.0',\n focused: '1bw #primary-accent-text',\n },\n outlineOffset: 1,\n cursor: { '': '$pointer', disabled: 'default' },\n preset: {\n '': 't4',\n 'size=xlarge': 't3m',\n },\n padding: {\n '': '0 $inline-padding',\n 'has-icon': 0,\n 'has-icon & has-label': '$inline-padding right',\n },\n\n '$inline-padding': {\n '': 'max($min-inline-padding, (($action-size - 1lh - 2bw) / 2 + $inline-compensation))',\n 'size=inline': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(.5x - 1bw)',\n '$local-icon-size': '$icon-size',\n\n Icon: {\n $: '>',\n ...(ITEM_ACTION_BASE_STYLES.Icon as Styles),\n '$icon-size': 'min($local-icon-size, ($action-size - .25x))',\n },\n },\n variants: {\n // Current theme — colors mixed from the inherited `currentcolor`. The\n // default `clear` flavour is borderless, so an action does not put a resting\n // chip on every row.\n 'current.primary': CURRENT_PRIMARY_STYLES,\n 'current.outline': CURRENT_OUTLINE_STYLES,\n 'current.clear': CURRENT_CLEAR_STYLES,\n\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n },\n});\n\nexport const ItemAction = forwardRef(function ItemAction(\n allProps: CubeItemActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const {\n type: contextType,\n disableActionsFocus,\n isDisabled: contextIsDisabled,\n } = useItemActionContext();\n\n const {\n // Borderless by default: an action sits inside a row, where a resting chip\n // on every one of them would read as noise.\n type = 'clear',\n // The `current` theme derives every color from the row's inherited\n // `currentcolor`, so one default covers every host type and theme — no need\n // to mirror the row's own `theme` from context. An action that names a theme\n // is asking to paint itself rather than match its host, and gets it.\n theme = 'current',\n icon,\n children,\n isLoading = false,\n isSelected = false,\n tooltip,\n mods,\n styles,\n isDisabled: isDisabledProp,\n ...rest\n } = allProps;\n\n // Inherit disabled state from context, but allow local override\n const isDisabled = isDisabledProp ?? contextIsDisabled;\n\n // Whether that disabled state came from the host row rather than this action's\n // own prop. The `current` theme paints from the inherited color, and a\n // disabled host has already faded it — so fading a second time washes the\n // label out. See `CURRENT_ITEM_STYLES.color`.\n const isDisabledInherited = isDisabledProp == null && !!contextIsDisabled;\n\n // Determine if we should show a checkmark\n const hasCheckmark = icon === 'checkmark';\n\n // Determine final icon (loading takes precedence)\n const finalIcon = isLoading ? (\n <LoadingIcon />\n ) : hasCheckmark ? (\n <CheckIcon />\n ) : (\n icon\n );\n\n // Build modifiers\n const finalMods = useMemo(\n () => ({\n checkmark: hasCheckmark,\n selected: isSelected,\n loading: isLoading,\n 'has-label': !!children,\n context: !!contextType,\n 'has-icon': !!icon,\n 'inherit-disabled': isDisabledInherited,\n ...mods,\n }),\n [\n hasCheckmark,\n isSelected,\n isLoading,\n children,\n contextType,\n isDisabledInherited,\n mods,\n ],\n );\n\n // An explicit label always wins; a tooltip only fills in the accessible name\n // when there isn't one. Rich tooltip content can't serve as a name, so only\n // plain strings are used here.\n const ariaLabel = useMemo(() => {\n if (rest['aria-label']) {\n return rest['aria-label'];\n }\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n if (typeof tooltip === 'object' && typeof tooltip.title === 'string') {\n return tooltip.title;\n }\n return undefined;\n }, [tooltip, rest]);\n\n // Call useAction hook\n const { actionProps } = useAction(\n {\n ...rest,\n isDisabled,\n 'aria-label': ariaLabel,\n mods: finalMods,\n htmlType: 'button',\n },\n ref,\n );\n\n // Set tabIndex when in context\n const finalTabIndex = disableActionsFocus ? -1 : rest.tabIndex;\n\n // Determine if we should show tooltip (icon-only buttons)\n const showTooltip = !children && tooltip;\n\n // Extract tooltip content and props\n const tooltipContent = useMemo(() => {\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n if (typeof tooltip === 'object' && tooltip.title) {\n return tooltip.title;\n }\n return undefined;\n }, [tooltip]);\n\n const tooltipProps = useMemo(() => {\n if (typeof tooltip === 'object') {\n const { title, ...rest } = tooltip;\n return rest;\n }\n return {};\n }, [tooltip]);\n\n const finalType = type;\n\n // Render function that accepts tooltip trigger props and ref\n const renderButton = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n // Merge tooltip ref with actionProps if provided\n const mergedProps = tooltipRef\n ? mergeProps(actionProps, tooltipTriggerProps || {}, {\n ref: (element: HTMLElement | null) => {\n // Set the tooltip ref\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n // Set the action ref if it exists in actionProps\n const actionRef = (actionProps as any).ref;\n if (actionRef) {\n if (typeof actionRef === 'function') {\n actionRef(element);\n } else {\n actionRef.current = element;\n }\n }\n },\n })\n : mergeProps(actionProps, tooltipTriggerProps || {});\n\n return (\n <ItemActionElement\n {...mergedProps}\n variant={`${theme}.${finalType}` as ItemActionVariant}\n data-theme={theme}\n data-type={finalType}\n tabIndex={finalTabIndex}\n styles={styles}\n >\n {finalIcon && <div data-element=\"Icon\">{finalIcon}</div>}\n {children}\n </ItemActionElement>\n );\n };\n\n // Wrap with tooltip if needed\n if (showTooltip && tooltipContent) {\n return (\n <TooltipProvider title={tooltipContent} {...tooltipProps}>\n {(triggerProps, tooltipRef) => renderButton(triggerProps, tooltipRef)}\n </TooltipProvider>\n );\n }\n\n return renderButton();\n});\n\nexport type { CubeItemActionProps as ItemActionProps };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useDismissParentPopover } from "../../../utils/react/usePopoverSync.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { Button } from "../Button/Button.js";
3
3
  import { forwardRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | 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 { _CollectionItem } from "../../CollectionItem.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { filterCollectionItemProps } from "../../CollectionItem.js";
4
4
  import { _Item } from "../../content/Item/Item.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
3
3
  import { MenuItem } from "./MenuItem.js";
4
4
  import { StyledMenu, StyledSection, StyledSectionHeading } from "./styled.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { SlotProvider } from "../../../utils/react/Slots.js";
3
3
  import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { MenuContext, useMenuContext } from "./context.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import React from "react";
3
3
 
4
4
  //#region src/components/actions/Menu/SubmenuTriggerContext.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import React, { useContext } from "react";
3
3
 
4
4
  //#region src/components/actions/Menu/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { DEFAULT_CLEAR_STYLES } from "../../../data/item-themes.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { DEFAULT_BUTTON_STYLES } from "../Button/Button.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { ItemActionProvider, useItemActionContext } from "./ItemActionContext.js";
3
3
  import { openLink, parseTo, performClickHandler, useAction } from "./use-action.js";
4
4
  import { ItemAction } from "./ItemAction/ItemAction.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../_internal/hooks/use-event.js";
4
4
  import { useFocus as useFocus$1 } from "../../utils/react/interactions.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { usePopoverSync } from "../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { usePopoverSync } from "../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | 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 { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import themes_default from "../../../data/themes.js";
3
3
  import { useAlert } from "./use-alert.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useDeprecationWarning } from "../../../_internal/hooks/use-deprecation-warning.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, Element, filterBaseProps } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
3
  import themes_default from "../../../data/themes.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | 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-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useTimer } from "../../../_internal/hooks/use-timer/use-timer.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -18,6 +18,16 @@ interface CubeCopySnippetProps extends CubeCardProps {
18
18
  title?: string;
19
19
  /** Whether the snippet is single-lined */
20
20
  nowrap?: boolean;
21
+ /**
22
+ * Soft-wrap long content onto multiple lines instead of scrolling it
23
+ * horizontally. The block grows vertically to fit (so even a single long line
24
+ * is fully readable rather than clamped), and unbreakable runs like URLs,
25
+ * tokens and identifiers wrap too. Useful for error messages and logs.
26
+ * Has no effect when `nowrap` is set. Note this is a different axis from
27
+ * `nowrap`: `nowrap` collapses real newlines into one scrolling line, while
28
+ * `isWrapped` breaks long lines that would otherwise scroll.
29
+ */
30
+ isWrapped?: boolean;
21
31
  /** The prefix for each line of code. Useful for bash snippets. */
22
32
  prefix?: string;
23
33
  /** The code language of the snippet */
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { _Tooltip } from "../../overlays/Tooltip/Tooltip.js";
3
3
  import { TooltipTrigger } from "../../overlays/Tooltip/TooltipTrigger.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -132,7 +132,7 @@ function replaceSymbolsToHidden(str) {
132
132
  }
133
133
  function CopySnippet(allProps) {
134
134
  const { t } = useI18n();
135
- const { code = "", title = t("copySnippet.title", "Code example"), nowrap, prefix = "", language, serif, actions, showTooltip = false, hideText, ...props } = allProps;
135
+ const { code = "", title = t("copySnippet.title", "Code example"), nowrap, isWrapped, prefix = "", language, serif, actions, showTooltip = false, hideText, ...props } = allProps;
136
136
  const toast = useToast();
137
137
  const [showHidden, setShowHidden] = useState(false);
138
138
  async function onCopy() {
@@ -141,6 +141,7 @@ function CopySnippet(allProps) {
141
141
  }
142
142
  const pristineCode = code.replace(/\n$/, "");
143
143
  const multiline = pristineCode.includes("\n") && !nowrap;
144
+ const shouldWrap = !!isWrapped && !nowrap;
144
145
  let formattedCode = pristineCode.replace(/\r/g, "").split(/\n/g).map((line) => `${prefix}${line}`).join("\n").trim();
145
146
  if (!showHidden) {
146
147
  if (hideText === true) formattedCode = replaceSymbolsToHidden(formattedCode);
@@ -152,13 +153,14 @@ function CopySnippet(allProps) {
152
153
  const mods = useMemo(() => {
153
154
  return {
154
155
  nowrap,
155
- multiline,
156
+ multiline: multiline || shouldWrap,
156
157
  serif,
157
158
  hidden: !!hideText
158
159
  };
159
160
  }, [
160
161
  nowrap,
161
162
  multiline,
163
+ shouldWrap,
162
164
  hideText,
163
165
  serif
164
166
  ]);
@@ -175,7 +177,8 @@ function CopySnippet(allProps) {
175
177
  overflow: "visible"
176
178
  },
177
179
  code: formattedCode,
178
- language: language || "javascript"
180
+ language: language || "javascript",
181
+ isWrapped: shouldWrap
179
182
  })
180
183
  }), /* @__PURE__ */ jsxs(ButtonContainer, {
181
184
  mods,
@@ -1 +1 @@
1
- {"version":3,"file":"CopySnippet.js","names":["PrismCode","Tooltip"],"sources":["../../../../src/components/content/CopySnippet/CopySnippet.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport copy from 'clipboard-copy';\nimport { ReactNode, useMemo, useState } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { CopyIcon, EyeIcon, EyeInvisibleIcon } from '../../../icons';\nimport { Action, Button } from '../../actions';\nimport {\n CubePrismCodeProps,\n PrismCode,\n} from '../../content/PrismCode/PrismCode';\nimport { useToast } from '../../overlays/Toast';\nimport { Tooltip } from '../../overlays/Tooltip/Tooltip';\nimport { TooltipTrigger } from '../../overlays/Tooltip/TooltipTrigger';\nimport { Card, CubeCardProps } from '../Card/Card';\n\nconst ActionElement = tasty(Action, {\n styles: {\n display: 'block',\n cursor: 'default',\n width: '100%',\n },\n});\n\nconst StyledBlock = tasty({\n styles: {\n position: 'relative',\n overflow: {\n '': 'auto clip',\n multiline: 'auto',\n },\n width: 'initial auto 100%',\n height: {\n '': 'max 5x',\n multiline: 'auto',\n },\n boxSizing: 'border-box',\n whiteSpace: {\n '': 'initial',\n nowrap: 'nowrap',\n },\n scrollbar: 'styled',\n padding: '1.125x 1.5x',\n fade: {\n '': 'right 2x',\n multiline: false,\n },\n\n Code: {\n $: 'code',\n preset: {\n '': 's3',\n serif: 't3',\n },\n // `s3` carries `fontFamily: var(--font-mono)` but `t3` sets no family at\n // all, so the preset alone cannot express \"serif\". Left to the preset, the\n // `serif` variant would inherit the `<code>` element's UA monospace\n // default and render monospace anyway. Keep the family explicit:\n // `font: 'monospace'` for the default, `font: true` for the design\n // system's default (non-mono) stack under `serif`.\n font: {\n '': 'monospace',\n serif: true,\n },\n },\n },\n});\n\nconst ButtonContainer = tasty({\n styles: {\n position: 'relative',\n display: 'flex',\n flow: {\n '': 'row-reverse',\n multiline: 'column',\n },\n placeContent: 'start',\n\n '$button-size': {\n '': '5x',\n multiline: '4x',\n },\n\n '$first-button-radius': {\n '': '0 1r 1r 0',\n multiline: '0 1r 0 0',\n },\n\n '$last-button-radius': {\n '': '0',\n multiline: '0 0 0 1r',\n },\n\n '$first-and-last-button-radius': {\n '': '0 1r 1r 0',\n multiline: '0 1r 0 1r',\n },\n\n // Make sure there's a small gap between buttons and the content\n border: 'left #clear',\n },\n});\n\nconst CopySnippetElement = tasty(Card, {\n qa: 'CopySnippet',\n styles: {\n display: 'grid',\n gridRows: 'minmax(0, 1fr)',\n fill: '#surface-2',\n border: 0,\n padding: 0,\n preset: 'default',\n radius: '1r',\n overflow: 'hidden',\n height: 'max-content',\n\n Grid: {\n display: 'grid',\n flow: 'row',\n gridColumns: 'minmax(0, 1fr) auto',\n gridRows: 'minmax(0, 1fr)',\n width: 'min 20x',\n position: 'relative',\n },\n },\n});\n\nconst ActionButton = tasty(Button, {\n type: 'clear',\n styles: {\n width: '4x',\n padding: 0,\n placeSelf: 'stretch',\n border: '#clear',\n shadow: {\n '': 'inset 0 0 0 1ow #purple-03.0',\n focused: 'inset 0 0 0 1ow #purple-03',\n },\n outline: false,\n height: '$button-size',\n radius: {\n '': 0,\n ':last-child': '$last-button-radius',\n ':first-child': '$first-button-radius',\n ':first-child & :last-child': '$first-and-last-button-radius',\n },\n },\n});\n\nconst CopyButton = tasty(ActionButton, {\n icon: <CopyIcon />,\n});\n\nconst ShowButton = tasty(ActionButton, {});\n\nexport interface CubeCopySnippetProps extends CubeCardProps {\n /** The code snippet */\n code: string;\n /** The title of the snippet */\n title?: string;\n /** Whether the snippet is single-lined */\n nowrap?: boolean;\n /** The prefix for each line of code. Useful for bash snippets. */\n prefix?: string;\n /** The code language of the snippet */\n language?: CubePrismCodeProps['language'];\n /** Whether the snippet uses a serif font */\n serif?: boolean;\n /** Whether to show the tooltip with the full content */\n showTooltip?: boolean;\n hideText?: string[] | string | boolean;\n actions?: ReactNode;\n}\n\n// const HIDDEN_SYMBOL = '●';\nconst HIDDEN_SYMBOL = '•';\n\nfunction replaceSymbolsToHidden(str: string) {\n return HIDDEN_SYMBOL.repeat(str.length);\n}\n\nfunction CopySnippet(allProps: CubeCopySnippetProps) {\n const { t } = useI18n();\n\n const {\n code = '',\n title = t('copySnippet.title', 'Code example'),\n nowrap,\n prefix = '',\n language,\n serif,\n actions,\n showTooltip = false,\n hideText,\n ...props\n } = allProps;\n\n const toast = useToast();\n\n const [showHidden, setShowHidden] = useState(false);\n\n async function onCopy() {\n await copy(code);\n\n toast.success(t('copySnippet.copied', '{{title}} copied', { title }));\n }\n\n const pristineCode = code.replace(/\\n$/, '');\n\n const multiline = pristineCode.includes('\\n') && !nowrap;\n let formattedCode = pristineCode\n .replace(/\\r/g, '')\n .split(/\\n/g)\n .map((line) => `${prefix}${line}`)\n .join('\\n')\n .trim();\n\n if (!showHidden) {\n if (hideText === true) {\n formattedCode = replaceSymbolsToHidden(formattedCode);\n } else if (typeof hideText === 'string') {\n formattedCode = formattedCode.replaceAll(\n hideText,\n replaceSymbolsToHidden(hideText),\n );\n } else if (Array.isArray(hideText)) {\n hideText.forEach((text) => {\n formattedCode = formattedCode.replaceAll(\n text,\n replaceSymbolsToHidden(text),\n );\n });\n }\n }\n\n const mods = useMemo(() => {\n return {\n nowrap,\n multiline,\n serif,\n hidden: !!hideText,\n };\n }, [nowrap, multiline, hideText, serif]);\n\n const Snippet = (\n <CopySnippetElement mods={mods} {...props}>\n <div data-element=\"Grid\">\n <StyledBlock mods={mods}>\n <PrismCode\n style={{ margin: 0, overflow: 'visible' }}\n code={formattedCode}\n language={language || 'javascript'}\n />\n </StyledBlock>\n <ButtonContainer mods={mods}>\n <CopyButton\n aria-label={t(\n 'copySnippet.copyToClipboard',\n 'Copy {{title}} to clipboard',\n { title },\n )}\n onPress={onCopy}\n />\n {hideText && (\n <ShowButton\n aria-label={t('copySnippet.showHiddenParts', 'Show hidden parts')}\n icon={showHidden ? <EyeInvisibleIcon /> : <EyeIcon />}\n onPress={() => setShowHidden(!showHidden)}\n />\n )}\n {actions}\n </ButtonContainer>\n </div>\n </CopySnippetElement>\n );\n\n if (showTooltip) {\n return (\n <TooltipTrigger>\n <ActionElement>{Snippet}</ActionElement>\n <Tooltip>{formattedCode}</Tooltip>\n </TooltipTrigger>\n );\n }\n\n return Snippet;\n}\n\nconst _CopySnippet = Object.assign(\n CopySnippet as typeof CopySnippet & {\n Button: typeof ActionButton;\n },\n {\n Button: ActionButton,\n },\n);\n\n(_CopySnippet as any).displayName = 'CopySnippet';\n\nexport { _CopySnippet as CopySnippet };\n"],"mappings":"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"}
1
+ {"version":3,"file":"CopySnippet.js","names":["PrismCode","Tooltip"],"sources":["../../../../src/components/content/CopySnippet/CopySnippet.tsx"],"sourcesContent":["import { tasty } from '@tenphi/tasty';\nimport copy from 'clipboard-copy';\nimport { ReactNode, useMemo, useState } from 'react';\n\nimport { useI18n } from '../../../i18n';\nimport { CopyIcon, EyeIcon, EyeInvisibleIcon } from '../../../icons';\nimport { Action, Button } from '../../actions';\nimport {\n CubePrismCodeProps,\n PrismCode,\n} from '../../content/PrismCode/PrismCode';\nimport { useToast } from '../../overlays/Toast';\nimport { Tooltip } from '../../overlays/Tooltip/Tooltip';\nimport { TooltipTrigger } from '../../overlays/Tooltip/TooltipTrigger';\nimport { Card, CubeCardProps } from '../Card/Card';\n\nconst ActionElement = tasty(Action, {\n styles: {\n display: 'block',\n cursor: 'default',\n width: '100%',\n },\n});\n\nconst StyledBlock = tasty({\n styles: {\n position: 'relative',\n overflow: {\n '': 'auto clip',\n multiline: 'auto',\n },\n width: 'initial auto 100%',\n height: {\n '': 'max 5x',\n multiline: 'auto',\n },\n boxSizing: 'border-box',\n whiteSpace: {\n '': 'initial',\n nowrap: 'nowrap',\n },\n scrollbar: 'styled',\n padding: '1.125x 1.5x',\n fade: {\n '': 'right 2x',\n multiline: false,\n },\n\n Code: {\n $: 'code',\n preset: {\n '': 's3',\n serif: 't3',\n },\n // `s3` carries `fontFamily: var(--font-mono)` but `t3` sets no family at\n // all, so the preset alone cannot express \"serif\". Left to the preset, the\n // `serif` variant would inherit the `<code>` element's UA monospace\n // default and render monospace anyway. Keep the family explicit:\n // `font: 'monospace'` for the default, `font: true` for the design\n // system's default (non-mono) stack under `serif`.\n font: {\n '': 'monospace',\n serif: true,\n },\n // The wrapping itself (`white-space` / `overflow-wrap` on the `<code>`)\n // is owned by `PrismCode` via its `isWrapped` prop, which this component\n // forwards.\n },\n },\n});\n\nconst ButtonContainer = tasty({\n styles: {\n position: 'relative',\n display: 'flex',\n flow: {\n '': 'row-reverse',\n multiline: 'column',\n },\n placeContent: 'start',\n\n '$button-size': {\n '': '5x',\n multiline: '4x',\n },\n\n '$first-button-radius': {\n '': '0 1r 1r 0',\n multiline: '0 1r 0 0',\n },\n\n '$last-button-radius': {\n '': '0',\n multiline: '0 0 0 1r',\n },\n\n '$first-and-last-button-radius': {\n '': '0 1r 1r 0',\n multiline: '0 1r 0 1r',\n },\n\n // Make sure there's a small gap between buttons and the content\n border: 'left #clear',\n },\n});\n\nconst CopySnippetElement = tasty(Card, {\n qa: 'CopySnippet',\n styles: {\n display: 'grid',\n gridRows: 'minmax(0, 1fr)',\n fill: '#surface-2',\n border: 0,\n padding: 0,\n preset: 'default',\n radius: '1r',\n overflow: 'hidden',\n height: 'max-content',\n\n Grid: {\n display: 'grid',\n flow: 'row',\n gridColumns: 'minmax(0, 1fr) auto',\n gridRows: 'minmax(0, 1fr)',\n width: 'min 20x',\n position: 'relative',\n },\n },\n});\n\nconst ActionButton = tasty(Button, {\n type: 'clear',\n styles: {\n width: '4x',\n padding: 0,\n placeSelf: 'stretch',\n border: '#clear',\n shadow: {\n '': 'inset 0 0 0 1ow #purple-03.0',\n focused: 'inset 0 0 0 1ow #purple-03',\n },\n outline: false,\n height: '$button-size',\n radius: {\n '': 0,\n ':last-child': '$last-button-radius',\n ':first-child': '$first-button-radius',\n ':first-child & :last-child': '$first-and-last-button-radius',\n },\n },\n});\n\nconst CopyButton = tasty(ActionButton, {\n icon: <CopyIcon />,\n});\n\nconst ShowButton = tasty(ActionButton, {});\n\nexport interface CubeCopySnippetProps extends CubeCardProps {\n /** The code snippet */\n code: string;\n /** The title of the snippet */\n title?: string;\n /** Whether the snippet is single-lined */\n nowrap?: boolean;\n /**\n * Soft-wrap long content onto multiple lines instead of scrolling it\n * horizontally. The block grows vertically to fit (so even a single long line\n * is fully readable rather than clamped), and unbreakable runs like URLs,\n * tokens and identifiers wrap too. Useful for error messages and logs.\n * Has no effect when `nowrap` is set. Note this is a different axis from\n * `nowrap`: `nowrap` collapses real newlines into one scrolling line, while\n * `isWrapped` breaks long lines that would otherwise scroll.\n */\n isWrapped?: boolean;\n /** The prefix for each line of code. Useful for bash snippets. */\n prefix?: string;\n /** The code language of the snippet */\n language?: CubePrismCodeProps['language'];\n /** Whether the snippet uses a serif font */\n serif?: boolean;\n /** Whether to show the tooltip with the full content */\n showTooltip?: boolean;\n hideText?: string[] | string | boolean;\n actions?: ReactNode;\n}\n\n// const HIDDEN_SYMBOL = '●';\nconst HIDDEN_SYMBOL = '•';\n\nfunction replaceSymbolsToHidden(str: string) {\n return HIDDEN_SYMBOL.repeat(str.length);\n}\n\nfunction CopySnippet(allProps: CubeCopySnippetProps) {\n const { t } = useI18n();\n\n const {\n code = '',\n title = t('copySnippet.title', 'Code example'),\n nowrap,\n isWrapped,\n prefix = '',\n language,\n serif,\n actions,\n showTooltip = false,\n hideText,\n ...props\n } = allProps;\n\n const toast = useToast();\n\n const [showHidden, setShowHidden] = useState(false);\n\n async function onCopy() {\n await copy(code);\n\n toast.success(t('copySnippet.copied', '{{title}} copied', { title }));\n }\n\n const pristineCode = code.replace(/\\n$/, '');\n\n const multiline = pristineCode.includes('\\n') && !nowrap;\n // `isWrapped` reuses the multiline block layout (auto height, no right fade,\n // copy button on top) so wrapped content grows vertically instead of being\n // clamped to the single-line height. `nowrap` (force one scrolling line) wins\n // over it.\n const shouldWrap = !!isWrapped && !nowrap;\n let formattedCode = pristineCode\n .replace(/\\r/g, '')\n .split(/\\n/g)\n .map((line) => `${prefix}${line}`)\n .join('\\n')\n .trim();\n\n if (!showHidden) {\n if (hideText === true) {\n formattedCode = replaceSymbolsToHidden(formattedCode);\n } else if (typeof hideText === 'string') {\n formattedCode = formattedCode.replaceAll(\n hideText,\n replaceSymbolsToHidden(hideText),\n );\n } else if (Array.isArray(hideText)) {\n hideText.forEach((text) => {\n formattedCode = formattedCode.replaceAll(\n text,\n replaceSymbolsToHidden(text),\n );\n });\n }\n }\n\n const mods = useMemo(() => {\n return {\n nowrap,\n multiline: multiline || shouldWrap,\n serif,\n hidden: !!hideText,\n };\n }, [nowrap, multiline, shouldWrap, hideText, serif]);\n\n const Snippet = (\n <CopySnippetElement mods={mods} {...props}>\n <div data-element=\"Grid\">\n <StyledBlock mods={mods}>\n <PrismCode\n style={{ margin: 0, overflow: 'visible' }}\n code={formattedCode}\n language={language || 'javascript'}\n isWrapped={shouldWrap}\n />\n </StyledBlock>\n <ButtonContainer mods={mods}>\n <CopyButton\n aria-label={t(\n 'copySnippet.copyToClipboard',\n 'Copy {{title}} to clipboard',\n { title },\n )}\n onPress={onCopy}\n />\n {hideText && (\n <ShowButton\n aria-label={t('copySnippet.showHiddenParts', 'Show hidden parts')}\n icon={showHidden ? <EyeInvisibleIcon /> : <EyeIcon />}\n onPress={() => setShowHidden(!showHidden)}\n />\n )}\n {actions}\n </ButtonContainer>\n </div>\n </CopySnippetElement>\n );\n\n if (showTooltip) {\n return (\n <TooltipTrigger>\n <ActionElement>{Snippet}</ActionElement>\n <Tooltip>{formattedCode}</Tooltip>\n </TooltipTrigger>\n );\n }\n\n return Snippet;\n}\n\nconst _CopySnippet = Object.assign(\n CopySnippet as typeof CopySnippet & {\n Button: typeof ActionButton;\n },\n {\n Button: ActionButton,\n },\n);\n\n(_CopySnippet as any).displayName = 'CopySnippet';\n\nexport { _CopySnippet as CopySnippet };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { useSlotProps } from "../../utils/react/Slots.js";
3
3
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
4
4
  import { BASE_STYLES, COLOR_STYLES, OUTER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { _Text } from "../Text.js";
4
4
  import { useKeySymbols } from "../../../utils/react/useKeySymbols.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
3
3
  import { ItemBadge } from "../ItemBadge/ItemBadge.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | 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 { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -84,8 +84,8 @@ interface CubeItemProps extends BaseProps, ContainerStyleProps {
84
84
  */
85
85
  disableActionsFocus?: boolean;
86
86
  size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'inline' | number | (string & {});
87
- type?: 'item' | 'header' | 'primary' | 'outline' | 'outline-2' | 'clear' | 'link' | 'card' | 'current' | (string & {});
88
- theme?: 'default' | 'danger' | 'success' | 'special' | 'warning' | 'note' | (string & {});
87
+ type?: 'item' | 'header' | 'primary' | 'outline' | 'outline-2' | 'clear' | 'link' | 'card' | (string & {});
88
+ theme?: 'default' | 'danger' | 'success' | 'special' | 'warning' | 'note' | 'current' | (string & {});
89
89
  /** Keyboard shortcut that triggers the element when pressed */
90
90
  hotkeys?: string;
91
91
  /**
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-ed0ffec | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-f040419 | Cube Dev Team */
2
2
  import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { resolveIcon } from "../../../utils/react/resolveIcon.js";
@@ -290,23 +290,21 @@ const Item = (props, ref) => {
290
290
  const finalShape = shape ?? (type === "card" ? "card" : "button");
291
291
  const isDisabledProp = isDisabled ?? (nativeDisabledProp || void 0);
292
292
  const finalIsDisabled = isDisabledProp === true || isLoading && isDisabledProp !== false;
293
- useWarn(type === "header" && !["default"].includes(theme) || type === "current" && !["default"].includes(theme) || type === "card" && ![
293
+ useWarn(type === "header" && !["default"].includes(theme) || type === "card" && ![
294
294
  "default",
295
295
  "success",
296
296
  "danger",
297
297
  "warning",
298
- "note"
299
- ].includes(theme) || ![
300
- "header",
301
- "current",
302
- "card"
303
- ].includes(type) && ![
298
+ "note",
299
+ "current"
300
+ ].includes(theme) || !["header", "card"].includes(type) && ![
304
301
  "default",
305
302
  "success",
306
303
  "danger",
307
304
  "warning",
308
305
  "note",
309
- "special"
306
+ "special",
307
+ "current"
310
308
  ].includes(theme), {
311
309
  key: [
312
310
  "Item",
@@ -314,7 +312,7 @@ const Item = (props, ref) => {
314
312
  type,
315
313
  theme
316
314
  ],
317
- args: [`Item: Invalid type+theme combination. type="${type}" does not support theme="${theme}".` + (type === "header" ? " The \"header\" type only supports theme: default." : type === "current" ? " The \"current\" type derives every color from the inherited text color and only supports theme: default." : type === "card" ? " The \"card\" type only supports themes: default, success, danger, warning, note." : " Standard types support themes: default, success, danger, warning, note, special.")]
315
+ args: [`Item: Invalid type+theme combination. type="${type}" does not support theme="${theme}".` + (type === "header" ? " The \"header\" type only supports theme: default." : type === "card" ? " The \"card\" type only supports themes: default, success, danger, warning, note, current." : " Standard types support themes: default, success, danger, warning, note, special, current.")]
318
316
  });
319
317
  const hasLinkWithIcons = type === "link" && (iconProp || rightIconProp);
320
318
  const hasLinkWithLoading = type === "link" && isLoading;
@@ -382,9 +380,10 @@ const Item = (props, ref) => {
382
380
  const iconKey = hasCheckmark ? "checkmark" : isLoading && resolvedLoadingSlot === "icon" ? "loading" : isValidElement(finalIcon) ? finalIcon.type?.displayName || finalIcon.type?.name || "icon" : finalIcon ? "icon" : "empty";
383
381
  const rightIconKey = isLoading && resolvedLoadingSlot === "rightIcon" ? "loading" : isValidElement(finalRightIcon) ? finalRightIcon.type?.displayName || finalRightIcon.type?.name || "icon" : finalRightIcon ? "icon" : "empty";
384
382
  const finalPrefix = isLoading && resolvedLoadingSlot === "prefix" ? /* @__PURE__ */ jsx(LoadingIcon, {}) : prefix;
383
+ const hotkeysType = theme === "current" ? "inherit" : type === "primary" ? "primary" : "default";
385
384
  const finalSuffix = isLoading && resolvedLoadingSlot === "suffix" ? /* @__PURE__ */ jsx(LoadingIcon, {}) : suffix ?? (hotkeys ? /* @__PURE__ */ jsx(_HotKeys, {
386
385
  ...keyboardShortcutProps,
387
- type: type === "primary" ? "primary" : "default",
386
+ type: hotkeysType,
388
387
  styles: {
389
388
  padding: "1x left",
390
389
  opacity: finalIsDisabled ? .5 : 1