@cube-dev/ui-kit 0.138.6 → 0.140.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (485) hide show
  1. package/dist/CHANGELOG.md +67 -0
  2. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  3. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  4. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  5. package/dist/_internal/hooks/use-event.js +1 -1
  6. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  7. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  8. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  9. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  10. package/dist/_internal/hooks/use-warn.js +1 -1
  11. package/dist/components/Block.js +1 -1
  12. package/dist/components/CollectionItem.js +1 -1
  13. package/dist/components/GlobalStyles.js +1 -1
  14. package/dist/components/GridProvider.js +1 -1
  15. package/dist/components/HiddenInput.js +1 -1
  16. package/dist/components/Root.js +1 -1
  17. package/dist/components/actions/Action/Action.js +1 -1
  18. package/dist/components/actions/Banner/Banner.js +1 -1
  19. package/dist/components/actions/Button/Button.d.ts +2 -2
  20. package/dist/components/actions/Button/Button.js +11 -17
  21. package/dist/components/actions/Button/Button.js.map +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  24. package/dist/components/actions/ButtonSplit/context.js +1 -1
  25. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  26. package/dist/components/actions/CommandMenu/styled.js +1 -1
  27. package/dist/components/actions/ItemAction/ItemAction.d.ts +2 -2
  28. package/dist/components/actions/ItemAction/ItemAction.js +8 -22
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.js +2 -2
  31. package/dist/components/actions/ItemActionContext.js.map +1 -1
  32. package/dist/components/actions/ItemButton/ItemButton.js +3 -3
  33. package/dist/components/actions/ItemButton/ItemButton.js.map +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +1 -1
  36. package/dist/components/actions/Menu/MenuItem.js +1 -1
  37. package/dist/components/actions/Menu/MenuSection.js +1 -1
  38. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  39. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  40. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  41. package/dist/components/actions/Menu/context.js +1 -1
  42. package/dist/components/actions/Menu/styled.js +3 -3
  43. package/dist/components/actions/Menu/styled.js.map +1 -1
  44. package/dist/components/actions/index.js +1 -1
  45. package/dist/components/actions/use-action.js +1 -1
  46. package/dist/components/actions/use-anchored-menu.js +1 -1
  47. package/dist/components/actions/use-context-menu.js +1 -1
  48. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  49. package/dist/components/content/Alert/Alert.js +1 -1
  50. package/dist/components/content/Alert/use-alert.js +1 -1
  51. package/dist/components/content/Avatar/Avatar.js +1 -1
  52. package/dist/components/content/Badge/Badge.js +1 -1
  53. package/dist/components/content/Card/Card.js +1 -1
  54. package/dist/components/content/Content.js +1 -1
  55. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  56. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  57. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  58. package/dist/components/content/Divider.js +1 -1
  59. package/dist/components/content/Footer.js +1 -1
  60. package/dist/components/content/Header.js +1 -1
  61. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  62. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  63. package/dist/components/content/Item/Item.d.ts +3 -3
  64. package/dist/components/content/Item/Item.js +19 -25
  65. package/dist/components/content/Item/Item.js.map +1 -1
  66. package/dist/components/content/ItemBadge/ItemBadge.d.ts +2 -2
  67. package/dist/components/content/ItemBadge/ItemBadge.js +12 -18
  68. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  69. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  70. package/dist/components/content/Layout/GridLayout.js +1 -1
  71. package/dist/components/content/Layout/Layout.js +1 -1
  72. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  73. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  74. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  75. package/dist/components/content/Layout/LayoutContent.js +1 -1
  76. package/dist/components/content/Layout/LayoutContext.js +1 -1
  77. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  78. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  79. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  80. package/dist/components/content/Layout/LayoutHeader.js +2 -2
  81. package/dist/components/content/Layout/LayoutHeader.js.map +1 -1
  82. package/dist/components/content/Layout/LayoutPane.js +1 -1
  83. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  84. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  85. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  86. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  87. package/dist/components/content/Layout/index.js +1 -1
  88. package/dist/components/content/Layout/utils.js +1 -1
  89. package/dist/components/content/Paragraph.js +1 -1
  90. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  91. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  92. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  93. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  94. package/dist/components/content/Result/Result.js +1 -1
  95. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  96. package/dist/components/content/Tag/Tag.js +1 -1
  97. package/dist/components/content/Text.js +1 -1
  98. package/dist/components/content/TextItem/TextItem.js +1 -1
  99. package/dist/components/content/Title.js +1 -1
  100. package/dist/components/content/Tree/Tree.js +1 -1
  101. package/dist/components/content/Tree/TreeNode.js +1 -1
  102. package/dist/components/content/Tree/styled.js +1 -1
  103. package/dist/components/content/Tree/tree-index.js +1 -1
  104. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  105. package/dist/components/content/Tree/use-load-data.js +1 -1
  106. package/dist/components/content/highlightText.js +1 -1
  107. package/dist/components/content/use-auto-tooltip.js +1 -1
  108. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  109. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  110. package/dist/components/fields/Checkbox/context.js +1 -1
  111. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  112. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  113. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  114. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  115. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  116. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  117. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  118. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  119. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  120. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  121. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  122. package/dist/components/fields/DatePicker/intl.js +1 -1
  123. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  124. package/dist/components/fields/DatePicker/props.js +1 -1
  125. package/dist/components/fields/DatePicker/utils.js +1 -1
  126. package/dist/components/fields/FileInput/FileInput.js +1 -1
  127. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  128. package/dist/components/fields/FilterPicker/FilterPicker.d.ts +8 -0
  129. package/dist/components/fields/FilterPicker/FilterPicker.js +14 -10
  130. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  131. package/dist/components/fields/Input/Input.js +1 -1
  132. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  133. package/dist/components/fields/ListBox/ListBox.js +1 -1
  134. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  135. package/dist/components/fields/NumberInput/StepButton.js +3 -3
  136. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  137. package/dist/components/fields/PasswordInput/PasswordInput.js +2 -2
  138. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  139. package/dist/components/fields/Picker/Picker.js +12 -8
  140. package/dist/components/fields/Picker/Picker.js.map +1 -1
  141. package/dist/components/fields/RadioGroup/Radio.d.ts +1 -1
  142. package/dist/components/fields/RadioGroup/Radio.js +40 -12
  143. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  144. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +1 -1
  145. package/dist/components/fields/RadioGroup/RadioGroup.js +15 -5
  146. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  147. package/dist/components/fields/RadioGroup/context.js +1 -1
  148. package/dist/components/fields/SearchInput/SearchInput.js +2 -2
  149. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  150. package/dist/components/fields/Select/Select.d.ts +1 -1
  151. package/dist/components/fields/Select/Select.js +11 -7
  152. package/dist/components/fields/Select/Select.js.map +1 -1
  153. package/dist/components/fields/Slider/Gradation.js +1 -1
  154. package/dist/components/fields/Slider/HueSlider.js +1 -1
  155. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  156. package/dist/components/fields/Slider/Slider.js +1 -1
  157. package/dist/components/fields/Slider/SliderBase.js +1 -1
  158. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  159. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  160. package/dist/components/fields/Slider/elements.js +1 -1
  161. package/dist/components/fields/Slider/index.js +1 -1
  162. package/dist/components/fields/Switch/Switch.js +1 -1
  163. package/dist/components/fields/TextArea/TextArea.js +1 -1
  164. package/dist/components/fields/TextInput/TextInput.js +1 -1
  165. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  166. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  167. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  168. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  169. package/dist/components/form/Form/Field.js +1 -1
  170. package/dist/components/form/Form/Form.js +1 -1
  171. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  172. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  173. package/dist/components/form/Form/SubmitError.js +1 -1
  174. package/dist/components/form/Form/index.js +1 -1
  175. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  176. package/dist/components/form/Form/use-field/use-field.js +1 -1
  177. package/dist/components/form/Form/use-form.js +1 -1
  178. package/dist/components/form/Form/validation.js +1 -1
  179. package/dist/components/form/Label.js +1 -1
  180. package/dist/components/form/wrapper.js +1 -1
  181. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  182. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  183. package/dist/components/layout/Flex.js +1 -1
  184. package/dist/components/layout/Flow.js +1 -1
  185. package/dist/components/layout/Grid.js +1 -1
  186. package/dist/components/layout/Panel.js +1 -1
  187. package/dist/components/layout/Prefix.js +1 -1
  188. package/dist/components/layout/ResizablePanel.js +1 -1
  189. package/dist/components/layout/Space.js +1 -1
  190. package/dist/components/layout/Suffix.js +1 -1
  191. package/dist/components/navigation/Tabs/DraggableTabList.js +6 -4
  192. package/dist/components/navigation/Tabs/DraggableTabList.js.map +1 -1
  193. package/dist/components/navigation/Tabs/TabButton.js +12 -7
  194. package/dist/components/navigation/Tabs/TabButton.js.map +1 -1
  195. package/dist/components/navigation/Tabs/TabDropIndicator.js +9 -4
  196. package/dist/components/navigation/Tabs/TabDropIndicator.js.map +1 -1
  197. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  198. package/dist/components/navigation/Tabs/TabPicker.js +11 -6
  199. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  200. package/dist/components/navigation/Tabs/Tabs.js +137 -104
  201. package/dist/components/navigation/Tabs/Tabs.js.map +1 -1
  202. package/dist/components/navigation/Tabs/TabsAction.js +14 -6
  203. package/dist/components/navigation/Tabs/TabsAction.js.map +1 -1
  204. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  205. package/dist/components/navigation/Tabs/TabsContext.js.map +1 -1
  206. package/dist/components/navigation/Tabs/popover-placement.js +21 -0
  207. package/dist/components/navigation/Tabs/popover-placement.js.map +1 -0
  208. package/dist/components/navigation/Tabs/styled.js +201 -70
  209. package/dist/components/navigation/Tabs/styled.js.map +1 -1
  210. package/dist/components/navigation/Tabs/types.d.ts +16 -2
  211. package/dist/components/navigation/Tabs/types.js +1 -1
  212. package/dist/components/navigation/Tabs/types.js.map +1 -1
  213. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  214. package/dist/components/navigation/Tabs/use-tab-indicator.js +26 -14
  215. package/dist/components/navigation/Tabs/use-tab-indicator.js.map +1 -1
  216. package/dist/components/organisms/FileTabs/FileTabs.js +2 -2
  217. package/dist/components/organisms/FileTabs/FileTabs.js.map +1 -1
  218. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  219. package/dist/components/other/Calendar/Calendar.js +1 -1
  220. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  221. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  222. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  223. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  224. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  225. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  226. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  227. package/dist/components/overlays/Dialog/Dialog.js +2 -2
  228. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  229. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  230. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  231. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  232. package/dist/components/overlays/Dialog/context.js +1 -1
  233. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  234. package/dist/components/overlays/Modal/Modal.js +1 -1
  235. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  236. package/dist/components/overlays/Modal/Overlay.js +1 -1
  237. package/dist/components/overlays/Modal/Popover.js +1 -1
  238. package/dist/components/overlays/Modal/Tray.js +1 -1
  239. package/dist/components/overlays/Modal/Underlay.js +1 -1
  240. package/dist/components/overlays/Notifications/Notification.js +1 -1
  241. package/dist/components/overlays/Notifications/NotificationAction.d.ts +1 -1
  242. package/dist/components/overlays/Notifications/NotificationAction.js +4 -3
  243. package/dist/components/overlays/Notifications/NotificationAction.js.map +1 -1
  244. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  245. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  246. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  247. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  248. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  249. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  250. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  251. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  252. package/dist/components/overlays/Notifications/index.js +1 -1
  253. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  254. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  255. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  256. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  257. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  258. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  259. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  260. package/dist/components/overlays/Toast/index.js +1 -1
  261. package/dist/components/overlays/Toast/useProgressToast.js +3 -2
  262. package/dist/components/overlays/Toast/useProgressToast.js.map +1 -1
  263. package/dist/components/overlays/Toast/useToast.js +1 -1
  264. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  265. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  266. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  267. package/dist/components/overlays/Tooltip/context.js +1 -1
  268. package/dist/components/portal/Portal.js +1 -1
  269. package/dist/components/portal/PortalProvider.js +1 -1
  270. package/dist/components/portal/usePortal.js +1 -1
  271. package/dist/components/shared/DraggableCollection.js +9 -3
  272. package/dist/components/shared/DraggableCollection.js.map +1 -1
  273. package/dist/components/shared/InvalidIcon.js +1 -1
  274. package/dist/components/shared/ValidIcon.js +1 -1
  275. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  276. package/dist/components/status/Spin/Cube.js +1 -1
  277. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  278. package/dist/components/status/Spin/Spin.js +1 -1
  279. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  280. package/dist/data/item-themes.d.ts +1 -1
  281. package/dist/data/item-themes.js +377 -467
  282. package/dist/data/item-themes.js.map +1 -1
  283. package/dist/data/themes.js +1 -1
  284. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  285. package/dist/icons/AdjustmentsIcon.js +1 -1
  286. package/dist/icons/AiIcon.js +1 -1
  287. package/dist/icons/AreaChartIcon.js +1 -1
  288. package/dist/icons/BackwardIcon.js +1 -1
  289. package/dist/icons/BarChartIcon.js +1 -1
  290. package/dist/icons/BellFilledIcon.js +1 -1
  291. package/dist/icons/BellIcon.js +1 -1
  292. package/dist/icons/BooleanIcon.js +1 -1
  293. package/dist/icons/CalendarEditIcon.js +1 -1
  294. package/dist/icons/CalendarIcon.js +1 -1
  295. package/dist/icons/CaretDownIcon.js +1 -1
  296. package/dist/icons/CaretUpIcon.js +1 -1
  297. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  298. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  299. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  300. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  301. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  302. package/dist/icons/ChartBarLineIcon.js +1 -1
  303. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  304. package/dist/icons/ChartBarStackedIcon.js +1 -1
  305. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  306. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  307. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  308. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  309. package/dist/icons/ChartBubbleIcon.js +1 -1
  310. package/dist/icons/ChartDonut2Icon.js +1 -1
  311. package/dist/icons/ChartFunnelIcon.js +1 -1
  312. package/dist/icons/ChartHeatmapIcon.js +1 -1
  313. package/dist/icons/ChartKPIIcon.js +1 -1
  314. package/dist/icons/ChartPie2Icon.js +1 -1
  315. package/dist/icons/ChartScatterIcon.js +1 -1
  316. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  317. package/dist/icons/CheckCircleIcon.js +1 -1
  318. package/dist/icons/CheckIcon.js +1 -1
  319. package/dist/icons/CircleFilledIcon.js +1 -1
  320. package/dist/icons/ClearIcon.js +1 -1
  321. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  322. package/dist/icons/CloseCircleIcon.js +1 -1
  323. package/dist/icons/CloseIcon.js +1 -1
  324. package/dist/icons/CodeIcon.js +1 -1
  325. package/dist/icons/ColumnTotalIcon.js +1 -1
  326. package/dist/icons/CopyIcon.js +1 -1
  327. package/dist/icons/CountIcon.js +1 -1
  328. package/dist/icons/CubeIcon.js +1 -1
  329. package/dist/icons/CubePauseIcon.js +1 -1
  330. package/dist/icons/CubePlayIcon.js +1 -1
  331. package/dist/icons/CurrencyDollarIcon.js +1 -1
  332. package/dist/icons/DangerIcon.js +1 -1
  333. package/dist/icons/DashboardIcon.js +1 -1
  334. package/dist/icons/DatabaseIcon.js +1 -1
  335. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  336. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  337. package/dist/icons/DirectionIcon.js +1 -1
  338. package/dist/icons/DonutIcon.js +1 -1
  339. package/dist/icons/DownIcon.js +1 -1
  340. package/dist/icons/EditIcon.js +1 -1
  341. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  342. package/dist/icons/ExclamationCircleIcon.js +1 -1
  343. package/dist/icons/ExclamationIcon.js +1 -1
  344. package/dist/icons/EyeIcon.js +1 -1
  345. package/dist/icons/EyeInvisibleIcon.js +1 -1
  346. package/dist/icons/FilterIcon.js +1 -1
  347. package/dist/icons/FolderFilledIcon.js +1 -1
  348. package/dist/icons/FolderIcon.js +1 -1
  349. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  350. package/dist/icons/FolderOpenIcon.js +1 -1
  351. package/dist/icons/ForwardIcon.js +1 -1
  352. package/dist/icons/GripVerticalIcon.js +1 -1
  353. package/dist/icons/HierarchyIcon.js +1 -1
  354. package/dist/icons/HierarchyOpenIcon.js +1 -1
  355. package/dist/icons/Icon.js +1 -1
  356. package/dist/icons/InfoCircleIcon.js +1 -1
  357. package/dist/icons/InfoIcon.js +1 -1
  358. package/dist/icons/KeyIcon.js +1 -1
  359. package/dist/icons/LeftIcon.js +1 -1
  360. package/dist/icons/LineChartIcon.js +1 -1
  361. package/dist/icons/LoadingIcon.js +1 -1
  362. package/dist/icons/LockFilledIcon.js +1 -1
  363. package/dist/icons/LockIcon.js +1 -1
  364. package/dist/icons/MoreIcon.js +1 -1
  365. package/dist/icons/NotAllowedIcon.js +1 -1
  366. package/dist/icons/Number123Icon.js +1 -1
  367. package/dist/icons/NumberIcon.js +1 -1
  368. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  369. package/dist/icons/PauseCircleIcon.js +1 -1
  370. package/dist/icons/PauseIcon.js +1 -1
  371. package/dist/icons/PercentageIcon.js +1 -1
  372. package/dist/icons/PieChartIcon.js +1 -1
  373. package/dist/icons/PlayCircleIcon.js +1 -1
  374. package/dist/icons/PlayIcon.js +1 -1
  375. package/dist/icons/PlusIcon.js +1 -1
  376. package/dist/icons/ProgressBarIcon.js +1 -1
  377. package/dist/icons/ReloadIcon.js +1 -1
  378. package/dist/icons/ReportIcon.js +1 -1
  379. package/dist/icons/ReturnIcon.js +1 -1
  380. package/dist/icons/RightIcon.js +1 -1
  381. package/dist/icons/RowTotalsIcon.js +1 -1
  382. package/dist/icons/SchemeIcon.js +1 -1
  383. package/dist/icons/SearchIcon.js +1 -1
  384. package/dist/icons/SemanticQueryIcon.js +1 -1
  385. package/dist/icons/SettingsIcon.js +1 -1
  386. package/dist/icons/ShieldFilledIcon.js +1 -1
  387. package/dist/icons/ShieldIcon.js +1 -1
  388. package/dist/icons/SlashIcon.js +1 -1
  389. package/dist/icons/SparklesIcon.js +1 -1
  390. package/dist/icons/SqlIcon.js +1 -1
  391. package/dist/icons/StatsIcon.js +1 -1
  392. package/dist/icons/StopIcon.js +1 -1
  393. package/dist/icons/StringIcon.js +1 -1
  394. package/dist/icons/SubtotalsIcon.js +1 -1
  395. package/dist/icons/SwitchIcon.js +1 -1
  396. package/dist/icons/TableIcon.js +1 -1
  397. package/dist/icons/ThumbsDownIcon.js +1 -1
  398. package/dist/icons/ThumbsUpIcon.js +1 -1
  399. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  400. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  401. package/dist/icons/ThunderboltIcon.js +1 -1
  402. package/dist/icons/TimeIcon.js +1 -1
  403. package/dist/icons/TrashIcon.js +1 -1
  404. package/dist/icons/UnlockIcon.js +1 -1
  405. package/dist/icons/UpIcon.js +1 -1
  406. package/dist/icons/UserGroupIcon.js +1 -1
  407. package/dist/icons/UserIcon.js +1 -1
  408. package/dist/icons/UserLockIcon.js +1 -1
  409. package/dist/icons/ViewIcon.js +1 -1
  410. package/dist/icons/WarningFilledIcon.js +1 -1
  411. package/dist/icons/WarningIcon.js +1 -1
  412. package/dist/icons/wrap-icon.js +1 -1
  413. package/dist/index.js +1 -1
  414. package/dist/provider.js +1 -1
  415. package/dist/providers/TrackingProvider.js +1 -1
  416. package/dist/providers/navigationAdapter.default.js +1 -1
  417. package/dist/tokens/base.js +1 -1
  418. package/dist/tokens/colors.js +1 -1
  419. package/dist/tokens/index.js +1 -1
  420. package/dist/tokens/layout.js +1 -1
  421. package/dist/tokens/palette.js +52 -22
  422. package/dist/tokens/palette.js.map +1 -1
  423. package/dist/tokens/shadows.js +1 -1
  424. package/dist/tokens/sizes.js +1 -1
  425. package/dist/tokens/spacing.js +1 -1
  426. package/dist/tokens/typography.js +1 -1
  427. package/dist/utils/ResizeSensor.js +1 -1
  428. package/dist/utils/is-dev-env.js +1 -1
  429. package/dist/utils/modules.js +1 -1
  430. package/dist/utils/promise.js +1 -1
  431. package/dist/utils/raf.js +1 -1
  432. package/dist/utils/random.js +1 -1
  433. package/dist/utils/range.js +1 -1
  434. package/dist/utils/react/RenderCache.js +1 -1
  435. package/dist/utils/react/Slots.js +1 -1
  436. package/dist/utils/react/chain.js +1 -1
  437. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  438. package/dist/utils/react/index.js +1 -1
  439. package/dist/utils/react/interactions.js +1 -1
  440. package/dist/utils/react/isTextOnly.js +1 -1
  441. package/dist/utils/react/mapProps.js +1 -1
  442. package/dist/utils/react/mergeProps.js +1 -1
  443. package/dist/utils/react/nullableValue.js +1 -1
  444. package/dist/utils/react/resolveIcon.js +1 -1
  445. package/dist/utils/react/sharedStore.js +1 -1
  446. package/dist/utils/react/useCombinedRefs.js +1 -1
  447. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  448. package/dist/utils/react/useEventBus.js +1 -1
  449. package/dist/utils/react/useId.js +1 -1
  450. package/dist/utils/react/useIsDarwin.js +1 -1
  451. package/dist/utils/react/useKeySymbols.js +1 -1
  452. package/dist/utils/react/useLayoutEffect.js +1 -1
  453. package/dist/utils/react/useLocalStorage.js +1 -1
  454. package/dist/utils/react/useMergeStyles.js +1 -1
  455. package/dist/utils/react/usePopoverSync.js +1 -1
  456. package/dist/utils/react/useQaProps.js +1 -1
  457. package/dist/utils/react/useViewportSize.js +1 -1
  458. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  459. package/dist/utils/selection.js +1 -1
  460. package/dist/utils/styles.js +1 -1
  461. package/dist/utils/tree.js +1 -1
  462. package/dist/utils/warnings.js +1 -1
  463. package/dist/version.js +2 -2
  464. package/docs/ComplexLayout.md +2 -2
  465. package/docs/components/CollectionItem.md +1 -1
  466. package/docs/components/actions/Banner.md +1 -1
  467. package/docs/components/actions/Button.md +3 -5
  468. package/docs/components/actions/ButtonGroup.md +1 -1
  469. package/docs/components/actions/ButtonSplit.md +1 -2
  470. package/docs/components/actions/ItemAction.md +5 -5
  471. package/docs/components/actions/ItemButton.md +4 -6
  472. package/docs/components/content/Item.md +9 -10
  473. package/docs/components/content/ItemBadge.md +4 -4
  474. package/docs/components/content/ItemCard.md +1 -1
  475. package/docs/components/content/Layout.md +2 -2
  476. package/docs/components/content/Tag.md +1 -1
  477. package/docs/components/fields/FilterListBox.md +1 -1
  478. package/docs/components/fields/FilterPicker.md +3 -5
  479. package/docs/components/fields/ListBox.md +1 -1
  480. package/docs/components/fields/Picker.md +3 -5
  481. package/docs/components/fields/RadioGroup.md +7 -9
  482. package/docs/components/fields/Select.md +2 -4
  483. package/docs/components/navigation/Tabs.md +33 -8
  484. package/docs/components/organisms/FileTabs.md +2 -2
  485. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { resolveIcon } from "../../../utils/react/resolveIcon.js";
