@cube-dev/ui-kit 0.158.0 → 0.160.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 (581) hide show
  1. package/dist/CHANGELOG.md +159 -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 +14 -6
  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 +1 -1
  28. package/dist/components/actions/ItemAction/ItemAction.js +4 -3
  29. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  32. package/dist/components/actions/Link/Link.js +1 -1
  33. package/dist/components/actions/Menu/Menu.js +1 -1
  34. package/dist/components/actions/Menu/MenuItem.js +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +1 -1
  36. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  37. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  39. package/dist/components/actions/Menu/context.js +1 -1
  40. package/dist/components/actions/Menu/styled.js +1 -1
  41. package/dist/components/actions/index.js +1 -1
  42. package/dist/components/actions/use-action.js +1 -1
  43. package/dist/components/actions/use-anchored-menu.js +1 -1
  44. package/dist/components/actions/use-context-menu.js +1 -1
  45. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  46. package/dist/components/content/Alert/Alert.js +1 -1
  47. package/dist/components/content/Alert/use-alert.js +1 -1
  48. package/dist/components/content/Avatar/Avatar.js +1 -1
  49. package/dist/components/content/Badge/Badge.js +1 -1
  50. package/dist/components/content/Card/Card.js +1 -1
  51. package/dist/components/content/Content.js +1 -1
  52. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  53. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  54. package/dist/components/content/Disclosure/Disclosure.js +8 -4
  55. package/dist/components/content/Disclosure/Disclosure.js.map +1 -1
  56. package/dist/components/content/Divider.js +1 -1
  57. package/dist/components/content/Footer.js +1 -1
  58. package/dist/components/content/Header.js +1 -1
  59. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  60. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  61. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  62. package/dist/components/content/Item/Item.d.ts +8 -1
  63. package/dist/components/content/Item/Item.js +24 -11
  64. package/dist/components/content/Item/Item.js.map +1 -1
  65. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  66. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  67. package/dist/components/content/Layout/GridLayout.js +1 -1
  68. package/dist/components/content/Layout/Layout.js +1 -1
  69. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  70. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  71. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  72. package/dist/components/content/Layout/LayoutContent.js +1 -1
  73. package/dist/components/content/Layout/LayoutContext.js +1 -1
  74. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  75. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  76. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  77. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  78. package/dist/components/content/Layout/LayoutPane.js +1 -1
  79. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  80. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  81. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  82. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  83. package/dist/components/content/Layout/index.js +1 -1
  84. package/dist/components/content/Layout/utils.js +1 -1
  85. package/dist/components/content/Paragraph.js +1 -1
  86. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  87. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  88. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  89. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  90. package/dist/components/content/Result/Result.js +1 -1
  91. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  92. package/dist/components/content/Tag/Tag.js +1 -1
  93. package/dist/components/content/Text.js +1 -1
  94. package/dist/components/content/TextItem/TextItem.js +1 -1
  95. package/dist/components/content/Title.js +1 -1
  96. package/dist/components/content/Tree/Tree.js +1 -1
  97. package/dist/components/content/Tree/TreeNode.js +1 -1
  98. package/dist/components/content/Tree/styled.js +1 -1
  99. package/dist/components/content/Tree/tree-index.js +1 -1
  100. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  101. package/dist/components/content/Tree/use-load-data.js +1 -1
  102. package/dist/components/content/highlightText.js +1 -1
  103. package/dist/components/content/use-auto-tooltip.js +41 -32
  104. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  105. package/dist/components/data/DataTable/DataTable.js +82 -24
  106. package/dist/components/data/DataTable/DataTable.js.map +1 -1
  107. package/dist/components/data/DataTable/types.d.ts +56 -1
  108. package/dist/components/data/ItemTable/ItemTable.js +13 -5
  109. package/dist/components/data/ItemTable/ItemTable.js.map +1 -1
  110. package/dist/components/data/ItemTable/ItemTableBulkBar.js +3 -7
  111. package/dist/components/data/ItemTable/ItemTableBulkBar.js.map +1 -1
  112. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  113. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  114. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  115. package/dist/components/data/ItemTable/types.d.ts +19 -0
  116. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  117. package/dist/components/data/TableBase/RowCollection.js +5 -3
  118. package/dist/components/data/TableBase/RowCollection.js.map +1 -1
  119. package/dist/components/data/TableBase/TableHeaderCell.js +115 -0
  120. package/dist/components/data/TableBase/TableHeaderCell.js.map +1 -0
  121. package/dist/components/data/TableBase/TableRow.js +1 -1
  122. package/dist/components/data/TableBase/TableView.js +195 -33
  123. package/dist/components/data/TableBase/TableView.js.map +1 -1
  124. package/dist/components/data/TableBase/column-menu.d.ts +36 -0
  125. package/dist/components/data/TableBase/column-menu.js +104 -0
  126. package/dist/components/data/TableBase/column-menu.js.map +1 -0
  127. package/dist/components/data/TableBase/column-tint.js +168 -0
  128. package/dist/components/data/TableBase/column-tint.js.map +1 -0
  129. package/dist/components/data/TableBase/index.d.ts +3 -2
  130. package/dist/components/data/TableBase/row-menu.js +11 -6
  131. package/dist/components/data/TableBase/row-menu.js.map +1 -1
  132. package/dist/components/data/TableBase/styled.js +45 -16
  133. package/dist/components/data/TableBase/styled.js.map +1 -1
  134. package/dist/components/data/TableBase/types.d.ts +104 -6
  135. package/dist/components/data/TableBase/types.js +1 -1
  136. package/dist/components/data/TableBase/types.js.map +1 -1
  137. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  138. package/dist/components/data/TableBase/use-column-order.js +100 -0
  139. package/dist/components/data/TableBase/use-column-order.js.map +1 -0
  140. package/dist/components/data/TableBase/use-container-width.js +1 -1
  141. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  142. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  143. package/dist/components/data/TableBase/use-table-columns.js +24 -2
  144. package/dist/components/data/TableBase/use-table-columns.js.map +1 -1
  145. package/dist/components/data/TableBase/use-table-search.js +1 -1
  146. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  147. package/dist/components/data/TableBase/use-table-sort.js +20 -1
  148. package/dist/components/data/TableBase/use-table-sort.js.map +1 -1
  149. package/dist/components/data/TableBase/use-table-sorts.js +40 -1
  150. package/dist/components/data/TableBase/use-table-sorts.js.map +1 -1
  151. package/dist/components/data/TableBase/use-table-storage.d.ts +1 -1
  152. package/dist/components/data/TableBase/use-table-storage.js +6 -2
  153. package/dist/components/data/TableBase/use-table-storage.js.map +1 -1
  154. package/dist/components/data/index.d.ts +2 -1
  155. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  156. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  157. package/dist/components/fields/Checkbox/context.js +1 -1
  158. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  159. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  160. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  161. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  162. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  163. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  164. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  165. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  166. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  167. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  168. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  169. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  170. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  171. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  172. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  173. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  174. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  176. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  177. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  178. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  179. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  180. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  181. package/dist/components/fields/DatePicker/period.js +1 -1
  182. package/dist/components/fields/DatePicker/props.js +1 -1
  183. package/dist/components/fields/DatePicker/utils.js +1 -1
  184. package/dist/components/fields/FileInput/FileInput.js +1 -1
  185. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  186. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  187. package/dist/components/fields/Input/Input.js +1 -1
  188. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  189. package/dist/components/fields/ListBox/ListBox.js +1 -1
  190. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  191. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  192. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  193. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  194. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  195. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  196. package/dist/components/fields/Picker/Picker.js +1 -1
  197. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  198. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  199. package/dist/components/fields/RadioGroup/context.js +1 -1
  200. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  201. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  202. package/dist/components/fields/Select/Select.js +1 -1
  203. package/dist/components/fields/Slider/Gradation.js +1 -1
  204. package/dist/components/fields/Slider/HueSlider.js +1 -1
  205. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  206. package/dist/components/fields/Slider/Slider.js +1 -1
  207. package/dist/components/fields/Slider/SliderBase.js +1 -1
  208. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  209. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  210. package/dist/components/fields/Slider/elements.js +1 -1
  211. package/dist/components/fields/Slider/index.js +1 -1
  212. package/dist/components/fields/Switch/Switch.js +1 -1
  213. package/dist/components/fields/TextArea/TextArea.js +1 -1
  214. package/dist/components/fields/TextInput/TextInput.js +1 -1
  215. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  216. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  217. package/dist/components/fields/color/ColorPanel.js +1 -1
  218. package/dist/components/fields/color/ColorSwatch.js +1 -1
  219. package/dist/components/fields/color/channels.js +1 -1
  220. package/dist/components/fields/color/color.js +1 -1
  221. package/dist/components/fields/color/context.js +1 -1
  222. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  223. package/dist/components/form/Form/Field.js +1 -1
  224. package/dist/components/form/Form/Form.js +1 -1
  225. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  226. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  227. package/dist/components/form/Form/SubmitError.js +1 -1
  228. package/dist/components/form/Form/index.js +1 -1
  229. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  230. package/dist/components/form/Form/use-field/use-field.js +1 -1
  231. package/dist/components/form/Form/use-form.js +1 -1
  232. package/dist/components/form/Form/validation.js +1 -1
  233. package/dist/components/form/Label.js +1 -1
  234. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  235. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  236. package/dist/components/form/validation/use-validation-props.js +1 -1
  237. package/dist/components/form/wrapper.js +1 -1
  238. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  239. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  240. package/dist/components/layout/Board/Board.js +28 -4
  241. package/dist/components/layout/Board/Board.js.map +1 -1
  242. package/dist/components/layout/Board/BoardProvider.js +1 -1
  243. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  244. package/dist/components/layout/Board/Widget.js +1 -1
  245. package/dist/components/layout/Board/WidgetHost.js +6 -3
  246. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  247. package/dist/components/layout/Board/board-context.js +1 -1
  248. package/dist/components/layout/Board/board-store.js +1 -1
  249. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  250. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  251. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  252. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  253. package/dist/components/layout/Board/grid-core/group-move.js +138 -33
  254. package/dist/components/layout/Board/grid-core/group-move.js.map +1 -1
  255. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  256. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  257. package/dist/components/layout/Board/index.js +1 -1
  258. package/dist/components/layout/Board/responsive-utils.js +1 -1
  259. package/dist/components/layout/Board/use-board-layout.js +1 -1
  260. package/dist/components/layout/Board/use-board-registry.js +1 -1
  261. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  262. package/dist/components/layout/Board/use-board-selection.js +1 -1
  263. package/dist/components/layout/Flex.js +1 -1
  264. package/dist/components/layout/Flow.js +1 -1
  265. package/dist/components/layout/Grid.js +1 -1
  266. package/dist/components/layout/Panel.js +1 -1
  267. package/dist/components/layout/Prefix.js +1 -1
  268. package/dist/components/layout/ResizablePanel.js +1 -1
  269. package/dist/components/layout/Space.js +1 -1
  270. package/dist/components/layout/Suffix.js +1 -1
  271. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  272. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  273. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  274. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  275. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  276. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  277. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  278. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  279. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  280. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  281. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  282. package/dist/components/navigation/Tabs/styled.js +1 -1
  283. package/dist/components/navigation/Tabs/types.js +1 -1
  284. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  285. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  286. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  287. package/dist/components/other/Calendar/Calendar.js +1 -1
  288. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  289. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  290. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  291. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  292. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  293. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  294. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  295. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  296. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  297. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  298. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  299. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  300. package/dist/components/overlays/Dialog/context.js +1 -1
  301. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  302. package/dist/components/overlays/Modal/Modal.js +1 -1
  303. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  304. package/dist/components/overlays/Modal/Overlay.js +1 -1
  305. package/dist/components/overlays/Modal/Popover.js +1 -1
  306. package/dist/components/overlays/Modal/Tray.js +1 -1
  307. package/dist/components/overlays/Modal/Underlay.js +1 -1
  308. package/dist/components/overlays/Notifications/Notification.js +1 -1
  309. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  310. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  311. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  312. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  313. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  314. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  315. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  316. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  317. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  318. package/dist/components/overlays/Notifications/index.js +1 -1
  319. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  320. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  321. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  322. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  323. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  324. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  325. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  326. package/dist/components/overlays/Toast/index.js +1 -1
  327. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  328. package/dist/components/overlays/Toast/useToast.js +1 -1
  329. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  330. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  331. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  332. package/dist/components/overlays/Tooltip/context.js +1 -1
  333. package/dist/components/portal/Portal.js +1 -1
  334. package/dist/components/portal/PortalProvider.js +1 -1
  335. package/dist/components/portal/usePortal.js +1 -1
  336. package/dist/components/shared/DraggableCollection.js +1 -1
  337. package/dist/components/shared/InvalidIcon.js +1 -1
  338. package/dist/components/shared/ValidIcon.js +1 -1
  339. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  340. package/dist/components/status/Spin/Cube.js +1 -1
  341. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  342. package/dist/components/status/Spin/Spin.js +1 -1
  343. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  344. package/dist/data/item-themes.d.ts +1 -1
  345. package/dist/data/item-themes.js +45 -2
  346. package/dist/data/item-themes.js.map +1 -1
  347. package/dist/data/themes.js +1 -1
  348. package/dist/eslint-plugin/defaults.generated.js +13 -1
  349. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  350. package/dist/eslint-plugin/index.js +1 -1
  351. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  352. package/dist/i18n/I18nProvider.js +1 -1
  353. package/dist/i18n/createFormatter.js +1 -1
  354. package/dist/i18n/index.js +1 -1
  355. package/dist/i18n/instance.js +1 -1
  356. package/dist/i18n/locales/de-DE/uikit.js +5 -1
  357. package/dist/i18n/locales/en-US/uikit.js +5 -1
  358. package/dist/i18n/locales/en-US/uikit.json.d.ts +4 -0
  359. package/dist/i18n/locales/es-ES/uikit.js +5 -1
  360. package/dist/i18n/locales/es-MX/uikit.js +5 -1
  361. package/dist/i18n/locales/fr-FR/uikit.js +5 -1
  362. package/dist/i18n/locales/it-IT/uikit.js +5 -1
  363. package/dist/i18n/locales/ja-JP/uikit.js +5 -1
  364. package/dist/i18n/locales/nb-NO/uikit.js +5 -1
  365. package/dist/i18n/locales/pt-BR/uikit.js +5 -1
  366. package/dist/i18n/locales/pt-PT/uikit.js +5 -1
  367. package/dist/i18n/locales/sv-SE/uikit.js +5 -1
  368. package/dist/i18n/locales/vi-VN/uikit.js +5 -1
  369. package/dist/i18n/locales.js +1 -1
  370. package/dist/i18n/useFormatter.js +1 -1
  371. package/dist/i18n/useI18n.js +1 -1
  372. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  373. package/dist/icons/AdjustmentsIcon.js +1 -1
  374. package/dist/icons/AiIcon.js +1 -1
  375. package/dist/icons/AreaChartIcon.js +1 -1
  376. package/dist/icons/ArrowNarrowDownIcon.d.ts +12 -0
  377. package/dist/icons/ArrowNarrowDownIcon.js +11 -0
  378. package/dist/icons/ArrowNarrowDownIcon.js.map +1 -0
  379. package/dist/icons/ArrowNarrowUpIcon.d.ts +12 -0
  380. package/dist/icons/ArrowNarrowUpIcon.js +11 -0
  381. package/dist/icons/ArrowNarrowUpIcon.js.map +1 -0
  382. package/dist/icons/BackwardIcon.js +1 -1
  383. package/dist/icons/BarChartIcon.js +1 -1
  384. package/dist/icons/BellFilledIcon.js +1 -1
  385. package/dist/icons/BellIcon.js +1 -1
  386. package/dist/icons/BooleanIcon.js +1 -1
  387. package/dist/icons/CalendarEditIcon.js +1 -1
  388. package/dist/icons/CalendarIcon.js +1 -1
  389. package/dist/icons/CaretDownIcon.js +1 -1
  390. package/dist/icons/CaretUpIcon.js +1 -1
  391. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  392. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  393. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  394. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  395. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  396. package/dist/icons/ChartBarLineIcon.js +1 -1
  397. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  398. package/dist/icons/ChartBarStackedIcon.js +1 -1
  399. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  400. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  401. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  402. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  403. package/dist/icons/ChartBubbleIcon.js +1 -1
  404. package/dist/icons/ChartDonut2Icon.js +1 -1
  405. package/dist/icons/ChartFunnelIcon.js +1 -1
  406. package/dist/icons/ChartHeatmapIcon.js +1 -1
  407. package/dist/icons/ChartKPIIcon.js +1 -1
  408. package/dist/icons/ChartPie2Icon.js +1 -1
  409. package/dist/icons/ChartScatterIcon.js +1 -1
  410. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  411. package/dist/icons/CheckCircleIcon.js +1 -1
  412. package/dist/icons/CheckIcon.js +1 -1
  413. package/dist/icons/CircleFilledIcon.js +1 -1
  414. package/dist/icons/ClearIcon.js +1 -1
  415. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  416. package/dist/icons/CloseCircleIcon.js +1 -1
  417. package/dist/icons/CloseIcon.js +1 -1
  418. package/dist/icons/CodeIcon.js +1 -1
  419. package/dist/icons/ColumnTotalIcon.js +1 -1
  420. package/dist/icons/CopyIcon.js +1 -1
  421. package/dist/icons/CountIcon.js +1 -1
  422. package/dist/icons/CubeIcon.js +1 -1
  423. package/dist/icons/CubePauseIcon.js +1 -1
  424. package/dist/icons/CubePlayIcon.js +1 -1
  425. package/dist/icons/CurrencyDollarIcon.js +1 -1
  426. package/dist/icons/DangerIcon.js +1 -1
  427. package/dist/icons/DashboardIcon.js +1 -1
  428. package/dist/icons/DatabaseIcon.js +1 -1
  429. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  430. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  431. package/dist/icons/DirectionIcon.js +1 -1
  432. package/dist/icons/DonutIcon.js +1 -1
  433. package/dist/icons/DownIcon.js +1 -1
  434. package/dist/icons/EditIcon.js +1 -1
  435. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  436. package/dist/icons/ExclamationCircleIcon.js +1 -1
  437. package/dist/icons/ExclamationIcon.js +1 -1
  438. package/dist/icons/EyeIcon.js +1 -1
  439. package/dist/icons/EyeInvisibleIcon.js +1 -1
  440. package/dist/icons/FilterIcon.js +1 -1
  441. package/dist/icons/FolderFilledIcon.js +1 -1
  442. package/dist/icons/FolderIcon.js +1 -1
  443. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  444. package/dist/icons/FolderOpenIcon.js +1 -1
  445. package/dist/icons/ForwardIcon.js +1 -1
  446. package/dist/icons/GripVerticalIcon.js +1 -1
  447. package/dist/icons/HierarchyIcon.js +1 -1
  448. package/dist/icons/HierarchyOpenIcon.js +1 -1
  449. package/dist/icons/Icon.js +1 -1
  450. package/dist/icons/InfoCircleIcon.js +1 -1
  451. package/dist/icons/InfoIcon.js +1 -1
  452. package/dist/icons/KeyIcon.js +1 -1
  453. package/dist/icons/LeftIcon.js +1 -1
  454. package/dist/icons/LineChartIcon.js +1 -1
  455. package/dist/icons/LoadingIcon.js +1 -1
  456. package/dist/icons/LockFilledIcon.js +1 -1
  457. package/dist/icons/LockIcon.js +1 -1
  458. package/dist/icons/MoreIcon.js +1 -1
  459. package/dist/icons/NotAllowedIcon.js +1 -1
  460. package/dist/icons/Number123Icon.js +1 -1
  461. package/dist/icons/NumberIcon.js +1 -1
  462. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  463. package/dist/icons/PauseCircleIcon.js +1 -1
  464. package/dist/icons/PauseIcon.js +1 -1
  465. package/dist/icons/PercentageIcon.js +1 -1
  466. package/dist/icons/PieChartIcon.js +1 -1
  467. package/dist/icons/PipetteIcon.js +1 -1
  468. package/dist/icons/PlayCircleIcon.js +1 -1
  469. package/dist/icons/PlayIcon.js +1 -1
  470. package/dist/icons/PlusIcon.js +1 -1
  471. package/dist/icons/ProgressBarIcon.js +1 -1
  472. package/dist/icons/ReloadIcon.js +1 -1
  473. package/dist/icons/ReportIcon.js +1 -1
  474. package/dist/icons/ReturnIcon.js +1 -1
  475. package/dist/icons/RightIcon.js +1 -1
  476. package/dist/icons/RowTotalsIcon.js +1 -1
  477. package/dist/icons/SchemeIcon.js +1 -1
  478. package/dist/icons/SearchIcon.js +1 -1
  479. package/dist/icons/SemanticQueryIcon.js +1 -1
  480. package/dist/icons/SettingsIcon.js +1 -1
  481. package/dist/icons/ShieldFilledIcon.js +1 -1
  482. package/dist/icons/ShieldIcon.js +1 -1
  483. package/dist/icons/SlashIcon.js +1 -1
  484. package/dist/icons/SparklesIcon.js +1 -1
  485. package/dist/icons/SqlIcon.js +1 -1
  486. package/dist/icons/StatsIcon.js +1 -1
  487. package/dist/icons/StopIcon.js +1 -1
  488. package/dist/icons/StringIcon.js +1 -1
  489. package/dist/icons/SubtotalsIcon.js +1 -1
  490. package/dist/icons/SwitchIcon.js +1 -1
  491. package/dist/icons/TableIcon.js +1 -1
  492. package/dist/icons/ThumbsDownIcon.js +1 -1
  493. package/dist/icons/ThumbsUpIcon.js +1 -1
  494. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  495. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  496. package/dist/icons/ThunderboltIcon.js +1 -1
  497. package/dist/icons/TimeIcon.js +1 -1
  498. package/dist/icons/TrashIcon.js +1 -1
  499. package/dist/icons/UnlockIcon.js +1 -1
  500. package/dist/icons/UpIcon.js +1 -1
  501. package/dist/icons/UserGroupIcon.js +1 -1
  502. package/dist/icons/UserIcon.js +1 -1
  503. package/dist/icons/UserLockIcon.js +1 -1
  504. package/dist/icons/ViewIcon.js +1 -1
  505. package/dist/icons/WarningFilledIcon.js +1 -1
  506. package/dist/icons/WarningIcon.js +1 -1
  507. package/dist/icons/index.d.ts +2 -0
  508. package/dist/icons/wrap-icon.js +1 -1
  509. package/dist/index.d.ts +7 -2
  510. package/dist/index.js +7 -2
  511. package/dist/index.js.map +1 -1
  512. package/dist/provider.js +1 -1
  513. package/dist/providers/TrackingProvider.js +1 -1
  514. package/dist/providers/navigationAdapter.default.js +1 -1
  515. package/dist/tokens/base.js +1 -1
  516. package/dist/tokens/color-theme.d.ts +86 -0
  517. package/dist/tokens/color-theme.js +156 -0
  518. package/dist/tokens/color-theme.js.map +1 -0
  519. package/dist/tokens/colors.js +1 -1
  520. package/dist/tokens/index.d.ts +1 -0
  521. package/dist/tokens/index.js +2 -1
  522. package/dist/tokens/index.js.map +1 -1
  523. package/dist/tokens/layout.js +1 -1
  524. package/dist/tokens/lazy-styles.js +1 -1
  525. package/dist/tokens/palette-config.js +2 -2
  526. package/dist/tokens/palette.d.ts +1 -1
  527. package/dist/tokens/palette.js +44 -2
  528. package/dist/tokens/palette.js.map +1 -1
  529. package/dist/tokens/shadows.js +1 -1
  530. package/dist/tokens/sizes.js +1 -1
  531. package/dist/tokens/spacing.js +1 -1
  532. package/dist/tokens/typography.js +1 -1
  533. package/dist/utils/ResizeSensor.js +1 -1
  534. package/dist/utils/index.d.ts +1 -0
  535. package/dist/utils/is-dev-env.js +1 -1
  536. package/dist/utils/modules.js +1 -1
  537. package/dist/utils/promise.js +1 -1
  538. package/dist/utils/raf.js +1 -1
  539. package/dist/utils/random.js +1 -1
  540. package/dist/utils/range.js +1 -1
  541. package/dist/utils/react/RenderCache.js +1 -1
  542. package/dist/utils/react/Slots.js +1 -1
  543. package/dist/utils/react/chain.js +1 -1
  544. package/dist/utils/react/disabledProps.d.ts +49 -0
  545. package/dist/utils/react/disabledProps.js +82 -0
  546. package/dist/utils/react/disabledProps.js.map +1 -0
  547. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  548. package/dist/utils/react/index.d.ts +1 -0
  549. package/dist/utils/react/index.js +2 -1
  550. package/dist/utils/react/interactions.js +1 -1
  551. package/dist/utils/react/isTextOnly.js +1 -1
  552. package/dist/utils/react/mapProps.js +1 -1
  553. package/dist/utils/react/mergeProps.js +1 -1
  554. package/dist/utils/react/nullableValue.js +1 -1
  555. package/dist/utils/react/resolveIcon.js +1 -1
  556. package/dist/utils/react/sharedStore.js +1 -1
  557. package/dist/utils/react/useBufferedValue.js +1 -1
  558. package/dist/utils/react/useCombinedRefs.js +1 -1
  559. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  560. package/dist/utils/react/useEventBus.js +1 -1
  561. package/dist/utils/react/useId.js +1 -1
  562. package/dist/utils/react/useIsDarwin.js +1 -1
  563. package/dist/utils/react/useKeySymbols.js +1 -1
  564. package/dist/utils/react/useLayoutEffect.js +1 -1
  565. package/dist/utils/react/useLocalStorage.js +1 -1
  566. package/dist/utils/react/useMergeStyles.js +1 -1
  567. package/dist/utils/react/usePopoverSync.js +1 -1
  568. package/dist/utils/react/useQaProps.js +1 -1
  569. package/dist/utils/react/useViewportSize.js +1 -1
  570. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  571. package/dist/utils/selection.js +1 -1
  572. package/dist/utils/styles.js +1 -1
  573. package/dist/utils/tree.js +1 -1
  574. package/dist/utils/warnings.js +1 -1
  575. package/dist/version.js +2 -2
  576. package/docs/components/actions/Button.md +19 -1
  577. package/docs/components/content/Item.md +25 -3
  578. package/docs/components/data/DataTable.md +118 -2
  579. package/docs/components/data/ItemTable.md +37 -5
  580. package/docs/components/layout/Board.md +23 -12
  581. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ItemAction.js","names":[],"sources":["../../../../src/components/actions/ItemAction/ItemAction.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport {\n ComponentProps,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n RefObject,\n useMemo,\n} from 'react';\n\nimport {\n DANGER_CLEAR_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n ITEM_ACTION_BASE_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { CheckIcon } from '../../../icons/CheckIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { TooltipProvider } from '../../overlays/Tooltip/TooltipProvider';\nimport { useItemActionContext } from '../ItemActionContext';\nimport { CubeUseActionProps, useAction } from '../use-action';\n\nexport interface CubeItemActionProps\n extends Omit<CubeUseActionProps, 'as' | 'htmlType'>,\n Omit<BaseProps, 'as'> {\n icon?: ReactNode | 'checkmark';\n children?: ReactNode;\n isLoading?: boolean;\n isSelected?: boolean;\n type?: 'primary' | 'outline' | 'clear' | (string & {});\n theme?:\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | (string & {});\n tooltip?:\n | string\n | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {\n title?: ReactNode;\n });\n styles?: Styles;\n tabIndex?: number;\n}\n\ntype ItemActionVariant =\n | 'default.primary'\n | 'default.outline'\n | 'default.clear'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.clear'\n | 'success.primary'\n | 'success.outline'\n | 'success.clear'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.clear'\n | 'note.primary'\n | 'note.outline'\n | 'note.clear'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear';\n\nconst ItemActionElement = tasty({\n qa: 'ItemAction',\n styles: {\n ...ITEM_ACTION_BASE_STYLES,\n recipe: 'reset button',\n outlineOffset: 1,\n cursor: { '': '$pointer', disabled: 'default' },\n preset: {\n '': 't4',\n 'size=xlarge': 't3m',\n },\n padding: {\n '': '0 $inline-padding',\n 'has-icon': 0,\n 'has-icon & has-label': '$inline-padding right',\n },\n\n '$inline-padding': {\n '': 'max($min-inline-padding, (($action-size - 1lh - 2bw) / 2 + $inline-compensation))',\n 'size=inline': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(.5x - 1bw)',\n '$local-icon-size': '$icon-size',\n\n Icon: {\n $: '>',\n ...(ITEM_ACTION_BASE_STYLES.Icon as Styles),\n '$icon-size': 'min($local-icon-size, ($action-size - .25x))',\n },\n },\n variants: {\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n },\n});\n\nexport const ItemAction = forwardRef(function ItemAction(\n allProps: CubeItemActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const {\n type: contextType,\n theme: contextTheme,\n disableActionsFocus,\n isDisabled: contextIsDisabled,\n } = useItemActionContext();\n\n const {\n type = contextType ?? 'clear',\n theme = contextTheme ?? 'default',\n icon,\n children,\n isLoading = false,\n isSelected = false,\n tooltip,\n mods,\n styles,\n isDisabled: isDisabledProp,\n ...rest\n } = allProps;\n\n // Inherit disabled state from context, but allow local override\n const isDisabled = isDisabledProp ?? contextIsDisabled;\n\n // Determine if we should show a checkmark\n const hasCheckmark = icon === 'checkmark';\n\n // Determine final icon (loading takes precedence)\n const finalIcon = isLoading ? (\n <LoadingIcon />\n ) : hasCheckmark ? (\n <CheckIcon />\n ) : (\n icon\n );\n\n // Build modifiers\n const finalMods = useMemo(\n () => ({\n checkmark: hasCheckmark,\n selected: isSelected,\n loading: isLoading,\n 'has-label': !!children,\n context: !!contextType,\n 'has-icon': !!icon,\n ...mods,\n }),\n [hasCheckmark, isSelected, isLoading, children, contextType, mods],\n );\n\n // An explicit label always wins; a tooltip only fills in the accessible name\n // when there isn't one. Rich tooltip content can't serve as a name, so only\n // plain strings are used here.\n const ariaLabel = useMemo(() => {\n if (rest['aria-label']) {\n return rest['aria-label'];\n }\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n if (typeof tooltip === 'object' && typeof tooltip.title === 'string') {\n return tooltip.title;\n }\n return undefined;\n }, [tooltip, rest]);\n\n // Call useAction hook\n const { actionProps } = useAction(\n {\n ...rest,\n isDisabled,\n 'aria-label': ariaLabel,\n mods: finalMods,\n htmlType: 'button',\n },\n ref,\n );\n\n // Set tabIndex when in context\n const finalTabIndex = disableActionsFocus ? -1 : rest.tabIndex;\n\n // Determine if we should show tooltip (icon-only buttons)\n const showTooltip = !children && tooltip;\n\n // Extract tooltip content and props\n const tooltipContent = useMemo(() => {\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n if (typeof tooltip === 'object' && tooltip.title) {\n return tooltip.title;\n }\n return undefined;\n }, [tooltip]);\n\n const tooltipProps = useMemo(() => {\n if (typeof tooltip === 'object') {\n const { title, ...rest } = tooltip;\n return rest;\n }\n return {};\n }, [tooltip]);\n\n const finalType = type;\n\n // Render function that accepts tooltip trigger props and ref\n const renderButton = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n // Merge tooltip ref with actionProps if provided\n const mergedProps = tooltipRef\n ? mergeProps(actionProps, tooltipTriggerProps || {}, {\n ref: (element: HTMLElement | null) => {\n // Set the tooltip ref\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n // Set the action ref if it exists in actionProps\n const actionRef = (actionProps as any).ref;\n if (actionRef) {\n if (typeof actionRef === 'function') {\n actionRef(element);\n } else {\n actionRef.current = element;\n }\n }\n },\n })\n : mergeProps(actionProps, tooltipTriggerProps || {});\n\n return (\n <ItemActionElement\n {...mergedProps}\n variant={`${theme}.${finalType}` as ItemActionVariant}\n data-theme={theme}\n data-type={finalType}\n tabIndex={finalTabIndex}\n styles={styles}\n >\n {finalIcon && <div data-element=\"Icon\">{finalIcon}</div>}\n {children}\n </ItemActionElement>\n );\n };\n\n // Wrap with tooltip if needed\n if (showTooltip && tooltipContent) {\n return (\n <TooltipProvider title={tooltipContent} {...tooltipProps}>\n {(triggerProps, tooltipRef) => renderButton(triggerProps, tooltipRef)}\n </TooltipProvider>\n );\n }\n\n return renderButton();\n});\n\nexport type { CubeItemActionProps as ItemActionProps };\n"],"mappings":"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"}
1
+ {"version":3,"file":"ItemAction.js","names":[],"sources":["../../../../src/components/actions/ItemAction/ItemAction.tsx"],"sourcesContent":["import { FocusableRef } from '@react-types/shared';\nimport { BaseProps, Styles, tasty } from '@tenphi/tasty';\nimport {\n ComponentProps,\n forwardRef,\n HTMLAttributes,\n ReactNode,\n RefObject,\n useMemo,\n} from 'react';\n\nimport {\n CURRENT_ITEM_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n ITEM_ACTION_BASE_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { CheckIcon } from '../../../icons/CheckIcon';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport { mergeProps } from '../../../utils/react';\nimport { TooltipProvider } from '../../overlays/Tooltip/TooltipProvider';\nimport { useItemActionContext } from '../ItemActionContext';\nimport { CubeUseActionProps, useAction } from '../use-action';\n\nexport interface CubeItemActionProps\n extends Omit<CubeUseActionProps, 'as' | 'htmlType'>,\n Omit<BaseProps, 'as'> {\n icon?: ReactNode | 'checkmark';\n children?: ReactNode;\n isLoading?: boolean;\n isSelected?: boolean;\n type?: 'primary' | 'outline' | 'clear' | 'current' | (string & {});\n theme?:\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | (string & {});\n tooltip?:\n | string\n | (Omit<ComponentProps<typeof TooltipProvider>, 'children'> & {\n title?: ReactNode;\n });\n styles?: Styles;\n tabIndex?: number;\n}\n\ntype ItemActionVariant =\n // Theme-agnostic inherited-color type — see `CURRENT_ITEM_STYLES`.\n | 'default.current'\n | 'default.primary'\n | 'default.outline'\n | 'default.clear'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.clear'\n | 'success.primary'\n | 'success.outline'\n | 'success.clear'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.clear'\n | 'note.primary'\n | 'note.outline'\n | 'note.clear'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear';\n\nconst ItemActionElement = tasty({\n qa: 'ItemAction',\n styles: {\n ...ITEM_ACTION_BASE_STYLES,\n recipe: 'reset button',\n outlineOffset: 1,\n cursor: { '': '$pointer', disabled: 'default' },\n preset: {\n '': 't4',\n 'size=xlarge': 't3m',\n },\n padding: {\n '': '0 $inline-padding',\n 'has-icon': 0,\n 'has-icon & has-label': '$inline-padding right',\n },\n\n '$inline-padding': {\n '': 'max($min-inline-padding, (($action-size - 1lh - 2bw) / 2 + $inline-compensation))',\n 'size=inline': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(.5x - 1bw)',\n '$local-icon-size': '$icon-size',\n\n Icon: {\n $: '>',\n ...(ITEM_ACTION_BASE_STYLES.Icon as Styles),\n '$icon-size': 'min($local-icon-size, ($action-size - .25x))',\n },\n },\n variants: {\n // Inherited-color type — theme-agnostic, see `CURRENT_ITEM_STYLES`. Actions\n // inside a `current` Item use the borderless item flavour, not the chip.\n 'default.current': CURRENT_ITEM_STYLES,\n\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n },\n});\n\nexport const ItemAction = forwardRef(function ItemAction(\n allProps: CubeItemActionProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const {\n type: contextType,\n theme: contextTheme,\n disableActionsFocus,\n isDisabled: contextIsDisabled,\n } = useItemActionContext();\n\n const {\n type = contextType ?? 'clear',\n theme = contextTheme ?? 'default',\n icon,\n children,\n isLoading = false,\n isSelected = false,\n tooltip,\n mods,\n styles,\n isDisabled: isDisabledProp,\n ...rest\n } = allProps;\n\n // Inherit disabled state from context, but allow local override\n const isDisabled = isDisabledProp ?? contextIsDisabled;\n\n // Determine if we should show a checkmark\n const hasCheckmark = icon === 'checkmark';\n\n // Determine final icon (loading takes precedence)\n const finalIcon = isLoading ? (\n <LoadingIcon />\n ) : hasCheckmark ? (\n <CheckIcon />\n ) : (\n icon\n );\n\n // Build modifiers\n const finalMods = useMemo(\n () => ({\n checkmark: hasCheckmark,\n selected: isSelected,\n loading: isLoading,\n 'has-label': !!children,\n context: !!contextType,\n 'has-icon': !!icon,\n ...mods,\n }),\n [hasCheckmark, isSelected, isLoading, children, contextType, mods],\n );\n\n // An explicit label always wins; a tooltip only fills in the accessible name\n // when there isn't one. Rich tooltip content can't serve as a name, so only\n // plain strings are used here.\n const ariaLabel = useMemo(() => {\n if (rest['aria-label']) {\n return rest['aria-label'];\n }\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n if (typeof tooltip === 'object' && typeof tooltip.title === 'string') {\n return tooltip.title;\n }\n return undefined;\n }, [tooltip, rest]);\n\n // Call useAction hook\n const { actionProps } = useAction(\n {\n ...rest,\n isDisabled,\n 'aria-label': ariaLabel,\n mods: finalMods,\n htmlType: 'button',\n },\n ref,\n );\n\n // Set tabIndex when in context\n const finalTabIndex = disableActionsFocus ? -1 : rest.tabIndex;\n\n // Determine if we should show tooltip (icon-only buttons)\n const showTooltip = !children && tooltip;\n\n // Extract tooltip content and props\n const tooltipContent = useMemo(() => {\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n if (typeof tooltip === 'object' && tooltip.title) {\n return tooltip.title;\n }\n return undefined;\n }, [tooltip]);\n\n const tooltipProps = useMemo(() => {\n if (typeof tooltip === 'object') {\n const { title, ...rest } = tooltip;\n return rest;\n }\n return {};\n }, [tooltip]);\n\n const finalType = type;\n\n // Render function that accepts tooltip trigger props and ref\n const renderButton = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ) => {\n // Merge tooltip ref with actionProps if provided\n const mergedProps = tooltipRef\n ? mergeProps(actionProps, tooltipTriggerProps || {}, {\n ref: (element: HTMLElement | null) => {\n // Set the tooltip ref\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n // Set the action ref if it exists in actionProps\n const actionRef = (actionProps as any).ref;\n if (actionRef) {\n if (typeof actionRef === 'function') {\n actionRef(element);\n } else {\n actionRef.current = element;\n }\n }\n },\n })\n : mergeProps(actionProps, tooltipTriggerProps || {});\n\n return (\n <ItemActionElement\n {...mergedProps}\n variant={\n `${finalType === 'current' ? 'default' : theme}.${finalType}` as ItemActionVariant\n }\n data-theme={theme}\n data-type={finalType}\n tabIndex={finalTabIndex}\n styles={styles}\n >\n {finalIcon && <div data-element=\"Icon\">{finalIcon}</div>}\n {children}\n </ItemActionElement>\n );\n };\n\n // Wrap with tooltip if needed\n if (showTooltip && tooltipContent) {\n return (\n <TooltipProvider title={tooltipContent} {...tooltipProps}>\n {(triggerProps, tooltipRef) => renderButton(triggerProps, tooltipRef)}\n </TooltipProvider>\n );\n }\n\n return renderButton();\n});\n\nexport type { CubeItemActionProps as ItemActionProps };\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { useDismissParentPopover } from "../../../utils/react/usePopoverSync.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { Button } from "../Button/Button.js";
3
3
  import { forwardRef } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { _CollectionItem } from "../../CollectionItem.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
3
3
  import { filterCollectionItemProps } from "../../CollectionItem.js";
4
4
  import { _Item } from "../../content/Item/Item.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
3
3
  import { MenuItem } from "./MenuItem.js";
4
4
  import { StyledMenu, StyledSection, StyledSectionHeading } from "./styled.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { SlotProvider } from "../../../utils/react/Slots.js";
3
3
  import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { usePopoverSync } from "../../../utils/react/usePopoverSync.js";
3
3
  import { useEvent } from "../../../_internal/hooks/use-event.js";
4
4
  import { MenuContext, useMenuContext } from "./context.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import React from "react";
3
3
 
4
4
  //#region src/components/actions/Menu/SubmenuTriggerContext.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import React, { useContext } from "react";
3
3
 
4
4
  //#region src/components/actions/Menu/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { DEFAULT_CLEAR_STYLES } from "../../../data/item-themes.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { DEFAULT_BUTTON_STYLES } from "../Button/Button.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { ItemActionProvider, useItemActionContext } from "./ItemActionContext.js";
3
3
  import { openLink, parseTo, performClickHandler, useAction } from "./use-action.js";
4
4
  import { ItemAction } from "./ItemAction/ItemAction.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { useEvent } from "../../_internal/hooks/use-event.js";
4
4
  import { useFocus as useFocus$1 } from "../../utils/react/interactions.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { usePopoverSync } from "../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { mergeProps as mergeProps$1 } from "../../utils/react/mergeProps.js";
3
3
  import { usePopoverSync } from "../../utils/react/usePopoverSync.js";
4
4
  import { useEvent } from "../../_internal/hooks/use-event.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useFocus as useFocus$1 } from "../../../utils/react/interactions.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import themes_default from "../../../data/themes.js";
3
3
  import { useAlert } from "./use-alert.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useDeprecationWarning } from "../../../_internal/hooks/use-deprecation-warning.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, Element, filterBaseProps } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { _Item } from "../Item/Item.js";
3
3
  import themes_default from "../../../data/themes.js";
4
4
  import { tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useTimer } from "../../../_internal/hooks/use-timer/use-timer.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { _Tooltip } from "../../overlays/Tooltip/Tooltip.js";
3
3
  import { TooltipTrigger } from "../../overlays/Tooltip/TooltipTrigger.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeRefs } from "../../../utils/react/useCombinedRefs.js";
4
4
  import { DisplayTransition } from "../../helpers/DisplayTransition/DisplayTransition.js";
@@ -28,6 +28,7 @@ const DisclosureRoot = tasty({
28
28
  flow: "column",
29
29
  gap: 0,
30
30
  position: "relative",
31
+ width: "min 0",
31
32
  border: {
32
33
  "": "none",
33
34
  "shape=card": "1bw solid #border"
@@ -86,10 +87,12 @@ const StyledTrigger = tasty(_ItemButton, {
86
87
  styles: {
87
88
  radius: {
88
89
  "": "1r",
89
- "expanded & shape=card": "(1cr - 1bw) (1cr - 1bw) 0 0",
90
+ "shape=card": "(1cr - 1bw)",
91
+ "expanded & shape=card": "(1cr - 1bw) top",
90
92
  "shape=sharp": "0"
91
93
  },
92
- border: "#clear"
94
+ border: "#clear",
95
+ transition: "theme, radius $disclosure-transition"
93
96
  }
94
97
  });
95
98
  const DisclosureComponent = forwardRef(function Disclosure(props, ref) {
@@ -152,6 +155,7 @@ const DisclosureComponent = forwardRef(function Disclosure(props, ref) {
152
155
  mods
153
156
  ]);
154
157
  const content = typeof children === "function" ? children(stateContext) : children;
158
+ const tokens = useMemo(() => transitionDuration != null ? { "$disclosure-transition": `${transitionDuration}ms` } : void 0, [transitionDuration]);
155
159
  return /* @__PURE__ */ jsx(DisclosureContext.Provider, {
156
160
  value: contextValue,
157
161
  children: /* @__PURE__ */ jsx(DisclosureRoot, {
@@ -159,6 +163,7 @@ const DisclosureComponent = forwardRef(function Disclosure(props, ref) {
159
163
  qa,
160
164
  mods: finalMods,
161
165
  styles: outerStyles,
166
+ tokens,
162
167
  children: content
163
168
  })
164
169
  });
@@ -207,7 +212,6 @@ const DisclosureContent = forwardRef(function DisclosureContent(props, ref) {
207
212
  shown: isShown,
208
213
  phase
209
214
  },
210
- tokens: transitionDuration != null ? { "$disclosure-transition": `${transitionDuration}ms` } : void 0,
211
215
  children: /* @__PURE__ */ jsx(ContentElement, {
212
216
  ref: mergeRefs(ref, panelRef),
213
217
  mods: {
@@ -1 +1 @@
1
- {"version":3,"file":"Disclosure.js","names":["ItemButton","useId"],"sources":["../../../../src/components/content/Disclosure/Disclosure.tsx"],"sourcesContent":["import {\n BaseProps,\n BasePropsWithoutChildren,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n createContext,\n forwardRef,\n Key,\n ReactNode,\n RefObject,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport { mergeProps, useDisclosure, useId } from 'react-aria';\nimport {\n DisclosureGroupState,\n DisclosureState,\n useDisclosureGroupState,\n useDisclosureState,\n} from 'react-stately';\n\nimport { RightIcon } from '../../../icons';\nimport { mergeRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { CubeItemButtonProps, ItemButton } from '../../actions/ItemButton';\nimport { DisplayTransition } from '../../helpers';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DisclosureStateContext {\n isExpanded: boolean;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n}\n\ninterface DisclosureContextValue {\n state: DisclosureState;\n buttonProps: Record<string, unknown>;\n panelProps: Record<string, unknown>;\n panelRef: RefObject<HTMLDivElement | null>;\n isDisabled: boolean;\n isExpanded: boolean;\n shape: 'default' | 'card' | 'sharp';\n transitionDuration?: number;\n triggerProps?: Partial<CubeItemButtonProps>;\n contentStyles?: Styles;\n}\n\ninterface DisclosureGroupContextValue {\n groupState: DisclosureGroupState;\n triggerProps?: Partial<CubeItemButtonProps>;\n contentStyles?: Styles;\n}\n\nexport interface CubeDisclosureProps\n extends BasePropsWithoutChildren,\n OuterStyleProps {\n /** Controls expanded state in controlled mode */\n isExpanded?: boolean;\n /** Initial expanded state in uncontrolled mode */\n defaultExpanded?: boolean;\n /** Callback fired when expanded state changes */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Disables trigger interactions and force-closes the content */\n isDisabled?: boolean;\n /** Render-prop alternative to achieve custom trigger markup */\n children?: ReactNode | ((state: DisclosureStateContext) => ReactNode);\n /** Visual shape variant */\n shape?: 'default' | 'card' | 'sharp';\n /** Duration for DisplayTransition animation in milliseconds */\n transitionDuration?: number;\n}\n\nexport interface CubeDisclosureTriggerProps\n extends Omit<CubeItemButtonProps, 'onPress' | 'isDisabled'> {\n /** Children content for the trigger */\n children?: ReactNode;\n}\n\nexport interface CubeDisclosureContentProps extends BaseProps {\n /** Children content for the panel */\n children?: ReactNode;\n}\n\nexport interface CubeDisclosureGroupProps extends BaseProps, OuterStyleProps {\n /** Allow more than one disclosure to be open */\n allowsMultipleExpanded?: boolean;\n /** Controlled expanded keys */\n expandedKeys?: Iterable<Key>;\n /** Uncontrolled default expanded keys */\n defaultExpandedKeys?: Iterable<Key>;\n /** Change handler providing the full expanded keys Set */\n onExpandedChange?: (keys: Set<Key>) => void;\n /** Disable all disclosures within group and force-close their content */\n isDisabled?: boolean;\n /** Props forwarded to all ItemButton triggers in the group */\n triggerProps?: Partial<CubeItemButtonProps>;\n /** Optional panel styles applied to all Content panels in the group */\n contentStyles?: Styles;\n children: ReactNode;\n}\n\nexport interface CubeDisclosureItemProps\n extends Omit<BasePropsWithoutChildren, 'id'>,\n OuterStyleProps {\n /** Unique identifier for the disclosure item in a group */\n id?: Key;\n /** Children content */\n children?: ReactNode;\n /** Disables trigger interactions and force-closes the content */\n isDisabled?: boolean;\n /** Controls expanded state in controlled mode */\n isExpanded?: boolean;\n /** Initial expanded state in uncontrolled mode */\n defaultExpanded?: boolean;\n /** Callback fired when expanded state changes */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Visual shape variant */\n shape?: 'default' | 'card' | 'sharp';\n}\n\n// ============================================================================\n// Contexts\n// ============================================================================\n\nconst DisclosureContext = createContext<DisclosureContextValue | null>(null);\nconst DisclosureGroupContext =\n createContext<DisclosureGroupContextValue | null>(null);\n\nfunction useDisclosureContext(): DisclosureContextValue {\n const context = useContext(DisclosureContext);\n\n if (!context) {\n throw new Error(\n 'Disclosure.Trigger and Disclosure.Content must be used within a Disclosure',\n );\n }\n\n return context;\n}\n\nfunction useDisclosureGroupContext(): DisclosureGroupContextValue | null {\n return useContext(DisclosureGroupContext);\n}\n\n// ============================================================================\n// Styled Components\n// ============================================================================\n\nconst DisclosureRoot = tasty({\n qa: 'Disclosure',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: 0,\n position: 'relative',\n border: {\n '': 'none',\n 'shape=card': '1bw solid #border',\n },\n radius: {\n '': '1r',\n 'shape=card': '1cr',\n 'shape=sharp': '0',\n },\n fill: {\n '': false,\n 'shape=card': '#surface',\n },\n },\n});\n\nconst ContentWrapperElement = tasty({\n qa: 'DisclosureContentWrapper',\n styles: {\n display: 'block',\n overflow: 'hidden',\n interpolateSize: 'allow-keywords',\n height: {\n '': 0,\n shown: 'max-content',\n },\n transition: 'height $disclosure-transition',\n },\n});\n\nconst ContentElement = tasty({\n qa: 'DisclosureContent',\n styles: {\n display: 'block',\n flow: 'column',\n // Always visible: `content-visibility: auto` while height animates\n // `0 → max-content` can leave the panel at 0px (children skipped for\n // layout, so max-content resolves to 0). Collapsed content is already\n // clipped via height:0 + overflow:hidden on the wrapper, and\n // DisplayTransition unmounts when fully closed.\n contentVisibility: 'visible',\n },\n});\n\nconst GroupRoot = tasty({\n qa: 'DisclosureGroup',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: '0',\n },\n});\n\nconst TriggerIcon = tasty(RightIcon, {\n styles: {\n transition: 'rotate',\n rotate: {\n '': '0deg',\n expanded: '90deg',\n },\n },\n});\n\nconst StyledTrigger = tasty(ItemButton, {\n qa: 'DisclosureTrigger',\n type: 'header',\n 'data-popover-keep': true,\n styles: {\n radius: {\n '': '1r',\n 'expanded & shape=card': '(1cr - 1bw) (1cr - 1bw) 0 0',\n 'shape=sharp': '0',\n },\n border: '#clear',\n },\n});\n\n// ============================================================================\n// Disclosure Component\n// ============================================================================\n\nconst DisclosureComponent = forwardRef<HTMLDivElement, CubeDisclosureProps>(\n function Disclosure(props, ref) {\n const {\n isExpanded: controlledIsExpanded,\n defaultExpanded,\n onExpandedChange,\n isDisabled = false,\n children,\n shape = 'default',\n transitionDuration,\n qa,\n mods,\n ...otherProps\n } = props;\n\n const groupContext = useDisclosureGroupContext();\n const panelRef = useRef<HTMLDivElement>(null);\n\n // When disabled, force expanded to false\n const effectiveIsExpanded = isDisabled ? false : controlledIsExpanded;\n\n const state = useDisclosureState({\n isExpanded: effectiveIsExpanded,\n defaultExpanded: isDisabled ? false : defaultExpanded,\n onExpandedChange: isDisabled ? undefined : onExpandedChange,\n });\n\n // When disabled, override state.isExpanded to false\n const isExpanded = isDisabled ? false : state.isExpanded;\n\n const { buttonProps, panelProps } = useDisclosure(\n {\n isExpanded,\n isDisabled,\n },\n state,\n panelRef,\n );\n\n const contextValue = useMemo<DisclosureContextValue>(\n () => ({\n state,\n buttonProps,\n panelProps,\n panelRef,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration,\n triggerProps: groupContext?.triggerProps,\n contentStyles: groupContext?.contentStyles,\n }),\n [\n state,\n buttonProps,\n panelProps,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration,\n groupContext?.triggerProps,\n groupContext?.contentStyles,\n ],\n );\n\n const stateContext = useMemo<DisclosureStateContext>(\n () => ({\n isExpanded,\n toggle: state.toggle,\n expand: state.expand,\n collapse: state.collapse,\n }),\n [isExpanded, state.toggle, state.expand, state.collapse],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n const content =\n typeof children === 'function' ? children(stateContext) : children;\n\n return (\n <DisclosureContext.Provider value={contextValue}>\n <DisclosureRoot ref={ref} qa={qa} mods={finalMods} styles={outerStyles}>\n {content}\n </DisclosureRoot>\n </DisclosureContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Disclosure.Trigger Component\n// ============================================================================\n\nconst DisclosureTrigger = forwardRef<\n HTMLButtonElement,\n CubeDisclosureTriggerProps\n>(function DisclosureTrigger(props, ref) {\n const { children, icon, mods, ...otherProps } = props;\n const context = useDisclosureContext();\n const { buttonProps, isDisabled, isExpanded, shape, triggerProps } = context;\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n selected: false,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n // Default icon is a rotating chevron\n const defaultIcon = <TriggerIcon mods={{ expanded: isExpanded }} />;\n\n return (\n <StyledTrigger\n ref={ref}\n icon={icon ?? defaultIcon}\n isDisabled={isDisabled}\n isSelected={isExpanded}\n {...triggerProps}\n {...(mergeProps(otherProps, buttonProps as any) as any)}\n mods={finalMods}\n >\n {children}\n </StyledTrigger>\n );\n});\n\n// ============================================================================\n// Disclosure.Content Component\n// ============================================================================\n\nconst DisclosureContent = forwardRef<\n HTMLDivElement,\n CubeDisclosureContentProps\n>(function DisclosureContent(props, ref) {\n const { children, styles, mods, ...otherProps } = props;\n const context = useDisclosureContext();\n const {\n panelProps,\n panelRef,\n isExpanded,\n transitionDuration,\n contentStyles,\n } = context;\n\n const mergedStyles = useMemo<Styles>(\n () => ({\n ...contentStyles,\n ...styles,\n }),\n [contentStyles, styles],\n );\n\n // Filter out hidden attribute from panelProps since we manage visibility via CSS height animation\n const { hidden, ...filteredPanelProps } = panelProps as Record<\n string,\n unknown\n >;\n\n return (\n <DisplayTransition\n isShown={isExpanded}\n duration={transitionDuration}\n animateOnMount={false}\n >\n {({ phase, isShown, ref: transitionRef }) => (\n <ContentWrapperElement\n ref={transitionRef}\n mods={{ shown: isShown, phase }}\n tokens={\n transitionDuration != null\n ? { '$disclosure-transition': `${transitionDuration}ms` }\n : undefined\n }\n >\n <ContentElement\n ref={mergeRefs(ref, panelRef)}\n mods={{ ...mods, shown: isShown }}\n styles={mergedStyles}\n {...filteredPanelProps}\n {...otherProps}\n >\n {children}\n </ContentElement>\n </ContentWrapperElement>\n )}\n </DisplayTransition>\n );\n});\n\n// ============================================================================\n// Disclosure.Group Component\n// ============================================================================\n\nconst DisclosureGroup = forwardRef<HTMLDivElement, CubeDisclosureGroupProps>(\n function DisclosureGroup(props, ref) {\n const {\n allowsMultipleExpanded = false,\n expandedKeys,\n defaultExpandedKeys,\n onExpandedChange,\n isDisabled = false,\n triggerProps,\n contentStyles,\n children,\n qa,\n mods,\n styles,\n ...otherProps\n } = props;\n\n const groupState = useDisclosureGroupState({\n allowsMultipleExpanded,\n expandedKeys,\n defaultExpandedKeys,\n onExpandedChange,\n isDisabled,\n });\n\n const contextValue = useMemo<DisclosureGroupContextValue>(\n () => ({\n groupState,\n triggerProps,\n contentStyles,\n }),\n [groupState, triggerProps, contentStyles],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalStyles = useMemo<Styles>(\n () => ({\n ...outerStyles,\n ...styles,\n }),\n [outerStyles, styles],\n );\n\n return (\n <DisclosureGroupContext.Provider value={contextValue}>\n <GroupRoot ref={ref} qa={qa} mods={mods} styles={finalStyles}>\n {children}\n </GroupRoot>\n </DisclosureGroupContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Disclosure.Item Component\n// ============================================================================\n\nconst DisclosureItem = forwardRef<HTMLDivElement, CubeDisclosureItemProps>(\n function DisclosureItem(props, ref) {\n const {\n id: providedId,\n children,\n isDisabled: itemDisabled = false,\n isExpanded: controlledIsExpanded,\n defaultExpanded,\n onExpandedChange,\n shape = 'default',\n qa,\n mods,\n styles,\n ...otherProps\n } = props;\n\n const defaultId = useId();\n const id = providedId ?? defaultId;\n\n const groupContext = useDisclosureGroupContext();\n const panelRef = useRef<HTMLDivElement>(null);\n\n // Determine if disabled from group or item\n const isDisabled =\n itemDisabled || groupContext?.groupState?.isDisabled || false;\n\n // Determine expanded state from group or local props\n const groupIsExpanded = groupContext\n ? groupContext.groupState.expandedKeys.has(id)\n : undefined;\n\n // When disabled, force expanded to false\n const effectiveIsExpanded = isDisabled\n ? false\n : groupIsExpanded ?? controlledIsExpanded;\n\n const state = useDisclosureState({\n isExpanded: effectiveIsExpanded,\n defaultExpanded: isDisabled ? false : defaultExpanded,\n onExpandedChange(expanded) {\n if (isDisabled) return;\n\n if (groupContext) {\n groupContext.groupState.toggleKey(id);\n }\n onExpandedChange?.(expanded);\n },\n });\n\n // When disabled, override state.isExpanded to false\n const isExpanded = isDisabled ? false : state.isExpanded;\n\n const { buttonProps, panelProps } = useDisclosure(\n {\n isExpanded,\n isDisabled,\n },\n state,\n panelRef,\n );\n\n const contextValue = useMemo<DisclosureContextValue>(\n () => ({\n state,\n buttonProps,\n panelProps,\n panelRef,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration: undefined,\n triggerProps: groupContext?.triggerProps,\n contentStyles: groupContext?.contentStyles,\n }),\n [\n state,\n buttonProps,\n panelProps,\n isDisabled,\n isExpanded,\n shape,\n groupContext?.triggerProps,\n groupContext?.contentStyles,\n ],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalStyles = useMemo<Styles>(\n () => ({\n ...outerStyles,\n ...styles,\n }),\n [outerStyles, styles],\n );\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n return (\n <DisclosureContext.Provider value={contextValue}>\n <DisclosureRoot\n ref={ref}\n qa={qa}\n mods={finalMods}\n styles={finalStyles}\n data-key={id}\n >\n {children}\n </DisclosureRoot>\n </DisclosureContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Compound Component Export\n// ============================================================================\n\nconst _Disclosure = Object.assign(DisclosureComponent, {\n Trigger: DisclosureTrigger,\n Content: DisclosureContent,\n Group: DisclosureGroup,\n Item: DisclosureItem,\n});\n\nexport { _Disclosure as Disclosure };\nexport type {\n CubeDisclosureProps as DisclosureProps,\n CubeDisclosureTriggerProps as DisclosureTriggerProps,\n CubeDisclosureContentProps as DisclosureContentProps,\n CubeDisclosureGroupProps as DisclosureGroupProps,\n CubeDisclosureItemProps as DisclosureItemProps,\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Disclosure.js","names":["ItemButton","useId"],"sources":["../../../../src/components/content/Disclosure/Disclosure.tsx"],"sourcesContent":["import {\n BaseProps,\n BasePropsWithoutChildren,\n OUTER_STYLES,\n OuterStyleProps,\n Styles,\n tasty,\n} from '@tenphi/tasty';\nimport {\n createContext,\n forwardRef,\n Key,\n ReactNode,\n RefObject,\n useContext,\n useMemo,\n useRef,\n} from 'react';\nimport { mergeProps, useDisclosure, useId } from 'react-aria';\nimport {\n DisclosureGroupState,\n DisclosureState,\n useDisclosureGroupState,\n useDisclosureState,\n} from 'react-stately';\n\nimport { RightIcon } from '../../../icons';\nimport { mergeRefs } from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { CubeItemButtonProps, ItemButton } from '../../actions/ItemButton';\nimport { DisplayTransition } from '../../helpers';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface DisclosureStateContext {\n isExpanded: boolean;\n toggle: () => void;\n expand: () => void;\n collapse: () => void;\n}\n\ninterface DisclosureContextValue {\n state: DisclosureState;\n buttonProps: Record<string, unknown>;\n panelProps: Record<string, unknown>;\n panelRef: RefObject<HTMLDivElement | null>;\n isDisabled: boolean;\n isExpanded: boolean;\n shape: 'default' | 'card' | 'sharp';\n transitionDuration?: number;\n triggerProps?: Partial<CubeItemButtonProps>;\n contentStyles?: Styles;\n}\n\ninterface DisclosureGroupContextValue {\n groupState: DisclosureGroupState;\n triggerProps?: Partial<CubeItemButtonProps>;\n contentStyles?: Styles;\n}\n\nexport interface CubeDisclosureProps\n extends BasePropsWithoutChildren,\n OuterStyleProps {\n /** Controls expanded state in controlled mode */\n isExpanded?: boolean;\n /** Initial expanded state in uncontrolled mode */\n defaultExpanded?: boolean;\n /** Callback fired when expanded state changes */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Disables trigger interactions and force-closes the content */\n isDisabled?: boolean;\n /** Render-prop alternative to achieve custom trigger markup */\n children?: ReactNode | ((state: DisclosureStateContext) => ReactNode);\n /** Visual shape variant */\n shape?: 'default' | 'card' | 'sharp';\n /** Duration for DisplayTransition animation in milliseconds */\n transitionDuration?: number;\n}\n\nexport interface CubeDisclosureTriggerProps\n extends Omit<CubeItemButtonProps, 'onPress' | 'isDisabled'> {\n /** Children content for the trigger */\n children?: ReactNode;\n}\n\nexport interface CubeDisclosureContentProps extends BaseProps {\n /** Children content for the panel */\n children?: ReactNode;\n}\n\nexport interface CubeDisclosureGroupProps extends BaseProps, OuterStyleProps {\n /** Allow more than one disclosure to be open */\n allowsMultipleExpanded?: boolean;\n /** Controlled expanded keys */\n expandedKeys?: Iterable<Key>;\n /** Uncontrolled default expanded keys */\n defaultExpandedKeys?: Iterable<Key>;\n /** Change handler providing the full expanded keys Set */\n onExpandedChange?: (keys: Set<Key>) => void;\n /** Disable all disclosures within group and force-close their content */\n isDisabled?: boolean;\n /** Props forwarded to all ItemButton triggers in the group */\n triggerProps?: Partial<CubeItemButtonProps>;\n /** Optional panel styles applied to all Content panels in the group */\n contentStyles?: Styles;\n children: ReactNode;\n}\n\nexport interface CubeDisclosureItemProps\n extends Omit<BasePropsWithoutChildren, 'id'>,\n OuterStyleProps {\n /** Unique identifier for the disclosure item in a group */\n id?: Key;\n /** Children content */\n children?: ReactNode;\n /** Disables trigger interactions and force-closes the content */\n isDisabled?: boolean;\n /** Controls expanded state in controlled mode */\n isExpanded?: boolean;\n /** Initial expanded state in uncontrolled mode */\n defaultExpanded?: boolean;\n /** Callback fired when expanded state changes */\n onExpandedChange?: (isExpanded: boolean) => void;\n /** Visual shape variant */\n shape?: 'default' | 'card' | 'sharp';\n}\n\n// ============================================================================\n// Contexts\n// ============================================================================\n\nconst DisclosureContext = createContext<DisclosureContextValue | null>(null);\nconst DisclosureGroupContext =\n createContext<DisclosureGroupContextValue | null>(null);\n\nfunction useDisclosureContext(): DisclosureContextValue {\n const context = useContext(DisclosureContext);\n\n if (!context) {\n throw new Error(\n 'Disclosure.Trigger and Disclosure.Content must be used within a Disclosure',\n );\n }\n\n return context;\n}\n\nfunction useDisclosureGroupContext(): DisclosureGroupContextValue | null {\n return useContext(DisclosureGroupContext);\n}\n\n// ============================================================================\n// Styled Components\n// ============================================================================\n\nconst DisclosureRoot = tasty({\n qa: 'Disclosure',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: 0,\n position: 'relative',\n // Flex and grid items get `min-width: auto`, which resolves to the\n // min-content width of the panel — so a disclosure holding a code block or\n // a table used to blow out of any flex/grid parent, and no amount of\n // `flexShrink` could pull it back. The panel is already clipped by the\n // wrapper's `overflow: hidden`, so opting out of that minimum is what lets\n // the disclosure take its width from the parent.\n width: 'min 0',\n border: {\n '': 'none',\n 'shape=card': '1bw solid #border',\n },\n radius: {\n '': '1r',\n 'shape=card': '1cr',\n 'shape=sharp': '0',\n },\n fill: {\n '': false,\n 'shape=card': '#surface',\n },\n },\n});\n\nconst ContentWrapperElement = tasty({\n qa: 'DisclosureContentWrapper',\n styles: {\n display: 'block',\n overflow: 'hidden',\n interpolateSize: 'allow-keywords',\n height: {\n '': 0,\n shown: 'max-content',\n },\n transition: 'height $disclosure-transition',\n },\n});\n\nconst ContentElement = tasty({\n qa: 'DisclosureContent',\n styles: {\n display: 'block',\n flow: 'column',\n // Always visible: `content-visibility: auto` while height animates\n // `0 → max-content` can leave the panel at 0px (children skipped for\n // layout, so max-content resolves to 0). Collapsed content is already\n // clipped via height:0 + overflow:hidden on the wrapper, and\n // DisplayTransition unmounts when fully closed.\n contentVisibility: 'visible',\n },\n});\n\nconst GroupRoot = tasty({\n qa: 'DisclosureGroup',\n styles: {\n display: 'flex',\n flow: 'column',\n gap: '0',\n },\n});\n\nconst TriggerIcon = tasty(RightIcon, {\n styles: {\n transition: 'rotate',\n rotate: {\n '': '0deg',\n expanded: '90deg',\n },\n },\n});\n\nconst StyledTrigger = tasty(ItemButton, {\n qa: 'DisclosureTrigger',\n type: 'header',\n 'data-popover-keep': true,\n styles: {\n radius: {\n '': '1r',\n // Card shape: the trigger sits inside the bordered root, so it follows\n // the root's inner radius and drops its bottom corners while open so the\n // header reads as one surface with the panel below it.\n 'shape=card': '(1cr - 1bw)',\n 'expanded & shape=card': '(1cr - 1bw) top',\n 'shape=sharp': '0',\n },\n border: '#clear',\n // `radius` on the disclosure timing so the corners un-round in step with\n // the panel opening, and follow `transitionDuration` when it is set.\n transition: 'theme, radius $disclosure-transition',\n },\n});\n\n// ============================================================================\n// Disclosure Component\n// ============================================================================\n\nconst DisclosureComponent = forwardRef<HTMLDivElement, CubeDisclosureProps>(\n function Disclosure(props, ref) {\n const {\n isExpanded: controlledIsExpanded,\n defaultExpanded,\n onExpandedChange,\n isDisabled = false,\n children,\n shape = 'default',\n transitionDuration,\n qa,\n mods,\n ...otherProps\n } = props;\n\n const groupContext = useDisclosureGroupContext();\n const panelRef = useRef<HTMLDivElement>(null);\n\n // When disabled, force expanded to false\n const effectiveIsExpanded = isDisabled ? false : controlledIsExpanded;\n\n const state = useDisclosureState({\n isExpanded: effectiveIsExpanded,\n defaultExpanded: isDisabled ? false : defaultExpanded,\n onExpandedChange: isDisabled ? undefined : onExpandedChange,\n });\n\n // When disabled, override state.isExpanded to false\n const isExpanded = isDisabled ? false : state.isExpanded;\n\n const { buttonProps, panelProps } = useDisclosure(\n {\n isExpanded,\n isDisabled,\n },\n state,\n panelRef,\n );\n\n const contextValue = useMemo<DisclosureContextValue>(\n () => ({\n state,\n buttonProps,\n panelProps,\n panelRef,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration,\n triggerProps: groupContext?.triggerProps,\n contentStyles: groupContext?.contentStyles,\n }),\n [\n state,\n buttonProps,\n panelProps,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration,\n groupContext?.triggerProps,\n groupContext?.contentStyles,\n ],\n );\n\n const stateContext = useMemo<DisclosureStateContext>(\n () => ({\n isExpanded,\n toggle: state.toggle,\n expand: state.expand,\n collapse: state.collapse,\n }),\n [isExpanded, state.toggle, state.expand, state.collapse],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n const content =\n typeof children === 'function' ? children(stateContext) : children;\n\n // Declared on the root rather than the panel so both animations driven by\n // it — the panel height and the trigger radius — share one duration.\n const tokens = useMemo(\n () =>\n transitionDuration != null\n ? { '$disclosure-transition': `${transitionDuration}ms` }\n : undefined,\n [transitionDuration],\n );\n\n return (\n <DisclosureContext.Provider value={contextValue}>\n <DisclosureRoot\n ref={ref}\n qa={qa}\n mods={finalMods}\n styles={outerStyles}\n tokens={tokens}\n >\n {content}\n </DisclosureRoot>\n </DisclosureContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Disclosure.Trigger Component\n// ============================================================================\n\nconst DisclosureTrigger = forwardRef<\n HTMLButtonElement,\n CubeDisclosureTriggerProps\n>(function DisclosureTrigger(props, ref) {\n const { children, icon, mods, ...otherProps } = props;\n const context = useDisclosureContext();\n const { buttonProps, isDisabled, isExpanded, shape, triggerProps } = context;\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n selected: false,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n // Default icon is a rotating chevron\n const defaultIcon = <TriggerIcon mods={{ expanded: isExpanded }} />;\n\n return (\n <StyledTrigger\n ref={ref}\n icon={icon ?? defaultIcon}\n isDisabled={isDisabled}\n isSelected={isExpanded}\n {...triggerProps}\n {...(mergeProps(otherProps, buttonProps as any) as any)}\n mods={finalMods}\n >\n {children}\n </StyledTrigger>\n );\n});\n\n// ============================================================================\n// Disclosure.Content Component\n// ============================================================================\n\nconst DisclosureContent = forwardRef<\n HTMLDivElement,\n CubeDisclosureContentProps\n>(function DisclosureContent(props, ref) {\n const { children, styles, mods, ...otherProps } = props;\n const context = useDisclosureContext();\n const {\n panelProps,\n panelRef,\n isExpanded,\n transitionDuration,\n contentStyles,\n } = context;\n\n const mergedStyles = useMemo<Styles>(\n () => ({\n ...contentStyles,\n ...styles,\n }),\n [contentStyles, styles],\n );\n\n // Filter out hidden attribute from panelProps since we manage visibility via CSS height animation\n const { hidden, ...filteredPanelProps } = panelProps as Record<\n string,\n unknown\n >;\n\n return (\n <DisplayTransition\n isShown={isExpanded}\n duration={transitionDuration}\n animateOnMount={false}\n >\n {({ phase, isShown, ref: transitionRef }) => (\n <ContentWrapperElement\n ref={transitionRef}\n mods={{ shown: isShown, phase }}\n >\n <ContentElement\n ref={mergeRefs(ref, panelRef)}\n mods={{ ...mods, shown: isShown }}\n styles={mergedStyles}\n {...filteredPanelProps}\n {...otherProps}\n >\n {children}\n </ContentElement>\n </ContentWrapperElement>\n )}\n </DisplayTransition>\n );\n});\n\n// ============================================================================\n// Disclosure.Group Component\n// ============================================================================\n\nconst DisclosureGroup = forwardRef<HTMLDivElement, CubeDisclosureGroupProps>(\n function DisclosureGroup(props, ref) {\n const {\n allowsMultipleExpanded = false,\n expandedKeys,\n defaultExpandedKeys,\n onExpandedChange,\n isDisabled = false,\n triggerProps,\n contentStyles,\n children,\n qa,\n mods,\n styles,\n ...otherProps\n } = props;\n\n const groupState = useDisclosureGroupState({\n allowsMultipleExpanded,\n expandedKeys,\n defaultExpandedKeys,\n onExpandedChange,\n isDisabled,\n });\n\n const contextValue = useMemo<DisclosureGroupContextValue>(\n () => ({\n groupState,\n triggerProps,\n contentStyles,\n }),\n [groupState, triggerProps, contentStyles],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalStyles = useMemo<Styles>(\n () => ({\n ...outerStyles,\n ...styles,\n }),\n [outerStyles, styles],\n );\n\n return (\n <DisclosureGroupContext.Provider value={contextValue}>\n <GroupRoot ref={ref} qa={qa} mods={mods} styles={finalStyles}>\n {children}\n </GroupRoot>\n </DisclosureGroupContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Disclosure.Item Component\n// ============================================================================\n\nconst DisclosureItem = forwardRef<HTMLDivElement, CubeDisclosureItemProps>(\n function DisclosureItem(props, ref) {\n const {\n id: providedId,\n children,\n isDisabled: itemDisabled = false,\n isExpanded: controlledIsExpanded,\n defaultExpanded,\n onExpandedChange,\n shape = 'default',\n qa,\n mods,\n styles,\n ...otherProps\n } = props;\n\n const defaultId = useId();\n const id = providedId ?? defaultId;\n\n const groupContext = useDisclosureGroupContext();\n const panelRef = useRef<HTMLDivElement>(null);\n\n // Determine if disabled from group or item\n const isDisabled =\n itemDisabled || groupContext?.groupState?.isDisabled || false;\n\n // Determine expanded state from group or local props\n const groupIsExpanded = groupContext\n ? groupContext.groupState.expandedKeys.has(id)\n : undefined;\n\n // When disabled, force expanded to false\n const effectiveIsExpanded = isDisabled\n ? false\n : groupIsExpanded ?? controlledIsExpanded;\n\n const state = useDisclosureState({\n isExpanded: effectiveIsExpanded,\n defaultExpanded: isDisabled ? false : defaultExpanded,\n onExpandedChange(expanded) {\n if (isDisabled) return;\n\n if (groupContext) {\n groupContext.groupState.toggleKey(id);\n }\n onExpandedChange?.(expanded);\n },\n });\n\n // When disabled, override state.isExpanded to false\n const isExpanded = isDisabled ? false : state.isExpanded;\n\n const { buttonProps, panelProps } = useDisclosure(\n {\n isExpanded,\n isDisabled,\n },\n state,\n panelRef,\n );\n\n const contextValue = useMemo<DisclosureContextValue>(\n () => ({\n state,\n buttonProps,\n panelProps,\n panelRef,\n isDisabled,\n isExpanded,\n shape,\n transitionDuration: undefined,\n triggerProps: groupContext?.triggerProps,\n contentStyles: groupContext?.contentStyles,\n }),\n [\n state,\n buttonProps,\n panelProps,\n isDisabled,\n isExpanded,\n shape,\n groupContext?.triggerProps,\n groupContext?.contentStyles,\n ],\n );\n\n const outerStyles = extractStyles(otherProps, OUTER_STYLES);\n\n const finalStyles = useMemo<Styles>(\n () => ({\n ...outerStyles,\n ...styles,\n }),\n [outerStyles, styles],\n );\n\n const finalMods = useMemo(\n () => ({\n expanded: isExpanded,\n disabled: isDisabled,\n shape,\n ...mods,\n }),\n [isExpanded, isDisabled, shape, mods],\n );\n\n return (\n <DisclosureContext.Provider value={contextValue}>\n <DisclosureRoot\n ref={ref}\n qa={qa}\n mods={finalMods}\n styles={finalStyles}\n data-key={id}\n >\n {children}\n </DisclosureRoot>\n </DisclosureContext.Provider>\n );\n },\n);\n\n// ============================================================================\n// Compound Component Export\n// ============================================================================\n\nconst _Disclosure = Object.assign(DisclosureComponent, {\n Trigger: DisclosureTrigger,\n Content: DisclosureContent,\n Group: DisclosureGroup,\n Item: DisclosureItem,\n});\n\nexport { _Disclosure as Disclosure };\nexport type {\n CubeDisclosureProps as DisclosureProps,\n CubeDisclosureTriggerProps as DisclosureTriggerProps,\n CubeDisclosureContentProps as DisclosureContentProps,\n CubeDisclosureGroupProps as DisclosureGroupProps,\n CubeDisclosureItemProps as DisclosureItemProps,\n};\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { useSlotProps } from "../../utils/react/Slots.js";
3
3
  import { useCombinedRefs } from "../../utils/react/useCombinedRefs.js";
4
4
  import { BASE_STYLES, COLOR_STYLES, OUTER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../utils/styles.js";
3
3
  import { useSlotProps } from "../../utils/react/Slots.js";
4
4
  import { CONTAINER_STYLES, TEXT_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { _Text } from "../Text.js";
4
4
  import { useKeySymbols } from "../../../utils/react/useKeySymbols.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { ItemAction } from "../../actions/ItemAction/ItemAction.js";
3
3
  import { ItemBadge } from "../ItemBadge/ItemBadge.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -84,7 +84,7 @@ interface CubeItemProps extends BaseProps, ContainerStyleProps {
84
84
  */
85
85
  disableActionsFocus?: boolean;
86
86
  size?: 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'inline' | number | (string & {});
87
- type?: 'item' | 'header' | 'primary' | 'outline' | 'outline-2' | 'clear' | 'link' | 'card' | (string & {});
87
+ type?: 'item' | 'header' | 'primary' | 'outline' | 'outline-2' | 'clear' | 'link' | 'card' | 'current' | (string & {});
88
88
  theme?: 'default' | 'danger' | 'success' | 'special' | 'warning' | 'note' | (string & {});
89
89
  /** Keyboard shortcut that triggers the element when pressed */
90
90
  hotkeys?: string;
@@ -132,6 +132,13 @@ interface CubeItemProps extends BaseProps, ContainerStyleProps {
132
132
  * @default "top"
133
133
  */
134
134
  defaultTooltipPlacement?: OverlayProps['placement'];
135
+ /**
136
+ * @private
137
+ * The native `disabled` attribute, which `useAction` forwards through
138
+ * `ItemButton`. Treated as an alias of `isDisabled` so that the item stays
139
+ * the only place deciding how the disabled state reaches the DOM.
140
+ */
141
+ disabled?: boolean;
135
142
  /**
136
143
  * Ref to access the label element directly
137
144
  */
@@ -1,9 +1,10 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.158.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.160.0 | Cube Dev Team */
2
+ import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
2
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
4
  import { resolveIcon } from "../../../utils/react/resolveIcon.js";
4
5
  import { highlightText } from "../highlightText.js";
5
6
  import { useAutoTooltip } from "../use-auto-tooltip.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
+ import { CURRENT_ITEM_STYLES, 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
8
  import { CheckIcon } from "../../../icons/CheckIcon.js";
8
9
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
9
10
  import { ItemActionProvider } from "../../actions/ItemActionContext.js";
@@ -280,6 +281,7 @@ const ItemElement = tasty({
280
281
  }
281
282
  },
282
283
  variants: {
284
+ "default.current": CURRENT_ITEM_STYLES,
283
285
  "default.primary": DEFAULT_PRIMARY_STYLES,
284
286
  "default.outline": DEFAULT_OUTLINE_STYLES,
285
287
  "default.outline-2": DEFAULT_OUTLINE_2_STYLES,
@@ -324,18 +326,23 @@ const ItemElement = tasty({
324
326
  styleProps: CONTAINER_STYLES
325
327
  });
326
328
  const Item = (props, ref) => {
327
- let { children, size = "medium", type = "item", theme = "default", mods, icon: iconProp, rightIcon: rightIconProp, prefix, suffix, description, descriptionPlacement, labelProps, descriptionProps, keyboardShortcutProps, styles, htmlType, isSelected, hotkeys, tooltip = true, isDisabled, style, loadingSlot = "auto", isLoading = false, actions, autoHideActions = false, preserveActionsSpace = false, disableActionsFocus = false, shape, defaultTooltipPlacement = "top", level = 3, highlight, highlightCaseSensitive = false, highlightStyles, insideWrapper = false, showActions = false, tokens, ...rest } = props;
329
+ let { children, size = "medium", type = "item", theme = "default", mods, icon: iconProp, rightIcon: rightIconProp, prefix, suffix, description, descriptionPlacement, labelProps, descriptionProps, keyboardShortcutProps, styles, htmlType, isSelected, hotkeys, tooltip = true, isDisabled, disabled: nativeDisabledProp, style, loadingSlot = "auto", isLoading = false, actions, autoHideActions = false, preserveActionsSpace = false, disableActionsFocus = false, shape, defaultTooltipPlacement = "top", level = 3, highlight, highlightCaseSensitive = false, highlightStyles, insideWrapper = false, showActions = false, tokens, ...rest } = props;
328
330
  const hasLabel = !!(children || labelProps);
329
331
  const finalDescriptionPlacement = descriptionPlacement ?? ((type === "card" || type === "header") && hasLabel ? "block" : "inline");
330
332
  const finalShape = shape ?? (type === "card" ? "card" : "button");
331
- const finalIsDisabled = isDisabled === true || isLoading && isDisabled !== false;
332
- useWarn(type === "header" && !["default"].includes(theme) || type === "card" && ![
333
+ const isDisabledProp = isDisabled ?? (nativeDisabledProp || void 0);
334
+ const finalIsDisabled = isDisabledProp === true || isLoading && isDisabledProp !== false;
335
+ useWarn(type === "header" && !["default"].includes(theme) || type === "current" && !["default"].includes(theme) || type === "card" && ![
333
336
  "default",
334
337
  "success",
335
338
  "danger",
336
339
  "warning",
337
340
  "note"
338
- ].includes(theme) || !["header", "card"].includes(type) && ![
341
+ ].includes(theme) || ![
342
+ "header",
343
+ "current",
344
+ "card"
345
+ ].includes(type) && ![
339
346
  "default",
340
347
  "success",
341
348
  "danger",
@@ -349,7 +356,7 @@ const Item = (props, ref) => {
349
356
  type,
350
357
  theme
351
358
  ],
352
- args: [`Item: Invalid type+theme combination. type="${type}" does not support theme="${theme}".` + (type === "header" ? " The \"header\" type only supports theme: default." : type === "card" ? " The \"card\" type only supports themes: default, success, danger, warning, note." : " Standard types support themes: default, success, danger, warning, note, special.")]
359
+ args: [`Item: Invalid type+theme combination. type="${type}" does not support theme="${theme}".` + (type === "header" ? " The \"header\" type only supports theme: default." : type === "current" ? " The \"current\" type derives every color from the inherited text color and only supports theme: default." : type === "card" ? " The \"card\" type only supports themes: default, success, danger, warning, note." : " Standard types support themes: default, success, danger, warning, note, special.")]
353
360
  });
354
361
  const hasLinkWithIcons = type === "link" && (iconProp || rightIconProp);
355
362
  const hasLinkWithLoading = type === "link" && isLoading;
@@ -472,12 +479,17 @@ const Item = (props, ref) => {
472
479
  showActions,
473
480
  insideWrapper
474
481
  ]);
475
- const { labelProps: finalLabelProps, labelRef, renderWithTooltip } = useAutoTooltip({
482
+ const { labelProps: finalLabelProps, labelRef, renderWithTooltip, isTooltipActive } = useAutoTooltip({
476
483
  tooltip,
477
484
  children,
478
485
  labelProps,
479
486
  isDynamicLabel: !!actions
480
487
  });
488
+ const { isNativelyDisabled, isInert, inertProps } = getDisabledElementProps({
489
+ isDisabled: finalIsDisabled,
490
+ keepEvents: isTooltipActive,
491
+ as: rest.as
492
+ });
481
493
  const processedChildren = useMemo(() => {
482
494
  if (typeof children === "string" && highlight) return highlightText(children, highlight, highlightCaseSensitive, highlightStyles);
483
495
  return children;
@@ -503,10 +515,11 @@ const Item = (props, ref) => {
503
515
  if (tooltipRef) tooltipRef.current = element;
504
516
  };
505
517
  const effectiveType = theme === "special" && type === "outline-2" ? "outline" : type;
518
+ const variantType = effectiveType === "header" ? "item" : effectiveType;
506
519
  return /* @__PURE__ */ jsxs(ItemElement, {
507
520
  ref: handleRef,
508
- variant: theme && effectiveType ? `${effectiveType === "header" ? "default" : theme}.${effectiveType === "header" ? "item" : effectiveType}` : void 0,
509
- disabled: finalIsDisabled,
521
+ variant: theme && variantType ? `${effectiveType === "header" || effectiveType === "current" ? "default" : theme}.${variantType}` : void 0,
522
+ disabled: isNativelyDisabled,
510
523
  "aria-disabled": finalIsDisabled,
511
524
  "aria-selected": isSelected,
512
525
  mods: finalMods,
@@ -516,7 +529,7 @@ const Item = (props, ref) => {
516
529
  ...sizeTokenValue ? { $size: sizeTokenValue } : {}
517
530
  },
518
531
  type: htmlType,
519
- ...mergeProps(rest, tooltipTriggerProps || {}),
532
+ ...mergeProps(isInert ? omitActivationEventProps(rest) : rest, tooltipTriggerProps || {}, inertProps),
520
533
  style,
521
534
  children: [
522
535
  hasIconSlot && /* @__PURE__ */ jsx("div", {