@cube-dev/ui-kit 0.194.1 → 0.196.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (708) hide show
  1. package/dist/CHANGELOG.md +190 -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.d.ts +6 -0
  16. package/dist/components/Root.js +125 -102
  17. package/dist/components/Root.js.map +1 -1
  18. package/dist/components/actions/Action/Action.js +1 -1
  19. package/dist/components/actions/Banner/Banner.js +1 -1
  20. package/dist/components/actions/Button/Button.js +11 -5
  21. package/dist/components/actions/Button/Button.js.map +1 -1
  22. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  23. package/dist/components/actions/ButtonSplit/ButtonSplit.d.ts +9 -4
  24. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  25. package/dist/components/actions/ButtonSplit/ButtonSplit.js.map +1 -1
  26. package/dist/components/actions/ButtonSplit/context.js +1 -1
  27. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  28. package/dist/components/actions/CommandMenu/styled.js +1 -1
  29. package/dist/components/actions/ItemAction/ItemAction.js +27 -25
  30. package/dist/components/actions/ItemAction/ItemAction.js.map +1 -1
  31. package/dist/components/actions/ItemActionContext.js +1 -1
  32. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  33. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  34. package/dist/components/actions/Link/Link.js +1 -1
  35. package/dist/components/actions/Menu/Menu.js +1 -1
  36. package/dist/components/actions/Menu/MenuCollectionItem.js +7 -4
  37. package/dist/components/actions/Menu/MenuCollectionItem.js.map +1 -1
  38. package/dist/components/actions/Menu/MenuItem.js +69 -60
  39. package/dist/components/actions/Menu/MenuItem.js.map +1 -1
  40. package/dist/components/actions/Menu/MenuSection.js +1 -1
  41. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  42. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  43. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  44. package/dist/components/actions/Menu/context.js +1 -1
  45. package/dist/components/actions/Menu/styled.js +1 -4
  46. package/dist/components/actions/Menu/styled.js.map +1 -1
  47. package/dist/components/actions/actions-run.js +1 -1
  48. package/dist/components/actions/index.js +1 -1
  49. package/dist/components/actions/use-action.js +15 -14
  50. package/dist/components/actions/use-action.js.map +1 -1
  51. package/dist/components/actions/use-anchored-menu.js +1 -1
  52. package/dist/components/actions/use-context-menu.js +1 -1
  53. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  54. package/dist/components/content/Alert/Alert.js +1 -1
  55. package/dist/components/content/Alert/use-alert.js +1 -1
  56. package/dist/components/content/Avatar/Avatar.js +1 -1
  57. package/dist/components/content/Badge/Badge.js +1 -1
  58. package/dist/components/content/Card/Card.js +1 -1
  59. package/dist/components/content/Content.js +1 -1
  60. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  61. package/dist/components/content/CopySnippet/CopySnippet.d.ts +14 -14
  62. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  63. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  64. package/dist/components/content/Divider.js +1 -1
  65. package/dist/components/content/Footer.js +1 -1
  66. package/dist/components/content/Header.js +1 -1
  67. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  68. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  69. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  70. package/dist/components/content/Item/Item.js +16 -4
  71. package/dist/components/content/Item/Item.js.map +1 -1
  72. package/dist/components/content/Item/ItemWithNativeLinks.js +1 -1
  73. package/dist/components/content/ItemBadge/ItemBadge.js +7 -3
  74. package/dist/components/content/ItemBadge/ItemBadge.js.map +1 -1
  75. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  76. package/dist/components/content/Layout/GridLayout.js +1 -1
  77. package/dist/components/content/Layout/Layout.js +29 -15
  78. package/dist/components/content/Layout/Layout.js.map +1 -1
  79. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  80. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  81. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  82. package/dist/components/content/Layout/LayoutContent.js +1 -1
  83. package/dist/components/content/Layout/LayoutContext.js +20 -10
  84. package/dist/components/content/Layout/LayoutContext.js.map +1 -1
  85. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  86. package/dist/components/content/Layout/LayoutFooter.js +12 -9
  87. package/dist/components/content/Layout/LayoutFooter.js.map +1 -1
  88. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  89. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  90. package/dist/components/content/Layout/LayoutPane.d.ts +5 -1
  91. package/dist/components/content/Layout/LayoutPane.js +323 -149
  92. package/dist/components/content/Layout/LayoutPane.js.map +1 -1
  93. package/dist/components/content/Layout/LayoutPanel.d.ts +4 -2
  94. package/dist/components/content/Layout/LayoutPanel.js +73 -2
  95. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  96. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  97. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  98. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  99. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  100. package/dist/components/content/Layout/index.js +1 -1
  101. package/dist/components/content/Layout/utils.js +1 -1
  102. package/dist/components/content/Paragraph.js +1 -1
  103. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  104. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  105. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  106. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  107. package/dist/components/content/Result/Result.js +1 -1
  108. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  109. package/dist/components/content/Tag/Tag.js +1 -1
  110. package/dist/components/content/Text.js +1 -1
  111. package/dist/components/content/TextItem/TextItem.js +1 -1
  112. package/dist/components/content/Title.js +1 -1
  113. package/dist/components/content/Tree/Tree.js +1 -1
  114. package/dist/components/content/Tree/TreeNode.js +2 -1
  115. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  116. package/dist/components/content/Tree/styled.js +1 -1
  117. package/dist/components/content/Tree/tree-index.js +1 -1
  118. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  119. package/dist/components/content/Tree/use-load-data.js +1 -1
  120. package/dist/components/content/highlightText.js +1 -1
  121. package/dist/components/content/use-auto-tooltip.js +3 -3
  122. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  123. package/dist/components/data/DataTable/DataTable.js +1 -1
  124. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  125. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  126. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  127. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  128. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -1
  129. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  130. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  131. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  132. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  133. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  134. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  135. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  136. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  137. package/dist/components/data/TableBase/RowCollection.js +1 -1
  138. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  139. package/dist/components/data/TableBase/TableRow.js +1 -1
  140. package/dist/components/data/TableBase/TableView.js +3 -1
  141. package/dist/components/data/TableBase/TableView.js.map +1 -1
  142. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  143. package/dist/components/data/TableBase/column-header.js +1 -1
  144. package/dist/components/data/TableBase/column-menu.js +1 -1
  145. package/dist/components/data/TableBase/column-styles.js +1 -1
  146. package/dist/components/data/TableBase/column-tint.js +1 -1
  147. package/dist/components/data/TableBase/row-menu.js +1 -1
  148. package/dist/components/data/TableBase/styled.js +1 -1
  149. package/dist/components/data/TableBase/table-tree.js +1 -1
  150. package/dist/components/data/TableBase/types.js +1 -1
  151. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  152. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  153. package/dist/components/data/TableBase/use-column-order.js +1 -1
  154. package/dist/components/data/TableBase/use-column-window.js +1 -1
  155. package/dist/components/data/TableBase/use-container-width.js +1 -1
  156. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  157. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  158. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  159. package/dist/components/data/TableBase/use-table-search.js +1 -1
  160. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  161. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  162. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  163. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  164. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  165. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  166. package/dist/components/fields/Checkbox/Checkbox.js +28 -17
  167. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  168. package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +1 -1
  169. package/dist/components/fields/Checkbox/CheckboxGroup.js +6 -6
  170. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  171. package/dist/components/fields/Checkbox/context.js +1 -1
  172. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  173. package/dist/components/fields/ColorPicker/ColorPicker.js +3 -1
  174. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  175. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  176. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +2 -1
  177. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  178. package/dist/components/fields/ComboBox/ComboBox.d.ts +27 -7
  179. package/dist/components/fields/ComboBox/ComboBox.js +1095 -619
  180. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  181. package/dist/components/fields/ComboBox/comboBoxOptions.js +84 -0
  182. package/dist/components/fields/ComboBox/comboBoxOptions.js.map +1 -0
  183. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  184. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  185. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  186. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  187. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  188. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  189. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  190. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  191. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  192. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  193. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  194. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  195. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  196. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  197. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  198. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  199. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  200. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  201. package/dist/components/fields/DatePicker/parseDate.d.ts +7 -0
  202. package/dist/components/fields/DatePicker/parseDate.js +17 -3
  203. package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
  204. package/dist/components/fields/DatePicker/period.js +1 -1
  205. package/dist/components/fields/DatePicker/props.js +1 -1
  206. package/dist/components/fields/DatePicker/utils.js +1 -1
  207. package/dist/components/fields/FileInput/FileInput.js +1 -1
  208. package/dist/components/fields/FilterListBox/FilterListBox.js +2 -1
  209. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  210. package/dist/components/fields/FilterPicker/FilterPicker.js +15 -6
  211. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  212. package/dist/components/fields/Input/Input.d.ts +2 -2
  213. package/dist/components/fields/Input/Input.js +2 -2
  214. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  215. package/dist/components/fields/ListBox/ListBox.d.ts +10 -4
  216. package/dist/components/fields/ListBox/ListBox.js +298 -146
  217. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  218. package/dist/components/fields/ListBox/optionId.js +1 -1
  219. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +150 -139
  220. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  221. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  222. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  223. package/dist/components/fields/NumberInput/NumberInput.d.ts +6 -1
  224. package/dist/components/fields/NumberInput/NumberInput.js +136 -128
  225. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  226. package/dist/components/fields/NumberInput/StepButton.js +38 -48
  227. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  228. package/dist/components/fields/PasswordInput/PasswordInput.d.ts +1 -2
  229. package/dist/components/fields/PasswordInput/PasswordInput.js +77 -111
  230. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  231. package/dist/components/fields/Picker/Picker.d.ts +1 -1
  232. package/dist/components/fields/Picker/Picker.js +22 -8
  233. package/dist/components/fields/Picker/Picker.js.map +1 -1
  234. package/dist/components/fields/RadioGroup/Radio.d.ts +12 -8
  235. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  236. package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
  237. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  238. package/dist/components/fields/RadioGroup/context.js +1 -1
  239. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  240. package/dist/components/fields/SearchInput/SearchInput.d.ts +8 -3
  241. package/dist/components/fields/SearchInput/SearchInput.js +22 -29
  242. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  243. package/dist/components/fields/Select/Select.d.ts +12 -1
  244. package/dist/components/fields/Select/Select.js +365 -207
  245. package/dist/components/fields/Select/Select.js.map +1 -1
  246. package/dist/components/fields/Slider/Gradation.js +1 -1
  247. package/dist/components/fields/Slider/HueSlider.js +1 -1
  248. package/dist/components/fields/Slider/RangeSlider.js +3 -4
  249. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  250. package/dist/components/fields/Slider/Slider.js +1 -1
  251. package/dist/components/fields/Slider/SliderBase.js +1 -1
  252. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  253. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  254. package/dist/components/fields/Slider/elements.js +1 -1
  255. package/dist/components/fields/Slider/index.js +1 -1
  256. package/dist/components/fields/Switch/Switch.js +101 -101
  257. package/dist/components/fields/Switch/Switch.js.map +1 -1
  258. package/dist/components/fields/TagInput/TagInput.js +336 -330
  259. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  260. package/dist/components/fields/TagInput/TagList.js +1 -1
  261. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  262. package/dist/components/fields/TagInput/useTagError.js +1 -1
  263. package/dist/components/fields/TextArea/TextArea.d.ts +0 -1
  264. package/dist/components/fields/TextArea/TextArea.js +49 -63
  265. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  266. package/dist/components/fields/TextInput/TextInput.d.ts +1 -1
  267. package/dist/components/fields/TextInput/TextInput.js +42 -46
  268. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  269. package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -2
  270. package/dist/components/fields/TextInput/TextInputBase.js +32 -10
  271. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  272. package/dist/components/fields/TextInput/displayed-validation.js +50 -0
  273. package/dist/components/fields/TextInput/displayed-validation.js.map +1 -0
  274. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  275. package/dist/components/fields/TextInputMapper/TextInputMapper.js +20 -17
  276. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  277. package/dist/components/fields/TriggerActions.js +1 -1
  278. package/dist/components/fields/color/ColorPanel.js +3 -1
  279. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  280. package/dist/components/fields/color/channels.js +1 -1
  281. package/dist/components/fields/color/color.js +1 -1
  282. package/dist/components/fields/color/context.js +1 -1
  283. package/dist/components/fields/index.d.ts +2 -2
  284. package/dist/components/fields/option-origin-press.js +78 -0
  285. package/dist/components/fields/option-origin-press.js.map +1 -0
  286. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +10 -8
  287. package/dist/components/form/FieldWrapper/FieldWrapper.js +214 -158
  288. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  289. package/dist/components/form/FieldWrapper/field-description.js +3 -3
  290. package/dist/components/form/FieldWrapper/field-description.js.map +1 -1
  291. package/dist/components/form/FieldWrapper/types.d.ts +4 -3
  292. package/dist/components/form/Form/Field.js +1 -1
  293. package/dist/components/form/Form/Form.js +1 -1
  294. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  295. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  296. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  297. package/dist/components/form/Form/SubmitError.js +1 -1
  298. package/dist/components/form/Form/backend.js +1 -1
  299. package/dist/components/form/Form/index.js +1 -1
  300. package/dist/components/form/Form/modern/actions.js +1 -1
  301. package/dist/components/form/Form/modern/context.js +1 -1
  302. package/dist/components/form/Form/modern/controller.js +1 -1
  303. package/dist/components/form/Form/modern/field-binding.js +1 -1
  304. package/dist/components/form/Form/modern/field.js +1 -1
  305. package/dist/components/form/Form/modern/react.js +1 -1
  306. package/dist/components/form/Form/modern/store.js +1 -1
  307. package/dist/components/form/Form/modern/validation.js +1 -1
  308. package/dist/components/form/Form/modern/values.js +1 -1
  309. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  310. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  311. package/dist/components/form/Form/use-field/use-field-props.js +34 -22
  312. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  313. package/dist/components/form/Form/use-field/use-field.js +1 -1
  314. package/dist/components/form/Form/use-form.js +1 -1
  315. package/dist/components/form/Form/validation.js +1 -1
  316. package/dist/components/form/Label.js +1 -1
  317. package/dist/components/form/field-chrome.js +15 -0
  318. package/dist/components/form/field-chrome.js.map +1 -0
  319. package/dist/components/form/index.d.ts +1 -1
  320. package/dist/components/form/legacy-tooltip.js +1 -1
  321. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  322. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  323. package/dist/components/form/validation/use-validation-props.js +1 -1
  324. package/dist/components/form/wrapper.d.ts +6 -5
  325. package/dist/components/form/wrapper.js +11 -8
  326. package/dist/components/form/wrapper.js.map +1 -1
  327. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  328. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  329. package/dist/components/layout/Flex.js +1 -1
  330. package/dist/components/layout/Flow.js +1 -1
  331. package/dist/components/layout/Grid.js +1 -1
  332. package/dist/components/layout/Panel.js +1 -1
  333. package/dist/components/layout/Prefix.js +1 -1
  334. package/dist/components/layout/ResizablePanel.js +1 -1
  335. package/dist/components/layout/Space.js +1 -1
  336. package/dist/components/layout/Suffix.js +1 -1
  337. package/dist/components/navigation/Pagination/Pagination.js +3 -1
  338. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  339. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  340. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  341. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  342. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  343. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  344. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  345. package/dist/components/navigation/Tabs/TabPicker.js +2 -1
  346. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  347. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  348. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  349. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  350. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  351. package/dist/components/navigation/Tabs/styled.js +1 -1
  352. package/dist/components/navigation/Tabs/types.js +1 -1
  353. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  354. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  355. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  356. package/dist/components/other/Calendar/Calendar.js +1 -1
  357. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  358. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  359. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  360. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  361. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  362. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  363. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  364. package/dist/components/other/Calendar/styled.js +1 -1
  365. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  366. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  367. package/dist/components/overlays/AlertDialog/AlertDialog.d.ts +6 -1
  368. package/dist/components/overlays/AlertDialog/AlertDialog.js +3 -2
  369. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  370. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.d.ts +15 -4
  371. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +85 -15
  372. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  373. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  374. package/dist/components/overlays/AlertDialog/types.d.ts +2 -1
  375. package/dist/components/overlays/Dialog/Dialog.js +28 -14
  376. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  377. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  378. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  379. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +7 -3
  380. package/dist/components/overlays/Dialog/DialogTrigger.js +149 -132
  381. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  382. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  383. package/dist/components/overlays/Dialog/context.js +1 -1
  384. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  385. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  386. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  387. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +83 -0
  388. package/dist/components/overlays/Dialog/use-dialog-open-sync.js.map +1 -0
  389. package/dist/components/overlays/Modal/Modal.js +1 -1
  390. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  391. package/dist/components/overlays/Modal/Overlay.js +9 -3
  392. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  393. package/dist/components/overlays/Modal/Popover.js +31 -29
  394. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  395. package/dist/components/overlays/Modal/Tray.js +2 -1
  396. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  397. package/dist/components/overlays/Modal/Underlay.js +1 -1
  398. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  399. package/dist/components/overlays/Notifications/Notification.js +1 -1
  400. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  401. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  402. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  403. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  404. package/dist/components/overlays/Notifications/OverlayContainer.js +18 -32
  405. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  406. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  407. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  408. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  409. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  410. package/dist/components/overlays/Notifications/index.js +1 -1
  411. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  412. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  413. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  414. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  415. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  416. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  417. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  418. package/dist/components/overlays/Toast/index.js +1 -1
  419. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  420. package/dist/components/overlays/Toast/useToast.js +1 -1
  421. package/dist/components/overlays/Tooltip/Tooltip.d.ts +8 -0
  422. package/dist/components/overlays/Tooltip/Tooltip.js +16 -22
  423. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  424. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  425. package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +1 -1
  426. package/dist/components/overlays/Tooltip/TooltipTrigger.js +163 -113
  427. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  428. package/dist/components/overlays/Tooltip/context.js +1 -1
  429. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  430. package/dist/components/overlays/Tooltip/split-trigger-props.js +6 -5
  431. package/dist/components/overlays/Tooltip/split-trigger-props.js.map +1 -1
  432. package/dist/components/portal/Portal.js +1 -1
  433. package/dist/components/portal/PortalProvider.js +1 -1
  434. package/dist/components/portal/usePortal.js +1 -1
  435. package/dist/components/shared/DraggableCollection.js +1 -1
  436. package/dist/components/shared/InvalidIcon.js +1 -1
  437. package/dist/components/shared/ValidIcon.js +1 -1
  438. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  439. package/dist/components/status/Spin/Cube.js +1 -1
  440. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  441. package/dist/components/status/Spin/Spin.js +1 -1
  442. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  443. package/dist/data/item-themes.js +1 -1
  444. package/dist/data/themes.js +1 -1
  445. package/dist/eslint-plugin/defaults.generated.js +11 -17
  446. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  447. package/dist/eslint-plugin/index.js +1 -1
  448. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  449. package/dist/i18n/I18nProvider.js +1 -1
  450. package/dist/i18n/createFormatter.js +1 -1
  451. package/dist/i18n/index.js +1 -1
  452. package/dist/i18n/instance.js +1 -1
  453. package/dist/i18n/locales/de-DE/uikit.js +6 -4
  454. package/dist/i18n/locales/en-US/uikit.js +6 -4
  455. package/dist/i18n/locales/en-US/uikit.json.d.ts +3 -1
  456. package/dist/i18n/locales/es-ES/uikit.js +6 -4
  457. package/dist/i18n/locales/es-MX/uikit.js +6 -4
  458. package/dist/i18n/locales/fr-FR/uikit.js +6 -4
  459. package/dist/i18n/locales/it-IT/uikit.js +6 -4
  460. package/dist/i18n/locales/ja-JP/uikit.js +6 -4
  461. package/dist/i18n/locales/nb-NO/uikit.js +6 -4
  462. package/dist/i18n/locales/pt-BR/uikit.js +6 -4
  463. package/dist/i18n/locales/pt-PT/uikit.js +6 -4
  464. package/dist/i18n/locales/sv-SE/uikit.js +6 -4
  465. package/dist/i18n/locales/vi-VN/uikit.js +6 -4
  466. package/dist/i18n/locales.js +1 -1
  467. package/dist/i18n/namespace.js +1 -1
  468. package/dist/i18n/useFormatter.js +1 -1
  469. package/dist/i18n/useI18n.js +1 -1
  470. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  471. package/dist/icons/AdjustmentsIcon.js +1 -1
  472. package/dist/icons/AiIcon.js +1 -1
  473. package/dist/icons/AreaChartIcon.js +1 -1
  474. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  475. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  476. package/dist/icons/BackwardIcon.js +1 -1
  477. package/dist/icons/BarChartIcon.js +1 -1
  478. package/dist/icons/BellFilledIcon.js +1 -1
  479. package/dist/icons/BellIcon.js +1 -1
  480. package/dist/icons/BooleanIcon.js +1 -1
  481. package/dist/icons/CalendarEditIcon.js +1 -1
  482. package/dist/icons/CalendarIcon.js +1 -1
  483. package/dist/icons/CaretDownIcon.js +1 -1
  484. package/dist/icons/CaretUpIcon.js +1 -1
  485. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  486. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  487. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  488. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  489. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  490. package/dist/icons/ChartBarLineIcon.js +1 -1
  491. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  492. package/dist/icons/ChartBarStackedIcon.js +1 -1
  493. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  494. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  495. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  496. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  497. package/dist/icons/ChartBubbleIcon.js +1 -1
  498. package/dist/icons/ChartDonut2Icon.js +1 -1
  499. package/dist/icons/ChartFunnelIcon.js +1 -1
  500. package/dist/icons/ChartHeatmapIcon.js +1 -1
  501. package/dist/icons/ChartKPIIcon.js +1 -1
  502. package/dist/icons/ChartPie2Icon.js +1 -1
  503. package/dist/icons/ChartScatterIcon.js +1 -1
  504. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  505. package/dist/icons/CheckCircleIcon.js +1 -1
  506. package/dist/icons/CheckIcon.js +1 -1
  507. package/dist/icons/CircleFilledIcon.js +1 -1
  508. package/dist/icons/ClearIcon.js +1 -1
  509. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  510. package/dist/icons/CloseCircleIcon.js +1 -1
  511. package/dist/icons/CloseIcon.js +1 -1
  512. package/dist/icons/CodeIcon.js +1 -1
  513. package/dist/icons/ColumnTotalIcon.js +1 -1
  514. package/dist/icons/CopyIcon.js +1 -1
  515. package/dist/icons/CountIcon.js +1 -1
  516. package/dist/icons/CubeIcon.js +1 -1
  517. package/dist/icons/CubePauseIcon.js +1 -1
  518. package/dist/icons/CubePlayIcon.js +1 -1
  519. package/dist/icons/CurrencyDollarIcon.js +1 -1
  520. package/dist/icons/DangerIcon.js +1 -1
  521. package/dist/icons/DashboardIcon.js +1 -1
  522. package/dist/icons/DatabaseIcon.js +1 -1
  523. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  524. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  525. package/dist/icons/DirectionIcon.js +1 -1
  526. package/dist/icons/DonutIcon.js +1 -1
  527. package/dist/icons/DownIcon.js +1 -1
  528. package/dist/icons/EditIcon.js +1 -1
  529. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  530. package/dist/icons/ExclamationCircleIcon.js +1 -1
  531. package/dist/icons/ExclamationIcon.js +1 -1
  532. package/dist/icons/EyeIcon.js +1 -1
  533. package/dist/icons/EyeInvisibleIcon.js +1 -1
  534. package/dist/icons/FilterIcon.js +1 -1
  535. package/dist/icons/FolderFilledIcon.js +1 -1
  536. package/dist/icons/FolderIcon.js +1 -1
  537. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  538. package/dist/icons/FolderOpenIcon.js +1 -1
  539. package/dist/icons/ForwardIcon.js +1 -1
  540. package/dist/icons/GripVerticalIcon.js +1 -1
  541. package/dist/icons/HierarchyIcon.js +1 -1
  542. package/dist/icons/HierarchyOpenIcon.js +1 -1
  543. package/dist/icons/Icon.js +1 -1
  544. package/dist/icons/InfoCircleIcon.js +1 -1
  545. package/dist/icons/InfoIcon.js +1 -1
  546. package/dist/icons/KeyIcon.js +1 -1
  547. package/dist/icons/LeftIcon.js +1 -1
  548. package/dist/icons/LineChartIcon.js +1 -1
  549. package/dist/icons/LoadingIcon.js +1 -1
  550. package/dist/icons/LockFilledIcon.js +1 -1
  551. package/dist/icons/LockIcon.js +1 -1
  552. package/dist/icons/MoreIcon.js +1 -1
  553. package/dist/icons/NotAllowedIcon.js +1 -1
  554. package/dist/icons/Number123Icon.js +1 -1
  555. package/dist/icons/NumberIcon.js +1 -1
  556. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  557. package/dist/icons/PauseCircleIcon.js +1 -1
  558. package/dist/icons/PauseIcon.js +1 -1
  559. package/dist/icons/PercentageIcon.js +1 -1
  560. package/dist/icons/PieChartIcon.js +1 -1
  561. package/dist/icons/PipetteIcon.js +1 -1
  562. package/dist/icons/PlayCircleIcon.js +1 -1
  563. package/dist/icons/PlayIcon.js +1 -1
  564. package/dist/icons/PlusIcon.js +1 -1
  565. package/dist/icons/ProgressBarIcon.js +1 -1
  566. package/dist/icons/ReloadIcon.js +1 -1
  567. package/dist/icons/ReportIcon.js +1 -1
  568. package/dist/icons/ReturnIcon.js +1 -1
  569. package/dist/icons/RightIcon.js +1 -1
  570. package/dist/icons/RowTotalsIcon.js +1 -1
  571. package/dist/icons/SchemeIcon.js +1 -1
  572. package/dist/icons/SearchIcon.js +1 -1
  573. package/dist/icons/SemanticQueryIcon.js +1 -1
  574. package/dist/icons/SettingsIcon.js +1 -1
  575. package/dist/icons/ShieldFilledIcon.js +1 -1
  576. package/dist/icons/ShieldIcon.js +1 -1
  577. package/dist/icons/SlashIcon.js +1 -1
  578. package/dist/icons/SparklesIcon.js +1 -1
  579. package/dist/icons/SqlIcon.js +1 -1
  580. package/dist/icons/StatsIcon.js +1 -1
  581. package/dist/icons/StopIcon.js +1 -1
  582. package/dist/icons/StringIcon.js +1 -1
  583. package/dist/icons/SubtotalsIcon.js +1 -1
  584. package/dist/icons/SwitchIcon.js +1 -1
  585. package/dist/icons/TableIcon.js +1 -1
  586. package/dist/icons/ThumbsDownIcon.js +1 -1
  587. package/dist/icons/ThumbsUpIcon.js +1 -1
  588. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  589. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  590. package/dist/icons/ThunderboltIcon.js +1 -1
  591. package/dist/icons/TimeIcon.js +1 -1
  592. package/dist/icons/TrashIcon.js +1 -1
  593. package/dist/icons/UnlockIcon.js +1 -1
  594. package/dist/icons/UpIcon.js +1 -1
  595. package/dist/icons/UserGroupIcon.js +1 -1
  596. package/dist/icons/UserIcon.js +1 -1
  597. package/dist/icons/UserLockIcon.js +1 -1
  598. package/dist/icons/ViewIcon.js +1 -1
  599. package/dist/icons/WarningFilledIcon.js +1 -1
  600. package/dist/icons/WarningIcon.js +1 -1
  601. package/dist/icons/wrap-icon.js +1 -1
  602. package/dist/index.d.ts +3 -3
  603. package/dist/index.js +4 -4
  604. package/dist/probe/canonicalize.js +1 -1
  605. package/dist/probe/css.js +1 -1
  606. package/dist/probe/index.js +1 -1
  607. package/dist/provider.js +1 -1
  608. package/dist/providers/TrackingProvider.js +1 -1
  609. package/dist/providers/navigation-url.js +15 -3
  610. package/dist/providers/navigation-url.js.map +1 -1
  611. package/dist/providers/navigationAdapter.default.js +1 -1
  612. package/dist/providers/use-navigation.js +1 -1
  613. package/dist/shared/form.d.ts +17 -4
  614. package/dist/tokens/all-tokens.js +1 -1
  615. package/dist/tokens/base.js +1 -1
  616. package/dist/tokens/color-seed.js +1 -1
  617. package/dist/tokens/color-theme.js +1 -1
  618. package/dist/tokens/colors.js +1 -1
  619. package/dist/tokens/layout.js +1 -1
  620. package/dist/tokens/lazy-styles.js +1 -1
  621. package/dist/tokens/legacy-color.js +1 -1
  622. package/dist/tokens/palette-config.js +1 -1
  623. package/dist/tokens/palette.js +1 -1
  624. package/dist/tokens/resolve.js +1 -1
  625. package/dist/tokens/shadows.js +1 -1
  626. package/dist/tokens/sizes.js +1 -1
  627. package/dist/tokens/spacing.js +1 -1
  628. package/dist/tokens/typography.js +1 -1
  629. package/dist/utils/ResizeSensor.js +1 -1
  630. package/dist/utils/colors.js +1 -1
  631. package/dist/utils/dotize.js +1 -1
  632. package/dist/utils/is-dev-env.js +1 -1
  633. package/dist/utils/modules.js +1 -1
  634. package/dist/utils/promise.js +1 -1
  635. package/dist/utils/raf.js +1 -1
  636. package/dist/utils/random.js +1 -1
  637. package/dist/utils/range.js +1 -1
  638. package/dist/utils/react/RenderCache.js +1 -1
  639. package/dist/utils/react/Slots.js +1 -1
  640. package/dist/utils/react/chain.js +1 -1
  641. package/dist/utils/react/disabledProps.js +1 -1
  642. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  643. package/dist/utils/react/index.js +1 -1
  644. package/dist/utils/react/interactions.js +1 -1
  645. package/dist/utils/react/isTextOnly.js +1 -1
  646. package/dist/utils/react/mapProps.js +1 -1
  647. package/dist/utils/react/mergeProps.js +1 -1
  648. package/dist/utils/react/nullableValue.js +18 -9
  649. package/dist/utils/react/nullableValue.js.map +1 -1
  650. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  651. package/dist/utils/react/programmaticFocus.js +1 -1
  652. package/dist/utils/react/resolveIcon.js +1 -1
  653. package/dist/utils/react/sharedStore.js +1 -1
  654. package/dist/utils/react/useBufferedValue.js +1 -1
  655. package/dist/utils/react/useCombinedRefs.js +1 -1
  656. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  657. package/dist/utils/react/useEventBus.js +1 -1
  658. package/dist/utils/react/useId.js +1 -1
  659. package/dist/utils/react/useIsDarwin.js +1 -1
  660. package/dist/utils/react/useKeySymbols.js +1 -1
  661. package/dist/utils/react/useLayoutEffect.js +1 -1
  662. package/dist/utils/react/useLocalStorage.js +1 -1
  663. package/dist/utils/react/useMergeStyles.js +1 -1
  664. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  665. package/dist/utils/react/usePopoverSync.js +1 -1
  666. package/dist/utils/react/useQaProps.js +1 -1
  667. package/dist/utils/react/useScheme.js +1 -1
  668. package/dist/utils/react/useViewportSize.js +1 -1
  669. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  670. package/dist/utils/selection.js +1 -1
  671. package/dist/utils/styles.js +1 -1
  672. package/dist/utils/tree.js +1 -1
  673. package/dist/utils/warnings.js +1 -1
  674. package/dist/version.js +2 -2
  675. package/docs/ComplexLayout.md +1 -1
  676. package/docs/CreateComponent.md +2 -0
  677. package/docs/FieldProperties.md +32 -5
  678. package/docs/Theming.md +2 -1
  679. package/docs/Usage.md +2 -0
  680. package/docs/components/Root.md +1 -1
  681. package/docs/components/actions/Button.md +8 -2
  682. package/docs/components/actions/ButtonSplit.md +27 -1
  683. package/docs/components/actions/Link.md +1 -1
  684. package/docs/components/actions/Menu.md +4 -2
  685. package/docs/components/content/InfoBadge.md +2 -0
  686. package/docs/components/content/ItemBadge.md +4 -0
  687. package/docs/components/content/Layout.md +41 -6
  688. package/docs/components/fields/Checkbox.md +4 -3
  689. package/docs/components/fields/ComboBox.md +30 -19
  690. package/docs/components/fields/FilterListBox.md +2 -2
  691. package/docs/components/fields/FilterPicker.md +2 -2
  692. package/docs/components/fields/ListBox.md +14 -10
  693. package/docs/components/fields/NumberInput.md +20 -11
  694. package/docs/components/fields/PasswordInput.md +6 -7
  695. package/docs/components/fields/Picker.md +6 -5
  696. package/docs/components/fields/RadioGroup.md +1 -1
  697. package/docs/components/fields/SearchInput.md +7 -6
  698. package/docs/components/fields/Select.md +14 -8
  699. package/docs/components/fields/Switch.md +4 -3
  700. package/docs/components/fields/TagInput.md +8 -1
  701. package/docs/components/fields/TextArea.md +4 -3
  702. package/docs/components/fields/TextInput.md +13 -6
  703. package/docs/components/overlays/AlertDialog.md +45 -5
  704. package/docs/components/overlays/Dialog.md +5 -5
  705. package/docs/components/overlays/DialogTrigger.md +6 -6
  706. package/docs/components/overlays/Tooltip.md +17 -6
  707. package/docs/components/overlays/TooltipTrigger.md +2 -0
  708. package/package.json +1 -1
