@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
@@ -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/utils/dotize.ts
3
3
  /**
4
4
  * Flattens a nested object into dot paths: `{ a: { b: 1 } }` becomes
@@ -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/utils/is-dev-env.ts
3
3
  /**
4
4
  * `NODE_ENV` as the environment that is actually running reports it, or
@@ -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/utils/modules.ts
3
3
  function extractModule(promise) {
4
4
  return promise.then((module) => module.default || module);
@@ -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/utils/promise.ts
3
3
  function timeout(ms = 30) {
4
4
  return new Promise((resolve) => {
package/dist/utils/raf.js CHANGED
@@ -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/utils/raf.ts
3
3
  /**
4
4
  * Chains N requestAnimationFrame calls and returns a cancel function.
@@ -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/utils/random.ts
3
3
  function random(min, max) {
4
4
  const realMin = min < max ? min : max;
@@ -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/utils/range.ts
3
3
  function range(count) {
4
4
  return Array.from({ length: count }, (_, i) => i);
@@ -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
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
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 { mergeProps } from "./mergeProps.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { Children, cloneElement, createContext, useContext } 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/utils/react/chain.ts
3
3
  /**
4
4
  * Calls all functions in the order they were chained with the same arguments.
@@ -8,7 +8,8 @@ interface DisabledElementOptions {
8
8
  /**
9
9
  * Whether the element has to keep receiving pointer and focus events while
10
10
  * disabled. Set it when the element hosts a tooltip: the tooltip is there to
11
- * explain why the element is unavailable, so hover has to reach it.
11
+ * explain why the element is unavailable, so hover has to reach it. Or when
12
+ * it has to keep focus, as a loading action does while a keyboard press runs.
12
13
  */
13
14
  keepEvents?: boolean;
14
15
  /** The tag the component renders. */