4
4
  import { highlightText } from "../highlightText.js";
5
5
  import { useAutoTooltip } from "../use-auto-tooltip.js";
6
- import { DANGER_CARD_STYLES, DANGER_CLEAR_STYLES, DANGER_ITEM_STYLES, DANGER_LINK_STYLES, DANGER_NEUTRAL_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DANGER_SECONDARY_STYLES, DEFAULT_CARD_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_ITEM_STYLES, DEFAULT_LINK_STYLES, DEFAULT_NEUTRAL_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, DEFAULT_SECONDARY_STYLES, NOTE_CARD_STYLES, NOTE_CLEAR_STYLES, NOTE_ITEM_STYLES, NOTE_LINK_STYLES, NOTE_NEUTRAL_STYLES, NOTE_OUTLINE_STYLES, NOTE_PRIMARY_STYLES, NOTE_SECONDARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_ITEM_STYLES, SPECIAL_LINK_STYLES, SPECIAL_NEUTRAL_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SPECIAL_SECONDARY_STYLES, SUCCESS_CARD_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_ITEM_STYLES, SUCCESS_LINK_STYLES, SUCCESS_NEUTRAL_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, SUCCESS_SECONDARY_STYLES, WARNING_CARD_STYLES, WARNING_CLEAR_STYLES, WARNING_ITEM_STYLES, WARNING_LINK_STYLES, WARNING_NEUTRAL_STYLES, WARNING_OUTLINE_STYLES, WARNING_PRIMARY_STYLES, WARNING_SECONDARY_STYLES } from "../../../data/item-themes.js";
6
+ import { DANGER_CARD_STYLES, DANGER_CLEAR_STYLES, DANGER_ITEM_STYLES, DANGER_LINK_STYLES, DANGER_OUTLINE_2_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DEFAULT_CARD_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_ITEM_STYLES, DEFAULT_LINK_STYLES, DEFAULT_OUTLINE_2_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, NOTE_CARD_STYLES, NOTE_CLEAR_STYLES, NOTE_ITEM_STYLES, NOTE_LINK_STYLES, NOTE_OUTLINE_2_STYLES, NOTE_OUTLINE_STYLES, NOTE_PRIMARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_ITEM_STYLES, SPECIAL_LINK_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SUCCESS_CARD_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_ITEM_STYLES, SUCCESS_LINK_STYLES, SUCCESS_OUTLINE_2_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, WARNING_CARD_STYLES, WARNING_CLEAR_STYLES, WARNING_ITEM_STYLES, WARNING_LINK_STYLES, WARNING_OUTLINE_2_STYLES, WARNING_OUTLINE_STYLES, WARNING_PRIMARY_STYLES } from "../../../data/item-themes.js";
7
7
  import { CheckIcon } from "../../../icons/CheckIcon.js";
8
8
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
9
9
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
@@ -35,9 +35,9 @@ const DEFAULT_ICON_STYLES = {
35
35
  width: "($size - 2bw)",
36
36
  opacity: {
37
37
  "": 1,
38
- "checkbox & selected": 1,
39
- "checkbox & !selected": 0,
40
- "checkbox & !selected & hovered": .4
38
+ "checkmark & selected": 1,
39
+ "checkmark & !selected": 0,
40
+ "checkmark & !selected & hovered": .4
41
41
  }
42
42
  };
43
43
  const ADDITION_STYLES = {
@@ -281,49 +281,42 @@ const ItemElement = tasty({
281
281
  },
282
282
  variants: {
283
283
  "default.primary": DEFAULT_PRIMARY_STYLES,
284
- "default.secondary": DEFAULT_SECONDARY_STYLES,
285
284
  "default.outline": DEFAULT_OUTLINE_STYLES,
286
- "default.neutral": DEFAULT_NEUTRAL_STYLES,
285
+ "default.outline-2": DEFAULT_OUTLINE_2_STYLES,
287
286
  "default.clear": DEFAULT_CLEAR_STYLES,
288
287
  "default.link": DEFAULT_LINK_STYLES,
289
288
  "default.item": DEFAULT_ITEM_STYLES,
290
289
  "default.card": DEFAULT_CARD_STYLES,
291
290
  "danger.primary": DANGER_PRIMARY_STYLES,
292
- "danger.secondary": DANGER_SECONDARY_STYLES,
293
291
  "danger.outline": DANGER_OUTLINE_STYLES,
294
- "danger.neutral": DANGER_NEUTRAL_STYLES,
292
+ "danger.outline-2": DANGER_OUTLINE_2_STYLES,
295
293
  "danger.clear": DANGER_CLEAR_STYLES,
296
294
  "danger.link": DANGER_LINK_STYLES,
297
295
  "danger.item": DANGER_ITEM_STYLES,
298
296
  "danger.card": DANGER_CARD_STYLES,
299
297
  "success.primary": SUCCESS_PRIMARY_STYLES,
300
- "success.secondary": SUCCESS_SECONDARY_STYLES,
301
298
  "success.outline": SUCCESS_OUTLINE_STYLES,
302
- "success.neutral": SUCCESS_NEUTRAL_STYLES,
299
+ "success.outline-2": SUCCESS_OUTLINE_2_STYLES,
303
300
  "success.clear": SUCCESS_CLEAR_STYLES,
304
301
  "success.link": SUCCESS_LINK_STYLES,
305
302
  "success.item": SUCCESS_ITEM_STYLES,
306
303
  "success.card": SUCCESS_CARD_STYLES,
307
304
  "warning.primary": WARNING_PRIMARY_STYLES,
308
- "warning.secondary": WARNING_SECONDARY_STYLES,
309
305
  "warning.outline": WARNING_OUTLINE_STYLES,
310
- "warning.neutral": WARNING_NEUTRAL_STYLES,
306
+ "warning.outline-2": WARNING_OUTLINE_2_STYLES,
311
307
  "warning.clear": WARNING_CLEAR_STYLES,
312
308
  "warning.link": WARNING_LINK_STYLES,
313
309
  "warning.item": WARNING_ITEM_STYLES,
314
310
  "warning.card": WARNING_CARD_STYLES,
315
311
  "note.primary": NOTE_PRIMARY_STYLES,
316
- "note.secondary": NOTE_SECONDARY_STYLES,
317
312
  "note.outline": NOTE_OUTLINE_STYLES,
318
- "note.neutral": NOTE_NEUTRAL_STYLES,
313
+ "note.outline-2": NOTE_OUTLINE_2_STYLES,
319
314
  "note.clear": NOTE_CLEAR_STYLES,
320
315
  "note.link": NOTE_LINK_STYLES,
321
316
  "note.item": NOTE_ITEM_STYLES,
322
317
  "note.card": NOTE_CARD_STYLES,
323
318
  "special.primary": SPECIAL_PRIMARY_STYLES,
324
- "special.secondary": SPECIAL_SECONDARY_STYLES,
325
319
  "special.outline": SPECIAL_OUTLINE_STYLES,
326
- "special.neutral": SPECIAL_NEUTRAL_STYLES,
327
320
  "special.clear": SPECIAL_CLEAR_STYLES,
328
321
  "special.link": SPECIAL_LINK_STYLES,
329
322
  "special.item": SPECIAL_ITEM_STYLES
@@ -368,7 +361,7 @@ const Item = (props, ref) => {
368
361
  key: ["Item", "link-restrictions"],
369
362
  args: [`Item: The "link" type does not support ${linkRestrictionMessages.join(" or ")}. Remove these props when using type="link".`]
370
363
  });
371
- const hasCheckbox = iconProp === "checkbox";
364
+ const hasCheckmark = iconProp === "checkmark";
372
365
  const isCustomSize = typeof size === "number" || !ITEM_SIZE_VALUES.includes(size);
373
366
  const sizeTokenValue = typeof size === "number" ? `${size}px` : isCustomSize ? size : void 0;
374
367
  const baseMods = useMemo(() => ({
@@ -392,7 +385,7 @@ const Item = (props, ref) => {
392
385
  mods
393
386
  ]);
394
387
  const resolvedIcon = useMemo(() => {
395
- if (hasCheckbox) return {
388
+ if (hasCheckmark) return {
396
389
  content: null,
397
390
  hasSlot: true
398
391
  };
@@ -400,7 +393,7 @@ const Item = (props, ref) => {
400
393
  }, [
401
394
  iconProp,
402
395
  baseMods,
403
- hasCheckbox
396
+ hasCheckmark
404
397
  ]);
405
398
  const resolvedRightIcon = useMemo(() => resolveIcon(rightIconProp, baseMods), [rightIconProp, baseMods]);
406
399
  const resolvedLoadingSlot = useMemo(() => {
@@ -421,7 +414,7 @@ const Item = (props, ref) => {
421
414
  }, [description, descriptionProps]);
422
415
  const finalIcon = isLoading && resolvedLoadingSlot === "icon" ? /* @__PURE__ */ jsx(LoadingIcon, {}) : resolvedIcon.content;
423
416
  const finalRightIcon = isLoading && resolvedLoadingSlot === "rightIcon" ? /* @__PURE__ */ jsx(LoadingIcon, {}) : resolvedRightIcon.content;
424
- const iconKey = hasCheckbox ? "checkbox" : isLoading && resolvedLoadingSlot === "icon" ? "loading" : isValidElement(finalIcon) ? finalIcon.type?.displayName || finalIcon.type?.name || "icon" : finalIcon ? "icon" : "empty";
417
+ const iconKey = hasCheckmark ? "checkmark" : isLoading && resolvedLoadingSlot === "icon" ? "loading" : isValidElement(finalIcon) ? finalIcon.type?.displayName || finalIcon.type?.name || "icon" : finalIcon ? "icon" : "empty";
425
418
  const rightIconKey = isLoading && resolvedLoadingSlot === "rightIcon" ? "loading" : isValidElement(finalRightIcon) ? finalRightIcon.type?.displayName || finalRightIcon.type?.name || "icon" : finalRightIcon ? "icon" : "empty";
426
419
  const finalPrefix = isLoading && resolvedLoadingSlot === "prefix" ? /* @__PURE__ */ jsx(LoadingIcon, {}) : prefix;
427
420
  const finalSuffix = isLoading && resolvedLoadingSlot === "suffix" ? /* @__PURE__ */ jsx(LoadingIcon, {}) : suffix ?? (hotkeys ? /* @__PURE__ */ jsx(_HotKeys, {
@@ -460,7 +453,7 @@ const Item = (props, ref) => {
460
453
  "preserve-actions-space": preserveActionsSpace === true,
461
454
  "inside-wrapper": insideWrapper,
462
455
  "actions-shown": showActions && insideWrapper,
463
- checkbox: hasCheckbox,
456
+ checkmark: hasCheckmark,
464
457
  description: showDescription ? finalDescriptionPlacement : "none"
465
458
  };
466
459
  }, [
@@ -471,7 +464,7 @@ const Item = (props, ref) => {
471
464
  finalSuffix,
472
465
  showDescription,
473
466
  finalDescriptionPlacement,
474
- hasCheckbox,
467
+ hasCheckmark,
475
468
  actions,
476
469
  autoHideActions,
477
470
  preserveActionsSpace,
@@ -500,9 +493,10 @@ const Item = (props, ref) => {
500
493
  else if (ref) ref.current = element;
501
494
  if (tooltipRef) tooltipRef.current = element;
502
495
  };
496
+ const effectiveType = theme === "special" && type === "outline-2" ? "outline" : type;
503
497
  return /* @__PURE__ */ jsxs(ItemElement, {
504
498
  ref: handleRef,
505
- variant: theme && type ? `${type === "header" ? "default" : theme}.${type === "header" ? "item" : type}` : void 0,
499
+ variant: theme && effectiveType ? `${effectiveType === "header" ? "default" : theme}.${effectiveType === "header" ? "item" : effectiveType}` : void 0,
506
500
  disabled: finalIsDisabled,
507
501
  "aria-disabled": finalIsDisabled,
508
502
  "aria-selected": isSelected,
@@ -518,7 +512,7 @@ const Item = (props, ref) => {
518
512
  children: /* @__PURE__ */ jsx(IconSwitch, {
519
513
  noWrapper: true,
520
514
  contentKey: iconKey,
521
- children: hasCheckbox ? /* @__PURE__ */ jsx(CheckIcon, {}) : finalIcon
515
+ children: hasCheckmark ? /* @__PURE__ */ jsx(CheckIcon, {}) : finalIcon
522
516
  })
523
517
  }),
524
518
  finalPrefix && /* @__PURE__ */ jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","names":["HotKeys"],"sources":["../../../../src/components/content/Item/Item.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Mods,\n Props,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n isValidElement,\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n ReactNode,\n RefObject,\n useMemo,\n} from 'react';\nimport { OverlayProps } from 'react-aria';\nimport { useHotkeys } from 'react-hotkeys-hook';\n\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport {\n DANGER_CARD_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_ITEM_STYLES,\n DANGER_LINK_STYLES,\n DANGER_NEUTRAL_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DANGER_SECONDARY_STYLES,\n DEFAULT_CARD_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_ITEM_STYLES,\n DEFAULT_LINK_STYLES,\n DEFAULT_NEUTRAL_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n DEFAULT_SECONDARY_STYLES,\n ItemVariant,\n NOTE_CARD_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_ITEM_STYLES,\n NOTE_LINK_STYLES,\n NOTE_NEUTRAL_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n NOTE_SECONDARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_ITEM_STYLES,\n SPECIAL_LINK_STYLES,\n SPECIAL_NEUTRAL_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SPECIAL_SECONDARY_STYLES,\n SUCCESS_CARD_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_ITEM_STYLES,\n SUCCESS_LINK_STYLES,\n SUCCESS_NEUTRAL_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n SUCCESS_SECONDARY_STYLES,\n WARNING_CARD_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_ITEM_STYLES,\n WARNING_LINK_STYLES,\n WARNING_NEUTRAL_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n WARNING_SECONDARY_STYLES,\n} from '../../../data/item-themes';\nimport { CheckIcon } from '../../../icons/CheckIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { DynamicIcon, mergeProps, resolveIcon } from '../../../utils/react';\nimport { ItemAction } from '../../actions/ItemAction';\nimport { ItemActionProvider } from '../../actions/ItemActionContext';\nimport { IconSwitch } from '../../helpers/IconSwitch/IconSwitch';\nimport { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\nimport { highlightText } from '../highlightText';\nimport { HotKeys } from '../HotKeys';\nimport { ItemBadge } from '../ItemBadge';\nimport { useAutoTooltip } from '../use-auto-tooltip';\n\nconst ITEM_SIZE_VALUES = [\n 'xsmall',\n 'small',\n 'medium',\n 'large',\n 'xlarge',\n 'inline',\n] as const;\n\n/** Known modifiers for Item component */\nexport type ItemMods = Mods<{\n 'has-icon'?: boolean;\n 'has-start-content'?: boolean;\n 'has-end-content'?: boolean;\n 'has-right-icon'?: boolean;\n 'has-label'?: boolean;\n 'has-prefix'?: boolean;\n 'has-suffix'?: boolean;\n 'has-description'?: boolean;\n 'has-actions'?: boolean;\n 'has-actions-content'?: boolean;\n 'auto-hide-actions'?: boolean;\n 'preserve-actions-space'?: boolean;\n checkbox?: boolean;\n disabled?: boolean;\n selected?: boolean;\n loading?: boolean;\n size?: string;\n description?: string;\n type?: string;\n theme?: string;\n shape?: string;\n}>;\n\nexport interface CubeItemProps extends BaseProps, ContainerStyleProps {\n icon?: DynamicIcon<ItemMods> | 'checkbox';\n rightIcon?: DynamicIcon<ItemMods>;\n prefix?: ReactNode;\n suffix?: ReactNode;\n description?: ReactNode;\n descriptionPlacement?: 'inline' | 'block';\n /**\n * When true, the item is rendered inside a wrapper element to separate the actions from the item.\n * @default false\n */\n insideWrapper?: boolean;\n /**\n * Whether the item is selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Actions to render inline or placeholder mode for ItemButton wrapper.\n * - ReactNode: renders actions inline as part of the grid layout\n * - true: placeholder mode for ItemButton (enables --actions-width calculation)\n */\n actions?: ReactNode | true;\n /**\n * When true, actions are hidden by default and shown only on hover, focus, or focus-within.\n * Uses opacity transition for visual hiding while maintaining layout space.\n */\n autoHideActions?: boolean;\n /**\n * When true and insideWrapper is true, this controls the visibility of the actions.\n * @default false\n */\n showActions?: boolean;\n /**\n * When true, preserves the actions width when hidden (only changes opacity).\n * Only applies when autoHideActions is true.\n * @default false\n */\n preserveActionsSpace?: boolean;\n /**\n * When true, disables focus on action buttons by setting tabIndex={-1}.\n * @default true\n */\n disableActionsFocus?: boolean;\n size?:\n | 'xsmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xlarge'\n | 'inline'\n | number\n | (string & {});\n type?:\n | 'item'\n | 'header'\n | 'primary'\n | 'secondary'\n | 'outline'\n | 'neutral'\n | 'clear'\n | 'link'\n | 'card'\n | (string & {});\n theme?:\n | 'default'\n | 'danger'\n | 'success'\n | 'special'\n | 'warning'\n | 'note'\n | (string & {});\n /** Keyboard shortcut that triggers the element when pressed */\n hotkeys?: 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 * HTML button type to avoid implicit form submission when used as `as=\"button\"`.\n * Kept separate from visual `type` prop.\n */\n htmlType?: 'button' | 'submit' | 'reset';\n labelProps?: Props;\n descriptionProps?: Props;\n keyboardShortcutProps?: Props;\n /**\n * The slot which the loading icon should replace in loading state.\n * - \"auto\": Smart selection - prefers icon if present, then rightIcon, fallback to icon\n * - Specific slot names: Always use that slot\n * @default \"auto\"\n */\n loadingSlot?: 'auto' | 'icon' | 'rightIcon' | 'prefix' | 'suffix';\n /**\n * When true, shows loading state by replacing the specified slot with LoadingIcon\n * and makes the component disabled.\n */\n isLoading?: boolean;\n /**\n * Shape of the item's border radius.\n * - `card` - Card shape with larger border radius (`1cr`)\n * - `button` - Button shape with default border radius (default)\n * - `sharp` - Sharp corners with no border radius (`0`)\n * - `pill` - Pill shape with fully rounded ends (`round`)\n * @default \"button\"\n */\n shape?: 'card' | 'button' | 'sharp' | 'pill';\n /**\n * @private\n * Default tooltip placement for the item.\n * @default \"top\"\n */\n defaultTooltipPlacement?: OverlayProps['placement'];\n /**\n * Ref to access the label element directly\n */\n labelRef?: RefObject<HTMLElement>;\n /**\n * Heading level for the Label element when type=\"header\" or type=\"card\".\n * Changes the Label's HTML tag to the corresponding heading (h1-h6).\n * @default 3\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * String to highlight within children.\n * Only works when children is a plain string.\n */\n highlight?: string;\n /**\n * Whether highlight matching is case-sensitive.\n * @default false\n */\n highlightCaseSensitive?: boolean;\n /**\n * Custom styles for highlighted text.\n */\n highlightStyles?: Styles;\n /**\n * Variant of the item.\n */\n variant?: ItemVariant;\n}\n\nconst DEFAULT_ICON_STYLES: Styles = {\n $: '>',\n display: 'grid',\n placeItems: 'center',\n placeContent: 'stretch',\n aspectRatio: '1 / 1',\n width: '($size - 2bw)',\n opacity: {\n '': 1,\n 'checkbox & selected': 1,\n 'checkbox & !selected': 0,\n 'checkbox & !selected & hovered': 0.4,\n },\n};\n\nconst ADDITION_STYLES: Styles = {\n $: '>',\n display: 'grid',\n flow: 'column',\n placeItems: 'center',\n placeContent: 'stretch',\n};\n\nconst ACTIONS_EVENT_HANDLERS = {\n onClick: (e: MouseEvent) => e.stopPropagation(),\n onPointerDown: (e: PointerEvent) => e.stopPropagation(),\n onPointerUp: (e: PointerEvent) => e.stopPropagation(),\n onMouseDown: (e: MouseEvent) => e.stopPropagation(),\n onMouseUp: (e: MouseEvent) => e.stopPropagation(),\n onKeyDown: (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.stopPropagation();\n }\n },\n};\n\nconst ItemElement = tasty({\n as: 'div',\n styles: {\n '@interacted':\n 'active | :hover | :focus | :focus-within | :has([data-pressed])',\n\n display: 'inline-grid',\n flow: 'column dense',\n gap: 0,\n outline: 0,\n placeItems: 'stretch',\n placeContent: 'stretch',\n gridTemplate: {\n '': '\"icon prefix label suffix rightIcon actions\" auto \"icon prefix label suffix rightIcon actions\" auto / max-content max-content 1sf max-content max-content max-content',\n 'description=inline':\n '\"icon prefix description suffix rightIcon actions\" auto / max-content max-content 1sf max-content max-content max-content',\n 'description=inline & has-label':\n '\"icon prefix label suffix rightIcon actions\" auto \"icon prefix description suffix rightIcon actions\" auto / max-content max-content 1sf max-content max-content max-content',\n 'description=block':\n '\"icon prefix label suffix rightIcon actions\" auto \"description description description description description description\" auto / max-content max-content 1sf max-content max-content max-content',\n },\n // Prevent items from shrinking inside vertical flex layouts (Menu, ListBox, etc)\n flexShrink: {\n '': 'initial',\n 'menuitem | listboxitem': 0,\n },\n position: 'relative',\n padding: {\n '': 0,\n 'type=card': '.5x',\n },\n margin: 0,\n radius: {\n '': true,\n 'shape=card': '1cr',\n 'shape=button': true,\n 'shape=sharp': '0',\n 'shape=pill': 'round',\n },\n height: {\n '': 'min $size',\n 'size=inline': '(1lh + 2bw)',\n },\n width: {\n '': 'min $size',\n 'has-icon & has-right-icon': 'min ($size * 2)',\n 'size=inline': 'min (1lh + 2bw)',\n },\n border: '#clear',\n fill: {\n '': '#dark.0',\n 'hovered | focused': '#dark.03',\n selected: '#dark.09',\n 'selected & (hovered | focused)': '#dark.12',\n pressed: '#dark.09',\n disabled: '#clear',\n },\n color: {\n '': '#dark-02',\n hovered: '#dark-02',\n pressed: '#dark',\n disabled: '#disabled-surface-text',\n },\n preset: {\n '': 't3',\n '!type=item': 't3m',\n 'size=xsmall': 't4',\n 'size=xlarge': 't2',\n 'size=inline': 'inherit',\n '!type=item & (size=medium | size=small | size=large)': 't3m',\n '!type=item & size=xlarge': 't2m',\n '(type=header | type=card) & (size=xsmall | size=small | size=medium)':\n 'h6',\n '(type=header | type=card) & size=large': 'h5',\n '(type=header | type=card) & size=xlarge': 'h4',\n },\n recipe: 'reset button',\n transition: 'theme',\n outlineOffset: 1,\n cursor: {\n '': 'inherit',\n ':is(a)': 'pointer',\n ':is(button) | listboxitem | menuitem': '$pointer',\n disabled: 'not-allowed',\n },\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 '$block-padding': {\n '': '.5x',\n 'size=xsmall | size=small': '.25x',\n 'size=inline': 0,\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(1x - 1bw)',\n\n '$label-padding-left': {\n '': '$inline-padding',\n 'has-start-content': '0',\n },\n '$label-padding-right': {\n '': '$inline-padding',\n 'has-end-content': '0',\n // Restore padding when actions are hidden AND no other visible end content\n '!inside-wrapper & !has-suffix & !has-right-icon & auto-hide-actions & !preserve-actions-space & !@interacted':\n '$inline-padding',\n 'inside-wrapper & !has-suffix & !has-right-icon & !preserve-actions-space & !actions-shown':\n '$inline-padding',\n },\n '$label-padding-bottom': {\n '': '$block-padding',\n 'description=inline': '0',\n },\n '$description-padding-left': {\n '': '$inline-padding',\n 'has-start-content': 0,\n 'description=block': '($inline-padding - $inline-compensation + 1bw)',\n 'description=block & !has-start-content': '$inline-padding',\n },\n '$description-padding-right': {\n '': '$inline-padding',\n 'has-end-content': 0,\n 'description=block': '($inline-padding - $inline-compensation + 1bw)',\n 'description=block & !has-end-content': '$inline-padding',\n },\n '$description-padding-bottom': {\n '': 0,\n 'has-label & description=inline': '$block-padding',\n 'has-label & description=block':\n 'max($block-padding, (($size - 4x) / 2) + $block-padding)',\n },\n\n Icon: { ...DEFAULT_ICON_STYLES, gridArea: 'icon' },\n\n RightIcon: { ...DEFAULT_ICON_STYLES, gridArea: 'rightIcon' },\n\n Label: {\n $: '>',\n margin: 0,\n gridArea: 'label',\n display: 'block',\n placeSelf: 'center start',\n boxSizing: 'border-box',\n placeContent: 'stretch',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '0 100%',\n preset: 'inherit',\n transition: 'padding',\n padding:\n '$block-padding $label-padding-right $label-padding-bottom $label-padding-left',\n },\n\n Description: {\n $: '>',\n gridArea: 'description',\n preset: {\n '': 't4',\n 'type=card | type=header': 't3',\n },\n placeSelf: 'center start',\n boxSizing: 'border-box',\n color: 'inherit',\n opacity: {\n '': 0.75,\n 'type=card | type=header': 1,\n },\n overflow: 'hidden',\n whiteSpace: {\n '': 'nowrap',\n 'type=card | type=header': 'normal',\n },\n textOverflow: 'ellipsis',\n width: 'initial 100% 100%',\n textAlign: 'left',\n padding:\n '0 $description-padding-right $description-padding-bottom $description-padding-left',\n },\n\n Prefix: {\n ...ADDITION_STYLES,\n gridArea: 'prefix',\n padding: {\n '': '$inline-padding left',\n 'has-icon': 0,\n },\n },\n\n Suffix: {\n ...ADDITION_STYLES,\n gridArea: 'suffix',\n padding: {\n '': '$inline-padding right',\n 'has-right-icon': 0,\n },\n },\n\n Actions: {\n $: '>',\n gridArea: 'actions',\n display: 'flex',\n gap: '1bw',\n placeItems: 'center',\n placeContent: 'end',\n placeSelf: 'stretch',\n padding: {\n '': '0 $side-padding',\n 'inside-wrapper & !actions-shown': 0,\n },\n boxSizing: 'border-box',\n height: 'min ($size - 2bw)',\n width: {\n '': 'fixed ($actions-width, 0px)',\n 'has-actions-content & !auto-hide-actions':\n 'max calc-size(max-content, size)',\n 'has-actions-content & auto-hide-actions & !preserve-actions-space':\n 'max 0px',\n 'has-actions-content & auto-hide-actions & (!preserve-actions-space & ((@interacted & !inside-wrapper) | (inside-wrapper & actions-shown)))':\n 'max calc-size(max-content, size)',\n 'has-actions-content & auto-hide-actions & preserve-actions-space':\n 'max calc-size(max-content, size)',\n },\n opacity: {\n '': 1,\n 'auto-hide-actions': 0,\n 'auto-hide-actions & ((@interacted & !inside-wrapper) | (inside-wrapper & actions-shown))': 1,\n },\n transition:\n 'width $transition ease-out, opacity $transition ease-out, padding $transition ease-out',\n interpolateSize: 'allow-keywords',\n\n // Size for the action buttons\n '$action-size': 'min(max((2x + 2bw), ($size - 1x - 2bw)), (3x - 2bw))',\n // Side padding for the button\n '$side-padding': '(($size - $action-size - 2bw) / 2)',\n },\n },\n variants: {\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.secondary': DEFAULT_SECONDARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.neutral': DEFAULT_NEUTRAL_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n 'default.link': DEFAULT_LINK_STYLES,\n 'default.item': DEFAULT_ITEM_STYLES,\n 'default.card': DEFAULT_CARD_STYLES,\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.secondary': DANGER_SECONDARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.neutral': DANGER_NEUTRAL_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n 'danger.link': DANGER_LINK_STYLES,\n 'danger.item': DANGER_ITEM_STYLES,\n 'danger.card': DANGER_CARD_STYLES,\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.secondary': SUCCESS_SECONDARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.neutral': SUCCESS_NEUTRAL_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n 'success.link': SUCCESS_LINK_STYLES,\n 'success.item': SUCCESS_ITEM_STYLES,\n 'success.card': SUCCESS_CARD_STYLES,\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.secondary': WARNING_SECONDARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.neutral': WARNING_NEUTRAL_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n 'warning.link': WARNING_LINK_STYLES,\n 'warning.item': WARNING_ITEM_STYLES,\n 'warning.card': WARNING_CARD_STYLES,\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.secondary': NOTE_SECONDARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.neutral': NOTE_NEUTRAL_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n 'note.link': NOTE_LINK_STYLES,\n 'note.item': NOTE_ITEM_STYLES,\n 'note.card': NOTE_CARD_STYLES,\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.secondary': SPECIAL_SECONDARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.neutral': SPECIAL_NEUTRAL_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n 'special.link': SPECIAL_LINK_STYLES,\n 'special.item': SPECIAL_ITEM_STYLES,\n },\n styleProps: CONTAINER_STYLES,\n});\n\nconst Item = <T extends HTMLElement = HTMLDivElement>(\n props: CubeItemProps,\n ref: ForwardedRef<T>,\n) => {\n let {\n children,\n size = 'medium',\n type = 'item',\n theme = 'default',\n mods,\n icon: iconProp,\n rightIcon: rightIconProp,\n prefix,\n suffix,\n description,\n descriptionPlacement,\n labelProps,\n descriptionProps,\n keyboardShortcutProps,\n styles,\n htmlType,\n isSelected,\n hotkeys,\n tooltip = true,\n isDisabled,\n style,\n loadingSlot = 'auto',\n isLoading = false,\n actions,\n autoHideActions = false,\n preserveActionsSpace = false,\n disableActionsFocus = false,\n shape,\n defaultTooltipPlacement = 'top',\n level = 3,\n highlight,\n highlightCaseSensitive = false,\n highlightStyles,\n insideWrapper = false,\n showActions = false,\n ...rest\n } = props;\n\n // Determine if Label will be rendered\n const hasLabel = !!(children || labelProps);\n\n // Set default descriptionPlacement based on type\n // For card/header types, use 'block' only when Label is rendered\n const finalDescriptionPlacement =\n descriptionPlacement ??\n ((type === 'card' || type === 'header') && hasLabel ? 'block' : 'inline');\n\n // Set default shape based on type\n const finalShape = shape ?? (type === 'card' ? 'card' : 'button');\n\n // Loading state makes the component disabled\n const finalIsDisabled =\n isDisabled === true || (isLoading && isDisabled !== false);\n\n // Validate type+theme combinations\n const STANDARD_THEMES = [\n 'default',\n 'success',\n 'danger',\n 'warning',\n 'note',\n 'special',\n ];\n const CARD_THEMES = ['default', 'success', 'danger', 'warning', 'note'];\n const HEADER_THEMES = ['default'];\n\n const isInvalidCombination =\n (type === 'header' && !HEADER_THEMES.includes(theme)) ||\n (type === 'card' && !CARD_THEMES.includes(theme)) ||\n (!['header', 'card'].includes(type) && !STANDARD_THEMES.includes(theme));\n\n useWarn(isInvalidCombination, {\n key: ['Item', 'invalid-type-theme', type, theme],\n args: [\n `Item: Invalid type+theme combination. type=\"${type}\" does not support theme=\"${theme}\".` +\n (type === 'header'\n ? ' The \"header\" type only supports theme: default.'\n : type === 'card'\n ? ' The \"card\" type only supports themes: default, success, danger, warning, note.'\n : ' Standard types support themes: default, success, danger, warning, note, special.'),\n ],\n });\n\n // Warn if link type is used with icons or loading state\n const hasLinkWithIcons = type === 'link' && (iconProp || rightIconProp);\n const hasLinkWithLoading = type === 'link' && isLoading;\n const hasLinkRestrictions = hasLinkWithIcons || hasLinkWithLoading;\n\n const linkRestrictionMessages: string[] = [];\n if (hasLinkWithIcons) {\n linkRestrictionMessages.push('icons (`icon` or `rightIcon` props)');\n }\n if (hasLinkWithLoading) {\n linkRestrictionMessages.push('loading state (`isLoading` prop)');\n }\n\n useWarn(hasLinkRestrictions, {\n key: ['Item', 'link-restrictions'],\n args: [\n `Item: The \"link\" type does not support ${linkRestrictionMessages.join(' or ')}. Remove these props when using type=\"link\".`,\n ],\n });\n\n // Determine if we should show checkbox instead of icon\n const hasCheckbox = iconProp === 'checkbox';\n\n // Determine if size is custom (number or unrecognized string)\n const isCustomSize =\n typeof size === 'number' ||\n !(ITEM_SIZE_VALUES as readonly string[]).includes(size);\n const sizeTokenValue =\n typeof size === 'number' ? `${size}px` : isCustomSize ? size : undefined;\n\n // Base mods for icon resolution (without icon-dependent mods)\n const baseMods = useMemo<ItemMods>(\n () => ({\n disabled: finalIsDisabled,\n selected: isSelected === true,\n loading: isLoading,\n ...(!isCustomSize && { size: size as string }),\n type,\n theme,\n shape: finalShape,\n ...mods,\n }),\n [\n finalIsDisabled,\n isSelected,\n isLoading,\n size,\n isCustomSize,\n type,\n theme,\n finalShape,\n mods,\n ],\n );\n\n // Resolve dynamic icon props (skip resolution for 'checkbox' special value)\n const resolvedIcon = useMemo(() => {\n if (hasCheckbox) {\n return { content: null, hasSlot: true };\n }\n return resolveIcon(iconProp as DynamicIcon<ItemMods>, baseMods);\n }, [iconProp, baseMods, hasCheckbox]);\n\n const resolvedRightIcon = useMemo(\n () => resolveIcon(rightIconProp, baseMods),\n [rightIconProp, baseMods],\n );\n\n // Determine which slot to use for loading when \"auto\" is selected\n // Must be computed before hasIconSlot/hasRightIconSlot since they depend on it\n const resolvedLoadingSlot = useMemo(() => {\n if (loadingSlot !== 'auto') return loadingSlot;\n\n // Auto logic: prefer icon if present, then rightIcon, fallback to icon\n if (resolvedRightIcon.hasSlot && !resolvedIcon.hasSlot) return 'rightIcon';\n return 'icon'; // fallback\n }, [loadingSlot, resolvedIcon.hasSlot, resolvedRightIcon.hasSlot]);\n\n // Determine if icon slots should render (original slot OR loading state targets this slot)\n const hasIconSlot =\n resolvedIcon.hasSlot || (isLoading && resolvedLoadingSlot === 'icon');\n const hasRightIconSlot =\n resolvedRightIcon.hasSlot ||\n (isLoading && resolvedLoadingSlot === 'rightIcon');\n\n const showDescription = useMemo(() => {\n const copyProps = { ...descriptionProps };\n delete copyProps.id;\n return !!(description || Object.keys(copyProps).length > 0);\n }, [description, descriptionProps]);\n\n // Apply loading state to appropriate slots\n const finalIcon =\n isLoading && resolvedLoadingSlot === 'icon' ? (\n <LoadingIcon />\n ) : (\n resolvedIcon.content\n );\n const finalRightIcon =\n isLoading && resolvedLoadingSlot === 'rightIcon' ? (\n <LoadingIcon />\n ) : (\n resolvedRightIcon.content\n );\n\n // Generate stable keys for icon transitions based on icon type\n const iconKey = hasCheckbox\n ? 'checkbox'\n : isLoading && resolvedLoadingSlot === 'icon'\n ? 'loading'\n : isValidElement(finalIcon)\n ? (finalIcon.type as any)?.displayName ||\n (finalIcon.type as any)?.name ||\n 'icon'\n : finalIcon\n ? 'icon'\n : 'empty';\n\n const rightIconKey =\n isLoading && resolvedLoadingSlot === 'rightIcon'\n ? 'loading'\n : isValidElement(finalRightIcon)\n ? (finalRightIcon.type as any)?.displayName ||\n (finalRightIcon.type as any)?.name ||\n 'icon'\n : finalRightIcon\n ? 'icon'\n : 'empty';\n const finalPrefix =\n isLoading && resolvedLoadingSlot === 'prefix' ? <LoadingIcon /> : prefix;\n\n // Build final suffix: loading icon, custom suffix, or HotKeys hint\n const finalSuffix =\n isLoading && resolvedLoadingSlot === 'suffix' ? (\n <LoadingIcon />\n ) : (\n suffix ??\n (hotkeys ? (\n <HotKeys\n {...(keyboardShortcutProps as any)}\n type={type === 'primary' ? 'primary' : 'default'}\n styles={{ padding: '1x left', opacity: finalIsDisabled ? 0.5 : 1 }}\n >\n {hotkeys}\n </HotKeys>\n ) : undefined)\n );\n\n // Register global hotkey if provided\n useHotkeys(\n typeof hotkeys === 'string' ? hotkeys.toLowerCase() : '',\n () => {\n if (!hotkeys) return;\n if (finalIsDisabled) return;\n // Simulate a click on the element so all existing handlers run\n if (ref && typeof ref === 'object' && ref.current) {\n (ref.current as HTMLElement).click();\n }\n },\n {\n enableOnContentEditable: true,\n enabled: !!hotkeys,\n preventDefault: true,\n enableOnFormTags: true,\n },\n [hotkeys, finalIsDisabled],\n );\n\n const finalMods = useMemo<ItemMods>(() => {\n return {\n ...baseMods,\n 'has-icon': hasIconSlot,\n 'has-start-content': !!(hasIconSlot || finalPrefix),\n 'has-end-content': !!(hasRightIconSlot || finalSuffix || actions),\n 'has-right-icon': hasRightIconSlot,\n 'has-label': hasLabel,\n 'has-prefix': !!finalPrefix,\n 'has-suffix': !!finalSuffix,\n 'has-description': showDescription,\n 'has-actions': !!actions,\n 'has-actions-content': !!(actions && actions !== true),\n 'auto-hide-actions': autoHideActions === true,\n 'preserve-actions-space': preserveActionsSpace === true,\n 'inside-wrapper': insideWrapper,\n 'actions-shown': showActions && insideWrapper,\n checkbox: hasCheckbox,\n description: showDescription ? finalDescriptionPlacement : 'none',\n };\n }, [\n baseMods,\n hasIconSlot,\n hasRightIconSlot,\n finalPrefix,\n finalSuffix,\n showDescription,\n finalDescriptionPlacement,\n hasCheckbox,\n actions,\n autoHideActions,\n preserveActionsSpace,\n hasLabel,\n showActions,\n insideWrapper,\n ]);\n\n const {\n labelProps: finalLabelProps,\n labelRef,\n renderWithTooltip,\n } = useAutoTooltip({\n tooltip,\n children,\n labelProps,\n isDynamicLabel: !!actions,\n });\n\n // Process children with highlight if applicable\n const processedChildren = useMemo(() => {\n if (typeof children === 'string' && highlight) {\n return highlightText(\n children,\n highlight,\n highlightCaseSensitive,\n highlightStyles,\n );\n }\n return children;\n }, [children, highlight, highlightCaseSensitive, highlightStyles]);\n\n // Render function that creates the item element\n const renderItemElement = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n // Use callback ref to merge multiple refs without calling hooks\n const handleRef = (element: HTMLElement | null) => {\n // Set the component's forwarded ref\n if (typeof ref === 'function') {\n ref(element as T | null);\n } else if (ref) {\n (ref as any).current = element;\n }\n // Set the tooltip ref if provided\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n };\n\n return (\n <ItemElement\n ref={handleRef}\n variant={\n theme && type\n ? (`${type === 'header' ? 'default' : theme}.${type === 'header' ? 'item' : type}` as ItemVariant)\n : undefined\n }\n disabled={finalIsDisabled}\n aria-disabled={finalIsDisabled}\n aria-selected={isSelected}\n mods={finalMods}\n styles={styles}\n tokens={sizeTokenValue ? { $size: sizeTokenValue } : undefined}\n type={htmlType as any}\n {...mergeProps(rest, tooltipTriggerProps || {})}\n style={style}\n >\n {hasIconSlot && (\n <div data-element=\"Icon\">\n <IconSwitch noWrapper contentKey={iconKey}>\n {hasCheckbox ? <CheckIcon /> : finalIcon}\n </IconSwitch>\n </div>\n )}\n {finalPrefix && <div data-element=\"Prefix\">{finalPrefix}</div>}\n {children || labelProps\n ? (() => {\n const LabelTag =\n type === 'header' || type === 'card'\n ? (`h${level}` as const)\n : 'div';\n return (\n <LabelTag\n data-element=\"Label\"\n {...finalLabelProps}\n ref={labelRef}\n >\n {processedChildren}\n </LabelTag>\n );\n })()\n : null}\n {showDescription ? (\n <div data-element=\"Description\" {...descriptionProps}>\n {description}\n </div>\n ) : null}\n {finalSuffix && <div data-element=\"Suffix\">{finalSuffix}</div>}\n {hasRightIconSlot && (\n <div data-element=\"RightIcon\">\n <IconSwitch noWrapper contentKey={rightIconKey}>\n {finalRightIcon}\n </IconSwitch>\n </div>\n )}\n {actions && (\n <div data-element=\"Actions\" {...ACTIONS_EVENT_HANDLERS}>\n {actions !== true ? (\n <ItemActionProvider\n type={type}\n theme={theme}\n disableActionsFocus={disableActionsFocus}\n isDisabled={finalIsDisabled}\n >\n {actions}\n </ItemActionProvider>\n ) : null}\n </div>\n )}\n </ItemElement>\n );\n };\n\n return renderWithTooltip(renderItemElement, defaultTooltipPlacement);\n};\n\nconst _Item = Object.assign(forwardRef(Item), {\n Action: ItemAction,\n Badge: ItemBadge,\n});\n\nexport { _Item as Item };\n\n/**\n * @deprecated Use `Item` instead. This export will be removed in a future version.\n */\nexport { _Item as ItemBase };\nexport type { CubeItemProps as CubeItemBaseProps };\n"],"mappings":"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"}
1
+ {"version":3,"file":"Item.js","names":["HotKeys"],"sources":["../../../../src/components/content/Item/Item.tsx"],"sourcesContent":["import {\n BaseProps,\n CONTAINER_STYLES,\n ContainerStyleProps,\n Mods,\n Props,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n ForwardedRef,\n forwardRef,\n HTMLAttributes,\n isValidElement,\n KeyboardEvent,\n MouseEvent,\n PointerEvent,\n ReactNode,\n RefObject,\n useMemo,\n} from 'react';\nimport { OverlayProps } from 'react-aria';\nimport { useHotkeys } from 'react-hotkeys-hook';\n\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport {\n DANGER_CARD_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_ITEM_STYLES,\n DANGER_LINK_STYLES,\n DANGER_OUTLINE_2_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CARD_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_ITEM_STYLES,\n DEFAULT_LINK_STYLES,\n DEFAULT_OUTLINE_2_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n ItemVariant,\n NOTE_CARD_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_ITEM_STYLES,\n NOTE_LINK_STYLES,\n NOTE_OUTLINE_2_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_ITEM_STYLES,\n SPECIAL_LINK_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CARD_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_ITEM_STYLES,\n SUCCESS_LINK_STYLES,\n SUCCESS_OUTLINE_2_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CARD_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_ITEM_STYLES,\n WARNING_LINK_STYLES,\n WARNING_OUTLINE_2_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 { DynamicIcon, mergeProps, resolveIcon } from '../../../utils/react';\nimport { ItemAction } from '../../actions/ItemAction';\nimport { ItemActionProvider } from '../../actions/ItemActionContext';\nimport { IconSwitch } from '../../helpers/IconSwitch/IconSwitch';\nimport { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\nimport { highlightText } from '../highlightText';\nimport { HotKeys } from '../HotKeys';\nimport { ItemBadge } from '../ItemBadge';\nimport { useAutoTooltip } from '../use-auto-tooltip';\n\nconst ITEM_SIZE_VALUES = [\n 'xsmall',\n 'small',\n 'medium',\n 'large',\n 'xlarge',\n 'inline',\n] as const;\n\n/** Known modifiers for Item component */\nexport type ItemMods = Mods<{\n 'has-icon'?: boolean;\n 'has-start-content'?: boolean;\n 'has-end-content'?: boolean;\n 'has-right-icon'?: boolean;\n 'has-label'?: boolean;\n 'has-prefix'?: boolean;\n 'has-suffix'?: boolean;\n 'has-description'?: boolean;\n 'has-actions'?: boolean;\n 'has-actions-content'?: boolean;\n 'auto-hide-actions'?: boolean;\n 'preserve-actions-space'?: boolean;\n checkmark?: boolean;\n disabled?: boolean;\n selected?: boolean;\n loading?: boolean;\n size?: string;\n description?: string;\n type?: string;\n theme?: string;\n shape?: string;\n}>;\n\nexport interface CubeItemProps extends BaseProps, ContainerStyleProps {\n icon?: DynamicIcon<ItemMods> | 'checkmark';\n rightIcon?: DynamicIcon<ItemMods>;\n prefix?: ReactNode;\n suffix?: ReactNode;\n description?: ReactNode;\n descriptionPlacement?: 'inline' | 'block';\n /**\n * When true, the item is rendered inside a wrapper element to separate the actions from the item.\n * @default false\n */\n insideWrapper?: boolean;\n /**\n * Whether the item is selected.\n * @default false\n */\n isSelected?: boolean;\n /**\n * Actions to render inline or placeholder mode for ItemButton wrapper.\n * - ReactNode: renders actions inline as part of the grid layout\n * - true: placeholder mode for ItemButton (enables --actions-width calculation)\n */\n actions?: ReactNode | true;\n /**\n * When true, actions are hidden by default and shown only on hover, focus, or focus-within.\n * Uses opacity transition for visual hiding while maintaining layout space.\n */\n autoHideActions?: boolean;\n /**\n * When true and insideWrapper is true, this controls the visibility of the actions.\n * @default false\n */\n showActions?: boolean;\n /**\n * When true, preserves the actions width when hidden (only changes opacity).\n * Only applies when autoHideActions is true.\n * @default false\n */\n preserveActionsSpace?: boolean;\n /**\n * When true, disables focus on action buttons by setting tabIndex={-1}.\n * @default true\n */\n disableActionsFocus?: boolean;\n size?:\n | 'xsmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xlarge'\n | 'inline'\n | number\n | (string & {});\n type?:\n | 'item'\n | 'header'\n | 'primary'\n | 'outline'\n | 'outline-2'\n | 'clear'\n | 'link'\n | 'card'\n | (string & {});\n theme?:\n | 'default'\n | 'danger'\n | 'success'\n | 'special'\n | 'warning'\n | 'note'\n | (string & {});\n /** Keyboard shortcut that triggers the element when pressed */\n hotkeys?: 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 * HTML button type to avoid implicit form submission when used as `as=\"button\"`.\n * Kept separate from visual `type` prop.\n */\n htmlType?: 'button' | 'submit' | 'reset';\n labelProps?: Props;\n descriptionProps?: Props;\n keyboardShortcutProps?: Props;\n /**\n * The slot which the loading icon should replace in loading state.\n * - \"auto\": Smart selection - prefers icon if present, then rightIcon, fallback to icon\n * - Specific slot names: Always use that slot\n * @default \"auto\"\n */\n loadingSlot?: 'auto' | 'icon' | 'rightIcon' | 'prefix' | 'suffix';\n /**\n * When true, shows loading state by replacing the specified slot with LoadingIcon\n * and makes the component disabled.\n */\n isLoading?: boolean;\n /**\n * Shape of the item's border radius.\n * - `card` - Card shape with larger border radius (`1cr`)\n * - `button` - Button shape with default border radius (default)\n * - `sharp` - Sharp corners with no border radius (`0`)\n * - `pill` - Pill shape with fully rounded ends (`round`)\n * @default \"button\"\n */\n shape?: 'card' | 'button' | 'sharp' | 'pill';\n /**\n * @private\n * Default tooltip placement for the item.\n * @default \"top\"\n */\n defaultTooltipPlacement?: OverlayProps['placement'];\n /**\n * Ref to access the label element directly\n */\n labelRef?: RefObject<HTMLElement>;\n /**\n * Heading level for the Label element when type=\"header\" or type=\"card\".\n * Changes the Label's HTML tag to the corresponding heading (h1-h6).\n * @default 3\n */\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n /**\n * String to highlight within children.\n * Only works when children is a plain string.\n */\n highlight?: string;\n /**\n * Whether highlight matching is case-sensitive.\n * @default false\n */\n highlightCaseSensitive?: boolean;\n /**\n * Custom styles for highlighted text.\n */\n highlightStyles?: Styles;\n /**\n * Variant of the item.\n */\n variant?: ItemVariant;\n}\n\nconst DEFAULT_ICON_STYLES: Styles = {\n $: '>',\n display: 'grid',\n placeItems: 'center',\n placeContent: 'stretch',\n aspectRatio: '1 / 1',\n width: '($size - 2bw)',\n opacity: {\n '': 1,\n 'checkmark & selected': 1,\n 'checkmark & !selected': 0,\n 'checkmark & !selected & hovered': 0.4,\n },\n};\n\nconst ADDITION_STYLES: Styles = {\n $: '>',\n display: 'grid',\n flow: 'column',\n placeItems: 'center',\n placeContent: 'stretch',\n};\n\nconst ACTIONS_EVENT_HANDLERS = {\n onClick: (e: MouseEvent) => e.stopPropagation(),\n onPointerDown: (e: PointerEvent) => e.stopPropagation(),\n onPointerUp: (e: PointerEvent) => e.stopPropagation(),\n onMouseDown: (e: MouseEvent) => e.stopPropagation(),\n onMouseUp: (e: MouseEvent) => e.stopPropagation(),\n onKeyDown: (e: KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.stopPropagation();\n }\n },\n};\n\nconst ItemElement = tasty({\n as: 'div',\n styles: {\n '@interacted':\n 'active | :hover | :focus | :focus-within | :has([data-pressed])',\n\n display: 'inline-grid',\n flow: 'column dense',\n gap: 0,\n outline: 0,\n placeItems: 'stretch',\n placeContent: 'stretch',\n gridTemplate: {\n '': '\"icon prefix label suffix rightIcon actions\" auto \"icon prefix label suffix rightIcon actions\" auto / max-content max-content 1sf max-content max-content max-content',\n 'description=inline':\n '\"icon prefix description suffix rightIcon actions\" auto / max-content max-content 1sf max-content max-content max-content',\n 'description=inline & has-label':\n '\"icon prefix label suffix rightIcon actions\" auto \"icon prefix description suffix rightIcon actions\" auto / max-content max-content 1sf max-content max-content max-content',\n 'description=block':\n '\"icon prefix label suffix rightIcon actions\" auto \"description description description description description description\" auto / max-content max-content 1sf max-content max-content max-content',\n },\n // Prevent items from shrinking inside vertical flex layouts (Menu, ListBox, etc)\n flexShrink: {\n '': 'initial',\n 'menuitem | listboxitem': 0,\n },\n position: 'relative',\n padding: {\n '': 0,\n 'type=card': '.5x',\n },\n margin: 0,\n radius: {\n '': true,\n 'shape=card': '1cr',\n 'shape=button': true,\n 'shape=sharp': '0',\n 'shape=pill': 'round',\n },\n height: {\n '': 'min $size',\n 'size=inline': '(1lh + 2bw)',\n },\n width: {\n '': 'min $size',\n 'has-icon & has-right-icon': 'min ($size * 2)',\n 'size=inline': 'min (1lh + 2bw)',\n },\n border: '#clear',\n fill: {\n '': '#dark.0',\n 'hovered | focused': '#dark.03',\n selected: '#dark.09',\n 'selected & (hovered | focused)': '#dark.12',\n pressed: '#dark.09',\n disabled: '#clear',\n },\n color: {\n '': '#dark-02',\n hovered: '#dark-02',\n pressed: '#dark',\n disabled: '#disabled-surface-text',\n },\n preset: {\n '': 't3',\n '!type=item': 't3m',\n 'size=xsmall': 't4',\n 'size=xlarge': 't2',\n 'size=inline': 'inherit',\n '!type=item & (size=medium | size=small | size=large)': 't3m',\n '!type=item & size=xlarge': 't2m',\n '(type=header | type=card) & (size=xsmall | size=small | size=medium)':\n 'h6',\n '(type=header | type=card) & size=large': 'h5',\n '(type=header | type=card) & size=xlarge': 'h4',\n },\n recipe: 'reset button',\n transition: 'theme',\n outlineOffset: 1,\n cursor: {\n '': 'inherit',\n ':is(a)': 'pointer',\n ':is(button) | listboxitem | menuitem': '$pointer',\n disabled: 'not-allowed',\n },\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 '$block-padding': {\n '': '.5x',\n 'size=xsmall | size=small': '.25x',\n 'size=inline': 0,\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(1x - 1bw)',\n\n '$label-padding-left': {\n '': '$inline-padding',\n 'has-start-content': '0',\n },\n '$label-padding-right': {\n '': '$inline-padding',\n 'has-end-content': '0',\n // Restore padding when actions are hidden AND no other visible end content\n '!inside-wrapper & !has-suffix & !has-right-icon & auto-hide-actions & !preserve-actions-space & !@interacted':\n '$inline-padding',\n 'inside-wrapper & !has-suffix & !has-right-icon & !preserve-actions-space & !actions-shown':\n '$inline-padding',\n },\n '$label-padding-bottom': {\n '': '$block-padding',\n 'description=inline': '0',\n },\n '$description-padding-left': {\n '': '$inline-padding',\n 'has-start-content': 0,\n 'description=block': '($inline-padding - $inline-compensation + 1bw)',\n 'description=block & !has-start-content': '$inline-padding',\n },\n '$description-padding-right': {\n '': '$inline-padding',\n 'has-end-content': 0,\n 'description=block': '($inline-padding - $inline-compensation + 1bw)',\n 'description=block & !has-end-content': '$inline-padding',\n },\n '$description-padding-bottom': {\n '': 0,\n 'has-label & description=inline': '$block-padding',\n 'has-label & description=block':\n 'max($block-padding, (($size - 4x) / 2) + $block-padding)',\n },\n\n Icon: { ...DEFAULT_ICON_STYLES, gridArea: 'icon' },\n\n RightIcon: { ...DEFAULT_ICON_STYLES, gridArea: 'rightIcon' },\n\n Label: {\n $: '>',\n margin: 0,\n gridArea: 'label',\n display: 'block',\n placeSelf: 'center start',\n boxSizing: 'border-box',\n placeContent: 'stretch',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '0 100%',\n preset: 'inherit',\n transition: 'padding',\n padding:\n '$block-padding $label-padding-right $label-padding-bottom $label-padding-left',\n },\n\n Description: {\n $: '>',\n gridArea: 'description',\n preset: {\n '': 't4',\n 'type=card | type=header': 't3',\n },\n placeSelf: 'center start',\n boxSizing: 'border-box',\n color: 'inherit',\n opacity: {\n '': 0.75,\n 'type=card | type=header': 1,\n },\n overflow: 'hidden',\n whiteSpace: {\n '': 'nowrap',\n 'type=card | type=header': 'normal',\n },\n textOverflow: 'ellipsis',\n width: 'initial 100% 100%',\n textAlign: 'left',\n padding:\n '0 $description-padding-right $description-padding-bottom $description-padding-left',\n },\n\n Prefix: {\n ...ADDITION_STYLES,\n gridArea: 'prefix',\n padding: {\n '': '$inline-padding left',\n 'has-icon': 0,\n },\n },\n\n Suffix: {\n ...ADDITION_STYLES,\n gridArea: 'suffix',\n padding: {\n '': '$inline-padding right',\n 'has-right-icon': 0,\n },\n },\n\n Actions: {\n $: '>',\n gridArea: 'actions',\n display: 'flex',\n gap: '1bw',\n placeItems: 'center',\n placeContent: 'end',\n placeSelf: 'stretch',\n padding: {\n '': '0 $side-padding',\n 'inside-wrapper & !actions-shown': 0,\n },\n boxSizing: 'border-box',\n height: 'min ($size - 2bw)',\n width: {\n '': 'fixed ($actions-width, 0px)',\n 'has-actions-content & !auto-hide-actions':\n 'max calc-size(max-content, size)',\n 'has-actions-content & auto-hide-actions & !preserve-actions-space':\n 'max 0px',\n 'has-actions-content & auto-hide-actions & (!preserve-actions-space & ((@interacted & !inside-wrapper) | (inside-wrapper & actions-shown)))':\n 'max calc-size(max-content, size)',\n 'has-actions-content & auto-hide-actions & preserve-actions-space':\n 'max calc-size(max-content, size)',\n },\n opacity: {\n '': 1,\n 'auto-hide-actions': 0,\n 'auto-hide-actions & ((@interacted & !inside-wrapper) | (inside-wrapper & actions-shown))': 1,\n },\n transition:\n 'width $transition ease-out, opacity $transition ease-out, padding $transition ease-out',\n interpolateSize: 'allow-keywords',\n\n // Size for the action buttons\n '$action-size': 'min(max((2x + 2bw), ($size - 1x - 2bw)), (3x - 2bw))',\n // Side padding for the button\n '$side-padding': '(($size - $action-size - 2bw) / 2)',\n },\n },\n variants: {\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.outline-2': DEFAULT_OUTLINE_2_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n 'default.link': DEFAULT_LINK_STYLES,\n 'default.item': DEFAULT_ITEM_STYLES,\n 'default.card': DEFAULT_CARD_STYLES,\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 'danger.item': DANGER_ITEM_STYLES,\n 'danger.card': DANGER_CARD_STYLES,\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 'success.item': SUCCESS_ITEM_STYLES,\n 'success.card': SUCCESS_CARD_STYLES,\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 'warning.item': WARNING_ITEM_STYLES,\n 'warning.card': WARNING_CARD_STYLES,\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 'note.item': NOTE_ITEM_STYLES,\n 'note.card': NOTE_CARD_STYLES,\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 'special.item': SPECIAL_ITEM_STYLES,\n },\n styleProps: CONTAINER_STYLES,\n});\n\nconst Item = <T extends HTMLElement = HTMLDivElement>(\n props: CubeItemProps,\n ref: ForwardedRef<T>,\n) => {\n let {\n children,\n size = 'medium',\n type = 'item',\n theme = 'default',\n mods,\n icon: iconProp,\n rightIcon: rightIconProp,\n prefix,\n suffix,\n description,\n descriptionPlacement,\n labelProps,\n descriptionProps,\n keyboardShortcutProps,\n styles,\n htmlType,\n isSelected,\n hotkeys,\n tooltip = true,\n isDisabled,\n style,\n loadingSlot = 'auto',\n isLoading = false,\n actions,\n autoHideActions = false,\n preserveActionsSpace = false,\n disableActionsFocus = false,\n shape,\n defaultTooltipPlacement = 'top',\n level = 3,\n highlight,\n highlightCaseSensitive = false,\n highlightStyles,\n insideWrapper = false,\n showActions = false,\n ...rest\n } = props;\n\n // Determine if Label will be rendered\n const hasLabel = !!(children || labelProps);\n\n // Set default descriptionPlacement based on type\n // For card/header types, use 'block' only when Label is rendered\n const finalDescriptionPlacement =\n descriptionPlacement ??\n ((type === 'card' || type === 'header') && hasLabel ? 'block' : 'inline');\n\n // Set default shape based on type\n const finalShape = shape ?? (type === 'card' ? 'card' : 'button');\n\n // Loading state makes the component disabled\n const finalIsDisabled =\n isDisabled === true || (isLoading && isDisabled !== false);\n\n // Validate type+theme combinations\n const STANDARD_THEMES = [\n 'default',\n 'success',\n 'danger',\n 'warning',\n 'note',\n 'special',\n ];\n const CARD_THEMES = ['default', 'success', 'danger', 'warning', 'note'];\n const HEADER_THEMES = ['default'];\n\n const isInvalidCombination =\n (type === 'header' && !HEADER_THEMES.includes(theme)) ||\n (type === 'card' && !CARD_THEMES.includes(theme)) ||\n (!['header', 'card'].includes(type) && !STANDARD_THEMES.includes(theme));\n\n useWarn(isInvalidCombination, {\n key: ['Item', 'invalid-type-theme', type, theme],\n args: [\n `Item: Invalid type+theme combination. type=\"${type}\" does not support theme=\"${theme}\".` +\n (type === 'header'\n ? ' The \"header\" type only supports theme: default.'\n : type === 'card'\n ? ' The \"card\" type only supports themes: default, success, danger, warning, note.'\n : ' Standard types support themes: default, success, danger, warning, note, special.'),\n ],\n });\n\n // Warn if link type is used with icons or loading state\n const hasLinkWithIcons = type === 'link' && (iconProp || rightIconProp);\n const hasLinkWithLoading = type === 'link' && isLoading;\n const hasLinkRestrictions = hasLinkWithIcons || hasLinkWithLoading;\n\n const linkRestrictionMessages: string[] = [];\n if (hasLinkWithIcons) {\n linkRestrictionMessages.push('icons (`icon` or `rightIcon` props)');\n }\n if (hasLinkWithLoading) {\n linkRestrictionMessages.push('loading state (`isLoading` prop)');\n }\n\n useWarn(hasLinkRestrictions, {\n key: ['Item', 'link-restrictions'],\n args: [\n `Item: The \"link\" type does not support ${linkRestrictionMessages.join(' or ')}. Remove these props when using type=\"link\".`,\n ],\n });\n\n // Determine if we should show a checkmark instead of icon\n const hasCheckmark = iconProp === 'checkmark';\n\n // Determine if size is custom (number or unrecognized string)\n const isCustomSize =\n typeof size === 'number' ||\n !(ITEM_SIZE_VALUES as readonly string[]).includes(size);\n const sizeTokenValue =\n typeof size === 'number' ? `${size}px` : isCustomSize ? size : undefined;\n\n // Base mods for icon resolution (without icon-dependent mods)\n const baseMods = useMemo<ItemMods>(\n () => ({\n disabled: finalIsDisabled,\n selected: isSelected === true,\n loading: isLoading,\n ...(!isCustomSize && { size: size as string }),\n type,\n theme,\n shape: finalShape,\n ...mods,\n }),\n [\n finalIsDisabled,\n isSelected,\n isLoading,\n size,\n isCustomSize,\n type,\n theme,\n finalShape,\n mods,\n ],\n );\n\n // Resolve dynamic icon props (skip resolution for 'checkmark' special value)\n const resolvedIcon = useMemo(() => {\n if (hasCheckmark) {\n return { content: null, hasSlot: true };\n }\n return resolveIcon(iconProp as DynamicIcon<ItemMods>, baseMods);\n }, [iconProp, baseMods, hasCheckmark]);\n\n const resolvedRightIcon = useMemo(\n () => resolveIcon(rightIconProp, baseMods),\n [rightIconProp, baseMods],\n );\n\n // Determine which slot to use for loading when \"auto\" is selected\n // Must be computed before hasIconSlot/hasRightIconSlot since they depend on it\n const resolvedLoadingSlot = useMemo(() => {\n if (loadingSlot !== 'auto') return loadingSlot;\n\n // Auto logic: prefer icon if present, then rightIcon, fallback to icon\n if (resolvedRightIcon.hasSlot && !resolvedIcon.hasSlot) return 'rightIcon';\n return 'icon'; // fallback\n }, [loadingSlot, resolvedIcon.hasSlot, resolvedRightIcon.hasSlot]);\n\n // Determine if icon slots should render (original slot OR loading state targets this slot)\n const hasIconSlot =\n resolvedIcon.hasSlot || (isLoading && resolvedLoadingSlot === 'icon');\n const hasRightIconSlot =\n resolvedRightIcon.hasSlot ||\n (isLoading && resolvedLoadingSlot === 'rightIcon');\n\n const showDescription = useMemo(() => {\n const copyProps = { ...descriptionProps };\n delete copyProps.id;\n return !!(description || Object.keys(copyProps).length > 0);\n }, [description, descriptionProps]);\n\n // Apply loading state to appropriate slots\n const finalIcon =\n isLoading && resolvedLoadingSlot === 'icon' ? (\n <LoadingIcon />\n ) : (\n resolvedIcon.content\n );\n const finalRightIcon =\n isLoading && resolvedLoadingSlot === 'rightIcon' ? (\n <LoadingIcon />\n ) : (\n resolvedRightIcon.content\n );\n\n // Generate stable keys for icon transitions based on icon type\n const iconKey = hasCheckmark\n ? 'checkmark'\n : isLoading && resolvedLoadingSlot === 'icon'\n ? 'loading'\n : isValidElement(finalIcon)\n ? (finalIcon.type as any)?.displayName ||\n (finalIcon.type as any)?.name ||\n 'icon'\n : finalIcon\n ? 'icon'\n : 'empty';\n\n const rightIconKey =\n isLoading && resolvedLoadingSlot === 'rightIcon'\n ? 'loading'\n : isValidElement(finalRightIcon)\n ? (finalRightIcon.type as any)?.displayName ||\n (finalRightIcon.type as any)?.name ||\n 'icon'\n : finalRightIcon\n ? 'icon'\n : 'empty';\n const finalPrefix =\n isLoading && resolvedLoadingSlot === 'prefix' ? <LoadingIcon /> : prefix;\n\n // Build final suffix: loading icon, custom suffix, or HotKeys hint\n const finalSuffix =\n isLoading && resolvedLoadingSlot === 'suffix' ? (\n <LoadingIcon />\n ) : (\n suffix ??\n (hotkeys ? (\n <HotKeys\n {...(keyboardShortcutProps as any)}\n type={type === 'primary' ? 'primary' : 'default'}\n styles={{ padding: '1x left', opacity: finalIsDisabled ? 0.5 : 1 }}\n >\n {hotkeys}\n </HotKeys>\n ) : undefined)\n );\n\n // Register global hotkey if provided\n useHotkeys(\n typeof hotkeys === 'string' ? hotkeys.toLowerCase() : '',\n () => {\n if (!hotkeys) return;\n if (finalIsDisabled) return;\n // Simulate a click on the element so all existing handlers run\n if (ref && typeof ref === 'object' && ref.current) {\n (ref.current as HTMLElement).click();\n }\n },\n {\n enableOnContentEditable: true,\n enabled: !!hotkeys,\n preventDefault: true,\n enableOnFormTags: true,\n },\n [hotkeys, finalIsDisabled],\n );\n\n const finalMods = useMemo<ItemMods>(() => {\n return {\n ...baseMods,\n 'has-icon': hasIconSlot,\n 'has-start-content': !!(hasIconSlot || finalPrefix),\n 'has-end-content': !!(hasRightIconSlot || finalSuffix || actions),\n 'has-right-icon': hasRightIconSlot,\n 'has-label': hasLabel,\n 'has-prefix': !!finalPrefix,\n 'has-suffix': !!finalSuffix,\n 'has-description': showDescription,\n 'has-actions': !!actions,\n 'has-actions-content': !!(actions && actions !== true),\n 'auto-hide-actions': autoHideActions === true,\n 'preserve-actions-space': preserveActionsSpace === true,\n 'inside-wrapper': insideWrapper,\n 'actions-shown': showActions && insideWrapper,\n checkmark: hasCheckmark,\n description: showDescription ? finalDescriptionPlacement : 'none',\n };\n }, [\n baseMods,\n hasIconSlot,\n hasRightIconSlot,\n finalPrefix,\n finalSuffix,\n showDescription,\n finalDescriptionPlacement,\n hasCheckmark,\n actions,\n autoHideActions,\n preserveActionsSpace,\n hasLabel,\n showActions,\n insideWrapper,\n ]);\n\n const {\n labelProps: finalLabelProps,\n labelRef,\n renderWithTooltip,\n } = useAutoTooltip({\n tooltip,\n children,\n labelProps,\n isDynamicLabel: !!actions,\n });\n\n // Process children with highlight if applicable\n const processedChildren = useMemo(() => {\n if (typeof children === 'string' && highlight) {\n return highlightText(\n children,\n highlight,\n highlightCaseSensitive,\n highlightStyles,\n );\n }\n return children;\n }, [children, highlight, highlightCaseSensitive, highlightStyles]);\n\n // Render function that creates the item element\n const renderItemElement = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n // Use callback ref to merge multiple refs without calling hooks\n const handleRef = (element: HTMLElement | null) => {\n // Set the component's forwarded ref\n if (typeof ref === 'function') {\n ref(element as T | null);\n } else if (ref) {\n (ref as any).current = element;\n }\n // Set the tooltip ref if provided\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n };\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 item still renders.\n const effectiveType =\n theme === 'special' && type === 'outline-2' ? 'outline' : type;\n\n return (\n <ItemElement\n ref={handleRef}\n variant={\n theme && effectiveType\n ? (`${effectiveType === 'header' ? 'default' : theme}.${effectiveType === 'header' ? 'item' : effectiveType}` as ItemVariant)\n : undefined\n }\n disabled={finalIsDisabled}\n aria-disabled={finalIsDisabled}\n aria-selected={isSelected}\n mods={finalMods}\n styles={styles}\n tokens={sizeTokenValue ? { $size: sizeTokenValue } : undefined}\n type={htmlType as any}\n {...mergeProps(rest, tooltipTriggerProps || {})}\n style={style}\n >\n {hasIconSlot && (\n <div data-element=\"Icon\">\n <IconSwitch noWrapper contentKey={iconKey}>\n {hasCheckmark ? <CheckIcon /> : finalIcon}\n </IconSwitch>\n </div>\n )}\n {finalPrefix && <div data-element=\"Prefix\">{finalPrefix}</div>}\n {children || labelProps\n ? (() => {\n const LabelTag =\n type === 'header' || type === 'card'\n ? (`h${level}` as const)\n : 'div';\n return (\n <LabelTag\n data-element=\"Label\"\n {...finalLabelProps}\n ref={labelRef}\n >\n {processedChildren}\n </LabelTag>\n );\n })()\n : null}\n {showDescription ? (\n <div data-element=\"Description\" {...descriptionProps}>\n {description}\n </div>\n ) : null}\n {finalSuffix && <div data-element=\"Suffix\">{finalSuffix}</div>}\n {hasRightIconSlot && (\n <div data-element=\"RightIcon\">\n <IconSwitch noWrapper contentKey={rightIconKey}>\n {finalRightIcon}\n </IconSwitch>\n </div>\n )}\n {actions && (\n <div data-element=\"Actions\" {...ACTIONS_EVENT_HANDLERS}>\n {actions !== true ? (\n <ItemActionProvider\n type={type}\n theme={theme}\n disableActionsFocus={disableActionsFocus}\n isDisabled={finalIsDisabled}\n >\n {actions}\n </ItemActionProvider>\n ) : null}\n </div>\n )}\n </ItemElement>\n );\n };\n\n return renderWithTooltip(renderItemElement, defaultTooltipPlacement);\n};\n\nconst _Item = Object.assign(forwardRef(Item), {\n Action: ItemAction,\n Badge: ItemBadge,\n});\n\nexport { _Item as Item };\n\n/**\n * @deprecated Use `Item` instead. This export will be removed in a future version.\n */\nexport { _Item as ItemBase };\nexport type { CubeItemProps as CubeItemBaseProps };\n"],"mappings":"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"}
@@ -6,11 +6,11 @@ import { ComponentProps, ReactNode } from "react";
6
6
 
7
7
  //#region src/components/content/ItemBadge/ItemBadge.d.ts
8
8
  interface CubeItemBadgeProps extends BaseProps {
9
- icon?: ReactNode | 'checkbox';
9
+ icon?: ReactNode | 'checkmark';
10
10
  children?: ReactNode;
11
11
  isLoading?: boolean;
12
12
  isSelected?: boolean;
13
- type?: 'primary' | 'secondary' | 'neutral' | 'clear' | (string & {});
13
+ type?: 'primary' | 'outline' | 'clear' | (string & {});
14
14
  theme?: 'default' | 'danger' | 'success' | 'special' | (string & {});
15
15
  tooltip?: string | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {
16
16
  title?: string;
@@ -1,7 +1,7 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
3
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
4
- import { DANGER_CLEAR_STYLES, DANGER_NEUTRAL_STYLES, DANGER_PRIMARY_STYLES, DANGER_SECONDARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_NEUTRAL_STYLES, DEFAULT_PRIMARY_STYLES, DEFAULT_SECONDARY_STYLES, ITEM_ACTION_BASE_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_NEUTRAL_STYLES, SPECIAL_PRIMARY_STYLES, SPECIAL_SECONDARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_NEUTRAL_STYLES, SUCCESS_PRIMARY_STYLES, SUCCESS_SECONDARY_STYLES } from "../../../data/item-themes.js";
4
+ import { DANGER_CLEAR_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, ITEM_ACTION_BASE_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_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 "../../actions/ItemActionContext.js";
@@ -18,37 +18,33 @@ const ItemBadgeElement = tasty({
18
18
  }),
19
19
  variants: {
20
20
  "default.primary": DEFAULT_PRIMARY_STYLES,
21
- "default.secondary": DEFAULT_SECONDARY_STYLES,
22
- "default.neutral": DEFAULT_NEUTRAL_STYLES,
21
+ "default.outline": DEFAULT_OUTLINE_STYLES,
23
22
  "default.clear": DEFAULT_CLEAR_STYLES,
24
23
  "danger.primary": DANGER_PRIMARY_STYLES,
25
- "danger.secondary": DANGER_SECONDARY_STYLES,
26
- "danger.neutral": DANGER_NEUTRAL_STYLES,
24
+ "danger.outline": DANGER_OUTLINE_STYLES,
27
25
  "danger.clear": DANGER_CLEAR_STYLES,
28
26
  "success.primary": SUCCESS_PRIMARY_STYLES,
29
- "success.secondary": SUCCESS_SECONDARY_STYLES,
30
- "success.neutral": SUCCESS_NEUTRAL_STYLES,
27
+ "success.outline": SUCCESS_OUTLINE_STYLES,
31
28
  "success.clear": SUCCESS_CLEAR_STYLES,
32
29
  "special.primary": SPECIAL_PRIMARY_STYLES,
33
- "special.secondary": SPECIAL_SECONDARY_STYLES,
34
- "special.neutral": SPECIAL_NEUTRAL_STYLES,
30
+ "special.outline": SPECIAL_OUTLINE_STYLES,
35
31
  "special.clear": SPECIAL_CLEAR_STYLES
36
32
  }
37
33
  });
38
34
  const ItemBadge = forwardRef(function ItemBadge(allProps, ref) {
39
35
  const { type: contextType, theme: contextTheme } = useItemActionContext();
40
- const { type = contextType ?? "neutral", theme = contextTheme ?? "default", icon, children, isLoading = false, isSelected = false, tooltip, mods, ...rest } = allProps;
41
- const hasCheckbox = icon === "checkbox";
42
- const finalIcon = isLoading ? /* @__PURE__ */ jsx(LoadingIcon, {}) : hasCheckbox ? /* @__PURE__ */ jsx(CheckIcon, {}) : icon;
36
+ const { type = contextType ?? "clear", theme = contextTheme ?? "default", icon, children, isLoading = false, isSelected = false, tooltip, mods, ...rest } = allProps;
37
+ const hasCheckmark = icon === "checkmark";
38
+ const finalIcon = isLoading ? /* @__PURE__ */ jsx(LoadingIcon, {}) : hasCheckmark ? /* @__PURE__ */ jsx(CheckIcon, {}) : icon;
43
39
  const finalMods = useMemo(() => ({
44
- checkbox: hasCheckbox,
40
+ checkmark: hasCheckmark,
45
41
  selected: isSelected,
46
42
  loading: isLoading,
47
43
  "has-label": !!children,
48
44
  context: !!contextType,
49
45
  ...mods
50
46
  }), [
51
- hasCheckbox,
47
+ hasCheckmark,
52
48
  isSelected,
53
49
  isLoading,
54
50
  children,
@@ -72,9 +68,7 @@ const ItemBadge = forwardRef(function ItemBadge(allProps, ref) {
72
68
  }
73
69
  return {};
74
70
  }, [tooltip]);
75
- const finalType = useMemo(() => {
76
- return theme !== "default" && type === "neutral" ? "clear" : type;
77
- }, [theme, type]);
71
+ const finalType = type;
78
72
  const renderBadge = (tooltipTriggerProps, tooltipRef) => {
79
73
  const handleRef = (element) => {
80
74
  if (typeof ref === "function") ref(element);
@@ -1 +1 @@
1
- {"version":3,"file":"ItemBadge.js","names":[],"sources":["../../../../src/components/content/ItemBadge/ItemBadge.tsx"],"sourcesContent":["import { BaseProps, mergeStyles, tasty } from '@tenphi/tasty';\nimport {\n ComponentProps,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n RefObject,\n useMemo,\n} from 'react';\n\nimport {\n DANGER_CLEAR_STYLES,\n DANGER_NEUTRAL_STYLES,\n DANGER_PRIMARY_STYLES,\n DANGER_SECONDARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_NEUTRAL_STYLES,\n DEFAULT_PRIMARY_STYLES,\n DEFAULT_SECONDARY_STYLES,\n ITEM_ACTION_BASE_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_NEUTRAL_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SPECIAL_SECONDARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_NEUTRAL_STYLES,\n SUCCESS_PRIMARY_STYLES,\n SUCCESS_SECONDARY_STYLES,\n} from '../../../data/item-themes';\nimport { CheckIcon } from '../../../icons/CheckIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { useItemActionContext } from '../../actions/ItemActionContext';\nimport { TooltipProvider } from '../../overlays/Tooltip/TooltipProvider';\n\nexport interface CubeItemBadgeProps extends BaseProps {\n icon?: ReactNode | 'checkbox';\n children?: ReactNode;\n isLoading?: boolean;\n isSelected?: boolean;\n type?: 'primary' | 'secondary' | 'neutral' | 'clear' | (string & {});\n theme?: 'default' | 'danger' | 'success' | 'special' | (string & {});\n tooltip?:\n | string\n | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {\n title?: string;\n });\n}\n\ntype ItemBadgeVariant =\n | 'default.primary'\n | 'default.secondary'\n | 'default.neutral'\n | 'default.clear'\n | 'danger.primary'\n | 'danger.secondary'\n | 'danger.neutral'\n | 'danger.clear'\n | 'success.primary'\n | 'success.secondary'\n | 'success.neutral'\n | 'success.clear'\n | 'special.primary'\n | 'special.secondary'\n | 'special.neutral'\n | 'special.clear';\n\nconst ItemBadgeElement = tasty({\n qa: 'ItemBadge',\n styles: mergeStyles(ITEM_ACTION_BASE_STYLES, {\n cursor: 'default',\n border: {\n // extend\n 'type=primary': '#clear',\n },\n }),\n variants: {\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.secondary': DEFAULT_SECONDARY_STYLES,\n 'default.neutral': DEFAULT_NEUTRAL_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.secondary': DANGER_SECONDARY_STYLES,\n 'danger.neutral': DANGER_NEUTRAL_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.secondary': SUCCESS_SECONDARY_STYLES,\n 'success.neutral': SUCCESS_NEUTRAL_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.secondary': SPECIAL_SECONDARY_STYLES,\n 'special.neutral': SPECIAL_NEUTRAL_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n },\n});\n\nexport const ItemBadge = forwardRef<HTMLDivElement, CubeItemBadgeProps>(\n function ItemBadge(allProps, ref) {\n const { type: contextType, theme: contextTheme } = useItemActionContext();\n\n const {\n type = contextType ?? 'neutral',\n theme = contextTheme ?? 'default',\n icon,\n children,\n isLoading = false,\n isSelected = false,\n tooltip,\n mods,\n ...rest\n } = allProps;\n\n // Determine if we should show checkbox\n const hasCheckbox = icon === 'checkbox';\n\n // Determine final icon (loading takes precedence)\n const finalIcon = isLoading ? (\n <LoadingIcon />\n ) : hasCheckbox ? (\n <CheckIcon />\n ) : (\n icon\n );\n\n // Build modifiers\n const finalMods = useMemo(\n () => ({\n checkbox: hasCheckbox,\n selected: isSelected,\n loading: isLoading,\n 'has-label': !!children,\n context: !!contextType,\n ...mods,\n }),\n [hasCheckbox, isSelected, isLoading, children, contextType, mods],\n );\n\n // Extract aria-label from tooltip if needed\n const ariaLabel = useMemo(() => {\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n if (typeof tooltip === 'object' && tooltip.title) {\n return tooltip.title;\n }\n return rest['aria-label'];\n }, [tooltip, rest]);\n\n // Determine if we should show tooltip (icon-only badges)\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 = useMemo(() => {\n return theme !== 'default' && type === 'neutral' ? 'clear' : type;\n }, [theme, type]);\n\n // Render function that accepts tooltip trigger props and ref\n const renderBadge = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n // Merge tooltip ref with component ref if provided\n const handleRef = (element: HTMLDivElement | null) => {\n // Set the component ref\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n (ref as any).current = element;\n }\n // Set the tooltip ref\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n };\n\n return (\n <ItemBadgeElement\n ref={handleRef}\n variant={`${theme}.${finalType}` as ItemBadgeVariant}\n data-theme={theme}\n data-type={finalType}\n aria-label={ariaLabel}\n mods={finalMods}\n {...mergeProps(rest, tooltipTriggerProps || {})}\n >\n {finalIcon && <div data-element=\"Icon\">{finalIcon}</div>}\n {children}\n </ItemBadgeElement>\n );\n };\n\n // Wrap with tooltip if needed\n if (showTooltip && tooltipContent) {\n return (\n <TooltipProvider title={tooltipContent} {...tooltipProps}>\n {(triggerProps, tooltipRef) => renderBadge(triggerProps, tooltipRef)}\n </TooltipProvider>\n );\n }\n\n return renderBadge();\n },\n);\n\nexport type { CubeItemBadgeProps as ItemBadgeProps };\n"],"mappings":";;;;;;;;;;;;AAmEA,MAAM,mBAAmB,MAAM;CAC7B,IAAI;CACJ,QAAQ,YAAY,yBAAyB;EAC3C,QAAQ;EACR,QAAQ,EAEN,gBAAgB,UACjB;EACF,CAAC;CACF,UAAU;EAER,mBAAmB;EACnB,qBAAqB;EACrB,mBAAmB;EACnB,iBAAiB;EAGjB,kBAAkB;EAClB,oBAAoB;EACpB,kBAAkB;EAClB,gBAAgB;EAGhB,mBAAmB;EACnB,qBAAqB;EACrB,mBAAmB;EACnB,iBAAiB;EAGjB,mBAAmB;EACnB,qBAAqB;EACrB,mBAAmB;EACnB,iBAAiB;EAClB;CACF,CAAC;AAEF,MAAa,YAAY,WACvB,SAAS,UAAU,UAAU,KAAK;CAChC,MAAM,EAAE,MAAM,aAAa,OAAO,iBAAiB,sBAAsB;CAEzE,MAAM,EACJ,OAAO,eAAe,WACtB,QAAQ,gBAAgB,WACxB,MACA,UACA,YAAY,OACZ,aAAa,OACb,SACA,MACA,GAAG,SACD;CAGJ,MAAM,cAAc,SAAS;CAG7B,MAAM,YAAY,YAChB,oBAAC,gBAAc,GACb,cACF,oBAAC,cAAY,GAEb;CAIF,MAAM,YAAY,eACT;EACL,UAAU;EACV,UAAU;EACV,SAAS;EACT,aAAa,CAAC,CAAC;EACf,SAAS,CAAC,CAAC;EACX,GAAG;EACJ,GACD;EAAC;EAAa;EAAY;EAAW;EAAU;EAAa;EAAK,CAClE;CAGD,MAAM,YAAY,cAAc;AAC9B,MAAI,OAAO,YAAY,SACrB,QAAO;AAET,MAAI,OAAO,YAAY,YAAY,QAAQ,MACzC,QAAO,QAAQ;AAEjB,SAAO,KAAK;IACX,CAAC,SAAS,KAAK,CAAC;CAGnB,MAAM,cAAc,CAAC,YAAY;CAGjC,MAAM,iBAAiB,cAAc;AACnC,MAAI,OAAO,YAAY,SACrB,QAAO;AAET,MAAI,OAAO,YAAY,YAAY,QAAQ,MACzC,QAAO,QAAQ;IAGhB,CAAC,QAAQ,CAAC;CAEb,MAAM,eAAe,cAAc;AACjC,MAAI,OAAO,YAAY,UAAU;GAC/B,MAAM,EAAE,OAAO,GAAG,SAAS;AAC3B,UAAO;;AAET,SAAO,EAAE;IACR,CAAC,QAAQ,CAAC;CAEb,MAAM,YAAY,cAAc;AAC9B,SAAO,UAAU,aAAa,SAAS,YAAY,UAAU;IAC5D,CAAC,OAAO,KAAK,CAAC;CAGjB,MAAM,eACJ,qBACA,eACG;EAEH,MAAM,aAAa,YAAmC;AAEpD,OAAI,OAAO,QAAQ,WACjB,KAAI,QAAQ;YACH,IACT,CAAC,IAAY,UAAU;AAGzB,OAAI,WACF,CAAC,WAAmB,UAAU;;AAIlC,SACE,qBAAC;GACC,KAAK;GACL,SAAS,GAAG,MAAM,GAAG;GACrB,cAAY;GACZ,aAAW;GACX,cAAY;GACZ,MAAM;GACN,GAAI,WAAW,MAAM,uBAAuB,EAAE,CAAC;cAE9C,aAAa,oBAAC;IAAI,gBAAa;cAAQ;KAAgB,EACvD;IACgB;;AAKvB,KAAI,eAAe,eACjB,QACE,oBAAC;EAAgB,OAAO;EAAgB,GAAI;aACxC,cAAc,eAAe,YAAY,cAAc,WAAW;GACpD;AAItB,QAAO,aAAa;EAEvB"}
1
+ {"version":3,"file":"ItemBadge.js","names":[],"sources":["../../../../src/components/content/ItemBadge/ItemBadge.tsx"],"sourcesContent":["import { BaseProps, mergeStyles, tasty } from '@tenphi/tasty';\nimport {\n ComponentProps,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n RefObject,\n useMemo,\n} from 'react';\n\nimport {\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 SPECIAL_CLEAR_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { CheckIcon } from '../../../icons/CheckIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { useItemActionContext } from '../../actions/ItemActionContext';\nimport { TooltipProvider } from '../../overlays/Tooltip/TooltipProvider';\n\nexport interface CubeItemBadgeProps extends BaseProps {\n icon?: ReactNode | 'checkmark';\n children?: ReactNode;\n isLoading?: boolean;\n isSelected?: boolean;\n type?: 'primary' | 'outline' | 'clear' | (string & {});\n theme?: 'default' | 'danger' | 'success' | 'special' | (string & {});\n tooltip?:\n | string\n | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {\n title?: string;\n });\n}\n\ntype ItemBadgeVariant =\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 | 'special.primary'\n | 'special.outline'\n | 'special.clear';\n\nconst ItemBadgeElement = tasty({\n qa: 'ItemBadge',\n styles: mergeStyles(ITEM_ACTION_BASE_STYLES, {\n cursor: 'default',\n border: {\n // extend\n 'type=primary': '#clear',\n },\n }),\n variants: {\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 // 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 ItemBadge = forwardRef<HTMLDivElement, CubeItemBadgeProps>(\n function ItemBadge(allProps, ref) {\n const { type: contextType, theme: contextTheme } = useItemActionContext();\n\n const {\n type = contextType ?? 'clear',\n theme = contextTheme ?? 'default',\n icon,\n children,\n isLoading = false,\n isSelected = false,\n tooltip,\n mods,\n ...rest\n } = allProps;\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 ...mods,\n }),\n [hasCheckmark, isSelected, isLoading, children, contextType, mods],\n );\n\n // Extract aria-label from tooltip if needed\n const ariaLabel = useMemo(() => {\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n if (typeof tooltip === 'object' && tooltip.title) {\n return tooltip.title;\n }\n return rest['aria-label'];\n }, [tooltip, rest]);\n\n // Determine if we should show tooltip (icon-only badges)\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 renderBadge = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n // Merge tooltip ref with component ref if provided\n const handleRef = (element: HTMLDivElement | null) => {\n // Set the component ref\n if (typeof ref === 'function') {\n ref(element);\n } else if (ref) {\n (ref as any).current = element;\n }\n // Set the tooltip ref\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n };\n\n return (\n <ItemBadgeElement\n ref={handleRef}\n variant={`${theme}.${finalType}` as ItemBadgeVariant}\n data-theme={theme}\n data-type={finalType}\n aria-label={ariaLabel}\n mods={finalMods}\n {...mergeProps(rest, tooltipTriggerProps || {})}\n >\n {finalIcon && <div data-element=\"Icon\">{finalIcon}</div>}\n {children}\n </ItemBadgeElement>\n );\n };\n\n // Wrap with tooltip if needed\n if (showTooltip && tooltipContent) {\n return (\n <TooltipProvider title={tooltipContent} {...tooltipProps}>\n {(triggerProps, tooltipRef) => renderBadge(triggerProps, tooltipRef)}\n </TooltipProvider>\n );\n }\n\n return renderBadge();\n },\n);\n\nexport type { CubeItemBadgeProps as ItemBadgeProps };\n"],"mappings":";;;;;;;;;;;;AA2DA,MAAM,mBAAmB,MAAM;CAC7B,IAAI;CACJ,QAAQ,YAAY,yBAAyB;EAC3C,QAAQ;EACR,QAAQ,EAEN,gBAAgB,UACjB;EACF,CAAC;CACF,UAAU;EAER,mBAAmB;EACnB,mBAAmB;EACnB,iBAAiB;EAGjB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;EAGhB,mBAAmB;EACnB,mBAAmB;EACnB,iBAAiB;EAGjB,mBAAmB;EACnB,mBAAmB;EACnB,iBAAiB;EAClB;CACF,CAAC;AAEF,MAAa,YAAY,WACvB,SAAS,UAAU,UAAU,KAAK;CAChC,MAAM,EAAE,MAAM,aAAa,OAAO,iBAAiB,sBAAsB;CAEzE,MAAM,EACJ,OAAO,eAAe,SACtB,QAAQ,gBAAgB,WACxB,MACA,UACA,YAAY,OACZ,aAAa,OACb,SACA,MACA,GAAG,SACD;CAGJ,MAAM,eAAe,SAAS;CAG9B,MAAM,YAAY,YAChB,oBAAC,gBAAc,GACb,eACF,oBAAC,cAAY,GAEb;CAIF,MAAM,YAAY,eACT;EACL,WAAW;EACX,UAAU;EACV,SAAS;EACT,aAAa,CAAC,CAAC;EACf,SAAS,CAAC,CAAC;EACX,GAAG;EACJ,GACD;EAAC;EAAc;EAAY;EAAW;EAAU;EAAa;EAAK,CACnE;CAGD,MAAM,YAAY,cAAc;AAC9B,MAAI,OAAO,YAAY,SACrB,QAAO;AAET,MAAI,OAAO,YAAY,YAAY,QAAQ,MACzC,QAAO,QAAQ;AAEjB,SAAO,KAAK;IACX,CAAC,SAAS,KAAK,CAAC;CAGnB,MAAM,cAAc,CAAC,YAAY;CAGjC,MAAM,iBAAiB,cAAc;AACnC,MAAI,OAAO,YAAY,SACrB,QAAO;AAET,MAAI,OAAO,YAAY,YAAY,QAAQ,MACzC,QAAO,QAAQ;IAGhB,CAAC,QAAQ,CAAC;CAEb,MAAM,eAAe,cAAc;AACjC,MAAI,OAAO,YAAY,UAAU;GAC/B,MAAM,EAAE,OAAO,GAAG,SAAS;AAC3B,UAAO;;AAET,SAAO,EAAE;IACR,CAAC,QAAQ,CAAC;CAEb,MAAM,YAAY;CAGlB,MAAM,eACJ,qBACA,eACG;EAEH,MAAM,aAAa,YAAmC;AAEpD,OAAI,OAAO,QAAQ,WACjB,KAAI,QAAQ;YACH,IACT,CAAC,IAAY,UAAU;AAGzB,OAAI,WACF,CAAC,WAAmB,UAAU;;AAIlC,SACE,qBAAC;GACC,KAAK;GACL,SAAS,GAAG,MAAM,GAAG;GACrB,cAAY;GACZ,aAAW;GACX,cAAY;GACZ,MAAM;GACN,GAAI,WAAW,MAAM,uBAAuB,EAAE,CAAC;cAE9C,aAAa,oBAAC;IAAI,gBAAa;cAAQ;KAAgB,EACvD;IACgB;;AAKvB,KAAI,eAAe,eACjB,QACE,oBAAC;EAAgB,OAAO;EAAgB,GAAI;aACxC,cAAc,eAAe,YAAY,cAAc,WAAW;GACpD;AAItB,QAAO,aAAa;EAEvB"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
3
3
  import { _Item } from "../Item/Item.js";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { _Layout } from "./Layout.js";
3
3
  import { _LayoutContent } from "./LayoutContent.js";
4
4
  import { _LayoutBlock } from "./LayoutBlock.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { Alert } from "../Alert/Alert.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { _LayoutContainer } from "./LayoutContainer.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { LayoutContextReset } from "./LayoutContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useCombinedRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { LayoutContextReset } from "./LayoutContext.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { createContext, useContext, useMemo, useRef, useState } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef, useMemo } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { _LayoutContent } from "./LayoutContent.js";
3
3
  import { tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.138.6 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.140.0 | Cube Dev Team */
2
2
  import { useAutoTooltip } from "../use-auto-tooltip.js";
3
3
  import { SlashIcon } from "../../../icons/SlashIcon.js";
4
4
  import { Button } from "../../actions/Button/Button.js";
@@ -132,7 +132,7 @@ function LayoutHeader(props, ref) {
132
132
  onBack && /* @__PURE__ */ jsx("div", {
133
133
  "data-element": "Back",
134
134
  children: /* @__PURE__ */ jsx(Button, {
135
- type: "neutral",
135
+ type: "clear",
136
136
  icon: /* @__PURE__ */ jsx(IconArrowLeft, {}),
137
137
  "aria-label": "Go back",
138
138
  onPress: onBack