@@ -37,7 +37,7 @@ These properties allow direct style application without using the `styles` prop:
37
37
  - **`autoSize`** `boolean` (default: `false`) — Whether the textarea should automatically resize based on content
38
38
  - **`maxRows`** `number` (default: `10`) — Maximum number of visible rows when `autoSize` is enabled
39
39
  - **`rows`** `number` (default: `3`) — Number of visible text rows
40
- - **`value`** `string` — The text value in controlled mode
40
+ - **`value`** `string | null` — The text value in controlled mode. `null` clears the field and keeps it controlled
41
41
  - **`defaultValue`** `string` — The default text value in uncontrolled mode
42
42
  - **`isBuffered`** `boolean` (default: `true`) — Whether typed text is held locally until the controlled `value` catches up. This is what keeps the caret in place when the value round-trips through a store that re-renders a pass late; `onChange` still fires on every keystroke. Set to `false` for a caller that must see the field snap back to its own `value` the moment it declines a keystroke.
43
43
  - **`placeholder`** `string` — Placeholder text when input is empty
@@ -50,11 +50,12 @@ These properties allow direct style application without using the `styles` prop:
50
50
  - **`autoComplete`** `string` — HTML [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) token that tells the browser what to autofill (`street-address`, `off`, …). The lowercase `autocomplete` alias is deprecated.