@@ -19,7 +20,8 @@ interface DisabledElementProps {
19
20
  isNativelyDisabled: boolean;
20
21
  /**
21
22
  * Whether the element is disabled through `aria-disabled` only and therefore
22
- * has to be kept inert by hand.
23
+ * has to be kept inert by hand: spread `inertProps` and drop the activation
24
+ * handlers with `omitActivationEventProps`.
23
25
  */
24
26
  isInert: boolean;
25
27
  /** Props that mark the element disabled and inert. Spread them last. */
@@ -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/utils/react/disabledProps.ts
3
3
  /**
4
4
  * Tags where `disabled` is a real HTML attribute. Browsers refuse to dispatch
@@ -36,9 +36,14 @@ const ACTIVATION_EVENT_PROPS = [
36
36
  function preventActivation(event) {
37
37
  event.preventDefault();
38
38
  }
39
+ function preventKeyActivation(event) {
40
+ if (event.target === event.currentTarget && (event.key === "Enter" || event.key === " ")) event.preventDefault();
41
+ }
39
42
  const INERT_PROPS = {
40
43
  "aria-disabled": true,
41
- onClick: preventActivation
44
+ onClick: preventActivation,
45
+ onKeyDown: preventKeyActivation,
46
+ onKeyUp: preventKeyActivation
42
47
  };
43
48
  const EMPTY_PROPS = {};
44
49
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"disabledProps.js","names":["SyntheticEvent","Props","FORM_CONTROL_TAGS","Set","ACTIVATION_EVENT_PROPS","const","preventActivation","event","preventDefault","INERT_PROPS","onClick","EMPTY_PROPS","DisabledElementOptions","isDisabled","keepEvents","as","DisabledElementProps","isNativelyDisabled","isInert","inertProps","getDisabledElementProps","has","omitActivationEventProps","props","T","result","prop"],"sources":["../../../src/utils/react/disabledProps.ts"],"sourcesContent":["import type { SyntheticEvent } from 'react';\nimport type { Props } from '../../props';\n\n/**\n * Tags where `disabled` is a real HTML attribute. Browsers refuse to dispatch\n * mouse events on those elements while the attribute is set, so nothing that\n * listens for hover — a tooltip trigger above all — ever hears from them.\n * On every other tag the attribute is invalid markup that does nothing.\n */\nconst FORM_CONTROL_TAGS = new Set([\n 'button',\n 'input',\n 'select',\n 'textarea',\n 'fieldset',\n 'option',\n 'optgroup',\n]);\n\n/**\n * Handlers that can activate an element. They are dropped while the element is\n * disabled through `aria-disabled` alone, so it stays as inert as a natively\n * disabled one.\n */\nconst ACTIVATION_EVENT_PROPS = [\n 'onClick',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseUp',\n 'onPointerDown',\n 'onPointerUp',\n 'onTouchStart',\n 'onTouchEnd',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n] as const;\n\nfunction preventActivation(event: SyntheticEvent) {\n // Without the native attribute a click (or Enter/Space, which the browser\n // turns into a click) still runs the default action and would submit the\n // surrounding form.\n event.preventDefault();\n}\n\nconst INERT_PROPS: Props = {\n 'aria-disabled': true,\n onClick: preventActivation,\n};\n\nconst EMPTY_PROPS: Props = {};\n\nexport interface DisabledElementOptions {\n /** Whether the component is disabled. */\n isDisabled?: boolean;\n /**\n * Whether the element has to keep receiving pointer and focus events while\n * disabled. Set it when the element hosts a tooltip: the tooltip is there to\n * explain why the element is unavailable, so hover has to reach it.\n */\n keepEvents?: boolean;\n /** The tag the component renders. */\n as?: string;\n}\n\nexport interface DisabledElementProps {\n /** Whether the element has to carry the native `disabled` attribute. */\n isNativelyDisabled: boolean;\n /**\n * Whether the element is disabled through `aria-disabled` only and therefore\n * has to be kept inert by hand.\n */\n isInert: boolean;\n /** Props that mark the element disabled and inert. Spread them last. */\n inertProps: Props;\n}\n\n/**\n * Decides how the disabled state reaches the DOM.\n *\n * The native `disabled` attribute is the strongest option, but it also makes\n * the browser swallow the events the element needs to open a tooltip. When\n * such an element has to stay hoverable, it is marked `aria-disabled` instead\n * and kept inert by blocking activation — the outcome a user sees is the same,\n * except the tooltip now opens and screen readers still announce the state.\n */\nexport function getDisabledElementProps({\n isDisabled,\n keepEvents,\n as = 'div',\n}: DisabledElementOptions): DisabledElementProps {\n if (!isDisabled) {\n return {\n isNativelyDisabled: false,\n isInert: false,\n inertProps: EMPTY_PROPS,\n };\n }\n\n // The attribute only means something on form controls, and there it can be\n // kept whenever nothing depends on the element's events.\n if (FORM_CONTROL_TAGS.has(as) && !keepEvents) {\n return {\n isNativelyDisabled: true,\n isInert: false,\n inertProps: EMPTY_PROPS,\n };\n }\n\n return { isNativelyDisabled: false, isInert: true, inertProps: INERT_PROPS };\n}\n\n/**\n * Removes the handlers that would activate an element which is disabled\n * without the native attribute.\n */\nexport function omitActivationEventProps<T extends Props>(props: T): T {\n const result = { ...props };\n\n for (const prop of ACTIVATION_EVENT_PROPS) {\n delete result[prop];\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;AASA,MAAME,oBAAoB,IAAIC,IAAI;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;;;;;;AAOF,MAAMC,yBAAyB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,SAASE,kBAAkBC,OAAuB;AAIhDA,OAAMC,gBAAgB;;AAGxB,MAAMC,cAAqB;CACzB,iBAAiB;CACjBC,SAASJ;CACV;AAED,MAAMK,cAAqB,EAAE;;;;;;;;;;AAoC7B,SAAgBS,wBAAwB,EACtCP,YACAC,YACAC,KAAK,SAC0C;AAC/C,KAAI,CAACF,WACH,QAAO;EACLI,oBAAoB;EACpBC,SAAS;EACTC,YAAYR;EACb;AAKH,KAAIT,kBAAkBmB,IAAIN,GAAG,IAAI,CAACD,WAChC,QAAO;EACLG,oBAAoB;EACpBC,SAAS;EACTC,YAAYR;EACb;AAGH,QAAO;EAAEM,oBAAoB;EAAOC,SAAS;EAAMC,YAAYV;EAAa;;;;;;AAO9E,SAAgBa,yBAA0CC,OAAa;CACrE,MAAME,SAAS,EAAE,GAAGF,OAAO;AAE3B,MAAK,MAAMG,QAAQtB,uBACjB,QAAOqB,OAAOC;AAGhB,QAAOD"}
1
+ {"version":3,"file":"disabledProps.js","names":["KeyboardEvent","SyntheticEvent","Props","FORM_CONTROL_TAGS","Set","ACTIVATION_EVENT_PROPS","const","preventActivation","event","preventDefault","preventKeyActivation","target","currentTarget","key","INERT_PROPS","onClick","onKeyDown","onKeyUp","EMPTY_PROPS","DisabledElementOptions","isDisabled","keepEvents","as","DisabledElementProps","isNativelyDisabled","isInert","inertProps","getDisabledElementProps","has","omitActivationEventProps","props","T","result","prop"],"sources":["../../../src/utils/react/disabledProps.ts"],"sourcesContent":["import type { KeyboardEvent, SyntheticEvent } from 'react';\nimport type { Props } from '../../props';\n\n/**\n * Tags where `disabled` is a real HTML attribute. Browsers refuse to dispatch\n * mouse events on those elements while the attribute is set, so nothing that\n * listens for hover — a tooltip trigger above all — ever hears from them.\n * On every other tag the attribute is invalid markup that does nothing.\n */\nconst FORM_CONTROL_TAGS = new Set([\n 'button',\n 'input',\n 'select',\n 'textarea',\n 'fieldset',\n 'option',\n 'optgroup',\n]);\n\n/**\n * Handlers that can activate an element. They are dropped while the element is\n * disabled through `aria-disabled` alone, so it stays as inert as a natively\n * disabled one.\n */\nconst ACTIVATION_EVENT_PROPS = [\n 'onClick',\n 'onDoubleClick',\n 'onMouseDown',\n 'onMouseUp',\n 'onPointerDown',\n 'onPointerUp',\n 'onTouchStart',\n 'onTouchEnd',\n 'onKeyDown',\n 'onKeyUp',\n 'onKeyPress',\n] as const;\n\nfunction preventActivation(event: SyntheticEvent) {\n // Without the native attribute a click still runs the default action and\n // would submit the surrounding form or follow the link.\n event.preventDefault();\n}\n\nfunction preventKeyActivation(event: KeyboardEvent) {\n // Enter and Space on the focused element make the browser click it, and that\n // click would reach the ancestors' handlers. Keys from a focused descendant\n // are left alone.\n if (\n event.target === event.currentTarget &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n event.preventDefault();\n }\n}\n\nconst INERT_PROPS: Props = {\n 'aria-disabled': true,\n onClick: preventActivation,\n onKeyDown: preventKeyActivation,\n onKeyUp: preventKeyActivation,\n};\n\nconst EMPTY_PROPS: Props = {};\n\nexport interface DisabledElementOptions {\n /** Whether the component is disabled. */\n isDisabled?: boolean;\n /**\n * Whether the element has to keep receiving pointer and focus events while\n * disabled. Set it when the element hosts a tooltip: the tooltip is there to\n * explain why the element is unavailable, so hover has to reach it. Or when\n * it has to keep focus, as a loading action does while a keyboard press runs.\n */\n keepEvents?: boolean;\n /** The tag the component renders. */\n as?: string;\n}\n\nexport interface DisabledElementProps {\n /** Whether the element has to carry the native `disabled` attribute. */\n isNativelyDisabled: boolean;\n /**\n * Whether the element is disabled through `aria-disabled` only and therefore\n * has to be kept inert by hand: spread `inertProps` and drop the activation\n * handlers with `omitActivationEventProps`.\n */\n isInert: boolean;\n /** Props that mark the element disabled and inert. Spread them last. */\n inertProps: Props;\n}\n\n/**\n * Decides how the disabled state reaches the DOM.\n *\n * The native `disabled` attribute is the strongest option, but it also makes\n * the browser swallow the events the element needs to open a tooltip. When\n * such an element has to stay hoverable, it is marked `aria-disabled` instead\n * and kept inert by blocking activation — the outcome a user sees is the same,\n * except the tooltip now opens and screen readers still announce the state.\n */\nexport function getDisabledElementProps({\n isDisabled,\n keepEvents,\n as = 'div',\n}: DisabledElementOptions): DisabledElementProps {\n if (!isDisabled) {\n return {\n isNativelyDisabled: false,\n isInert: false,\n inertProps: EMPTY_PROPS,\n };\n }\n\n // The attribute only means something on form controls, and there it can be\n // kept whenever nothing depends on the element's events.\n if (FORM_CONTROL_TAGS.has(as) && !keepEvents) {\n return {\n isNativelyDisabled: true,\n isInert: false,\n inertProps: EMPTY_PROPS,\n };\n }\n\n return { isNativelyDisabled: false, isInert: true, inertProps: INERT_PROPS };\n}\n\n/**\n * Removes the handlers that would activate an element which is disabled\n * without the native attribute.\n */\nexport function omitActivationEventProps<T extends Props>(props: T): T {\n const result = { ...props };\n\n for (const prop of ACTIVATION_EVENT_PROPS) {\n delete result[prop];\n }\n\n return result;\n}\n"],"mappings":";;;;;;;;AASA,MAAMG,oBAAoB,IAAIC,IAAI;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACD,CAAC;;;;;;AAOF,MAAMC,yBAAyB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,SAASE,kBAAkBC,OAAuB;AAGhDA,OAAMC,gBAAgB;;AAGxB,SAASC,qBAAqBF,OAAsB;AAIlD,KACEA,MAAMG,WAAWH,MAAMI,kBACtBJ,MAAMK,QAAQ,WAAWL,MAAMK,QAAQ,KAExCL,OAAMC,gBAAgB;;AAI1B,MAAMK,cAAqB;CACzB,iBAAiB;CACjBC,SAASR;CACTS,WAAWN;CACXO,SAASP;CACV;AAED,MAAMQ,cAAqB,EAAE;;;;;;;;;;AAsC7B,SAAgBS,wBAAwB,EACtCP,YACAC,YACAC,KAAK,SAC0C;AAC/C,KAAI,CAACF,WACH,QAAO;EACLI,oBAAoB;EACpBC,SAAS;EACTC,YAAYR;EACb;AAKH,KAAIf,kBAAkByB,IAAIN,GAAG,IAAI,CAACD,WAChC,QAAO;EACLG,oBAAoB;EACpBC,SAAS;EACTC,YAAYR;EACb;AAGH,QAAO;EAAEM,oBAAoB;EAAOC,SAAS;EAAMC,YAAYZ;EAAa;;;;;;AAO9E,SAAgBe,yBAA0CC,OAAa;CACrE,MAAME,SAAS,EAAE,GAAGF,OAAO;AAE3B,MAAK,MAAMG,QAAQ5B,uBACjB,QAAO2B,OAAOC;AAGhB,QAAOD"}
@@ -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/utils/react/escapePropagation.ts
3
3
  /**
4
4
  * Let `Escape` keep travelling out of a trigger or list, and hold every other
@@ -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/utils/react/forwardRefWithGenerics.tsx
3
3
  /**
4
4
  * A helper for creating forwardRef components with generic types.
@@ -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 { chain } from "./chain.js";
3
3
  import { getDisabledElementProps, omitActivationEventProps } from "./disabledProps.js";
4
4
  import { forwardRefWithGenerics } from "./forwardRefWithGenerics.js";
@@ -1,55 +1,80 @@
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 { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
2
3
  import { c } from "react-compiler-runtime";
3
4
  import { useRef, useState } from "react";
4
5
  import { useFocus } from "react-aria";
5
6
  import { isFocusVisible, useFocusVisibleListener } from "@react-aria/interactions";
7
+ import { getActiveElement, getOwnerDocument } from "@react-aria/utils";
6
8
 
7
9
  //#region src/utils/react/interactions.ts
8
- function useFocus$1(t0, t1) {
10
+ /**
11
+ * Whether the element holds focus, disabled or not: a control that keeps
12
+ * focus while `aria-disabled` still shows where focus is.
13
+ */
14
+ function useFocus$1(t0) {
9
15
  const $ = c(10);
10
- const { isDisabled } = t0;
11
- const onlyVisible = t1 === void 0 ? false : t1;
16
+ const onlyVisible = t0 === void 0 ? false : t0;
12
17
  const [isFocused, setIsFocused] = useState(false);
13
18
  const [isFocusVisible$1, setIsFocusVisible] = useState(false);
14
- if (isDisabled && isFocused) setIsFocused(false);
15
- let t2;
19
+ const focusedElementRef = useRef(null);
20
+ let t1;
16
21
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
22
+ t1 = () => {
23
+ const element = focusedElementRef.current;
24
+ if (element && element !== getActiveElement(getOwnerDocument(element))) {
25
+ focusedElementRef.current = null;
26
+ setIsFocused(false);
27
+ }
28
+ };
29
+ $[0] = t1;
30
+ } else t1 = $[0];
31
+ const dropLostFocus = t1;
32
+ let t2;
33
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
17
34
  t2 = isFocusVisible();
18
- $[0] = t2;
19
- } else t2 = $[0];
35
+ $[1] = t2;
36
+ } else t2 = $[1];
20
37
  const focusVisibleRef = useRef(t2);
21
38
  const isListening = onlyVisible && isFocused;
22
39
  let t3;
23
40
  let t4;
24
- if ($[1] !== isListening) {
41
+ if ($[2] !== isListening) {
25
42
  t3 = (visible) => {
26
43
  focusVisibleRef.current = visible;
44
+ dropLostFocus();
27
45
  if (isListening) setIsFocusVisible(visible);
28
46
  };
29
47
  t4 = [isListening];
30
- $[1] = isListening;
31
- $[2] = t3;
32
- $[3] = t4;
48
+ $[2] = isListening;
49
+ $[3] = t3;
50
+ $[4] = t4;
33
51
  } else {
34
- t3 = $[2];
35
- t4 = $[3];
52
+ t3 = $[3];
53
+ t4 = $[4];
36
54
  }
37
55
  useFocusVisibleListener(t3, t4);
38
56
  let t5;
39
- if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
40
- t5 = (focused) => {
41
- setIsFocused(focused);
42
- if (focused) setIsFocusVisible(focusVisibleRef.current);
57
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
58
+ t5 = () => {
59
+ dropLostFocus();
43
60
  };
44
- $[4] = t5;
45
- } else t5 = $[4];
61
+ $[5] = t5;
62
+ } else t5 = $[5];
63
+ useLayoutEffect$1(t5);
46
64
  let t6;
47
- if ($[5] !== isDisabled) {
65
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
48
66
  t6 = {
49
- isDisabled,
50
- onFocusChange: t5
67
+ onFocus: (event) => {
68
+ focusedElementRef.current = event.target;
69
+ },
70
+ onBlur: () => {
71
+ focusedElementRef.current = null;
72
+ },
73
+ onFocusChange: (focused) => {
74
+ setIsFocused(focused);
75
+ if (focused) setIsFocusVisible(focusVisibleRef.current);
76
+ }
51
77
  };
52
- $[5] = isDisabled;
53
78
  $[6] = t6;
54
79
  } else t6 = $[6];
55
80
  const { focusProps } = useFocus(t6);
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.js","names":["isFocusVisible","getIsFocusVisible","useFocusVisibleListener","useRef","useState","useFocus","reactAriaUseFocus","t0","t1","$","_c","isDisabled","onlyVisible","undefined","isFocused","setIsFocused","setIsFocusVisible","t2","Symbol","for","focusVisibleRef","isListening","t3","t4","visible","current","t5","focused","t6","onFocusChange","focusProps","t7","t8"],"sources":["../../../src/utils/react/interactions.ts"],"sourcesContent":["import {\n isFocusVisible as getIsFocusVisible,\n useFocusVisibleListener,\n} from '@react-aria/interactions';\nimport { useRef, useState } from 'react';\nimport { useFocus as reactAriaUseFocus } from 'react-aria';\n\nexport function useFocus(\n { isDisabled }: { isDisabled?: boolean },\n onlyVisible = false,\n) {\n let [isFocused, setIsFocused] = useState(false);\n let [isFocusVisible, setIsFocusVisible] = useState(false);\n\n // React-aria detaches focus handlers when disabled, so blur events\n // aren't captured. Clear stale focus synchronously during render\n // to avoid a one-frame glitch (useEffect would be too late).\n if (isDisabled && isFocused) {\n setIsFocused(false);\n }\n\n // Keep the listener's value, not the raw global modality: react-aria ignores keys\n // typed in a text input, so focus moved after typing there shows no ring.\n let focusVisibleRef = useRef(getIsFocusVisible());\n // Only a focused element takes it into state: updating state on every button\n // re-rendered all of them on each keyboard/pointer switch.\n let isListening = onlyVisible && isFocused;\n\n useFocusVisibleListener(\n (visible) => {\n focusVisibleRef.current = visible;\n\n if (isListening) {\n setIsFocusVisible(visible);\n }\n },\n [isListening],\n );\n\n let { focusProps } = reactAriaUseFocus({\n isDisabled,\n onFocusChange: (focused) => {\n setIsFocused(focused);\n\n if (focused) {\n setIsFocusVisible(focusVisibleRef.current);\n }\n },\n });\n\n return {\n focusProps,\n isFocused: isFocused && (onlyVisible ? isFocusVisible : true),\n };\n}\n"],"mappings":";;;;;;;AAOA,SAAOK,WAAAE,IAAAC,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CACL,MAAA,EAAAC,eAAAJ;CACA,MAAAK,cAAAJ,OAAAK,SAAA,QAAAL;CAEA,MAAA,CAAAM,WAAAC,gBAAgCX,SAAS,MAAM;CAC/C,MAAA,CAAAJ,kBAAAgB,qBAA0CZ,SAAS,MAAM;AAKzD,KAAIO,cAAAG,UACFC,cAAa,MAAM;CACpB,IAAAE;AAAA,KAAAR,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAI4BF,OAAAhB,gBAAmB;AAAAQ,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CAAhD,MAAAW,kBAAsBjB,OAAOc,GAAoB;CAGjD,MAAAI,cAAkBT,eAAAE;CAAyB,IAAAQ;CAAA,IAAAC;AAAA,KAAAd,EAAA,OAAAY,aAAA;AAGzCC,QAAAE,YAAA;AACEJ,mBAAeK,UAAWD;AAE1B,OAAIH,YACFL,mBAAkBQ,QAAQ;;AAG9BD,OAAA,CAACF,YAAY;AAAAZ,IAAA,KAAAY;AAAAZ,IAAA,KAAAa;AAAAb,IAAA,KAAAc;QAAA;AAAAD,OAAAb,EAAA;AAAAc,OAAAd,EAAA;;AARfP,yBACEoB,IAOAC,GACD;CAAA,IAAAG;AAAA,KAAAjB,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAIgBO,QAAAC,YAAA;AACbZ,gBAAaY,QAAQ;AAErB,OAAIA,QACFX,mBAAkBI,gBAAeK,QAAS;;AAE7ChB,IAAA,KAAAiB;OAAAA,MAAAjB,EAAA;CAAA,IAAAmB;AAAA,KAAAnB,EAAA,OAAAE,YAAA;AARoCiB,OAAA;GAAAjB;GAAAkB,eAEtBH;GAOhB;AAAAjB,IAAA,KAAAE;AAAAF,IAAA,KAAAmB;OAAAA,MAAAnB,EAAA;CATD,MAAA,EAAAqB,eAAqBxB,SAAkBsB,GASrC;CAIW,MAAAG,KAAAjB,cAAcF,cAAAZ,mBAAA;CAAoC,IAAAgC;AAAA,KAAAvB,EAAA,OAAAqB,cAAArB,EAAA,OAAAsB,IAAA;AAFxDC,OAAA;GAAAF;GAAAhB,WAEMiB;GACZ;AAAAtB,IAAA,KAAAqB;AAAArB,IAAA,KAAAsB;AAAAtB,IAAA,KAAAuB;OAAAA,MAAAvB,EAAA;AAAA,QAHMuB"}
1
+ {"version":3,"file":"interactions.js","names":["isFocusVisible","getIsFocusVisible","useFocusVisibleListener","getActiveElement","getOwnerDocument","useRef","useState","useFocus","reactAriaUseFocus","useLayoutEffect","t0","$","_c","onlyVisible","undefined","isFocused","setIsFocused","setIsFocusVisible","focusedElementRef","t1","Symbol","for","element","current","dropLostFocus","t2","focusVisibleRef","isListening","t3","t4","visible","t5","t6","onFocus","event","target","onBlur","onFocusChange","focused","focusProps","t7","t8"],"sources":["../../../src/utils/react/interactions.ts"],"sourcesContent":["import {\n isFocusVisible as getIsFocusVisible,\n useFocusVisibleListener,\n} from '@react-aria/interactions';\nimport { getActiveElement, getOwnerDocument } from '@react-aria/utils';\nimport { useRef, useState } from 'react';\nimport { useFocus as reactAriaUseFocus } from 'react-aria';\n\nimport { useLayoutEffect } from './useLayoutEffect';\n\n/**\n * Whether the element holds focus, disabled or not: a control that keeps\n * focus while `aria-disabled` still shows where focus is.\n */\nexport function useFocus(onlyVisible = false) {\n let [isFocused, setIsFocused] = useState(false);\n let [isFocusVisible, setIsFocusVisible] = useState(false);\n\n // No blur reaches React when the focused element is replaced (a tooltip\n // wrapper added or dropped), disabled through a `fieldset` or stripped of its\n // tabIndex. So a focus the element no longer holds is dropped after each\n // render of this control and, when the change came from elsewhere without\n // re-rendering it, on the next key or pointer press React Aria reports (keys\n // typed in a text field don't count).\n let focusedElementRef = useRef<Element | null>(null);\n\n let dropLostFocus = () => {\n let element = focusedElementRef.current;\n\n // React Aria's own check, which also looks inside a shadow root.\n if (element && element !== getActiveElement(getOwnerDocument(element))) {\n focusedElementRef.current = null;\n setIsFocused(false);\n }\n };\n\n // Keep the listener's value, not the raw global modality: react-aria ignores keys\n // typed in a text input, so focus moved after typing there shows no ring.\n let focusVisibleRef = useRef(getIsFocusVisible());\n // Only a focused element takes it into state: updating state on every button\n // re-rendered all of them on each keyboard/pointer switch.\n let isListening = onlyVisible && isFocused;\n\n useFocusVisibleListener(\n (visible) => {\n focusVisibleRef.current = visible;\n dropLostFocus();\n\n if (isListening) {\n setIsFocusVisible(visible);\n }\n },\n [isListening],\n );\n\n useLayoutEffect(() => {\n dropLostFocus();\n });\n\n let { focusProps } = reactAriaUseFocus({\n onFocus: (event) => {\n focusedElementRef.current = event.target;\n },\n onBlur: () => {\n focusedElementRef.current = null;\n },\n onFocusChange: (focused) => {\n setIsFocused(focused);\n\n if (focused) {\n setIsFocusVisible(focusVisibleRef.current);\n }\n },\n });\n\n return {\n focusProps,\n isFocused: isFocused && (onlyVisible ? isFocusVisible : true),\n };\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,SAAOO,WAAAG,IAAA;CAAA,MAAAC,IAAAC,EAAA,GAAA;CAAkB,MAAAC,cAAAH,OAAAI,SAAA,QAAAJ;CACvB,MAAA,CAAAK,WAAAC,gBAAgCV,SAAS,MAAM;CAC/C,MAAA,CAAAN,kBAAAiB,qBAA0CX,SAAS,MAAM;CAQzD,MAAAY,oBAAwBb,OAAuB,KAAK;CAAC,IAAAc;AAAA,KAAAR,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAEjCF,aAAA;GAClB,MAAAG,UAAcJ,kBAAiBK;AAG/B,OAAID,WAAWA,YAAYnB,iBAAiBC,iBAAiBkB,QAAQ,CAAC,EAAA;AACpEJ,sBAAiBK,UAAW;AAC5BP,iBAAa,MAAM;;;AAEtBL,IAAA,KAAAQ;OAAAA,MAAAR,EAAA;CARD,MAAAa,gBAAoBL;CAQlB,IAAAM;AAAA,KAAAd,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAI2BI,OAAAxB,gBAAmB;AAAAU,IAAA,KAAAc;OAAAA,MAAAd,EAAA;CAAhD,MAAAe,kBAAsBrB,OAAOoB,GAAoB;CAGjD,MAAAE,cAAkBd,eAAAE;CAAyB,IAAAa;CAAA,IAAAC;AAAA,KAAAlB,EAAA,OAAAgB,aAAA;AAGzCC,QAAAE,YAAA;AACEJ,mBAAeH,UAAWO;AAC1BN,kBAAe;AAEf,OAAIG,YACFV,mBAAkBa,QAAQ;;AAG9BD,OAAA,CAACF,YAAY;AAAAhB,IAAA,KAAAgB;AAAAhB,IAAA,KAAAiB;AAAAjB,IAAA,KAAAkB;QAAA;AAAAD,OAAAjB,EAAA;AAAAkB,OAAAlB,EAAA;;AATfT,yBACE0B,IAQAC,GACD;CAAA,IAAAE;AAAA,KAAApB,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAEeU,aAAA;AACdP,kBAAe;;AAChBb,IAAA,KAAAoB;OAAAA,MAAApB,EAAA;AAFDF,mBAAgBsB,GAEd;CAAA,IAAAC;AAAA,KAAArB,EAAA,OAAAS,OAAAC,IAAA,4BAAA,EAAA;AAEqCW,OAAA;GAAAC,UAC5BC,UAAA;AACPhB,sBAAiBK,UAAWW,MAAKC;;GAClCC,cACO;AACNlB,sBAAiBK,UAAW;;GAC7Bc,gBACcC,YAAA;AACbtB,iBAAasB,QAAQ;AAErB,QAAIA,QACFrB,mBAAkBS,gBAAeH,QAAS;;GAG/C;AAAAZ,IAAA,KAAAqB;OAAAA,MAAArB,EAAA;CAdD,MAAA,EAAA4B,eAAqB/B,SAAkBwB,GAcrC;CAIW,MAAAQ,KAAAzB,cAAcF,cAAAb,mBAAA;CAAoC,IAAAyC;AAAA,KAAA9B,EAAA,OAAA4B,cAAA5B,EAAA,OAAA6B,IAAA;AAFxDC,OAAA;GAAAF;GAAAxB,WAEMyB;GACZ;AAAA7B,IAAA,KAAA4B;AAAA5B,IAAA,KAAA6B;AAAA7B,IAAA,KAAA8B;OAAAA,MAAA9B,EAAA;AAAA,QAHM8B"}
@@ -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 { Children, isValidElement } from "react";
3
3
 
4
4
  //#region src/utils/react/isTextOnly.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
  //#region src/utils/react/mapProps.ts
3
3
  /** Converts AriaButtonProps to CubeButtonProps */
4
4
  function ariaToCubeButtonProps(props) {
@@ -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 { chain } from "./chain.js";
3
3
  import { mergeIds } from "./useId.js";
4
4
  import { mergeStyles } 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
  //#region src/utils/react/nullableValue.ts
3
3
  function castNullableStringValue(props) {
4
4
  return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v));
@@ -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/utils/react/programmaticFocus.ts
3
3
  /**
4
4
  * Telling focus the user moved from focus a component moved for them.
@@ -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/utils/react/resolveIcon.ts
3
3
  /**
4
4
  * Resolves a dynamic icon prop to its content and slot state.
@@ -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 { isDevEnv } from "../is-dev-env.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 { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { useCallback, 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 { c } from "react-compiler-runtime";
3
3
  import { useEffect, useRef } 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 { createSharedStore } from "./sharedStore.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { 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 { c } from "react-compiler-runtime";
3
3
  import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef } 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 { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useEffect, useRef, 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 { c } from "react-compiler-runtime";
3
3
  import { useEffect, 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 { useIsDarwin } from "./useIsDarwin.js";
3
3
  import { c } from "react-compiler-runtime";
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 * as React$1 from "react";
3
3
 
4
4
  //#region src/utils/react/useLayoutEffect.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 { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useSyncExternalStore } 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 { mergeStyles } from "@tenphi/tasty";
3
3
  import { useMemo } 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 { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { c } from "react-compiler-runtime";
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 { EventBusContext, useEventBus } from "./useEventBus.js";
3
3
  import { c } from "react-compiler-runtime";
4
4
  import { useContext, useEffect, 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/utils/react/useQaProps.ts
3
3
  /**
4
4
  * Processes QA props.
@@ -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 { useSyncExternalStore } from "react";
3
3
 
4
4
  //#region src/utils/react/useScheme.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 { c } from "react-compiler-runtime";
3
3
  import { useEffect, 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 { Fragment, isValidElement } from "react";
3
3
 
4
4
  //#region src/utils/react/wrapNodeIfPlain.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
  //#region src/utils/selection.ts
3
3
  /**
4
4
  * Deduplicate/toggle keys in a selection: if a key appears twice it is
@@ -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 { isSelector, mergeStyles } from "@tenphi/tasty";
3
3
 
4
4
  //#region src/utils/styles.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
  //#region src/utils/tree.ts
3
3
  function toFlatTree(tree, includingFolders) {
4
4
  return tree.reduce((result, node) => {
@@ -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 { isDevEnvOrTest } from "./is-dev-env.js";
3
3
 
4
4
  //#region src/utils/warnings.ts
package/dist/version.js CHANGED
@@ -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
  //#region src/version.ts
3
- const VERSION = "0.189.0";
3
+ const VERSION = "0.190.1";
4
4
  const TASTY_VERSION = "3.9.6";
5
5
  if (typeof window !== "undefined") {
6
6
  const version = VERSION;
@@ -195,7 +195,7 @@ import { IconPlus } from '@tabler/icons-react';
195
195
  </Button>;
196
196
  ```
197
197
 
198
- A disabled button keeps showing its tooltip. Browsers stop dispatching mouse events on elements carrying the native `disabled` attribute, so a button that has a tooltip is marked with `aria-disabled` instead and kept inert: `onPress` never fires and clicks (including the ones Enter and Space produce) do nothing. Such a button also stays in the tab order, so keyboard users can focus it and read the tooltip. Buttons rendered as links (`to`) are always marked this way, since `disabled` is not a valid attribute on an anchor.
198
+ A disabled button keeps showing its tooltip. Browsers stop dispatching mouse events on elements carrying the native `disabled` attribute, so a button that has a tooltip is marked with `aria-disabled` instead and kept inert: `onPress` never fires and clicks (including the ones Enter and Space produce) do nothing. Such a button also stays in the tab order, so keyboard users can focus it, see its focus ring and read the tooltip, and the keys that would open a `MenuTrigger` menu do nothing. Buttons rendered as links (`to`) are always marked this way, since `disabled` is not a valid attribute on an anchor.
199
199
 
200
200
  ### Custom Size
201
201
 
@@ -19,9 +19,9 @@ Each host re-exports it as its own `.Action` — `Item.Action`, `ItemButton.Acti
19
19
  - **`icon`** `ReactNode | 'checkmark'` — Icon element or `'checkmark'` for a selection indicator
20
20
  - **`type`** `'primary' | 'outline' | 'clear'` (default: `'clear'`) — Visual type. `clear` is borderless and paints nothing at rest, so a row full of actions does not read as busy.
21
21
  - **`theme`** `'current' | 'default' | 'danger' | 'success' | 'warning' | 'note' | 'special'` (default: `'current'`) — Color theme. `current` derives every color from the inherited `currentcolor`, so the action tracks whatever row hosts it without being told the row's type or theme. Name any other theme to have the action paint itself instead.
22
- - **`isLoading`** `boolean` (default: `false`) — Shows loading spinner
22
+ - **`isLoading`** `boolean` (default: `false`) — Shows a loading spinner in the icon slot and disables the action, like `Button`, so a second press does not run it again. `isDisabled={false}` does not re-enable a loading action.
23
23
  - **`isSelected`** `boolean` (default: `false`) — Selected state (works with `icon="checkmark"`)
24
- - **`isDisabled`** `boolean` (default: `false`) — Disables the action. Inherits from parent; use `isDisabled={false}` to override.
24
+ - **`isDisabled`** `boolean` (default: `false`) — Disables the action. Inherits from parent; use `isDisabled={false}` to override. Which disabled actions keyboard users can still reach is covered under Accessibility.
25
25
  - **`tooltip`** `string | object` — Tooltip content (shown for icon-only buttons)
26
26
  - **`onPress`** `() => void` — Press event handler
27
27
 
@@ -38,6 +38,14 @@ Supports [Base properties](../../BaseProperties.md).
38
38
  <ItemAction icon={<IconTrash />} tooltip="Delete" theme="danger" />
39
39
  ```
40
40
 
41
+ ### Loading action
42
+
43
+ `isLoading` replaces the icon with a spinner and disables the action until the work ends, so there is no need to pair it with `isDisabled`.
44
+
45
+ ```jsx
46
+ <ItemAction icon={<IconRefresh />} tooltip="Refresh" isLoading={isFetching} onPress={refetch} />
47
+ ```
48
+
41
49
  ### Checkmark action
42
50
 
43
51
  ```jsx
@@ -60,3 +68,23 @@ Supports [Base properties](../../BaseProperties.md).
60
68
  Document.pdf
61
69
  </ItemButton>
62
70
  ```
71
+
72
+ ## Accessibility
73
+
74
+ ### Keyboard Navigation
75
+
76
+ - `Tab` – Moves focus to the action.
77
+ - `Space` / `Enter` – Activates the action.
78
+
79
+ A disabled or loading action stays reachable only where keyboard users need it:
80
+
81
+ - As on `Button`, a disabled action leaves the tab order, unless it is an icon-only action with a tooltip that disables itself. That one stays a Tab stop and shows its focus ring, so keyboard users can read the tooltip.
82
+ - Inside a disabled parent, every disabled button action leaves the tab order.
83
+ - A disabled link action (`to`) stays a Tab stop, even inside a disabled parent.
84
+ - A loading action keeps focus it already has, and its focus ring, so a keyboard press keeps its place, but Tab skips it until loading ends.
85
+ - A disabled or loading action that holds focus ignores the keys that would open a `MenuTrigger` menu.
86
+
87
+ ### ARIA Properties
88
+
89
+ - `aria-label` – Taken from a plain-text `tooltip` when none is passed.
90
+ - `aria-disabled` – Announces the disabled state where the native `disabled` attribute would drop focus or hover: on a loading action, an icon-only action with a tooltip that disables itself, and a link action. The action is kept inert: activation handlers are dropped and clicks do nothing.
@@ -22,8 +22,8 @@ Every field's `labelTooltip` prop already renders an `InfoBadge` next to the lab
22
22
  - **`theme`** `'default' | 'danger' | 'success'` (default: `'default'`) — Color theme. The default `default` + `clear` combination is brand-tinted; any other combination uses the theme's own colors.
23
23
  - **`to`** `string | number | object` — Navigation target. Renders the badge as a link. Supports the `!` (new tab) and `@` (native navigation) prefixes.
24
24
  - **`onPress`** `(e: PressEvent) => void` — Press handler. Renders the badge as a button.
25
- - **`isLoading`** `boolean` — Replace the icon with a loading spinner
26
- - **`isDisabled`** `boolean` — Disable the badge
25
+ - **`isLoading`** `boolean` — Replace the icon with a loading spinner. An interactive badge can't be pressed or followed while loading.
26
+ - **`isDisabled`** `boolean` — Disable the badge. An interactive badge stays reachable by keyboard and shows its focus ring, so its tooltip can still be read.
27
27
 
28
28
  ### Accessibility
29
29
 
@@ -24,7 +24,7 @@ A headless helper component that manages enter and exit animation states for sho
24
24
  - **`onRest`** `(transition: 'enter' | 'exit') => void` — Fires after enter settles or after exit completes (unmount)
25
25
  - **`onPhaseChange`** `(phase: ReportedPhase) => void` — Fires when the transition phase changes
26
26
  - **`onToggle`** `(isShown: boolean) => void` — Fires when the derived `isShown` value changes
27
- - **`children`** `(props: { phase, isShown, ref }) => ReactNode` — Render prop receiving the current phase, visibility state, and a ref callback to bind to the transitioned element
27
+ - **`children`** `(props: { phase, isShown, isExiting, ref }) => ReactNode` — Render prop receiving the current phase, visibility state, whether the content is exiting, and a ref callback to bind to the transitioned element
28
28
 
29
29
  ### Base Properties
30
30
 
@@ -41,6 +41,8 @@ The component manages four distinct phases:
41
41
 
42
42
  The render prop receives an object `{ phase, isShown }` where `isShown` is only `true` during the `entered` phase.
43
43
 
44
+ It also receives `isExiting`, which is `true` from the render where the `isShown` prop turns `false` until the phase reaches `unmounted`. `phase` still reports `entered`, and `isShown` stays `true`, for the two frames before the exit starts, and values the render prop closes over stay at their shown-state reading while `preserveContent` replays it, so `isExiting` is the way to tell closing content from shown content. The kit's overlays use it to mark a closing overlay with `data-react-aria-top-layer`, so a press on it never counts as a press outside the overlay underneath.
45
+
44
46
  ## Examples
45
47
 
46
48
  ### Basic Usage