@cube-dev/ui-kit 0.189.0 → 0.190.1

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 (605) hide show
  1. package/dist/CHANGELOG.md +20 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.js +5 -4
  19. package/dist/components/actions/Button/Button.js.map +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +83 -79
  26. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  27. package/dist/components/actions/ItemActionContext.js +1 -1
  28. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  29. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  30. package/dist/components/actions/Link/Link.js +1 -1
  31. package/dist/components/actions/Menu/Menu.js +1 -1
  32. package/dist/components/actions/Menu/MenuItem.js +1 -1
  33. package/dist/components/actions/Menu/MenuSection.js +1 -1
  34. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  36. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  37. package/dist/components/actions/Menu/context.js +1 -1
  38. package/dist/components/actions/Menu/styled.js +1 -1
  39. package/dist/components/actions/actions-run.js +1 -1
  40. package/dist/components/actions/index.js +1 -1
  41. package/dist/components/actions/use-action.js +3 -3
  42. package/dist/components/actions/use-action.js.map +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 +37 -43
  46. package/dist/components/content/ActiveZone/ActiveZone.js.map +1 -1
  47. package/dist/components/content/Alert/Alert.js +1 -1
  48. package/dist/components/content/Alert/use-alert.js +1 -1
  49. package/dist/components/content/Avatar/Avatar.js +1 -1
  50. package/dist/components/content/Badge/Badge.js +1 -1
  51. package/dist/components/content/Card/Card.js +1 -1
  52. package/dist/components/content/Content.js +1 -1
  53. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  54. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  55. package/dist/components/content/Disclosure/Disclosure.js +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.js +1 -1
  63. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  64. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  65. package/dist/components/content/Layout/GridLayout.js +1 -1
  66. package/dist/components/content/Layout/Layout.js +1 -1
  67. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  68. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  69. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  70. package/dist/components/content/Layout/LayoutContent.js +1 -1
  71. package/dist/components/content/Layout/LayoutContext.js +1 -1
  72. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  73. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  74. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  75. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  76. package/dist/components/content/Layout/LayoutPane.js +1 -1
  77. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  78. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  79. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  80. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  81. package/dist/components/content/Layout/index.js +1 -1
  82. package/dist/components/content/Layout/utils.js +1 -1
  83. package/dist/components/content/Paragraph.js +1 -1
  84. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  85. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  86. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  87. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  88. package/dist/components/content/Result/Result.js +1 -1
  89. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  90. package/dist/components/content/Tag/Tag.js +1 -1
  91. package/dist/components/content/Text.d.ts +14 -14
  92. package/dist/components/content/Text.js +1 -1
  93. package/dist/components/content/TextItem/TextItem.js +1 -1
  94. package/dist/components/content/Title.js +1 -1
  95. package/dist/components/content/Tree/Tree.js +1 -1
  96. package/dist/components/content/Tree/TreeNode.js +1 -1
  97. package/dist/components/content/Tree/styled.js +1 -1
  98. package/dist/components/content/Tree/tree-index.js +1 -1
  99. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  100. package/dist/components/content/Tree/use-load-data.js +1 -1
  101. package/dist/components/content/highlightText.js +1 -1
  102. package/dist/components/content/use-auto-tooltip.js +1 -1
  103. package/dist/components/data/DataTable/DataTable.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  105. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  106. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  109. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  110. package/dist/components/data/TableBase/RowCollection.js +1 -1
  111. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  112. package/dist/components/data/TableBase/TableRow.js +1 -1
  113. package/dist/components/data/TableBase/TableView.js +1 -1
  114. package/dist/components/data/TableBase/column-menu.js +1 -1
  115. package/dist/components/data/TableBase/column-styles.js +1 -1
  116. package/dist/components/data/TableBase/column-tint.js +2 -6
  117. package/dist/components/data/TableBase/column-tint.js.map +1 -1
  118. package/dist/components/data/TableBase/row-menu.js +1 -1
  119. package/dist/components/data/TableBase/styled.js +1 -1
  120. package/dist/components/data/TableBase/styled.js.map +1 -1
  121. package/dist/components/data/TableBase/table-tree.js +1 -1
  122. package/dist/components/data/TableBase/types.js +1 -1
  123. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  124. package/dist/components/data/TableBase/use-column-order.js +1 -1
  125. package/dist/components/data/TableBase/use-container-width.js +1 -1
  126. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  127. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  128. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  129. package/dist/components/data/TableBase/use-table-search.js +1 -1
  130. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  131. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  132. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  133. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  134. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  135. package/dist/components/fields/Checkbox/Checkbox.js +2 -2
  136. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  137. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  138. package/dist/components/fields/Checkbox/context.js +1 -1
  139. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  140. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  141. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  142. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +49 -55
  143. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  144. package/dist/components/fields/ComboBox/ComboBox.js +2 -2
  145. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  146. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  147. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  148. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  149. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  150. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  151. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  152. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  153. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  154. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  155. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  156. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  157. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  158. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  159. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  160. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  161. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  162. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  163. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  164. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  165. package/dist/components/fields/DatePicker/period.js +1 -1
  166. package/dist/components/fields/DatePicker/props.js +1 -1
  167. package/dist/components/fields/DatePicker/utils.js +1 -1
  168. package/dist/components/fields/FileInput/FileInput.js +1 -1
  169. package/dist/components/fields/FilterListBox/FilterListBox.js +2 -2
  170. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  171. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  172. package/dist/components/fields/Input/Input.js +1 -1
  173. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  174. package/dist/components/fields/ListBox/ListBox.js +2 -2
  175. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  176. package/dist/components/fields/ListBox/optionId.js +1 -1
  177. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +3 -2
  178. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  179. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  180. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  181. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  182. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  183. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  184. package/dist/components/fields/Picker/Picker.js +1 -1
  185. package/dist/components/fields/RadioGroup/Radio.js +132 -138
  186. package/dist/components/fields/RadioGroup/Radio.js.map +1 -1
  187. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  188. package/dist/components/fields/RadioGroup/context.js +1 -1
  189. package/dist/components/fields/SearchComboBox/SearchComboBox.js +2 -2
  190. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  191. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  192. package/dist/components/fields/Select/Select.js +65 -70
  193. package/dist/components/fields/Select/Select.js.map +1 -1
  194. package/dist/components/fields/Slider/Gradation.js +1 -1
  195. package/dist/components/fields/Slider/HueSlider.js +1 -1
  196. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  197. package/dist/components/fields/Slider/Slider.js +1 -1
  198. package/dist/components/fields/Slider/SliderBase.js +1 -1
  199. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  200. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  201. package/dist/components/fields/Slider/elements.js +1 -1
  202. package/dist/components/fields/Slider/index.js +1 -1
  203. package/dist/components/fields/Switch/Switch.js +106 -112
  204. package/dist/components/fields/Switch/Switch.js.map +1 -1
  205. package/dist/components/fields/TagInput/TagInput.js +1 -1
  206. package/dist/components/fields/TagInput/TagList.js +1 -1
  207. package/dist/components/fields/TextArea/TextArea.js +1 -1
  208. package/dist/components/fields/TextInput/TextInput.js +1 -1
  209. package/dist/components/fields/TextInput/TextInputBase.js +2 -2
  210. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  211. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  212. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  213. package/dist/components/fields/TriggerActions.js +1 -1
  214. package/dist/components/fields/color/ColorPanel.js +1 -1
  215. package/dist/components/fields/color/channels.js +1 -1
  216. package/dist/components/fields/color/color.js +1 -1
  217. package/dist/components/fields/color/context.js +1 -1
  218. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  219. package/dist/components/form/Form/Field.js +1 -1
  220. package/dist/components/form/Form/Form.js +1 -1
  221. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  222. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  223. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  224. package/dist/components/form/Form/SubmitError.js +1 -1
  225. package/dist/components/form/Form/backend.js +1 -1
  226. package/dist/components/form/Form/index.js +1 -1
  227. package/dist/components/form/Form/modern/actions.js +1 -1
  228. package/dist/components/form/Form/modern/context.js +1 -1
  229. package/dist/components/form/Form/modern/controller.js +1 -1
  230. package/dist/components/form/Form/modern/field-binding.js +1 -1
  231. package/dist/components/form/Form/modern/field.js +1 -1
  232. package/dist/components/form/Form/modern/react.js +1 -1
  233. package/dist/components/form/Form/modern/store.js +1 -1
  234. package/dist/components/form/Form/modern/validation.js +1 -1
  235. package/dist/components/form/Form/modern/values.js +1 -1
  236. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  237. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  238. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  239. package/dist/components/form/Form/use-field/use-field.js +1 -1
  240. package/dist/components/form/Form/use-form.js +1 -1
  241. package/dist/components/form/Form/validation.js +1 -1
  242. package/dist/components/form/Label.js +1 -1
  243. package/dist/components/form/legacy-tooltip.js +1 -1
  244. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  245. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  246. package/dist/components/form/validation/use-validation-props.js +1 -1
  247. package/dist/components/form/wrapper.js +1 -1
  248. package/dist/components/helpers/DisplayTransition/DisplayTransition.d.ts +9 -1
  249. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +2 -1
  250. package/dist/components/helpers/DisplayTransition/DisplayTransition.js.map +1 -1
  251. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  252. package/dist/components/layout/Board/Board.js +1 -1
  253. package/dist/components/layout/Board/BoardProvider.js +1 -1
  254. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  255. package/dist/components/layout/Board/Widget.js +1 -1
  256. package/dist/components/layout/Board/WidgetHost.js +1 -1
  257. package/dist/components/layout/Board/board-context.js +1 -1
  258. package/dist/components/layout/Board/board-store.js +1 -1
  259. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  260. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  261. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  262. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  263. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  264. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  265. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  266. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  267. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  268. package/dist/components/layout/Board/index.js +1 -1
  269. package/dist/components/layout/Board/responsive-utils.js +1 -1
  270. package/dist/components/layout/Board/use-board-layout.js +1 -1
  271. package/dist/components/layout/Board/use-board-registry.js +1 -1
  272. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  273. package/dist/components/layout/Board/use-board-selection.js +1 -1
  274. package/dist/components/layout/Flex.js +1 -1
  275. package/dist/components/layout/Flow.js +1 -1
  276. package/dist/components/layout/Grid.js +1 -1
  277. package/dist/components/layout/Panel.js +1 -1
  278. package/dist/components/layout/Prefix.js +1 -1
  279. package/dist/components/layout/ResizablePanel.js +1 -1
  280. package/dist/components/layout/Space.js +1 -1
  281. package/dist/components/layout/Suffix.js +1 -1
  282. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  283. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  284. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  285. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  286. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  287. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  288. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  289. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  290. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  291. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  292. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  293. package/dist/components/navigation/Tabs/styled.js +1 -1
  294. package/dist/components/navigation/Tabs/types.js +1 -1
  295. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  296. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  297. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  298. package/dist/components/other/Calendar/Calendar.js +1 -1
  299. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  300. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  301. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  302. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  303. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  304. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  305. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  306. package/dist/components/other/Calendar/styled.js +1 -1
  307. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  308. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  309. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  310. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.d.ts +20 -32
  311. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +117 -54
  312. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  313. package/dist/components/overlays/AlertDialog/AlertDialogZone.d.ts +1 -0
  314. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +107 -88
  315. package/dist/components/overlays/AlertDialog/AlertDialogZone.js.map +1 -1
  316. package/dist/components/overlays/AlertDialog/types.d.ts +30 -1
  317. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  318. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  319. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  320. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  321. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  322. package/dist/components/overlays/Dialog/context.js +1 -1
  323. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  324. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  325. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  326. package/dist/components/overlays/Modal/Modal.js +4 -2
  327. package/dist/components/overlays/Modal/Modal.js.map +1 -1
  328. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  329. package/dist/components/overlays/Modal/Overlay.js +4 -3
  330. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  331. package/dist/components/overlays/Modal/Popover.js +2 -2
  332. package/dist/components/overlays/Modal/Tray.js +4 -2
  333. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  334. package/dist/components/overlays/Modal/Underlay.js +1 -1
  335. package/dist/components/overlays/Notifications/Notification.js +1 -1
  336. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  337. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  338. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  339. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  340. package/dist/components/overlays/Notifications/OverlayContainer.js +45 -39
  341. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  342. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  343. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  344. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  345. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  346. package/dist/components/overlays/Notifications/index.js +1 -1
  347. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  348. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  349. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  350. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  351. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  352. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  353. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  354. package/dist/components/overlays/Toast/index.js +1 -1
  355. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  356. package/dist/components/overlays/Toast/useToast.js +1 -1
  357. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  358. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  359. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  360. package/dist/components/overlays/Tooltip/context.js +1 -1
  361. package/dist/components/overlays/Tooltip/split-trigger-props.js +1 -1
  362. package/dist/components/portal/Portal.js +1 -1
  363. package/dist/components/portal/PortalProvider.js +1 -1
  364. package/dist/components/portal/usePortal.js +1 -1
  365. package/dist/components/shared/DraggableCollection.js +1 -1
  366. package/dist/components/shared/InvalidIcon.js +1 -1
  367. package/dist/components/shared/ValidIcon.js +1 -1
  368. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  369. package/dist/components/status/Spin/Cube.js +1 -1
  370. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  371. package/dist/components/status/Spin/Spin.js +1 -1
  372. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  373. package/dist/data/item-themes.js +19 -19
  374. package/dist/data/item-themes.js.map +1 -1
  375. package/dist/data/themes.js +1 -1
  376. package/dist/eslint-plugin/defaults.generated.js +1 -1
  377. package/dist/eslint-plugin/index.js +1 -1
  378. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  379. package/dist/i18n/I18nProvider.js +1 -1
  380. package/dist/i18n/createFormatter.js +1 -1
  381. package/dist/i18n/index.js +1 -1
  382. package/dist/i18n/instance.js +1 -1
  383. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  384. package/dist/i18n/locales/en-US/uikit.js +1 -1
  385. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  386. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  387. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  388. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  389. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  390. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  391. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  392. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  393. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  394. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  395. package/dist/i18n/locales.js +1 -1
  396. package/dist/i18n/useFormatter.js +1 -1
  397. package/dist/i18n/useI18n.js +1 -1
  398. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  399. package/dist/icons/AdjustmentsIcon.js +1 -1
  400. package/dist/icons/AiIcon.js +1 -1
  401. package/dist/icons/AreaChartIcon.js +1 -1
  402. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  403. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  404. package/dist/icons/BackwardIcon.js +1 -1
  405. package/dist/icons/BarChartIcon.js +1 -1
  406. package/dist/icons/BellFilledIcon.js +1 -1
  407. package/dist/icons/BellIcon.js +1 -1
  408. package/dist/icons/BooleanIcon.js +1 -1
  409. package/dist/icons/CalendarEditIcon.js +1 -1
  410. package/dist/icons/CalendarIcon.js +1 -1
  411. package/dist/icons/CaretDownIcon.js +1 -1
  412. package/dist/icons/CaretUpIcon.js +1 -1
  413. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  414. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  415. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  416. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  417. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  418. package/dist/icons/ChartBarLineIcon.js +1 -1
  419. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  420. package/dist/icons/ChartBarStackedIcon.js +1 -1
  421. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  422. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  423. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  424. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  425. package/dist/icons/ChartBubbleIcon.js +1 -1
  426. package/dist/icons/ChartDonut2Icon.js +1 -1
  427. package/dist/icons/ChartFunnelIcon.js +1 -1
  428. package/dist/icons/ChartHeatmapIcon.js +1 -1
  429. package/dist/icons/ChartKPIIcon.js +1 -1
  430. package/dist/icons/ChartPie2Icon.js +1 -1
  431. package/dist/icons/ChartScatterIcon.js +1 -1
  432. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  433. package/dist/icons/CheckCircleIcon.js +1 -1
  434. package/dist/icons/CheckIcon.js +1 -1
  435. package/dist/icons/CircleFilledIcon.js +1 -1
  436. package/dist/icons/ClearIcon.js +1 -1
  437. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  438. package/dist/icons/CloseCircleIcon.js +1 -1
  439. package/dist/icons/CloseIcon.js +1 -1
  440. package/dist/icons/CodeIcon.js +1 -1
  441. package/dist/icons/ColumnTotalIcon.js +1 -1
  442. package/dist/icons/CopyIcon.js +1 -1
  443. package/dist/icons/CountIcon.js +1 -1
  444. package/dist/icons/CubeIcon.js +1 -1
  445. package/dist/icons/CubePauseIcon.js +1 -1
  446. package/dist/icons/CubePlayIcon.js +1 -1
  447. package/dist/icons/CurrencyDollarIcon.js +1 -1
  448. package/dist/icons/DangerIcon.js +1 -1
  449. package/dist/icons/DashboardIcon.js +1 -1
  450. package/dist/icons/DatabaseIcon.js +1 -1
  451. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  452. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  453. package/dist/icons/DirectionIcon.js +1 -1
  454. package/dist/icons/DonutIcon.js +1 -1
  455. package/dist/icons/DownIcon.js +1 -1
  456. package/dist/icons/EditIcon.js +1 -1
  457. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  458. package/dist/icons/ExclamationCircleIcon.js +1 -1
  459. package/dist/icons/ExclamationIcon.js +1 -1
  460. package/dist/icons/EyeIcon.js +1 -1
  461. package/dist/icons/EyeInvisibleIcon.js +1 -1
  462. package/dist/icons/FilterIcon.js +1 -1
  463. package/dist/icons/FolderFilledIcon.js +1 -1
  464. package/dist/icons/FolderIcon.js +1 -1
  465. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  466. package/dist/icons/FolderOpenIcon.js +1 -1
  467. package/dist/icons/ForwardIcon.js +1 -1
  468. package/dist/icons/GripVerticalIcon.js +1 -1
  469. package/dist/icons/HierarchyIcon.js +1 -1
  470. package/dist/icons/HierarchyOpenIcon.js +1 -1
  471. package/dist/icons/Icon.js +1 -1
  472. package/dist/icons/InfoCircleIcon.js +1 -1
  473. package/dist/icons/InfoIcon.js +1 -1
  474. package/dist/icons/KeyIcon.js +1 -1
  475. package/dist/icons/LeftIcon.js +1 -1
  476. package/dist/icons/LineChartIcon.js +1 -1
  477. package/dist/icons/LoadingIcon.js +1 -1
  478. package/dist/icons/LockFilledIcon.js +1 -1
  479. package/dist/icons/LockIcon.js +1 -1
  480. package/dist/icons/MoreIcon.js +1 -1
  481. package/dist/icons/NotAllowedIcon.js +1 -1
  482. package/dist/icons/Number123Icon.js +1 -1
  483. package/dist/icons/NumberIcon.js +1 -1
  484. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  485. package/dist/icons/PauseCircleIcon.js +1 -1
  486. package/dist/icons/PauseIcon.js +1 -1
  487. package/dist/icons/PercentageIcon.js +1 -1
  488. package/dist/icons/PieChartIcon.js +1 -1
  489. package/dist/icons/PipetteIcon.js +1 -1
  490. package/dist/icons/PlayCircleIcon.js +1 -1
  491. package/dist/icons/PlayIcon.js +1 -1
  492. package/dist/icons/PlusIcon.js +1 -1
  493. package/dist/icons/ProgressBarIcon.js +1 -1
  494. package/dist/icons/ReloadIcon.js +1 -1
  495. package/dist/icons/ReportIcon.js +1 -1
  496. package/dist/icons/ReturnIcon.js +1 -1
  497. package/dist/icons/RightIcon.js +1 -1
  498. package/dist/icons/RowTotalsIcon.js +1 -1
  499. package/dist/icons/SchemeIcon.js +1 -1
  500. package/dist/icons/SearchIcon.js +1 -1
  501. package/dist/icons/SemanticQueryIcon.js +1 -1
  502. package/dist/icons/SettingsIcon.js +1 -1
  503. package/dist/icons/ShieldFilledIcon.js +1 -1
  504. package/dist/icons/ShieldIcon.js +1 -1
  505. package/dist/icons/SlashIcon.js +1 -1
  506. package/dist/icons/SparklesIcon.js +1 -1
  507. package/dist/icons/SqlIcon.js +1 -1
  508. package/dist/icons/StatsIcon.js +1 -1
  509. package/dist/icons/StopIcon.js +1 -1
  510. package/dist/icons/StringIcon.js +1 -1
  511. package/dist/icons/SubtotalsIcon.js +1 -1
  512. package/dist/icons/SwitchIcon.js +1 -1
  513. package/dist/icons/TableIcon.js +1 -1
  514. package/dist/icons/ThumbsDownIcon.js +1 -1
  515. package/dist/icons/ThumbsUpIcon.js +1 -1
  516. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  517. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  518. package/dist/icons/ThunderboltIcon.js +1 -1
  519. package/dist/icons/TimeIcon.js +1 -1
  520. package/dist/icons/TrashIcon.js +1 -1
  521. package/dist/icons/UnlockIcon.js +1 -1
  522. package/dist/icons/UpIcon.js +1 -1
  523. package/dist/icons/UserGroupIcon.js +1 -1
  524. package/dist/icons/UserIcon.js +1 -1
  525. package/dist/icons/UserLockIcon.js +1 -1
  526. package/dist/icons/ViewIcon.js +1 -1
  527. package/dist/icons/WarningFilledIcon.js +1 -1
  528. package/dist/icons/WarningIcon.js +1 -1
  529. package/dist/icons/wrap-icon.js +1 -1
  530. package/dist/index.js +1 -1
  531. package/dist/probe/canonicalize.js +1 -1
  532. package/dist/probe/css.js +1 -1
  533. package/dist/probe/index.js +1 -1
  534. package/dist/provider.js +1 -1
  535. package/dist/providers/TrackingProvider.js +1 -1
  536. package/dist/providers/navigationAdapter.default.js +1 -1
  537. package/dist/tokens/all-tokens.js +1 -1
  538. package/dist/tokens/base.js +1 -1
  539. package/dist/tokens/color-seed.js +1 -1
  540. package/dist/tokens/color-theme.js +1 -1
  541. package/dist/tokens/colors.js +1 -1
  542. package/dist/tokens/layout.js +1 -1
  543. package/dist/tokens/lazy-styles.js +1 -1
  544. package/dist/tokens/legacy-color.js +1 -1
  545. package/dist/tokens/palette-config.js +1 -1
  546. package/dist/tokens/palette.js +1 -1
  547. package/dist/tokens/resolve.js +1 -1
  548. package/dist/tokens/shadows.js +1 -1
  549. package/dist/tokens/sizes.js +1 -1
  550. package/dist/tokens/spacing.js +1 -1
  551. package/dist/tokens/typography.js +1 -1
  552. package/dist/utils/ResizeSensor.js +1 -1
  553. package/dist/utils/colors.js +1 -1
  554. package/dist/utils/dotize.js +1 -1
  555. package/dist/utils/is-dev-env.js +1 -1
  556. package/dist/utils/modules.js +1 -1
  557. package/dist/utils/promise.js +1 -1
  558. package/dist/utils/raf.js +1 -1
  559. package/dist/utils/random.js +1 -1
  560. package/dist/utils/range.js +1 -1
  561. package/dist/utils/react/RenderCache.js +1 -1
  562. package/dist/utils/react/Slots.js +1 -1
  563. package/dist/utils/react/chain.js +1 -1
  564. package/dist/utils/react/disabledProps.d.ts +4 -2
  565. package/dist/utils/react/disabledProps.js +7 -2
  566. package/dist/utils/react/disabledProps.js.map +1 -1
  567. package/dist/utils/react/escapePropagation.js +1 -1
  568. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  569. package/dist/utils/react/index.js +1 -1
  570. package/dist/utils/react/interactions.js +49 -24
  571. package/dist/utils/react/interactions.js.map +1 -1
  572. package/dist/utils/react/isTextOnly.js +1 -1
  573. package/dist/utils/react/mapProps.js +1 -1
  574. package/dist/utils/react/mergeProps.js +1 -1
  575. package/dist/utils/react/nullableValue.js +1 -1
  576. package/dist/utils/react/programmaticFocus.js +1 -1
  577. package/dist/utils/react/resolveIcon.js +1 -1
  578. package/dist/utils/react/sharedStore.js +1 -1
  579. package/dist/utils/react/useBufferedValue.js +1 -1
  580. package/dist/utils/react/useCombinedRefs.js +1 -1
  581. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  582. package/dist/utils/react/useEventBus.js +1 -1
  583. package/dist/utils/react/useId.js +1 -1
  584. package/dist/utils/react/useIsDarwin.js +1 -1
  585. package/dist/utils/react/useKeySymbols.js +1 -1
  586. package/dist/utils/react/useLayoutEffect.js +1 -1
  587. package/dist/utils/react/useLocalStorage.js +1 -1
  588. package/dist/utils/react/useMergeStyles.js +1 -1
  589. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  590. package/dist/utils/react/usePopoverSync.js +1 -1
  591. package/dist/utils/react/useQaProps.js +1 -1
  592. package/dist/utils/react/useScheme.js +1 -1
  593. package/dist/utils/react/useViewportSize.js +1 -1
  594. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  595. package/dist/utils/selection.js +1 -1
  596. package/dist/utils/styles.js +1 -1
  597. package/dist/utils/tree.js +1 -1
  598. package/dist/utils/warnings.js +1 -1
  599. package/dist/version.js +2 -2
  600. package/docs/components/actions/Button.md +1 -1
  601. package/docs/components/actions/ItemAction.md +30 -2
  602. package/docs/components/content/InfoBadge.md +2 -2
  603. package/docs/components/helpers/DisplayTransition.md +3 -1
  604. package/docs/components/overlays/AlertDialog.md +60 -27
  605. package/package.json +1 -1
package/dist/CHANGELOG.md CHANGED
@@ -1,5 +1,25 @@
1
1
  # @cube-dev/ui-kit
2
2
 
3
+ ## 0.190.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [#1470](https://github.com/cube-js/cube-ui-kit/pull/1470) [`e7bf7d2e`](https://github.com/cube-js/cube-ui-kit/commit/e7bf7d2ec2b54c70ee5961c2d6c6d29633ca8093) Thanks [@tenphi](https://github.com/tenphi)! - A disabled or loading `Button` that has a tooltip, or renders as a link, no longer opens its `MenuTrigger` menu from the keyboard (Enter, Space or ArrowDown), as `ItemButton` and `ItemAction` already did not. Enter or Space on such a `Button`, `ItemButton` or `ItemAction` also no longer clicks the element around it, so a clickable row or card doesn't react.
8
+
9
+ - [#1467](https://github.com/cube-js/cube-ui-kit/pull/1467) [`05f03e86`](https://github.com/cube-js/cube-ui-kit/commit/05f03e868c64e24dbf42223c7e296d158b01a7c6) Thanks [@tenphi](https://github.com/tenphi)! - A press on a popup that is closing no longer closes the Dialog underneath and loses what was typed in it. A list closes on its own when the content around its trigger scrolls, so a trackpad's momentum was enough for a click on a still-visible option to dismiss the whole Dialog; a second click on a nested Dialog that was already closing did the same. The press now reaches the popup instead, so the option clicked in a fading list is picked, and an `Escape` pressed while a nested modal or tray is still closing reaches the Dialog under it instead of being lost. This covers `Select`, `ComboBox`, `Picker`, `FilterPicker`, menus and every other popover, modal and tray. Pressing an action on a toast or notification while a Dialog is open now runs it too, instead of closing the Dialog and dropping the press. `DisplayTransition`'s render prop also receives `isExiting`: `true` from the render where the `isShown` prop turns `false` until the exit finishes.
10
+
11
+ - [#1470](https://github.com/cube-js/cube-ui-kit/pull/1470) [`e7bf7d2e`](https://github.com/cube-js/cube-ui-kit/commit/e7bf7d2ec2b54c70ee5961c2d6c6d29633ca8093) Thanks [@tenphi](https://github.com/tenphi)! - A control that keeps keyboard focus while disabled now shows its focus ring: a disabled `Button` or `ItemAction` that has a tooltip or renders as a link, a disabled `ItemButton` of a type with a ring (`outline`, `primary`, `clear`), and a disabled interactive `InfoBadge`. The default `item` type has no ring, since its rows show focus with their fill, so a disabled one shows no focus, as before. A disabled `current` `primary` chip no longer darkens when focused. Before, the ring disappeared while the control was disabled and stayed gone after it was enabled, until focus left and came back. A control also drops a focus ring it lost without a blur, as when its tooltip is added or removed while it is focused and the element is replaced, or a `fieldset` around it is disabled: right away when the control re-renders, otherwise on the next key or pointer press, so a Tab no longer leaves two rings.
12
+
13
+ - [#1468](https://github.com/cube-js/cube-ui-kit/pull/1468) [`04d2e872`](https://github.com/cube-js/cube-ui-kit/commit/04d2e87260c8d208dbe2f526b59fdedd03e9b776) Thanks [@tenphi](https://github.com/tenphi)! - Keep selected button and item fills identical when disabled by removing obsolete alpha adjustments for Tasty's fixed state-priority issue. Disabled labels remain muted, and hover, focus and pressed states retain their intended priority.
14
+
15
+ - [#1470](https://github.com/cube-js/cube-ui-kit/pull/1470) [`e7bf7d2e`](https://github.com/cube-js/cube-ui-kit/commit/e7bf7d2ec2b54c70ee5961c2d6c6d29633ca8093) Thanks [@tenphi](https://github.com/tenphi)! - `ItemAction` (`Item.Action`) now disables itself while `isLoading`, as `Button` does, so a second press while loading no longer runs the action again. Loading always wins: `isDisabled={false}` still overrides a disabled row, but not a loading action. A loading action is marked `aria-disabled` rather than natively disabled, so it keeps keyboard focus and its tooltip, while Tab skips it until loading ends. An icon-only action with a tooltip that disables itself is marked the same way, so keyboard users can still reach it and read the tooltip, as on `Button`. Inside a disabled row, a disabled button action that is not loading stays natively disabled, and no disabled action fades twice. The loading spinner on a label-only action now gets the same padding as an icon. An interactive `InfoBadge` follows the same rules.
16
+
17
+ ## 0.190.0
18
+
19
+ ### Minor Changes
20
+
21
+ - [#1465](https://github.com/cube-js/cube-ui-kit/pull/1465) [`f0bd83c5`](https://github.com/cube-js/cube-ui-kit/commit/f0bd83c576ec95fd88fb5f1256dc6dfe0d916ec0) Thanks [@tenphi](https://github.com/tenphi)! - `useAlertDialogAPI().open()` takes `onConfirm`, `onSecondary` and `onCancel` callbacks, so a dialog that runs its action in `onConfirm` needs no promise handling. When a handler returns a promise, the dialog waits for it: the pressed button shows a loading state, the other buttons are disabled and dismissal is blocked. It closes when the promise resolves, and stays open when it rejects or the handler throws, so the user can retry or cancel; the error is passed to `reportError`. `actions.confirm.onPress` and `actions.secondary.onPress` now get the same lifecycle instead of closing the dialog right away, and are deprecated in favour of `onConfirm` and `onSecondary`. A cancel still rejects `open()` with `undefined`, but it is no longer reported as an unhandled rejection when the returned promise is ignored.
22
+
3
23
  ## 0.189.0
4
24
 
5
25
  ### Minor Changes
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { c } from "react-compiler-runtime";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { deprecationWarning } from "../../utils/warnings.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import React, { useEffect } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { useSyncRef } from "./use-sync-ref.js";
3
3
  import { useCallback } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { useRef } from "react";
3
3
 
4
4
  //#region src/_internal/hooks/use-is-first-render.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "../../utils/react/useLayoutEffect.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  //#region src/_internal/hooks/use-timer/timer.ts
3
3
  var Timer = class {
4
4
  callback;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { useEvent } from "../use-event.js";
3
3
  import { Timer } from "./timer.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { useEvent } from "./use-event.js";
3
3
  import { warn } from "../../utils/warnings.js";
4
4
  import { useRef } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../utils/styles.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { CONTAINER_STYLES, filterBaseProps, tasty } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { ItemAction } from "./actions/ItemAction/ItemAction.js";
3
3
  import { ItemBadge } from "./content/ItemBadge/ItemBadge.js";
4
4
  import { Item } from "react-stately";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { mergeStyleLayers } from "../utils/styles.js";
3
3
  import { usePaletteValue } from "../tokens/palette-config.js";
4
4
  import { getTokens } from "../tokens/all-tokens.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { useCombinedRefs } from "../utils/react/useCombinedRefs.js";
3
3
  import { filterBaseProps, tasty } from "@tenphi/tasty";
4
4
  import { forwardRef, useCallback, useEffect, useState } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/components/HiddenInput.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../utils/styles.js";
3
3
  import { AMBIENT_PREDEFINED_STATES } from "../utils/react/useScheme.js";
4
4
  import { EventBusProvider } from "../utils/react/useEventBus.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
3
  import { useAction } from "../use-action.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { useEvent } from "../../../_internal/hooks/use-event.js";
3
3
  import { _Item } from "../../content/Item/Item.js";
4
4
  import { useI18n } from "../../../i18n/useI18n.js";
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { extractStyles } from "../../../utils/styles.js";
3
- import { getDisabledElementProps } from "../../../utils/react/disabledProps.js";
3
+ import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
4
4
  import { mergeProps } from "../../../utils/react/mergeProps.js";
5
5
  import { useDismissParentPopover } from "../../../utils/react/usePopoverSync.js";
6
6
  import { useEvent } from "../../../_internal/hooks/use-event.js";
@@ -296,11 +296,12 @@ const Button = forwardRef(function Button(allProps, ref) {
296
296
  children,
297
297
  labelProps: void 0
298
298
  });
299
- const { isNativelyDisabled, inertProps } = getDisabledElementProps({
299
+ const { isNativelyDisabled, isInert, inertProps } = getDisabledElementProps({
300
300
  isDisabled: isDisabledElement,
301
301
  keepEvents: isTooltipActive,
302
302
  as: typeof actionProps.as === "string" ? actionProps.as : void 0
303
303
  });
304
+ const elementProps = isInert ? omitActivationEventProps(actionProps) : actionProps;
304
305
  const renderButtonElement = (tooltipTriggerProps, tooltipRef) => {
305
306
  const handleRef = (element) => {
306
307
  const domRef = actionProps.ref;
@@ -315,7 +316,7 @@ const Button = forwardRef(function Button(allProps, ref) {
315
316
  const ariaPressed = allProps["aria-pressed"] ?? (isSelected != null && actionProps.as !== "a" && allProps.role == null ? isSelected : void 0);
316
317
  return /* @__PURE__ */ jsxs(ButtonElement, {
317
318
  download,
318
- ...mergeProps(actionProps, tooltipTriggerProps || {}, inertProps),
319
+ ...mergeProps(elementProps, tooltipTriggerProps || {}, inertProps),
319
320
  "aria-pressed": ariaPressed,
320
321
  ref: handleRef,
321
322
  mods: {
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["FocusableRef","PressEvent","CONTAINER_STYLES","Mods","Styles","tasty","TEXT_STYLES","Children","forwardRef","HTMLAttributes","isValidElement","ReactNode","RefObject","useMemo","useRef","useState","OverlayProps","useEvent","useIsFirstRender","useWarn","CURRENT_CLEAR_STYLES","CURRENT_LINK_STYLES","CURRENT_OUTLINE_2_STYLES","CURRENT_OUTLINE_STYLES","CURRENT_PRIMARY_STYLES","DANGER_CLEAR_STYLES","DANGER_LINK_STYLES","DANGER_OUTLINE_2_STYLES","DANGER_OUTLINE_STYLES","DANGER_PRIMARY_STYLES","DEFAULT_CLEAR_STYLES","DEFAULT_LINK_STYLES","DEFAULT_OUTLINE_2_STYLES","DEFAULT_OUTLINE_STYLES","DEFAULT_PRIMARY_STYLES","NOTE_CLEAR_STYLES","NOTE_LINK_STYLES","NOTE_OUTLINE_2_STYLES","NOTE_OUTLINE_STYLES","NOTE_PRIMARY_STYLES","SPECIAL_CLEAR_STYLES","SPECIAL_LINK_STYLES","SPECIAL_OUTLINE_STYLES","SPECIAL_PRIMARY_STYLES","SUCCESS_CLEAR_STYLES","SUCCESS_LINK_STYLES","SUCCESS_OUTLINE_2_STYLES","SUCCESS_OUTLINE_STYLES","SUCCESS_PRIMARY_STYLES","WARNING_CLEAR_STYLES","WARNING_LINK_STYLES","WARNING_OUTLINE_2_STYLES","WARNING_OUTLINE_STYLES","WARNING_PRIMARY_STYLES","LoadingIcon","DynamicIcon","getDisabledElementProps","mergeProps","resolveIcon","useDismissParentPopover","extractStyles","useAutoTooltip","DisplayTransition","IconSwitch","CubeTooltipProviderProps","CubeActionProps","useButtonSplitContext","useAction","BUTTON_SIZE_VALUES","const","ButtonMods","pressed","loading","selected","CubeButtonProps","icon","rightIcon","isLoading","isSelected","type","theme","size","tooltip","Omit","auto","defaultTooltipPlacement","ButtonVariant","STYLE_PROPS","DEFAULT_ICON_STYLES","$","position","display","placeItems","placeContent","placeSelf","width","height","pointerEvents","transition","DEFAULT_BUTTON_STYLES","recipe","flow","gap","preset","outlineOffset","padding","whiteSpace","radius","margin","zIndex","verticalAlign","$size","Icon","opacity","translate","RightIcon","Label","boxSizing","overflow","textOverflow","textAlign","ButtonElement","qa","styles","variants","Button","allProps","ref","HTMLElement","splitContext","sizeProp","label","children","iconProp","rightIconProp","mods","download","onPress","userOnPress","tokens","props","isDisabled","dismissParentPopover","buttonElementRef","wrappedOnPress","e","el","current","hasAttribute","closest","actionProps","isPressed","isDisabledElement","baseMods","resolvedIcon","resolvedRightIcon","hasLeftSlot","hasSlot","hasRightSlot","content","iconKey","displayName","name","rightIconKey","specifiedLabel","key","args","hasLeftIcon","hasChildren","singleIcon","hasIcons","rawChildren","toArray","some","child","isIconShown","setIsIconShown","isRightIconShown","setIsRightIconShown","isFirstRender","modifiers","labelProps","finalLabelProps","labelRef","renderWithTooltip","isTooltipActive","undefined","isNativelyDisabled","inertProps","keepEvents","as","renderButtonElement","tooltipTriggerProps","tooltipRef","handleRef","element","domRef","isCustomSize","includes","sizeTokenValue","effectiveType","ariaPressed","role"],"sources":["../../../../src/components/actions/Button/Button.tsx"],"sourcesContent":["import { FocusableRef, PressEvent } from '@react-types/shared';\nimport {\n CONTAINER_STYLES,\n Mods,\n Styles,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport {\n Children,\n forwardRef,\n HTMLAttributes,\n isValidElement,\n ReactNode,\n RefObject,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { OverlayProps } from 'react-aria';\n\nimport { useEvent } from '../../../_internal';\nimport { useIsFirstRender } from '../../../_internal/hooks/use-is-first-render';\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport {\n CURRENT_CLEAR_STYLES,\n CURRENT_LINK_STYLES,\n CURRENT_OUTLINE_2_STYLES,\n CURRENT_OUTLINE_STYLES,\n CURRENT_PRIMARY_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_LINK_STYLES,\n DANGER_OUTLINE_2_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_LINK_STYLES,\n DEFAULT_OUTLINE_2_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_LINK_STYLES,\n NOTE_OUTLINE_2_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_LINK_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_LINK_STYLES,\n SUCCESS_OUTLINE_2_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_LINK_STYLES,\n WARNING_OUTLINE_2_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport {\n DynamicIcon,\n getDisabledElementProps,\n mergeProps,\n resolveIcon,\n useDismissParentPopover,\n} from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { useAutoTooltip } from '../../content/use-auto-tooltip';\nimport { DisplayTransition } from '../../helpers/DisplayTransition';\nimport { IconSwitch } from '../../helpers/IconSwitch/IconSwitch';\nimport { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\nimport { CubeActionProps } from '../Action/Action';\nimport { useButtonSplitContext } from '../ButtonSplit/context';\nimport { useAction } from '../use-action';\n\nconst BUTTON_SIZE_VALUES = [\n 'xsmall',\n 'small',\n 'medium',\n 'large',\n 'xlarge',\n 'inline',\n] as const;\n\n/** Known modifiers for Button component */\nexport type ButtonMods = Mods<{\n pressed?: boolean;\n loading?: boolean;\n selected?: boolean;\n 'has-icons'?: boolean;\n 'has-icon'?: boolean;\n 'has-right-icon'?: boolean;\n 'single-icon'?: boolean;\n 'text-only'?: boolean;\n 'raw-children'?: boolean;\n}>;\n\nexport interface CubeButtonProps extends CubeActionProps {\n icon?: DynamicIcon<ButtonMods>;\n rightIcon?: DynamicIcon<ButtonMods>;\n isLoading?: boolean;\n isSelected?: boolean;\n type?:\n | 'primary'\n | 'danger'\n | 'link'\n | 'clear'\n | 'outline'\n | 'outline-2'\n | (string & {});\n theme?:\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | 'current'\n | (string & {});\n size?:\n | 'xsmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xlarge'\n | 'inline'\n | number\n | (string & {});\n /**\n * Tooltip content and configuration:\n * - string: simple tooltip text\n * - true: auto tooltip on overflow (shows children as tooltip when truncated)\n * - object: advanced configuration with optional auto property\n */\n tooltip?:\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n /**\n * @private\n * Default tooltip placement for the button.\n * @default \"top\"\n */\n defaultTooltipPlacement?: OverlayProps['placement'];\n}\n\nexport type ButtonVariant =\n // The `current` theme mixes every color from the inherited `currentcolor`\n // instead of a brand ramp — see the CURRENT THEME section of `item-themes`.\n | 'current.primary'\n | 'current.outline'\n | 'current.outline-2'\n | 'current.clear'\n | 'current.link'\n | 'default.primary'\n | 'default.outline'\n | 'default.outline-2'\n | 'default.clear'\n | 'default.link'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.outline-2'\n | 'danger.clear'\n | 'danger.link'\n | 'success.primary'\n | 'success.outline'\n | 'success.outline-2'\n | 'success.clear'\n | 'success.link'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.outline-2'\n | 'warning.clear'\n | 'warning.link'\n | 'note.primary'\n | 'note.outline'\n | 'note.outline-2'\n | 'note.clear'\n | 'note.link'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear'\n | 'special.link';\n\nconst STYLE_PROPS = [...CONTAINER_STYLES, ...TEXT_STYLES];\n\nconst DEFAULT_ICON_STYLES: Styles = {\n $: '>',\n position: 'relative',\n display: 'grid',\n placeItems: 'center',\n placeContent: 'center',\n placeSelf: 'stretch',\n // overflow: 'hidden',\n width: 'fixed ($size - 2bw)',\n height: 'fixed ($size - 2bw)',\n pointerEvents: 'none',\n transition: 'theme, width, height, translate',\n};\n\nexport const DEFAULT_BUTTON_STYLES: Styles = {\n recipe: 'reset button',\n display: 'inline-grid',\n flow: 'column dense',\n gap: 0,\n placeItems: {\n '': 'stretch',\n 'raw-children': 'center stretch',\n },\n placeContent: 'center',\n position: 'relative',\n preset: {\n '': 't3m',\n 'size=xsmall': 't4',\n 'size=xlarge': 't2m',\n 'type=link': 'strong',\n },\n outlineOffset: 1,\n padding: {\n '': 0,\n 'raw-children & !has-icons':\n '$block-padding $inline-padding $block-padding $inline-padding',\n 'type=link': '0',\n },\n width: {\n '': 'min $size',\n 'has-icon & has-right-icon': 'min ($size * 2 - 2bw)',\n 'single-icon': 'fixed $size',\n 'type=link': 'min 1ch',\n },\n height: {\n '': 'fixed $size',\n 'type=link': 'initial',\n },\n whiteSpace: 'nowrap',\n radius: {\n '': true,\n 'type=link & !focused': 0,\n '@parent(button-split, >) & !:last-child': '1r left',\n '@parent(button-split, >) & !:first-child': '1r right',\n '@parent(button-split, >) & !:first-child & !:last-child': 0,\n },\n margin: {\n '': 0,\n '@parent(button-split, >) & !:first-child & (type=outline | type=outline-2 | type=primary)':\n '-1bw left',\n },\n zIndex: {\n '@parent(button-split, >) & :hover': 1,\n '@parent(button-split, >) & :focus-visible': 2,\n },\n transition: 'theme, grid-template, padding',\n verticalAlign: 'bottom',\n\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n 'size=inline': '(1lh + 2bw)',\n },\n '$inline-padding': {\n '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',\n },\n '$block-padding': {\n '': '.5x',\n 'size=xsmall | size=small': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(1x - 1bw)',\n '$left-padding': {\n '': '$inline-padding',\n 'is-icon-shown': '0px',\n },\n '$right-padding': {\n '': '$inline-padding',\n 'is-right-icon-shown': '0px',\n },\n\n // Icon sub-element (recommended format)\n Icon: {\n ...DEFAULT_ICON_STYLES,\n width: {\n '': 'fixed 0px',\n 'is-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-icon-shown': 1,\n },\n translate: {\n '': '($size * 1 / 4) 0',\n 'is-icon-shown': '0 0',\n },\n },\n\n // RightIcon sub-element (recommended format)\n RightIcon: {\n ...DEFAULT_ICON_STYLES,\n width: {\n '': 'fixed 0px',\n 'is-right-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-right-icon-shown': 1,\n },\n translate: {\n '': '($size * -1 / 4) 0',\n 'is-right-icon-shown': '0 0',\n },\n },\n\n // Label sub-element (recommended format)\n Label: {\n $: '>',\n display: 'block',\n placeSelf: 'center stretch',\n boxSizing: 'border-box',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '0 100%',\n textAlign: 'center',\n transition: 'theme, padding',\n padding: {\n '': '$block-padding $right-padding $block-padding $left-padding',\n 'type=link': '0',\n },\n },\n} as const;\n\nconst ButtonElement = tasty({\n qa: 'Button',\n styles: DEFAULT_BUTTON_STYLES,\n variants: {\n // Current theme — colors mixed from the inherited `currentcolor`\n 'current.primary': CURRENT_PRIMARY_STYLES,\n 'current.outline': CURRENT_OUTLINE_STYLES,\n 'current.outline-2': CURRENT_OUTLINE_2_STYLES,\n 'current.clear': CURRENT_CLEAR_STYLES,\n 'current.link': CURRENT_LINK_STYLES,\n\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.outline-2': DEFAULT_OUTLINE_2_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n 'default.link': DEFAULT_LINK_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.outline-2': DANGER_OUTLINE_2_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n 'danger.link': DANGER_LINK_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.outline-2': SUCCESS_OUTLINE_2_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n 'success.link': SUCCESS_LINK_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.outline-2': WARNING_OUTLINE_2_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n 'warning.link': WARNING_LINK_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.outline-2': NOTE_OUTLINE_2_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n 'note.link': NOTE_LINK_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n 'special.link': SPECIAL_LINK_STYLES,\n },\n});\n\nexport const Button = forwardRef(function Button(\n allProps: CubeButtonProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const splitContext = useButtonSplitContext();\n\n let {\n type,\n size: sizeProp,\n label,\n children,\n theme = splitContext?.theme ?? 'default',\n icon: iconProp,\n rightIcon: rightIconProp,\n mods,\n download,\n tooltip = true,\n defaultTooltipPlacement = 'top',\n onPress: userOnPress,\n tokens,\n ...props\n } = allProps;\n\n type = type ?? splitContext?.type;\n const size =\n sizeProp ?? splitContext?.size ?? (type === 'link' ? 'inline' : 'medium');\n\n const isDisabled =\n splitContext?.isDisabled || props.isDisabled || props.isLoading;\n const isLoading = props.isLoading;\n const isSelected = props.isSelected;\n\n // Default: pressing a Button inside an open popover closes that popover.\n // Opt-outs (handled inline below):\n // - `data-popover-trigger` (auto, applied by MenuTrigger/DialogTrigger\n // type='popover' so triggers don't dismiss the popover they live in)\n // - `data-popover-keep` on self or any ancestor (manual opt-out for\n // toggles, custom inline editors, etc.)\n // - `data-popover-keep-on-press` on self or any ancestor: the same opt-out\n // for presses only. Unlike `data-popover-keep`, it does not stop a click\n // in the subtree from closing a nested popover (a field's listbox).\n // Modals/trays don't subscribe at all, so this is a no-op there.\n const dismissParentPopover = useDismissParentPopover();\n const buttonElementRef = useRef<HTMLElement | null>(null);\n\n const wrappedOnPress = useEvent((e: PressEvent) => {\n userOnPress?.(e);\n const el = buttonElementRef.current;\n if (!el) return;\n if (el.hasAttribute('data-popover-trigger')) return;\n if (el.closest('[data-popover-keep], [data-popover-keep-on-press]')) {\n return;\n }\n dismissParentPopover(el);\n });\n\n const { actionProps, isPressed } = useAction(\n {\n ...allProps,\n isDisabled,\n onPress: wrappedOnPress,\n ...(label ? { label } : {}),\n },\n ref,\n );\n\n const styles = extractStyles(props, STYLE_PROPS);\n const isDisabledElement = actionProps.isDisabled;\n\n delete actionProps.isDisabled;\n\n // Base mods for icon resolution (without icon-dependent mods)\n const baseMods = useMemo<ButtonMods>(\n () => ({\n pressed: isPressed && !isDisabled,\n loading: isLoading,\n selected: isSelected,\n ...mods,\n }),\n [isPressed, isDisabled, isLoading, isSelected, mods],\n );\n\n // Resolve dynamic icon props\n const resolvedIcon = useMemo(\n () => resolveIcon(iconProp, baseMods),\n [iconProp, baseMods],\n );\n const resolvedRightIcon = useMemo(\n () => resolveIcon(rightIconProp, baseMods),\n [rightIconProp, baseMods],\n );\n\n const hasLeftSlot = resolvedIcon.hasSlot;\n const hasRightSlot = resolvedRightIcon.hasSlot;\n\n const icon: ReactNode = resolvedIcon.content;\n const rightIcon: ReactNode = resolvedRightIcon.content;\n\n // Generate stable keys for icon transitions based on icon type\n const iconKey = isLoading\n ? 'loading'\n : isValidElement(icon)\n ? (icon.type as any)?.displayName || (icon.type as any)?.name || 'icon'\n : icon\n ? 'icon'\n : 'empty';\n\n const rightIconKey = isValidElement(rightIcon)\n ? (rightIcon.type as any)?.displayName ||\n (rightIcon.type as any)?.name ||\n 'icon'\n : rightIcon\n ? 'icon'\n : 'empty';\n\n children = children || hasLeftSlot || hasRightSlot ? children : label;\n\n const specifiedLabel =\n label ?? props['aria-label'] ?? props['aria-labelledby'];\n\n // Warn about accessibility issues when button has no accessible label\n useWarn(!children && hasLeftSlot && !specifiedLabel, {\n key: ['button-icon-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide `icon` property for a Button and do not provide any children then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n useWarn(!children && !hasLeftSlot && !specifiedLabel, {\n key: ['button-no-content-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide no children for a Button then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n if (!children && !specifiedLabel) {\n label = 'Unnamed'; // fix to avoid warning in production\n }\n\n const hasLeftIcon = !!(hasLeftSlot || isLoading);\n const hasChildren = children != null;\n const singleIcon = !!(\n ((hasLeftIcon && !hasRightSlot) || (hasRightSlot && !hasLeftIcon)) &&\n !hasChildren\n );\n\n const hasIcons = hasLeftIcon || hasRightSlot;\n const rawChildren = !!(\n hasChildren &&\n typeof children !== 'string' &&\n !Children.toArray(children).some((child) => typeof child === 'string')\n );\n\n const [isIconShown, setIsIconShown] = useState(hasLeftIcon);\n const [isRightIconShown, setIsRightIconShown] = useState(hasRightSlot);\n const isFirstRender = useIsFirstRender();\n\n const modifiers = useMemo<ButtonMods>(\n () => ({\n ...baseMods,\n 'has-icons': hasIcons,\n 'has-icon': hasLeftIcon,\n 'is-icon-shown': isIconShown,\n 'has-right-icon': hasRightSlot,\n 'is-right-icon-shown': isRightIconShown,\n 'single-icon': singleIcon,\n 'text-only': !!(hasChildren && typeof children === 'string' && !hasIcons),\n 'raw-children': rawChildren,\n 'has-content': children != null,\n }),\n [\n baseMods,\n children,\n hasLeftIcon,\n hasRightSlot,\n singleIcon,\n hasIcons,\n hasChildren,\n rawChildren,\n isIconShown,\n isRightIconShown,\n ],\n );\n\n const {\n labelProps: finalLabelProps,\n labelRef,\n renderWithTooltip,\n isTooltipActive,\n } = useAutoTooltip({\n tooltip,\n children,\n labelProps: undefined,\n });\n\n // A disabled button still has to be able to show its tooltip — that is\n // usually where the reason for being unavailable is written. The native\n // `disabled` attribute would make the browser drop the hover that opens it,\n // so when a tooltip is present the button is marked `aria-disabled` and kept\n // inert instead. The attribute is skipped for links too, where it is not\n // valid markup and `aria-disabled` is the only thing announcing the state.\n const { isNativelyDisabled, inertProps } = getDisabledElementProps({\n isDisabled: isDisabledElement,\n keepEvents: isTooltipActive,\n as: typeof actionProps.as === 'string' ? actionProps.as : undefined,\n });\n\n // Render function that creates the button element\n const renderButtonElement = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ): ReactNode => {\n // Use callback ref to merge multiple refs without calling hooks\n const handleRef = (element: HTMLElement | null) => {\n // Set the component's forwarded ref from useAction\n const domRef = actionProps.ref as any;\n if (typeof domRef === 'function') {\n domRef(element);\n } else if (domRef) {\n domRef.current = element;\n }\n // Set the tooltip ref if provided\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n // Track the rendered DOM node so the dismiss wrapper around `onPress`\n // can read it synchronously without coupling to `useAction`'s ref shape.\n buttonElementRef.current = element;\n };\n\n // Determine if size is custom (number or unrecognized string)\n const isCustomSize =\n typeof size === 'number' ||\n (size != null &&\n !(BUTTON_SIZE_VALUES as readonly string[]).includes(size));\n const sizeTokenValue =\n typeof size === 'number' ? `${size}px` : isCustomSize ? size : undefined;\n\n // The `special` theme has no `outline-2` variant (it paints over\n // `#special-surface`, not `#surface-2`/`#surface-3`); fall back to\n // `outline` so the button still renders.\n const effectiveType =\n theme === 'special' && type === 'outline-2' ? 'outline' : type;\n\n // `isSelected` is a toggle state, so mirror it into `aria-pressed` — the\n // behaviour Button.docs.mdx has always described. An explicit\n // `aria-pressed` from the call site still wins.\n //\n // Skipped when the button renders as a link (`to`), where `aria-pressed` is\n // not a valid attribute, and when the call site sets its own `role` — a\n // button acting as a tab or an option needs `aria-selected`/`aria-current`\n // instead, and only the call site knows which.\n //\n // Applied *after* the spread: react-aria's `useButton` always returns an\n // `aria-pressed` key (undefined when the caller passed none), so anything\n // set before the spread is overwritten by it.\n const ariaPressed =\n allProps['aria-pressed'] ??\n (isSelected != null && actionProps.as !== 'a' && allProps.role == null\n ? isSelected\n : undefined);\n\n return (\n <ButtonElement\n download={download}\n {...mergeProps(actionProps, tooltipTriggerProps || {}, inertProps)}\n aria-pressed={ariaPressed}\n ref={handleRef}\n mods={{ ...actionProps.mods, ...modifiers }}\n disabled={isNativelyDisabled}\n variant={`${theme}.${effectiveType ?? 'outline'}` as ButtonVariant}\n data-theme={theme}\n data-type={effectiveType ?? 'outline'}\n data-size={size}\n data-popover-dismiss=\"\"\n styles={styles}\n tokens={{\n ...tokens,\n ...(sizeTokenValue ? { $size: sizeTokenValue } : {}),\n }}\n >\n <DisplayTransition\n isShown={hasLeftIcon}\n animateOnMount={!isFirstRender}\n onToggle={setIsIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"Icon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={iconKey}>\n {isLoading ? <LoadingIcon /> : icon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n {hasChildren &&\n (rawChildren ? (\n children\n ) : (\n <div data-element=\"Label\" {...finalLabelProps} ref={labelRef}>\n {children}\n </div>\n ))}\n <DisplayTransition\n isShown={hasRightSlot}\n animateOnMount={!isFirstRender}\n onToggle={setIsRightIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"RightIcon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={rightIconKey}>\n {rightIcon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n </ButtonElement>\n );\n };\n\n return renderWithTooltip(renderButtonElement, defaultTooltipPlacement);\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","names":["FocusableRef","PressEvent","CONTAINER_STYLES","Mods","Styles","tasty","TEXT_STYLES","Children","forwardRef","HTMLAttributes","isValidElement","ReactNode","RefObject","useMemo","useRef","useState","OverlayProps","useEvent","useIsFirstRender","useWarn","CURRENT_CLEAR_STYLES","CURRENT_LINK_STYLES","CURRENT_OUTLINE_2_STYLES","CURRENT_OUTLINE_STYLES","CURRENT_PRIMARY_STYLES","DANGER_CLEAR_STYLES","DANGER_LINK_STYLES","DANGER_OUTLINE_2_STYLES","DANGER_OUTLINE_STYLES","DANGER_PRIMARY_STYLES","DEFAULT_CLEAR_STYLES","DEFAULT_LINK_STYLES","DEFAULT_OUTLINE_2_STYLES","DEFAULT_OUTLINE_STYLES","DEFAULT_PRIMARY_STYLES","NOTE_CLEAR_STYLES","NOTE_LINK_STYLES","NOTE_OUTLINE_2_STYLES","NOTE_OUTLINE_STYLES","NOTE_PRIMARY_STYLES","SPECIAL_CLEAR_STYLES","SPECIAL_LINK_STYLES","SPECIAL_OUTLINE_STYLES","SPECIAL_PRIMARY_STYLES","SUCCESS_CLEAR_STYLES","SUCCESS_LINK_STYLES","SUCCESS_OUTLINE_2_STYLES","SUCCESS_OUTLINE_STYLES","SUCCESS_PRIMARY_STYLES","WARNING_CLEAR_STYLES","WARNING_LINK_STYLES","WARNING_OUTLINE_2_STYLES","WARNING_OUTLINE_STYLES","WARNING_PRIMARY_STYLES","LoadingIcon","DynamicIcon","getDisabledElementProps","mergeProps","omitActivationEventProps","resolveIcon","useDismissParentPopover","extractStyles","useAutoTooltip","DisplayTransition","IconSwitch","CubeTooltipProviderProps","CubeActionProps","useButtonSplitContext","useAction","BUTTON_SIZE_VALUES","const","ButtonMods","pressed","loading","selected","CubeButtonProps","icon","rightIcon","isLoading","isSelected","type","theme","size","tooltip","Omit","auto","defaultTooltipPlacement","ButtonVariant","STYLE_PROPS","DEFAULT_ICON_STYLES","$","position","display","placeItems","placeContent","placeSelf","width","height","pointerEvents","transition","DEFAULT_BUTTON_STYLES","recipe","flow","gap","preset","outlineOffset","padding","whiteSpace","radius","margin","zIndex","verticalAlign","$size","Icon","opacity","translate","RightIcon","Label","boxSizing","overflow","textOverflow","textAlign","ButtonElement","qa","styles","variants","Button","allProps","ref","HTMLElement","splitContext","sizeProp","label","children","iconProp","rightIconProp","mods","download","onPress","userOnPress","tokens","props","isDisabled","dismissParentPopover","buttonElementRef","wrappedOnPress","e","el","current","hasAttribute","closest","actionProps","isPressed","isDisabledElement","baseMods","resolvedIcon","resolvedRightIcon","hasLeftSlot","hasSlot","hasRightSlot","content","iconKey","displayName","name","rightIconKey","specifiedLabel","key","args","hasLeftIcon","hasChildren","singleIcon","hasIcons","rawChildren","toArray","some","child","isIconShown","setIsIconShown","isRightIconShown","setIsRightIconShown","isFirstRender","modifiers","labelProps","finalLabelProps","labelRef","renderWithTooltip","isTooltipActive","undefined","isNativelyDisabled","isInert","inertProps","keepEvents","as","elementProps","renderButtonElement","tooltipTriggerProps","tooltipRef","handleRef","element","domRef","isCustomSize","includes","sizeTokenValue","effectiveType","ariaPressed","role"],"sources":["../../../../src/components/actions/Button/Button.tsx"],"sourcesContent":["import { FocusableRef, PressEvent } from '@react-types/shared';\nimport {\n CONTAINER_STYLES,\n Mods,\n Styles,\n tasty,\n TEXT_STYLES,\n} from '@tenphi/tasty';\nimport {\n Children,\n forwardRef,\n HTMLAttributes,\n isValidElement,\n ReactNode,\n RefObject,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { OverlayProps } from 'react-aria';\n\nimport { useEvent } from '../../../_internal';\nimport { useIsFirstRender } from '../../../_internal/hooks/use-is-first-render';\nimport { useWarn } from '../../../_internal/hooks/use-warn';\nimport {\n CURRENT_CLEAR_STYLES,\n CURRENT_LINK_STYLES,\n CURRENT_OUTLINE_2_STYLES,\n CURRENT_OUTLINE_STYLES,\n CURRENT_PRIMARY_STYLES,\n DANGER_CLEAR_STYLES,\n DANGER_LINK_STYLES,\n DANGER_OUTLINE_2_STYLES,\n DANGER_OUTLINE_STYLES,\n DANGER_PRIMARY_STYLES,\n DEFAULT_CLEAR_STYLES,\n DEFAULT_LINK_STYLES,\n DEFAULT_OUTLINE_2_STYLES,\n DEFAULT_OUTLINE_STYLES,\n DEFAULT_PRIMARY_STYLES,\n NOTE_CLEAR_STYLES,\n NOTE_LINK_STYLES,\n NOTE_OUTLINE_2_STYLES,\n NOTE_OUTLINE_STYLES,\n NOTE_PRIMARY_STYLES,\n SPECIAL_CLEAR_STYLES,\n SPECIAL_LINK_STYLES,\n SPECIAL_OUTLINE_STYLES,\n SPECIAL_PRIMARY_STYLES,\n SUCCESS_CLEAR_STYLES,\n SUCCESS_LINK_STYLES,\n SUCCESS_OUTLINE_2_STYLES,\n SUCCESS_OUTLINE_STYLES,\n SUCCESS_PRIMARY_STYLES,\n WARNING_CLEAR_STYLES,\n WARNING_LINK_STYLES,\n WARNING_OUTLINE_2_STYLES,\n WARNING_OUTLINE_STYLES,\n WARNING_PRIMARY_STYLES,\n} from '../../../data/item-themes';\nimport { LoadingIcon } from '../../../icons/LoadingIcon';\nimport {\n DynamicIcon,\n getDisabledElementProps,\n mergeProps,\n omitActivationEventProps,\n resolveIcon,\n useDismissParentPopover,\n} from '../../../utils/react';\nimport { extractStyles } from '../../../utils/styles';\nimport { useAutoTooltip } from '../../content/use-auto-tooltip';\nimport { DisplayTransition } from '../../helpers/DisplayTransition';\nimport { IconSwitch } from '../../helpers/IconSwitch/IconSwitch';\nimport { CubeTooltipProviderProps } from '../../overlays/Tooltip/TooltipProvider';\nimport { CubeActionProps } from '../Action/Action';\nimport { useButtonSplitContext } from '../ButtonSplit/context';\nimport { useAction } from '../use-action';\n\nconst BUTTON_SIZE_VALUES = [\n 'xsmall',\n 'small',\n 'medium',\n 'large',\n 'xlarge',\n 'inline',\n] as const;\n\n/** Known modifiers for Button component */\nexport type ButtonMods = Mods<{\n pressed?: boolean;\n loading?: boolean;\n selected?: boolean;\n 'has-icons'?: boolean;\n 'has-icon'?: boolean;\n 'has-right-icon'?: boolean;\n 'single-icon'?: boolean;\n 'text-only'?: boolean;\n 'raw-children'?: boolean;\n}>;\n\nexport interface CubeButtonProps extends CubeActionProps {\n icon?: DynamicIcon<ButtonMods>;\n rightIcon?: DynamicIcon<ButtonMods>;\n isLoading?: boolean;\n isSelected?: boolean;\n type?:\n | 'primary'\n | 'danger'\n | 'link'\n | 'clear'\n | 'outline'\n | 'outline-2'\n | (string & {});\n theme?:\n | 'default'\n | 'danger'\n | 'success'\n | 'warning'\n | 'note'\n | 'special'\n | 'current'\n | (string & {});\n size?:\n | 'xsmall'\n | 'small'\n | 'medium'\n | 'large'\n | 'xlarge'\n | 'inline'\n | number\n | (string & {});\n /**\n * Tooltip content and configuration:\n * - string: simple tooltip text\n * - true: auto tooltip on overflow (shows children as tooltip when truncated)\n * - object: advanced configuration with optional auto property\n */\n tooltip?:\n | string\n | boolean\n | (Omit<CubeTooltipProviderProps, 'children'> & { auto?: boolean });\n /**\n * @private\n * Default tooltip placement for the button.\n * @default \"top\"\n */\n defaultTooltipPlacement?: OverlayProps['placement'];\n}\n\nexport type ButtonVariant =\n // The `current` theme mixes every color from the inherited `currentcolor`\n // instead of a brand ramp — see the CURRENT THEME section of `item-themes`.\n | 'current.primary'\n | 'current.outline'\n | 'current.outline-2'\n | 'current.clear'\n | 'current.link'\n | 'default.primary'\n | 'default.outline'\n | 'default.outline-2'\n | 'default.clear'\n | 'default.link'\n | 'danger.primary'\n | 'danger.outline'\n | 'danger.outline-2'\n | 'danger.clear'\n | 'danger.link'\n | 'success.primary'\n | 'success.outline'\n | 'success.outline-2'\n | 'success.clear'\n | 'success.link'\n | 'warning.primary'\n | 'warning.outline'\n | 'warning.outline-2'\n | 'warning.clear'\n | 'warning.link'\n | 'note.primary'\n | 'note.outline'\n | 'note.outline-2'\n | 'note.clear'\n | 'note.link'\n | 'special.primary'\n | 'special.outline'\n | 'special.clear'\n | 'special.link';\n\nconst STYLE_PROPS = [...CONTAINER_STYLES, ...TEXT_STYLES];\n\nconst DEFAULT_ICON_STYLES: Styles = {\n $: '>',\n position: 'relative',\n display: 'grid',\n placeItems: 'center',\n placeContent: 'center',\n placeSelf: 'stretch',\n // overflow: 'hidden',\n width: 'fixed ($size - 2bw)',\n height: 'fixed ($size - 2bw)',\n pointerEvents: 'none',\n transition: 'theme, width, height, translate',\n};\n\nexport const DEFAULT_BUTTON_STYLES: Styles = {\n recipe: 'reset button',\n display: 'inline-grid',\n flow: 'column dense',\n gap: 0,\n placeItems: {\n '': 'stretch',\n 'raw-children': 'center stretch',\n },\n placeContent: 'center',\n position: 'relative',\n preset: {\n '': 't3m',\n 'size=xsmall': 't4',\n 'size=xlarge': 't2m',\n 'type=link': 'strong',\n },\n outlineOffset: 1,\n padding: {\n '': 0,\n 'raw-children & !has-icons':\n '$block-padding $inline-padding $block-padding $inline-padding',\n 'type=link': '0',\n },\n width: {\n '': 'min $size',\n 'has-icon & has-right-icon': 'min ($size * 2 - 2bw)',\n 'single-icon': 'fixed $size',\n 'type=link': 'min 1ch',\n },\n height: {\n '': 'fixed $size',\n 'type=link': 'initial',\n },\n whiteSpace: 'nowrap',\n radius: {\n '': true,\n 'type=link & !focused': 0,\n '@parent(button-split, >) & !:last-child': '1r left',\n '@parent(button-split, >) & !:first-child': '1r right',\n '@parent(button-split, >) & !:first-child & !:last-child': 0,\n },\n margin: {\n '': 0,\n '@parent(button-split, >) & !:first-child & (type=outline | type=outline-2 | type=primary)':\n '-1bw left',\n },\n zIndex: {\n '@parent(button-split, >) & :hover': 1,\n '@parent(button-split, >) & :focus-visible': 2,\n },\n transition: 'theme, grid-template, padding',\n verticalAlign: 'bottom',\n\n $size: {\n '': '$size-md',\n 'size=xsmall': '$size-xs',\n 'size=small': '$size-sm',\n 'size=medium': '$size-md',\n 'size=large': '$size-lg',\n 'size=xlarge': '$size-xl',\n 'size=inline': '(1lh + 2bw)',\n },\n '$inline-padding': {\n '': 'max($min-inline-padding, (($size - 1lh - 2bw) / 2 + $inline-compensation))',\n },\n '$block-padding': {\n '': '.5x',\n 'size=xsmall | size=small': '.25x',\n },\n '$inline-compensation': '.5x',\n '$min-inline-padding': '(1x - 1bw)',\n '$left-padding': {\n '': '$inline-padding',\n 'is-icon-shown': '0px',\n },\n '$right-padding': {\n '': '$inline-padding',\n 'is-right-icon-shown': '0px',\n },\n\n // Icon sub-element (recommended format)\n Icon: {\n ...DEFAULT_ICON_STYLES,\n width: {\n '': 'fixed 0px',\n 'is-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-icon-shown': 1,\n },\n translate: {\n '': '($size * 1 / 4) 0',\n 'is-icon-shown': '0 0',\n },\n },\n\n // RightIcon sub-element (recommended format)\n RightIcon: {\n ...DEFAULT_ICON_STYLES,\n width: {\n '': 'fixed 0px',\n 'is-right-icon-shown': 'fixed ($size - 2bw)',\n },\n opacity: {\n '': 0,\n 'is-right-icon-shown': 1,\n },\n translate: {\n '': '($size * -1 / 4) 0',\n 'is-right-icon-shown': '0 0',\n },\n },\n\n // Label sub-element (recommended format)\n Label: {\n $: '>',\n display: 'block',\n placeSelf: 'center stretch',\n boxSizing: 'border-box',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '0 100%',\n textAlign: 'center',\n transition: 'theme, padding',\n padding: {\n '': '$block-padding $right-padding $block-padding $left-padding',\n 'type=link': '0',\n },\n },\n} as const;\n\nconst ButtonElement = tasty({\n qa: 'Button',\n styles: DEFAULT_BUTTON_STYLES,\n variants: {\n // Current theme — colors mixed from the inherited `currentcolor`\n 'current.primary': CURRENT_PRIMARY_STYLES,\n 'current.outline': CURRENT_OUTLINE_STYLES,\n 'current.outline-2': CURRENT_OUTLINE_2_STYLES,\n 'current.clear': CURRENT_CLEAR_STYLES,\n 'current.link': CURRENT_LINK_STYLES,\n\n // Default theme\n 'default.primary': DEFAULT_PRIMARY_STYLES,\n 'default.outline': DEFAULT_OUTLINE_STYLES,\n 'default.outline-2': DEFAULT_OUTLINE_2_STYLES,\n 'default.clear': DEFAULT_CLEAR_STYLES,\n 'default.link': DEFAULT_LINK_STYLES,\n\n // Danger theme\n 'danger.primary': DANGER_PRIMARY_STYLES,\n 'danger.outline': DANGER_OUTLINE_STYLES,\n 'danger.outline-2': DANGER_OUTLINE_2_STYLES,\n 'danger.clear': DANGER_CLEAR_STYLES,\n 'danger.link': DANGER_LINK_STYLES,\n\n // Success theme\n 'success.primary': SUCCESS_PRIMARY_STYLES,\n 'success.outline': SUCCESS_OUTLINE_STYLES,\n 'success.outline-2': SUCCESS_OUTLINE_2_STYLES,\n 'success.clear': SUCCESS_CLEAR_STYLES,\n 'success.link': SUCCESS_LINK_STYLES,\n\n // Warning theme\n 'warning.primary': WARNING_PRIMARY_STYLES,\n 'warning.outline': WARNING_OUTLINE_STYLES,\n 'warning.outline-2': WARNING_OUTLINE_2_STYLES,\n 'warning.clear': WARNING_CLEAR_STYLES,\n 'warning.link': WARNING_LINK_STYLES,\n\n // Note theme\n 'note.primary': NOTE_PRIMARY_STYLES,\n 'note.outline': NOTE_OUTLINE_STYLES,\n 'note.outline-2': NOTE_OUTLINE_2_STYLES,\n 'note.clear': NOTE_CLEAR_STYLES,\n 'note.link': NOTE_LINK_STYLES,\n\n // Special theme\n 'special.primary': SPECIAL_PRIMARY_STYLES,\n 'special.outline': SPECIAL_OUTLINE_STYLES,\n 'special.clear': SPECIAL_CLEAR_STYLES,\n 'special.link': SPECIAL_LINK_STYLES,\n },\n});\n\nexport const Button = forwardRef(function Button(\n allProps: CubeButtonProps,\n ref: FocusableRef<HTMLElement>,\n) {\n const splitContext = useButtonSplitContext();\n\n let {\n type,\n size: sizeProp,\n label,\n children,\n theme = splitContext?.theme ?? 'default',\n icon: iconProp,\n rightIcon: rightIconProp,\n mods,\n download,\n tooltip = true,\n defaultTooltipPlacement = 'top',\n onPress: userOnPress,\n tokens,\n ...props\n } = allProps;\n\n type = type ?? splitContext?.type;\n const size =\n sizeProp ?? splitContext?.size ?? (type === 'link' ? 'inline' : 'medium');\n\n const isDisabled =\n splitContext?.isDisabled || props.isDisabled || props.isLoading;\n const isLoading = props.isLoading;\n const isSelected = props.isSelected;\n\n // Default: pressing a Button inside an open popover closes that popover.\n // Opt-outs (handled inline below):\n // - `data-popover-trigger` (auto, applied by MenuTrigger/DialogTrigger\n // type='popover' so triggers don't dismiss the popover they live in)\n // - `data-popover-keep` on self or any ancestor (manual opt-out for\n // toggles, custom inline editors, etc.)\n // - `data-popover-keep-on-press` on self or any ancestor: the same opt-out\n // for presses only. Unlike `data-popover-keep`, it does not stop a click\n // in the subtree from closing a nested popover (a field's listbox).\n // Modals/trays don't subscribe at all, so this is a no-op there.\n const dismissParentPopover = useDismissParentPopover();\n const buttonElementRef = useRef<HTMLElement | null>(null);\n\n const wrappedOnPress = useEvent((e: PressEvent) => {\n userOnPress?.(e);\n const el = buttonElementRef.current;\n if (!el) return;\n if (el.hasAttribute('data-popover-trigger')) return;\n if (el.closest('[data-popover-keep], [data-popover-keep-on-press]')) {\n return;\n }\n dismissParentPopover(el);\n });\n\n const { actionProps, isPressed } = useAction(\n {\n ...allProps,\n isDisabled,\n onPress: wrappedOnPress,\n ...(label ? { label } : {}),\n },\n ref,\n );\n\n const styles = extractStyles(props, STYLE_PROPS);\n const isDisabledElement = actionProps.isDisabled;\n\n delete actionProps.isDisabled;\n\n // Base mods for icon resolution (without icon-dependent mods)\n const baseMods = useMemo<ButtonMods>(\n () => ({\n pressed: isPressed && !isDisabled,\n loading: isLoading,\n selected: isSelected,\n ...mods,\n }),\n [isPressed, isDisabled, isLoading, isSelected, mods],\n );\n\n // Resolve dynamic icon props\n const resolvedIcon = useMemo(\n () => resolveIcon(iconProp, baseMods),\n [iconProp, baseMods],\n );\n const resolvedRightIcon = useMemo(\n () => resolveIcon(rightIconProp, baseMods),\n [rightIconProp, baseMods],\n );\n\n const hasLeftSlot = resolvedIcon.hasSlot;\n const hasRightSlot = resolvedRightIcon.hasSlot;\n\n const icon: ReactNode = resolvedIcon.content;\n const rightIcon: ReactNode = resolvedRightIcon.content;\n\n // Generate stable keys for icon transitions based on icon type\n const iconKey = isLoading\n ? 'loading'\n : isValidElement(icon)\n ? (icon.type as any)?.displayName || (icon.type as any)?.name || 'icon'\n : icon\n ? 'icon'\n : 'empty';\n\n const rightIconKey = isValidElement(rightIcon)\n ? (rightIcon.type as any)?.displayName ||\n (rightIcon.type as any)?.name ||\n 'icon'\n : rightIcon\n ? 'icon'\n : 'empty';\n\n children = children || hasLeftSlot || hasRightSlot ? children : label;\n\n const specifiedLabel =\n label ?? props['aria-label'] ?? props['aria-labelledby'];\n\n // Warn about accessibility issues when button has no accessible label\n useWarn(!children && hasLeftSlot && !specifiedLabel, {\n key: ['button-icon-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide `icon` property for a Button and do not provide any children then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n useWarn(!children && !hasLeftSlot && !specifiedLabel, {\n key: ['button-no-content-no-label', hasLeftSlot],\n args: [\n 'accessibility issue:',\n 'If you provide no children for a Button then you should specify the `aria-label` property to make sure the Button element stays accessible.',\n ],\n });\n\n if (!children && !specifiedLabel) {\n label = 'Unnamed'; // fix to avoid warning in production\n }\n\n const hasLeftIcon = !!(hasLeftSlot || isLoading);\n const hasChildren = children != null;\n const singleIcon = !!(\n ((hasLeftIcon && !hasRightSlot) || (hasRightSlot && !hasLeftIcon)) &&\n !hasChildren\n );\n\n const hasIcons = hasLeftIcon || hasRightSlot;\n const rawChildren = !!(\n hasChildren &&\n typeof children !== 'string' &&\n !Children.toArray(children).some((child) => typeof child === 'string')\n );\n\n const [isIconShown, setIsIconShown] = useState(hasLeftIcon);\n const [isRightIconShown, setIsRightIconShown] = useState(hasRightSlot);\n const isFirstRender = useIsFirstRender();\n\n const modifiers = useMemo<ButtonMods>(\n () => ({\n ...baseMods,\n 'has-icons': hasIcons,\n 'has-icon': hasLeftIcon,\n 'is-icon-shown': isIconShown,\n 'has-right-icon': hasRightSlot,\n 'is-right-icon-shown': isRightIconShown,\n 'single-icon': singleIcon,\n 'text-only': !!(hasChildren && typeof children === 'string' && !hasIcons),\n 'raw-children': rawChildren,\n 'has-content': children != null,\n }),\n [\n baseMods,\n children,\n hasLeftIcon,\n hasRightSlot,\n singleIcon,\n hasIcons,\n hasChildren,\n rawChildren,\n isIconShown,\n isRightIconShown,\n ],\n );\n\n const {\n labelProps: finalLabelProps,\n labelRef,\n renderWithTooltip,\n isTooltipActive,\n } = useAutoTooltip({\n tooltip,\n children,\n labelProps: undefined,\n });\n\n // A disabled button still has to be able to show its tooltip — that is\n // usually where the reason for being unavailable is written. The native\n // `disabled` attribute would make the browser drop the hover that opens it,\n // so when a tooltip is present the button is marked `aria-disabled` and kept\n // inert instead. The attribute is skipped for links too, where it is not\n // valid markup and `aria-disabled` is the only thing announcing the state.\n const { isNativelyDisabled, isInert, inertProps } = getDisabledElementProps({\n isDisabled: isDisabledElement,\n keepEvents: isTooltipActive,\n as: typeof actionProps.as === 'string' ? actionProps.as : undefined,\n });\n\n // Without the native attribute, handlers a parent passed in (a `MenuTrigger`'s\n // `onKeyDown`) would still activate the button.\n const elementProps = isInert\n ? omitActivationEventProps(actionProps)\n : actionProps;\n\n // Render function that creates the button element\n const renderButtonElement = (\n tooltipTriggerProps?: HTMLAttributes<HTMLElement>,\n tooltipRef?: RefObject<HTMLElement>,\n ): ReactNode => {\n // Use callback ref to merge multiple refs without calling hooks\n const handleRef = (element: HTMLElement | null) => {\n // Set the component's forwarded ref from useAction\n const domRef = actionProps.ref as any;\n if (typeof domRef === 'function') {\n domRef(element);\n } else if (domRef) {\n domRef.current = element;\n }\n // Set the tooltip ref if provided\n if (tooltipRef) {\n (tooltipRef as any).current = element;\n }\n // Track the rendered DOM node so the dismiss wrapper around `onPress`\n // can read it synchronously without coupling to `useAction`'s ref shape.\n buttonElementRef.current = element;\n };\n\n // Determine if size is custom (number or unrecognized string)\n const isCustomSize =\n typeof size === 'number' ||\n (size != null &&\n !(BUTTON_SIZE_VALUES as readonly string[]).includes(size));\n const sizeTokenValue =\n typeof size === 'number' ? `${size}px` : isCustomSize ? size : undefined;\n\n // The `special` theme has no `outline-2` variant (it paints over\n // `#special-surface`, not `#surface-2`/`#surface-3`); fall back to\n // `outline` so the button still renders.\n const effectiveType =\n theme === 'special' && type === 'outline-2' ? 'outline' : type;\n\n // `isSelected` is a toggle state, so mirror it into `aria-pressed` — the\n // behaviour Button.docs.mdx has always described. An explicit\n // `aria-pressed` from the call site still wins.\n //\n // Skipped when the button renders as a link (`to`), where `aria-pressed` is\n // not a valid attribute, and when the call site sets its own `role` — a\n // button acting as a tab or an option needs `aria-selected`/`aria-current`\n // instead, and only the call site knows which.\n //\n // Applied *after* the spread: react-aria's `useButton` always returns an\n // `aria-pressed` key (undefined when the caller passed none), so anything\n // set before the spread is overwritten by it.\n const ariaPressed =\n allProps['aria-pressed'] ??\n (isSelected != null && actionProps.as !== 'a' && allProps.role == null\n ? isSelected\n : undefined);\n\n return (\n <ButtonElement\n download={download}\n {...mergeProps(elementProps, tooltipTriggerProps || {}, inertProps)}\n aria-pressed={ariaPressed}\n ref={handleRef}\n mods={{ ...actionProps.mods, ...modifiers }}\n disabled={isNativelyDisabled}\n variant={`${theme}.${effectiveType ?? 'outline'}` as ButtonVariant}\n data-theme={theme}\n data-type={effectiveType ?? 'outline'}\n data-size={size}\n data-popover-dismiss=\"\"\n styles={styles}\n tokens={{\n ...tokens,\n ...(sizeTokenValue ? { $size: sizeTokenValue } : {}),\n }}\n >\n <DisplayTransition\n isShown={hasLeftIcon}\n animateOnMount={!isFirstRender}\n onToggle={setIsIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"Icon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={iconKey}>\n {isLoading ? <LoadingIcon /> : icon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n {hasChildren &&\n (rawChildren ? (\n children\n ) : (\n <div data-element=\"Label\" {...finalLabelProps} ref={labelRef}>\n {children}\n </div>\n ))}\n <DisplayTransition\n isShown={hasRightSlot}\n animateOnMount={!isFirstRender}\n onToggle={setIsRightIconShown}\n >\n {({ ref }) => (\n <div ref={ref} data-element=\"RightIcon\" aria-hidden=\"true\">\n <IconSwitch noWrapper contentKey={rightIconKey}>\n {rightIcon}\n </IconSwitch>\n </div>\n )}\n </DisplayTransition>\n </ButtonElement>\n );\n };\n\n return renderWithTooltip(renderButtonElement, defaultTooltipPlacement);\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { useSlotProps } from "../../../utils/react/Slots.js";
3
3
  import { Space } from "../../layout/Space.js";
4
4
  import { c } from "react-compiler-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
4
4
  import { ButtonSplitContext } from "./context.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { createContext, useContext } from "react";
3
3
 
4
4
  //#region src/components/actions/ButtonSplit/context.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { extractStyles, mergeStyleLayers } from "../../../utils/styles.js";
3
3
  import { mergeProps as mergeProps$1 } from "../../../utils/react/mergeProps.js";
4
4
  import { LoadingIcon } from "../../../icons/LoadingIcon.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
2
  import { tasty } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/components/actions/CommandMenu/styled.tsx
@@ -1,4 +1,5 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.189.0 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.190.1 | Cube Dev Team */
2
+ import { getDisabledElementProps, omitActivationEventProps } from "../../../utils/react/disabledProps.js";
2
3
  import { mergeProps } from "../../../utils/react/mergeProps.js";
3
4
  import { TooltipProvider } from "../../overlays/Tooltip/TooltipProvider.js";
4
5
  import { CURRENT_CLEAR_STYLES, CURRENT_OUTLINE_STYLES, CURRENT_PRIMARY_STYLES, DANGER_CLEAR_STYLES, DANGER_OUTLINE_STYLES, DANGER_PRIMARY_STYLES, DEFAULT_CLEAR_STYLES, DEFAULT_OUTLINE_STYLES, DEFAULT_PRIMARY_STYLES, ITEM_ACTION_BASE_STYLES, NOTE_CLEAR_STYLES, NOTE_OUTLINE_STYLES, NOTE_PRIMARY_STYLES, SPECIAL_CLEAR_STYLES, SPECIAL_OUTLINE_STYLES, SPECIAL_PRIMARY_STYLES, SUCCESS_CLEAR_STYLES, SUCCESS_OUTLINE_STYLES, SUCCESS_PRIMARY_STYLES, WARNING_CLEAR_STYLES, WARNING_OUTLINE_STYLES, WARNING_PRIMARY_STYLES } from "../../../data/item-themes.js";
@@ -73,7 +74,7 @@ const ItemActionElement = tasty({
73
74
  }
74
75
  });
75
76
  const ItemAction = forwardRef(function ItemAction(allProps, ref) {
76
- const $ = c(50);
77
+ const $ = c(48);
77
78
  const { type: contextType, disableActionsFocus, isDisabled: contextIsDisabled } = useItemActionContext();
78
79
  let children;
79
80
  let icon;
@@ -117,8 +118,8 @@ const ItemAction = forwardRef(function ItemAction(allProps, ref) {
117
118
  const theme = t1 === void 0 ? "current" : t1;
118
119
  const isLoading = t2 === void 0 ? false : t2;
119
120
  const isSelected = t3 === void 0 ? false : t3;
120
- const isDisabled = isDisabledProp ?? contextIsDisabled;
121
- const isDisabledInherited = isDisabledProp == null && !!contextIsDisabled;
121
+ const isDisabled = isLoading || (isDisabledProp ?? contextIsDisabled);
122
+ const isDisabledInherited = !!contextIsDisabled && isDisabled;
122
123
  const hasCheckmark = icon === "checkmark";
123
124
  let t4;
124
125
  if ($[12] !== hasCheckmark || $[13] !== icon || $[14] !== isLoading) {
@@ -131,7 +132,7 @@ const ItemAction = forwardRef(function ItemAction(allProps, ref) {
131
132
  const finalIcon = t4;
132
133
  const t5 = !!children;
133
134
  const t6 = !!contextType;
134
- const t7 = !!icon;
135
+ const t7 = !!finalIcon;
135
136
  let t8;
136
137
  if ($[16] !== hasCheckmark || $[17] !== isDisabledInherited || $[18] !== isLoading || $[19] !== isSelected || $[20] !== mods || $[21] !== t5 || $[22] !== t6 || $[23] !== t7) {
137
138
  t8 = {
@@ -171,83 +172,86 @@ const ItemAction = forwardRef(function ItemAction(allProps, ref) {
171
172
  $[28] = rest;
172
173
  $[29] = t9;
173
174
  } else t9 = $[29];
174
- const { actionProps } = useAction(t9, ref);
175
- const finalTabIndex = disableActionsFocus ? -1 : rest.tabIndex;
176
- const showTooltip = !children && tooltip;
177
- const tooltipContent = typeof tooltip === "string" ? tooltip : typeof tooltip === "object" && tooltip.title ? tooltip.title : void 0;
178
- let t10;
179
- if ($[30] !== tooltip) {
180
- t10 = typeof tooltip === "object" ? tooltip : {};
181
- $[30] = tooltip;
182
- $[31] = t10;
183
- } else t10 = $[31];
184
- let tooltipProps;
185
- if ($[32] !== t10) {
186
- const { title: _title, ...t11 } = t10;
187
- tooltipProps = t11;
188
- $[32] = t10;
189
- $[33] = tooltipProps;
190
- } else tooltipProps = $[33];
191
- const finalType = type;
175
+ const { actionProps: t10 } = useAction(t9, ref);
192
176
  let t11;
193
- if ($[34] !== actionProps || $[35] !== children || $[36] !== finalIcon || $[37] !== finalTabIndex || $[38] !== finalType || $[39] !== styles || $[40] !== theme) {
194
- t11 = (tooltipTriggerProps, tooltipRef) => {
195
- return /* @__PURE__ */ jsxs(ItemActionElement, {
196
- ...tooltipRef ? mergeProps(actionProps, tooltipTriggerProps || {}, { ref: (element) => {
197
- if (tooltipRef) tooltipRef.current = element;
198
- const actionRef = actionProps.ref;
199
- if (actionRef) if (typeof actionRef === "function") actionRef(element);
200
- else actionRef.current = element;
201
- } }) : mergeProps(actionProps, tooltipTriggerProps || {}),
202
- variant: `${theme}.${finalType}`,
203
- "data-theme": theme,
204
- "data-type": finalType,
205
- tabIndex: finalTabIndex,
206
- styles,
207
- children: [finalIcon && /* @__PURE__ */ jsx("div", {
208
- "data-element": "Icon",
209
- children: finalIcon
210
- }), children]
211
- });
212
- };
213
- $[34] = actionProps;
214
- $[35] = children;
215
- $[36] = finalIcon;
216
- $[37] = finalTabIndex;
217
- $[38] = finalType;
218
- $[39] = styles;
219
- $[40] = theme;
220
- $[41] = t11;
221
- } else t11 = $[41];
222
- const renderButton = t11;
223
- if (showTooltip && tooltipContent) {
224
- let t12;
225
- if ($[42] !== renderButton) {
226
- t12 = (triggerProps, tooltipRef_0) => renderButton(triggerProps, tooltipRef_0);
227
- $[42] = renderButton;
228
- $[43] = t12;
229
- } else t12 = $[43];
230
- let t13;
231
- if ($[44] !== t12 || $[45] !== tooltipContent || $[46] !== tooltipProps) {
232
- t13 = /* @__PURE__ */ jsx(TooltipProvider, {
233
- title: tooltipContent,
234
- ...tooltipProps,
235
- children: t12
177
+ let t12;
178
+ if ($[30] !== children || $[31] !== disableActionsFocus || $[32] !== finalIcon || $[33] !== isDisabled || $[34] !== isDisabledInherited || $[35] !== isLoading || $[36] !== rest.tabIndex || $[37] !== styles || $[38] !== t10 || $[39] !== theme || $[40] !== tooltip || $[41] !== type) {
179
+ t12 = Symbol.for("react.early_return_sentinel");
180
+ bb0: {
181
+ const { isDisabled: _isDisabled, ...actionProps } = t10;
182
+ const finalTabIndex = disableActionsFocus || isLoading ? -1 : rest.tabIndex;
183
+ const tooltipContent = typeof tooltip === "string" ? tooltip : typeof tooltip === "object" && tooltip.title ? tooltip.title : void 0;
184
+ let t13;
185
+ if ($[44] !== tooltip) {
186
+ t13 = typeof tooltip === "object" ? tooltip : {};
187
+ $[44] = tooltip;
188
+ $[45] = t13;
189
+ } else t13 = $[45];
190
+ let tooltipProps;
191
+ if ($[46] !== t13) {
192
+ const { title: _title, ...t14 } = t13;
193
+ tooltipProps = t14;
194
+ $[46] = t13;
195
+ $[47] = tooltipProps;
196
+ } else tooltipProps = $[47];
197
+ const hasTooltip = !children && !!tooltipContent;
198
+ const { isNativelyDisabled, isInert, inertProps } = getDisabledElementProps({
199
+ isDisabled,
200
+ keepEvents: isLoading || hasTooltip && !isDisabledInherited,
201
+ as: typeof actionProps.as === "string" ? actionProps.as : void 0
236
202
  });
237
- $[44] = t12;
238
- $[45] = tooltipContent;
239
- $[46] = tooltipProps;
240
- $[47] = t13;
241
- } else t13 = $[47];
242
- return t13;
203
+ const elementProps = isInert ? omitActivationEventProps(actionProps) : actionProps;
204
+ const finalType = type;
205
+ const renderButton = (tooltipTriggerProps, tooltipRef) => {
206
+ return /* @__PURE__ */ jsxs(ItemActionElement, {
207
+ ...tooltipRef ? mergeProps(elementProps, tooltipTriggerProps || {}, inertProps, { ref: (element) => {
208
+ if (tooltipRef) tooltipRef.current = element;
209
+ const actionRef = actionProps.ref;
210
+ if (actionRef) if (typeof actionRef === "function") actionRef(element);
211
+ else actionRef.current = element;
212
+ } }) : mergeProps(elementProps, tooltipTriggerProps || {}, inertProps),
213
+ disabled: isNativelyDisabled,
214
+ variant: `${theme}.${finalType}`,
215
+ "data-theme": theme,
216
+ "data-type": finalType,
217
+ tabIndex: finalTabIndex,
218
+ styles,
219
+ children: [finalIcon && /* @__PURE__ */ jsx("div", {
220
+ "data-element": "Icon",
221
+ children: finalIcon
222
+ }), children]
223
+ });
224
+ };
225
+ if (hasTooltip) {
226
+ t12 = /* @__PURE__ */ jsx(TooltipProvider, {
227
+ title: tooltipContent,
228
+ ...tooltipProps,
229
+ children: (triggerProps, tooltipRef_0) => renderButton(triggerProps, tooltipRef_0)
230
+ });
231
+ break bb0;
232
+ }
233
+ t11 = renderButton();
234
+ }
235
+ $[30] = children;
236
+ $[31] = disableActionsFocus;
237
+ $[32] = finalIcon;
238
+ $[33] = isDisabled;
239
+ $[34] = isDisabledInherited;
240
+ $[35] = isLoading;
241
+ $[36] = rest.tabIndex;
242
+ $[37] = styles;
243
+ $[38] = t10;
244
+ $[39] = theme;
245
+ $[40] = tooltip;
246
+ $[41] = type;
247
+ $[42] = t11;
248
+ $[43] = t12;
249
+ } else {
250
+ t11 = $[42];
251
+ t12 = $[43];
243
252
  }
244
- let t12;
245
- if ($[48] !== renderButton) {
246
- t12 = renderButton();
247
- $[48] = renderButton;
248
- $[49] = t12;
249
- } else t12 = $[49];
250
- return t12;
253
+ if (t12 !== Symbol.for("react.early_return_sentinel")) return t12;
254
+ return t11;
251
255
  });
252
256
 
253
257
  //#endregion