51
51
  - **`maxLength`** `number` — Maximum number of characters allowed
52
52
  - **`minLength`** `number` — Minimum number of characters required
53
- - **`inputProps`** `Props` — Direct HTML props passed to the inner textarea element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced
53
+ - **`inputProps`** `Props` — Direct HTML props passed to the inner textarea element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced. The explicit `isDisabled`, `maxLength`, `minLength`, `autoFocus` and `autoComplete` props win over the same attributes in `inputProps` when they are set; one left unset keeps the `inputProps` value. Set the row count with `rows`, which always applies
54
54
  - **`wrapperProps`** `Props` — Additional HTML props passed to the input wrapper container
55
55
  - **`inputRef`** `RefObject<HTMLTextAreaElement>` — Ref to the inner textarea element
56
56
  - **`wrapperRef`** `RefObject<HTMLDivElement>` — Ref to the input wrapper container
57
- - **`loadingIndicator`** `ReactNode` — Custom loading indicator element
57
+ - **`loadingIndicator`** `ReactNode` — Rendered in place of the default loading icon while `isLoading` is set
58
+ - **`validate`** `(value: string) => ValidationError | true | null | undefined` — Client-side validation. React Aria sets `aria-invalid` from the returned errors at once; the invalid style and the message follow after the user edits or leaves the field, so an empty field does not open in red. An explicit `errorMessage` replaces the returned message, and an explicit `isInvalid` (or a form's validation) takes over from `validate` entirely
58
59
  - **`inputStyles`** `Styles` — Custom styles for the textarea element
59
60
  - **`onChange`** `function` — Callback fired when the input value changes
60
61
  - **`onBlur`** `function` — Callback fired when the input loses focus
@@ -16,7 +16,7 @@ A text input component that allows users to input custom text entries with a key
16
16
 
17
17
  ### Properties
18
18
 
19
- - **`value`** `string` — The text value in controlled mode
19
+ - **`value`** `string | null` — The text value in controlled mode. `null` clears the field and keeps it controlled
20
20
  - **`defaultValue`** `string` — The default text value in uncontrolled mode
21
21
  - **`isBuffered`** `boolean` (default: `true`) — Whether typed text is held locally until the controlled `value` catches up. This is what keeps the caret in place when the value round-trips through a store that re-renders a pass late; `onChange` still fires on every keystroke. Set to `false` for a caller that must see the field snap back to its own `value` the moment it declines a keystroke.
22
22
  - **`placeholder`** `string` — Placeholder text when input is empty
@@ -32,10 +32,11 @@ A text input component that allows users to input custom text entries with a key
32
32
  - **`autoComplete`** `string` — HTML [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) token that tells the browser what to autofill (`email`, `username`, `off`, …). The lowercase `autocomplete` alias is deprecated.
33
33
  - **`maxLength`** `number` — Maximum number of characters allowed
34
34
  - **`minLength`** `number` — Minimum number of characters required
35
- - **`inputProps`** `Props` — Direct HTML props passed to the inner input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced
35
+ - **`inputProps`** `Props` — Direct HTML props passed to the inner input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced. The explicit `isDisabled`, `maxLength`, `minLength`, `autoFocus`, `rows` and `autoComplete` props win over the same attributes in `inputProps` when they are set; one left unset keeps the `inputProps` value
36
36
  - **`inputRef`** `RefObject<HTMLInputElement | HTMLTextAreaElement>` — Ref to the inner input element
37
37
  - **`wrapperRef`** `RefObject<HTMLDivElement>` — Ref to the input wrapper container
38
- - **`loadingIndicator`** `ReactNode` — Custom loading indicator element
38
+ - **`loadingIndicator`** `ReactNode` — Rendered in place of the default loading icon while `isLoading` is set
39
+ - **`validate`** `(value: string) => ValidationError | true | null | undefined` — Client-side validation. React Aria sets `aria-invalid` from the returned errors at once; the invalid style and the message follow after the user edits or leaves the field, so an empty field does not open in red. An explicit `errorMessage` replaces the returned message, and an explicit `isInvalid` (or a form's validation) takes over from `validate` entirely
39
40
  - **`onChange`** `function` — Callback fired when the input value changes
40
41
  - **`onBlur`** `function` — Callback fired when the input loses focus
41
42
  - **`onFocus`** `function` — Callback fired when the input receives focus
@@ -110,10 +111,12 @@ These properties allow direct style application without using the `styles` prop:
110
111
  The `mods` prop accepts the following modifiers you can override:
111
112
 
112
113
  - **`focused`** `boolean` — Forces focus ring appearance.
114
+ - **`hovered`** `boolean` — Forces hover appearance.
113
115
  - **`disabled`** `boolean` — Forces disabled appearance.
114
116
  - **`invalid`** `boolean` — Forces invalid state styling.
115
117
  - **`valid`** `boolean` — Forces valid state styling.
116
- - **`loading`** `boolean` — Displays loading spinner.
118
+ - **`loadable`** `boolean` — Set when a `loadingIndicator` is given. The loading icon itself follows `isLoading`, which has no modifier.
119
+ - **`multiline`** `boolean` — Set for a multiline input.
117
120
  - **`prefix`** `boolean` — Indicates presence of prefix content.
118
121
  - **`suffix`** `boolean` — Indicates presence of suffix content.
119
122
 
@@ -189,18 +192,22 @@ import { IconMail } from '@tabler/icons-react';
189
192
  - `Shift + Tab` – Moves focus away from the input
190
193
  - Standard text editing shortcuts (Ctrl+A, Ctrl+C, etc.)
191
194
 
195
+ ### Pointer
196
+
197
+ A press anywhere inside the field's border focuses the input, including the prefix and suffix areas and their icons. Presses on interactive content there, such as a button in `suffix`, stay with that content.
198
+
192
199
  ### Screen Reader Support
193
200
 
194
201
  - Announces role "textbox" or "searchbox" for search inputs
195
202
  - Announces label, description, and validation messages
196
203
  - State changes like "invalid" or "required" are announced
197
- - Loading state is announced to screen readers
204
+ - The loading indicator is visual only: `isLoading` is not announced, so announce a long-running check yourself if users need to hear it
198
205
 
199
206
  ### ARIA Properties
200
207
 
201
208
  - `aria-label`, `aria-labelledby` – Accessible name for the input
202
209
  - `aria-describedby` – Links to description and error messages
203
- - `aria-invalid` – Managed automatically based on `isInvalid`
210
+ - `aria-invalid` – Managed automatically based on `isInvalid` and `validate`
204
211
  - `aria-required` – Set when `isRequired` is true
205
212
  - Additional ARIA attributes supported by React Aria's `useTextField`
206
213
 
@@ -12,7 +12,7 @@ A modal dialog for important messages that require user acknowledgment. Extends
12
12
 
13
13
  - **`title`** `string` — Dialog title
14
14
  - **`content`** `ReactNode` — Dialog body content
15
- - **`danger`** `boolean` — Applies danger styling for destructive actions
15
+ - **`danger`** `boolean` — Marks the confirm action as destructive. It gets danger styling, and the dialog opens with focus on Cancel, or on the dialog itself when there is no Cancel, so a reflexive Enter does not run it. An explicit `autoFocus` on `actions.confirm` still puts focus there. Without `danger`, the confirm button takes focus
16
16
  - **`noActions`** `boolean` — Hide the action buttons entirely
17
17
  - **`actions`** `object` — Customize buttons:
18
18
  - `confirm` — Confirm button props or `false` to hide (default: `{ children: 'Ok', type: 'primary' }`)
@@ -66,9 +66,15 @@ These properties allow direct style application without using the `styles` prop:
66
66
  />
67
67
  ```
68
68
 
69
+ ## Accessibility
70
+
71
+ - The dialog has `role="alertdialog"`. Its title is its name, and its `content` is its description (`aria-describedby`), so a screen reader reads the message when the dialog opens
72
+ - Focus starts on the confirm button, or on Cancel (the dialog itself without one) when `danger` is set and the confirm action does not set `autoFocus`
73
+ - Focus stays inside the dialog until it closes, then returns to the element that opened it
74
+
69
75
  ## Imperative API
70
76
 
71
- `useAlertDialogAPI()` opens an alert dialog from code, such as an event handler, with no `DialogTrigger` to render. It works anywhere under `<Root>`.
77
+ `useAlertDialogAPI()` opens an alert dialog from code, such as an event handler, with no `DialogTrigger` to render. It works anywhere under `<Root>`. A dialog belongs to the component that calls the hook and closes when that component unmounts; see [The dialog's owner](#the-dialogs-owner).
72
78
 
73
79
  - **`open(props, params?)`** `Promise<'confirm' | 'secondary'>` — Opens the dialog. Resolves with the action the user picked, and rejects when the dialog closes without one or cannot open.
74
80
 
@@ -76,7 +82,7 @@ These properties allow direct style application without using the `styles` prop:
76
82
 
77
83
  - **`onConfirm`** `() => unknown` — Runs when the confirm button is pressed. If it returns a promise, the dialog stays open until it settles (see below)
78
84
  - **`onSecondary`** `() => unknown` — The same, for the secondary button
79
- - **`onCancel`** `() => void` — Runs when the dialog settles as a cancel: the Cancel button, Escape, a click outside, an aborted `cancelToken`, or `content` calling `reject()`
85
+ - **`onCancel`** `() => void` — Runs when the dialog settles as a cancel: the Cancel button, Escape, a click outside, an aborted `cancelToken`, the unmount of the component that opened it, or `content` calling `reject()`
80
86
  - **`type`** — The dialog container type, as on `DialogContainer`
81
87
  - **`isDismissable`** `boolean` (default: `true`) — Whether Escape and a click outside close the dialog
82
88
  - **`onDismiss`** `(action?: string) => void` — Called when an action button, Escape or a click outside closes the dialog. An action button passes its name: `'confirm'`, `'secondary'` or `'cancel'`
@@ -84,7 +90,7 @@ These properties allow direct style application without using the `styles` prop:
84
90
 
85
91
  `params` takes:
86
92
 
87
- - **`cancelToken`** `AbortSignal` — Closes the dialog when aborted
93
+ - **`cancelToken`** `AbortSignal` — Closes the dialog when aborted. A running confirm or secondary action finishes first
88
94
 
89
95
  The confirm button resolves `'confirm'` whether you configure `actions.confirm` or leave the default Ok button. Set it to `false` to hide it.
90
96
 
@@ -142,6 +148,7 @@ open({
142
148
  | Cancel action | rejects with `undefined` |
143
149
  | Escape or a click outside | rejects with `undefined` |
144
150
  | `cancelToken` aborted, before or while the dialog is open | rejects with `undefined` |
151
+ | The component that opened it unmounts | rejects with `undefined` |
145
152
  | `content` calls `resolve(status)` | resolves `status` |
146
153
  | `content` calls `reject(reason)` | rejects with `reason` (`undefined` for `reject()`) |
147
154
  | Another alert dialog is open | rejects with an `Error` |
@@ -190,7 +197,40 @@ const onRequestApproval = () => {
190
197
  controllerRef.current?.abort();
191
198
  ```
192
199
 
193
- Aborting settles the dialog as a cancel. A signal that is already aborted settles it right away, without showing the dialog.
200
+ Aborting settles the dialog as a cancel. A signal that is already aborted settles it right away, without showing the dialog. If the confirm or secondary action is running, it finishes first: the dialog closes with its result, or as a cancel if it fails.
201
+
202
+ ### The dialog's owner
203
+
204
+ A dialog belongs to the component that called `useAlertDialogAPI()`. When that component unmounts, the dialog closes as a cancel, as if its own `cancelToken` were aborted. Its callbacks are that component's code, and a dialog left open would run them against a component that is gone. A call to `open` after the unmount, such as one after an `await`, settles as a cancel without opening. A running confirm or secondary action finishes first, so a list row whose delete removes it still resolves `'confirm'`.
205
+
206
+ So call the hook in a component that stays mounted while the dialog is open. A menu closes when its item is pressed, so call the hook in the component that renders the menu and pass `open` down, rather than calling it in the item:
207
+
208
+ ```jsx
209
+ function RowActions({ row }) {
210
+ // Stays mounted after the menu closes.
211
+ const { open } = useAlertDialogAPI();
212
+
213
+ return (
214
+ <MenuTrigger>
215
+ <Button>Actions</Button>
216
+ <Menu
217
+ onAction={(key) => {
218
+ if (key === 'delete') {
219
+ open({
220
+ title: `Delete ${row.name}?`,
221
+ danger: true,
222
+ actions: { confirm: { children: 'Delete' }, cancel: true },
223
+ onConfirm: () => deleteRow(row.id),
224
+ });
225
+ }
226
+ }}
227
+ >
228
+ <Menu.Item key="delete">Delete</Menu.Item>
229
+ </Menu>
230
+ </MenuTrigger>
231
+ );
232
+ }
233
+ ```
194
234
 
195
235
  ### One dialog at a time
196
236
 
@@ -183,16 +183,16 @@ The body is the `Content` that is a direct child of the dialog or of a direct-ch
183
183
 
184
184
  ### Screen Reader Support
185
185
 
186
- - Dialog announces as "dialog" or "alertdialog" based on role
187
- - Focus is trapped within the dialog when open
186
+ - Dialog announces as "dialog" or "alertdialog" based on role, with its title as its name
187
+ - An alert dialog also reads its `Content`, the message, as its description. A plain dialog reads only its title on open, so a form inside it is not read field by field; link a short description with `aria-describedby` when the title alone is not enough
188
+ - Focus moves into the dialog when it opens: to an input marked `data-autofocus`, or to a submit or primary button, otherwise to the dialog itself. In an alert dialog this never picks a destructive (`danger`) button
189
+ - Focus is contained within the dialog from the moment it opens, including while it animates in. A `panel` dialog does not contain focus, nor does a popover opened by a `DialogTrigger` with `isDismissable={false}`
188
190
  - Focus returns to the trigger element when dialog closes
189
- - Dialog title and content are properly announced
190
- - State changes and actions are communicated to screen readers
191
191
 
192
192
  ### ARIA Properties
193
193
 
194
194
  - `aria-labelledby` - Links dialog to its title element automatically
195
- - `aria-describedby` - Links dialog to its description content
195
+ - `aria-describedby` - Set automatically only for `role="alertdialog"`, where it links the dialog to its `Content`. A plain dialog links nothing unless you pass `aria-describedby` with the id of the element that describes it. An explicit `aria-describedby` always wins
196
196
  - `aria-modal` - Not set. While a modal, fullscreen or tray dialog is open, the page behind it is `aria-hidden` instead, so a screen reader's reading cursor stays in the dialog. Lists, menus and popovers opened from the dialog render outside it and stay readable, which `aria-modal` would prevent. Popover and panel dialogs leave the page readable
197
197
  - `role` - Set to "dialog" or "alertdialog" based on content type
198
198
 
@@ -19,13 +19,13 @@ DialogTrigger serves as a wrapper around a Dialog and its associated trigger, li
19
19
  - **`type`** `'modal' | 'popover' | 'tray' | 'fullscreen' | 'fullscreenTakeover' | 'panel'` (default: `modal`) — The type of Dialog that should be rendered
20
20
  - **`mobileType`** `'modal' | 'tray' | 'fullscreen' | 'fullscreenTakeover' | 'panel' | 'popover'` (default: same as `type`) — The Dialog type on mobile
21
21
  - **`placement`** `'top' | 'bottom' | 'left' | 'right' | 'top start' | 'top end' | 'bottom start' | 'bottom end' | 'left top' | 'left bottom' | 'right top' | 'right bottom'` — The placement of the dialog relative to its trigger
22
- - **`hideArrow`** `boolean` (default: `false`) — Whether a popover type Dialog's arrow should be hidden
22
+ - **`hideArrow`** `boolean` — **Deprecated.** Has no effect: popovers render no arrow, so there is nothing to hide
23
23
  - **`mobileViewport`** `number` (default: `700`) — The screen breakpoint for the mobile type
24
- - **`isDismissable`** `boolean` (default: `true`) — Whether passive dismissal (Escape or an outside click) can close the dialog. Explicit dialog actions, such as Submit and Cancel, can still close it.
24
+ - **`isDismissable`** `boolean` (default: `true`) — Whether passive dismissal (Escape or an outside click) can close the dialog. Explicit dialog actions, such as Submit and Cancel, can still close it. A popover that is not dismissable leaves outside presses alone: the control pressed still receives the press, and a text field there can take focus, because such a popover does not hold focus. It stays open when another popover opens, and closes when a modal, tray, fullscreen or panel dialog opens from another `DialogTrigger`.
25
25
  - **`isKeyboardDismissDisabled`** `boolean` (default: `false`) — Whether pressing the escape key to close the dialog should be disabled
26
26
  - **`isOpen`** `boolean` — Whether the dialog is open (controlled)
27
27
  - **`defaultOpen`** `boolean` (default: `false`) — Whether the dialog is open by default (uncontrolled)
28
- - **`offset`** `number` (default: `8`) — The additional offset applied along the main axis
28
+ - **`offset`** `number` (default: `8`) — The gap between the trigger and a popover, along the main axis. `0` places the popover flush against the trigger
29
29
  - **`crossOffset`** `number` (default: `0`) — The additional offset applied along the cross axis
30
30
  - **`containerPadding`** `number` (default: `12`) — The padding between the edge of the overlay and the boundary
31
31
  - **`shouldFlip`** `boolean` (default: `true`) — Whether the overlay should flip positions when insufficient space
@@ -33,7 +33,7 @@ DialogTrigger serves as a wrapper around a Dialog and its associated trigger, li
33
33
  - **`hideOnClose`** `boolean` — Whether to hide the overlay instead of unmounting on close
34
34
  - **`onOpenChange`** `function` — Callback fired when the dialog open state changes
35
35
  - **`onDismiss`** `function` — Callback fired when the dialog is dismissed
36
- - **`targetRef`** — The ref of the element the Dialog should visually attach itself to
36
+ - **`targetRef`** — The ref of the element the Dialog should visually attach itself to. A popover closes when this element scrolls, as one attached to its trigger does
37
37
  - **`styles`** — The style map for the overlay
38
38
  - **`shouldCloseOnInteractOutside`** `(element: Element) => boolean` — Function to determine if a popover type Dialog should close on outside interaction. Asked before every built-in dismiss behaviour, so returning `false` keeps the popover open even for a `Button` / `ItemButton` that would otherwise dismiss it, or for a control the trigger itself owns (a picker's clear button, its custom `actions`) that would otherwise be read as a press on the trigger — and the pressed control still receives its own click. The element passed is the deepest node under the pointer (for a `Button` that is the label inside it, not the `<button>`), so guard with `contains()` rather than an identity check
39
39
  - **`shouldRestoreFocus`** `boolean` (default: `true`) — Whether focus returns to the trigger when the dialog closes. Only needed for a surface that claims focus _later_ than the restore (async load, entry animation); an action that focuses the surface it opens is already left alone — see [Focus Management](#best-practices)
@@ -158,7 +158,7 @@ function ControlledDialog() {
158
158
  ### Screen Reader Support
159
159
 
160
160
  - Dialog announces as "dialog" to screen readers
161
- - Focus is trapped within the dialog when open
161
+ - Focus is contained within the dialog from the moment it opens, including while it animates in. A popover with `isDismissable={false}` does not contain focus, so focus can follow a press outside it
162
162
  - Focus returns to trigger element when dialog closes
163
163
  - The page behind a modal, fullscreen or tray dialog is hidden from screen readers while it is open; lists, menus and popovers opened from the dialog stay readable. Popover and panel dialogs leave the page readable
164
164
  - Proper ARIA attributes are applied automatically
@@ -168,7 +168,7 @@ function ControlledDialog() {
168
168
  - `aria-haspopup` - Automatically applied to trigger element
169
169
  - `aria-expanded` - Indicates dialog open state
170
170
  - `aria-labelledby` - Links dialog to its title
171
- - `aria-describedby` - Links dialog to its description
171
+ - `aria-describedby` - Set for an alert dialog, linking its message; see [Dialog](./Dialog.md#aria-properties)
172
172
 
173
173
  ## Best Practices
174
174
 
@@ -39,14 +39,14 @@ Display container for tooltip content. Has a directional arrow dependent on its
39
39
  ### Properties
40
40
 
41
41
  - **`tipStyles`** `Styles` — Custom styles for the tooltip arrow (tip) element
42
- - **`showIcon`** `boolean` — Controls whether an icon should be displayed in the tooltip
42
+ - **`showIcon`** `boolean` — Deprecated. Has no effect
43
43
  - **`placement`** `PlacementAxis` (default: `'top'`) — Position of the tooltip relative to its trigger. Options: `top`, `bottom`, `left`, `right`
44
44
  - **`isMaterial`** `boolean` — Enables material-style tooltip with auto pointer events
45
45
  - **`isLight`** `boolean` — Uses light color scheme for the tooltip
46
46
  - **`isOpen`** `boolean` — Controlled open state of the tooltip
47
47
  - **`defaultOpen`** `boolean` — Whether the tooltip is open by default (uncontrolled)
48
48
  - **`onOpenChange`** `(isOpen: boolean) => void` — Callback when the tooltip open state changes
49
- - **`shouldFlip`** `boolean` — Whether the tooltip should flip position when there is insufficient space
49
+ - **`shouldFlip`** `boolean` (default: `true`) — Whether the tooltip moves to the opposite side of its trigger when there is not enough room on the requested one
50
50
 
51
51
  ### Base Properties
52
52
 
@@ -214,14 +214,22 @@ function ControlledExample() {
214
214
 
215
215
  ### Conditional Tooltip
216
216
 
217
- Show a tooltip only when certain conditions are met:
217
+ Show a tooltip only when certain conditions are met. Empty content (`null`, `undefined` or `''`) turns the tooltip off: nothing opens and the trigger gets no `aria-describedby`.
218
218
 
219
219
  ```jsx
220
- <TooltipProvider title={hasError ? "Fix errors first" : null}>
221
- <Button isDisabled={hasError}>Submit</Button>
220
+ <TooltipProvider title={isShared ? 'Visible to your whole team' : null}>
221
+ <Button>Share</Button>
222
222
  </TooltipProvider>
223
223
  ```
224
224
 
225
+ A disabled `Button` receives neither hover nor focus, so a `TooltipProvider` around it never opens. Give the button its own `tooltip` instead; it then stays hoverable and focusable while disabled:
226
+
227
+ ```jsx
228
+ <Button isDisabled={hasError} tooltip={hasError ? 'Fix errors first' : undefined}>
229
+ Submit
230
+ </Button>
231
+ ```
232
+
225
233
  ### Focus-Only Trigger
226
234
 
227
235
  Show tooltip only on focus, not on hover:
@@ -238,7 +246,10 @@ Show tooltip only on focus, not on hover:
238
246
 
239
247
  - `Tab` - Moves focus to the trigger element, showing the tooltip after the delay
240
248
  - `Shift + Tab` - Moves focus away from the trigger, hiding the tooltip
249
+ - `Escape` - Hides the tooltip
241
250
  - Tooltips automatically appear on focus for keyboard users
251
+ - Pressing the trigger hides the tooltip, unless `shouldCloseOnPress` is `false`
252
+ - When the page or an element containing the trigger scrolls, the tooltip follows the trigger while it stays in view, and hides once it is scrolled out of view
242
253
 
243
254
  ### Screen Reader Support
244
255
 
@@ -249,7 +260,7 @@ Show tooltip only on focus, not on hover:
249
260
 
250
261
  ### ARIA Properties
251
262
 
252
- - `aria-describedby` - Automatically set on the trigger to reference the tooltip
263
+ - `aria-describedby` - Automatically set on the trigger to reference the tooltip while it is open. `Button`, `ItemBadge`, `ItemAction`, `Checkbox`, `Radio` and `Item` rows (`ItemButton`, list and menu items) add it after their own `aria-describedby` rather than replacing it
253
264
  - All standard ARIA labeling props are supported
254
265
 
255
266
  ### Best Practices
@@ -24,6 +24,8 @@ Lower-level component that wraps a trigger element and a `Tooltip`. Use when you
24
24
  - **`trigger`** `'focus'` — When set, opens the tooltip only on focus instead of both focus and hover
25
25
  - **`shouldCloseOnPress`** `boolean` (default: `true`) — Whether the tooltip closes when the trigger is pressed
26
26
 
27
+ A `Tooltip` with empty content (`null`, `undefined` or `''`) never opens. When the page or an element containing the trigger scrolls, an open tooltip follows its trigger while the trigger stays in view, and closes once it is scrolled out of view. Set `shouldFlip` on the `Tooltip` itself.
28
+
27
29
  ### Base Properties
28
30
 
29
31
  Supports [Base properties](../../BaseProperties.md).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.194.1",
3
+ "version": "0.196.0",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {