@cube-dev/ui-kit 0.195.0 → 0.197.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 (705) hide show
  1. package/dist/CHANGELOG.md +180 -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 +16 -16
  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.js +1 -1
  91. package/dist/components/content/Layout/LayoutPanel.d.ts +7 -3
  92. package/dist/components/content/Layout/LayoutPanel.js +75 -3
  93. package/dist/components/content/Layout/LayoutPanel.js.map +1 -1
  94. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  95. package/dist/components/content/Layout/LayoutPanelTransition.js +1 -1
  96. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  97. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  98. package/dist/components/content/Layout/index.js +1 -1
  99. package/dist/components/content/Layout/utils.js +1 -1
  100. package/dist/components/content/Paragraph.js +1 -1
  101. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  102. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  103. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  104. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  105. package/dist/components/content/Result/Result.js +1 -1
  106. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  107. package/dist/components/content/Tag/Tag.js +1 -1
  108. package/dist/components/content/Text.js +1 -1
  109. package/dist/components/content/TextItem/TextItem.js +1 -1
  110. package/dist/components/content/Title.js +1 -1
  111. package/dist/components/content/Tree/Tree.js +1 -1
  112. package/dist/components/content/Tree/TreeNode.js +2 -1
  113. package/dist/components/content/Tree/TreeNode.js.map +1 -1
  114. package/dist/components/content/Tree/styled.js +1 -1
  115. package/dist/components/content/Tree/tree-index.js +1 -1
  116. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  117. package/dist/components/content/Tree/use-load-data.js +1 -1
  118. package/dist/components/content/highlightText.js +1 -1
  119. package/dist/components/content/use-auto-tooltip.js +3 -3
  120. package/dist/components/content/use-auto-tooltip.js.map +1 -1
  121. package/dist/components/data/DataTable/DataTable.js +1 -1
  122. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  123. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  124. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  125. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  126. package/dist/components/data/ItemTable/ItemTableToolbar.js +2 -1
  127. package/dist/components/data/ItemTable/ItemTableToolbar.js.map +1 -1
  128. package/dist/components/data/ItemTable/use-item-table-column-widths.js +1 -1
  129. package/dist/components/data/ItemTable/use-item-table-drag-drop.js +1 -1
  130. package/dist/components/data/ItemTable/use-item-table-pagination.js +1 -1
  131. package/dist/components/data/ItemTable/use-item-table-selection.js +1 -1
  132. package/dist/components/data/ItemTable/use-item-table-sort.js +1 -1
  133. package/dist/components/data/ItemTable/use-item-table-tree-model.js +1 -1
  134. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  135. package/dist/components/data/TableBase/RowCollection.js +1 -1
  136. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  137. package/dist/components/data/TableBase/TableRow.js +1 -1
  138. package/dist/components/data/TableBase/TableView.js +3 -1
  139. package/dist/components/data/TableBase/TableView.js.map +1 -1
  140. package/dist/components/data/TableBase/TreeGridTable.js +1 -1
  141. package/dist/components/data/TableBase/column-header.js +1 -1
  142. package/dist/components/data/TableBase/column-menu.js +1 -1
  143. package/dist/components/data/TableBase/column-styles.js +1 -1
  144. package/dist/components/data/TableBase/column-tint.js +1 -1
  145. package/dist/components/data/TableBase/row-menu.js +1 -1
  146. package/dist/components/data/TableBase/styled.js +1 -1
  147. package/dist/components/data/TableBase/table-tree.js +1 -1
  148. package/dist/components/data/TableBase/types.js +1 -1
  149. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  150. package/dist/components/data/TableBase/use-column-menu.js +1 -1
  151. package/dist/components/data/TableBase/use-column-order.js +1 -1
  152. package/dist/components/data/TableBase/use-column-window.js +1 -1
  153. package/dist/components/data/TableBase/use-container-width.js +1 -1
  154. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  155. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  156. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  157. package/dist/components/data/TableBase/use-table-search.js +1 -1
  158. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  159. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  160. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  161. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  162. package/dist/components/data/TableBase/use-table-tooltip-refresh.js +1 -1
  163. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  164. package/dist/components/fields/Checkbox/Checkbox.js +2 -2
  165. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  166. package/dist/components/fields/Checkbox/CheckboxGroup.js +5 -5
  167. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  168. package/dist/components/fields/Checkbox/context.js +1 -1
  169. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  170. package/dist/components/fields/ColorPicker/ColorPicker.js +3 -1
  171. package/dist/components/fields/ColorPicker/ColorPicker.js.map +1 -1
  172. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  173. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +2 -1
  174. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js.map +1 -1
  175. package/dist/components/fields/ComboBox/ComboBox.d.ts +27 -7
  176. package/dist/components/fields/ComboBox/ComboBox.js +1095 -619
  177. package/dist/components/fields/ComboBox/ComboBox.js.map +1 -1
  178. package/dist/components/fields/ComboBox/comboBoxOptions.js +84 -0
  179. package/dist/components/fields/ComboBox/comboBoxOptions.js.map +1 -0
  180. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  181. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  182. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  183. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  184. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  185. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  186. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  187. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  188. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  189. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  190. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  191. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  192. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  193. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  194. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  195. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  196. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  197. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  198. package/dist/components/fields/DatePicker/parseDate.d.ts +7 -0
  199. package/dist/components/fields/DatePicker/parseDate.js +17 -3
  200. package/dist/components/fields/DatePicker/parseDate.js.map +1 -1
  201. package/dist/components/fields/DatePicker/period.js +1 -1
  202. package/dist/components/fields/DatePicker/props.js +1 -1
  203. package/dist/components/fields/DatePicker/utils.js +1 -1
  204. package/dist/components/fields/FileInput/FileInput.js +1 -1
  205. package/dist/components/fields/FilterListBox/FilterListBox.js +2 -1
  206. package/dist/components/fields/FilterListBox/FilterListBox.js.map +1 -1
  207. package/dist/components/fields/FilterPicker/FilterPicker.js +15 -6
  208. package/dist/components/fields/FilterPicker/FilterPicker.js.map +1 -1
  209. package/dist/components/fields/Input/Input.d.ts +2 -2
  210. package/dist/components/fields/Input/Input.js +2 -2
  211. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  212. package/dist/components/fields/ListBox/ListBox.d.ts +10 -4
  213. package/dist/components/fields/ListBox/ListBox.js +298 -146
  214. package/dist/components/fields/ListBox/ListBox.js.map +1 -1
  215. package/dist/components/fields/ListBox/optionId.js +1 -1
  216. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +150 -139
  217. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js.map +1 -1
  218. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  219. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  220. package/dist/components/fields/NumberInput/NumberInput.d.ts +6 -1
  221. package/dist/components/fields/NumberInput/NumberInput.js +136 -128
  222. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  223. package/dist/components/fields/NumberInput/StepButton.js +38 -48
  224. package/dist/components/fields/NumberInput/StepButton.js.map +1 -1
  225. package/dist/components/fields/PasswordInput/PasswordInput.d.ts +1 -2
  226. package/dist/components/fields/PasswordInput/PasswordInput.js +77 -111
  227. package/dist/components/fields/PasswordInput/PasswordInput.js.map +1 -1
  228. package/dist/components/fields/Picker/Picker.d.ts +1 -1
  229. package/dist/components/fields/Picker/Picker.js +22 -8
  230. package/dist/components/fields/Picker/Picker.js.map +1 -1
  231. package/dist/components/fields/RadioGroup/Radio.d.ts +12 -12
  232. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  233. package/dist/components/fields/RadioGroup/RadioGroup.js +2 -2
  234. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  235. package/dist/components/fields/RadioGroup/context.js +1 -1
  236. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -6
  237. package/dist/components/fields/SearchComboBox/SearchComboBox.js.map +1 -1
  238. package/dist/components/fields/SearchInput/SearchInput.d.ts +8 -3
  239. package/dist/components/fields/SearchInput/SearchInput.js +22 -34
  240. package/dist/components/fields/SearchInput/SearchInput.js.map +1 -1
  241. package/dist/components/fields/Select/Select.d.ts +12 -1
  242. package/dist/components/fields/Select/Select.js +365 -207
  243. package/dist/components/fields/Select/Select.js.map +1 -1
  244. package/dist/components/fields/Slider/Gradation.js +1 -1
  245. package/dist/components/fields/Slider/HueSlider.js +1 -1
  246. package/dist/components/fields/Slider/RangeSlider.js +3 -4
  247. package/dist/components/fields/Slider/RangeSlider.js.map +1 -1
  248. package/dist/components/fields/Slider/Slider.js +1 -1
  249. package/dist/components/fields/Slider/SliderBase.js +1 -1
  250. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  251. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  252. package/dist/components/fields/Slider/elements.js +1 -1
  253. package/dist/components/fields/Slider/index.js +1 -1
  254. package/dist/components/fields/Switch/Switch.js +1 -1
  255. package/dist/components/fields/TagInput/TagInput.js +2 -2
  256. package/dist/components/fields/TagInput/TagInput.js.map +1 -1
  257. package/dist/components/fields/TagInput/TagList.js +1 -1
  258. package/dist/components/fields/TagInput/useActiveOption.js +1 -1
  259. package/dist/components/fields/TagInput/useTagError.js +1 -1
  260. package/dist/components/fields/TextArea/TextArea.d.ts +0 -1
  261. package/dist/components/fields/TextArea/TextArea.js +49 -63
  262. package/dist/components/fields/TextArea/TextArea.js.map +1 -1
  263. package/dist/components/fields/TextInput/TextInput.d.ts +1 -1
  264. package/dist/components/fields/TextInput/TextInput.js +42 -46
  265. package/dist/components/fields/TextInput/TextInput.js.map +1 -1
  266. package/dist/components/fields/TextInput/TextInputBase.d.ts +6 -2
  267. package/dist/components/fields/TextInput/TextInputBase.js +32 -10
  268. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  269. package/dist/components/fields/TextInput/displayed-validation.js +50 -0
  270. package/dist/components/fields/TextInput/displayed-validation.js.map +1 -0
  271. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  272. package/dist/components/fields/TextInputMapper/TextInputMapper.js +20 -17
  273. package/dist/components/fields/TextInputMapper/TextInputMapper.js.map +1 -1
  274. package/dist/components/fields/TriggerActions.js +1 -1
  275. package/dist/components/fields/color/ColorPanel.js +3 -1
  276. package/dist/components/fields/color/ColorPanel.js.map +1 -1
  277. package/dist/components/fields/color/channels.js +1 -1
  278. package/dist/components/fields/color/color.js +1 -1
  279. package/dist/components/fields/color/context.js +1 -1
  280. package/dist/components/fields/index.d.ts +2 -2
  281. package/dist/components/fields/option-origin-press.js +78 -0
  282. package/dist/components/fields/option-origin-press.js.map +1 -0
  283. package/dist/components/form/FieldWrapper/FieldWrapper.d.ts +10 -8
  284. package/dist/components/form/FieldWrapper/FieldWrapper.js +214 -159
  285. package/dist/components/form/FieldWrapper/FieldWrapper.js.map +1 -1
  286. package/dist/components/form/FieldWrapper/field-description.js +3 -3
  287. package/dist/components/form/FieldWrapper/field-description.js.map +1 -1
  288. package/dist/components/form/FieldWrapper/types.d.ts +4 -3
  289. package/dist/components/form/Form/Field.js +1 -1
  290. package/dist/components/form/Form/Form.js +1 -1
  291. package/dist/components/form/Form/ModernFormRoot.js +1 -1
  292. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  293. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  294. package/dist/components/form/Form/SubmitError.js +1 -1
  295. package/dist/components/form/Form/backend.js +1 -1
  296. package/dist/components/form/Form/index.js +1 -1
  297. package/dist/components/form/Form/modern/actions.js +1 -1
  298. package/dist/components/form/Form/modern/context.js +1 -1
  299. package/dist/components/form/Form/modern/controller.js +1 -1
  300. package/dist/components/form/Form/modern/field-binding.js +1 -1
  301. package/dist/components/form/Form/modern/field.js +1 -1
  302. package/dist/components/form/Form/modern/react.js +1 -1
  303. package/dist/components/form/Form/modern/store.js +1 -1
  304. package/dist/components/form/Form/modern/validation.js +1 -1
  305. package/dist/components/form/Form/modern/values.js +1 -1
  306. package/dist/components/form/Form/reset-unbound-controls.js +1 -1
  307. package/dist/components/form/Form/use-field/use-field-binding.js +1 -1
  308. package/dist/components/form/Form/use-field/use-field-props.js +21 -33
  309. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  310. package/dist/components/form/Form/use-field/use-field.js +1 -1
  311. package/dist/components/form/Form/use-form.js +1 -1
  312. package/dist/components/form/Form/validation.js +1 -1
  313. package/dist/components/form/Label.js +1 -1
  314. package/dist/components/form/field-chrome.js +4 -34
  315. package/dist/components/form/field-chrome.js.map +1 -1
  316. package/dist/components/form/legacy-tooltip.js +1 -1
  317. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  318. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  319. package/dist/components/form/validation/use-validation-props.js +1 -1
  320. package/dist/components/form/wrapper.d.ts +6 -17
  321. package/dist/components/form/wrapper.js +6 -14
  322. package/dist/components/form/wrapper.js.map +1 -1
  323. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  324. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  325. package/dist/components/layout/Flex.js +1 -1
  326. package/dist/components/layout/Flow.js +1 -1
  327. package/dist/components/layout/Grid.js +1 -1
  328. package/dist/components/layout/Panel.js +1 -1
  329. package/dist/components/layout/Prefix.js +1 -1
  330. package/dist/components/layout/ResizablePanel.js +1 -1
  331. package/dist/components/layout/Space.js +1 -1
  332. package/dist/components/layout/Suffix.js +1 -1
  333. package/dist/components/navigation/Pagination/Pagination.js +3 -1
  334. package/dist/components/navigation/Pagination/Pagination.js.map +1 -1
  335. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  336. package/dist/components/navigation/Tabs/BoardDragActiveProvider.js +1 -1
  337. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  338. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  339. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  340. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  341. package/dist/components/navigation/Tabs/TabPicker.js +2 -1
  342. package/dist/components/navigation/Tabs/TabPicker.js.map +1 -1
  343. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  344. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  345. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  346. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  347. package/dist/components/navigation/Tabs/styled.js +1 -1
  348. package/dist/components/navigation/Tabs/types.js +1 -1
  349. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  350. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  351. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  352. package/dist/components/other/Calendar/Calendar.js +1 -1
  353. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  354. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  355. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  356. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  357. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  358. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  359. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  360. package/dist/components/other/Calendar/styled.js +1 -1
  361. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  362. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  363. package/dist/components/overlays/AlertDialog/AlertDialog.d.ts +6 -1
  364. package/dist/components/overlays/AlertDialog/AlertDialog.js +3 -2
  365. package/dist/components/overlays/AlertDialog/AlertDialog.js.map +1 -1
  366. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +3 -2
  367. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js.map +1 -1
  368. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  369. package/dist/components/overlays/Dialog/Dialog.js +28 -14
  370. package/dist/components/overlays/Dialog/Dialog.js.map +1 -1
  371. package/dist/components/overlays/Dialog/DialogContainer.d.ts +4 -2
  372. package/dist/components/overlays/Dialog/DialogContainer.js +40 -34
  373. package/dist/components/overlays/Dialog/DialogContainer.js.map +1 -1
  374. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  375. package/dist/components/overlays/Dialog/DialogTrigger.d.ts +7 -3
  376. package/dist/components/overlays/Dialog/DialogTrigger.js +149 -132
  377. package/dist/components/overlays/Dialog/DialogTrigger.js.map +1 -1
  378. package/dist/components/overlays/Dialog/ModernDialogForm.js +1 -1
  379. package/dist/components/overlays/Dialog/context.js +1 -1
  380. package/dist/components/overlays/Dialog/default-button-text.js +1 -1
  381. package/dist/components/overlays/Dialog/use-content-overflow.js +1 -1
  382. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  383. package/dist/components/overlays/Dialog/use-dialog-open-sync.js +83 -0
  384. package/dist/components/overlays/Dialog/use-dialog-open-sync.js.map +1 -0
  385. package/dist/components/overlays/Modal/Modal.js +1 -1
  386. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  387. package/dist/components/overlays/Modal/Overlay.js +9 -3
  388. package/dist/components/overlays/Modal/Overlay.js.map +1 -1
  389. package/dist/components/overlays/Modal/Popover.d.ts +1 -1
  390. package/dist/components/overlays/Modal/Popover.js +31 -29
  391. package/dist/components/overlays/Modal/Popover.js.map +1 -1
  392. package/dist/components/overlays/Modal/Tray.js +69 -60
  393. package/dist/components/overlays/Modal/Tray.js.map +1 -1
  394. package/dist/components/overlays/Modal/Underlay.js +1 -1
  395. package/dist/components/overlays/Modal/index.d.ts +1 -1
  396. package/dist/components/overlays/Modal/modal-containment.js +1 -1
  397. package/dist/components/overlays/Notifications/Notification.js +1 -1
  398. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  399. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  400. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  401. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  402. package/dist/components/overlays/Notifications/OverlayContainer.js +18 -32
  403. package/dist/components/overlays/Notifications/OverlayContainer.js.map +1 -1
  404. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  405. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  406. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  407. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  408. package/dist/components/overlays/Notifications/index.js +1 -1
  409. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  410. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  411. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  412. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  413. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  414. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  415. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  416. package/dist/components/overlays/Toast/index.js +1 -1
  417. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  418. package/dist/components/overlays/Toast/useToast.js +1 -1
  419. package/dist/components/overlays/Tooltip/Tooltip.d.ts +8 -0
  420. package/dist/components/overlays/Tooltip/Tooltip.js +16 -22
  421. package/dist/components/overlays/Tooltip/Tooltip.js.map +1 -1
  422. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  423. package/dist/components/overlays/Tooltip/TooltipTrigger.d.ts +1 -1
  424. package/dist/components/overlays/Tooltip/TooltipTrigger.js +163 -113
  425. package/dist/components/overlays/Tooltip/TooltipTrigger.js.map +1 -1
  426. package/dist/components/overlays/Tooltip/context.js +1 -1
  427. package/dist/components/overlays/Tooltip/context.js.map +1 -1
  428. package/dist/components/overlays/Tooltip/split-trigger-props.js +6 -5
  429. package/dist/components/overlays/Tooltip/split-trigger-props.js.map +1 -1
  430. package/dist/components/portal/Portal.js +1 -1
  431. package/dist/components/portal/PortalProvider.js +1 -1
  432. package/dist/components/portal/usePortal.js +1 -1
  433. package/dist/components/shared/DraggableCollection.js +1 -1
  434. package/dist/components/shared/InvalidIcon.js +1 -1
  435. package/dist/components/shared/ValidIcon.js +1 -1
  436. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  437. package/dist/components/status/Spin/Cube.js +1 -1
  438. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  439. package/dist/components/status/Spin/Spin.js +1 -1
  440. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  441. package/dist/data/item-themes.js +1 -1
  442. package/dist/data/themes.js +1 -1
  443. package/dist/eslint-plugin/defaults.generated.js +11 -17
  444. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  445. package/dist/eslint-plugin/index.js +1 -1
  446. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  447. package/dist/i18n/I18nProvider.js +1 -1
  448. package/dist/i18n/createFormatter.js +1 -1
  449. package/dist/i18n/index.js +1 -1
  450. package/dist/i18n/instance.js +1 -1
  451. package/dist/i18n/locales/de-DE/uikit.js +6 -4
  452. package/dist/i18n/locales/en-US/uikit.js +6 -4
  453. package/dist/i18n/locales/en-US/uikit.json.d.ts +3 -1
  454. package/dist/i18n/locales/es-ES/uikit.js +6 -4
  455. package/dist/i18n/locales/es-MX/uikit.js +6 -4
  456. package/dist/i18n/locales/fr-FR/uikit.js +6 -4
  457. package/dist/i18n/locales/it-IT/uikit.js +6 -4
  458. package/dist/i18n/locales/ja-JP/uikit.js +6 -4
  459. package/dist/i18n/locales/nb-NO/uikit.js +6 -4
  460. package/dist/i18n/locales/pt-BR/uikit.js +6 -4
  461. package/dist/i18n/locales/pt-PT/uikit.js +6 -4
  462. package/dist/i18n/locales/sv-SE/uikit.js +6 -4
  463. package/dist/i18n/locales/vi-VN/uikit.js +6 -4
  464. package/dist/i18n/locales.js +1 -1
  465. package/dist/i18n/namespace.js +1 -1
  466. package/dist/i18n/useFormatter.js +1 -1
  467. package/dist/i18n/useI18n.js +1 -1
  468. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  469. package/dist/icons/AdjustmentsIcon.js +1 -1
  470. package/dist/icons/AiIcon.js +1 -1
  471. package/dist/icons/AreaChartIcon.js +1 -1
  472. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  473. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  474. package/dist/icons/BackwardIcon.js +1 -1
  475. package/dist/icons/BarChartIcon.js +1 -1
  476. package/dist/icons/BellFilledIcon.js +1 -1
  477. package/dist/icons/BellIcon.js +1 -1
  478. package/dist/icons/BooleanIcon.js +1 -1
  479. package/dist/icons/CalendarEditIcon.js +1 -1
  480. package/dist/icons/CalendarIcon.js +1 -1
  481. package/dist/icons/CaretDownIcon.js +1 -1
  482. package/dist/icons/CaretUpIcon.js +1 -1
  483. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  484. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  485. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  486. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  487. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  488. package/dist/icons/ChartBarLineIcon.js +1 -1
  489. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  490. package/dist/icons/ChartBarStackedIcon.js +1 -1
  491. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  492. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  493. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  494. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  495. package/dist/icons/ChartBubbleIcon.js +1 -1
  496. package/dist/icons/ChartDonut2Icon.js +1 -1
  497. package/dist/icons/ChartFunnelIcon.js +1 -1
  498. package/dist/icons/ChartHeatmapIcon.js +1 -1
  499. package/dist/icons/ChartKPIIcon.js +1 -1
  500. package/dist/icons/ChartPie2Icon.js +1 -1
  501. package/dist/icons/ChartScatterIcon.js +1 -1
  502. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  503. package/dist/icons/CheckCircleIcon.js +1 -1
  504. package/dist/icons/CheckIcon.js +1 -1
  505. package/dist/icons/CircleFilledIcon.js +1 -1
  506. package/dist/icons/ClearIcon.js +1 -1
  507. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  508. package/dist/icons/CloseCircleIcon.js +1 -1
  509. package/dist/icons/CloseIcon.js +1 -1
  510. package/dist/icons/CodeIcon.js +1 -1
  511. package/dist/icons/ColumnTotalIcon.js +1 -1
  512. package/dist/icons/CopyIcon.js +1 -1
  513. package/dist/icons/CountIcon.js +1 -1
  514. package/dist/icons/CubeIcon.js +1 -1
  515. package/dist/icons/CubePauseIcon.js +1 -1
  516. package/dist/icons/CubePlayIcon.js +1 -1
  517. package/dist/icons/CurrencyDollarIcon.js +1 -1
  518. package/dist/icons/DangerIcon.js +1 -1
  519. package/dist/icons/DashboardIcon.js +1 -1
  520. package/dist/icons/DatabaseIcon.js +1 -1
  521. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  522. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  523. package/dist/icons/DirectionIcon.js +1 -1
  524. package/dist/icons/DonutIcon.js +1 -1
  525. package/dist/icons/DownIcon.js +1 -1
  526. package/dist/icons/EditIcon.js +1 -1
  527. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  528. package/dist/icons/ExclamationCircleIcon.js +1 -1
  529. package/dist/icons/ExclamationIcon.js +1 -1
  530. package/dist/icons/EyeIcon.js +1 -1
  531. package/dist/icons/EyeInvisibleIcon.js +1 -1
  532. package/dist/icons/FilterIcon.js +1 -1
  533. package/dist/icons/FolderFilledIcon.js +1 -1
  534. package/dist/icons/FolderIcon.js +1 -1
  535. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  536. package/dist/icons/FolderOpenIcon.js +1 -1
  537. package/dist/icons/ForwardIcon.js +1 -1
  538. package/dist/icons/GripVerticalIcon.js +1 -1
  539. package/dist/icons/HierarchyIcon.js +1 -1
  540. package/dist/icons/HierarchyOpenIcon.js +1 -1
  541. package/dist/icons/Icon.js +1 -1
  542. package/dist/icons/InfoCircleIcon.js +1 -1
  543. package/dist/icons/InfoIcon.js +1 -1
  544. package/dist/icons/KeyIcon.js +1 -1
  545. package/dist/icons/LeftIcon.js +1 -1
  546. package/dist/icons/LineChartIcon.js +1 -1
  547. package/dist/icons/LoadingIcon.js +1 -1
  548. package/dist/icons/LockFilledIcon.js +1 -1
  549. package/dist/icons/LockIcon.js +1 -1
  550. package/dist/icons/MoreIcon.js +1 -1
  551. package/dist/icons/NotAllowedIcon.js +1 -1
  552. package/dist/icons/Number123Icon.js +1 -1
  553. package/dist/icons/NumberIcon.js +1 -1
  554. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  555. package/dist/icons/PauseCircleIcon.js +1 -1
  556. package/dist/icons/PauseIcon.js +1 -1
  557. package/dist/icons/PercentageIcon.js +1 -1
  558. package/dist/icons/PieChartIcon.js +1 -1
  559. package/dist/icons/PipetteIcon.js +1 -1
  560. package/dist/icons/PlayCircleIcon.js +1 -1
  561. package/dist/icons/PlayIcon.js +1 -1
  562. package/dist/icons/PlusIcon.js +1 -1
  563. package/dist/icons/ProgressBarIcon.js +1 -1
  564. package/dist/icons/ReloadIcon.js +1 -1
  565. package/dist/icons/ReportIcon.js +1 -1
  566. package/dist/icons/ReturnIcon.js +1 -1
  567. package/dist/icons/RightIcon.js +1 -1
  568. package/dist/icons/RowTotalsIcon.js +1 -1
  569. package/dist/icons/SchemeIcon.js +1 -1
  570. package/dist/icons/SearchIcon.js +1 -1
  571. package/dist/icons/SemanticQueryIcon.js +1 -1
  572. package/dist/icons/SettingsIcon.js +1 -1
  573. package/dist/icons/ShieldFilledIcon.js +1 -1
  574. package/dist/icons/ShieldIcon.js +1 -1
  575. package/dist/icons/SlashIcon.js +1 -1
  576. package/dist/icons/SparklesIcon.js +1 -1
  577. package/dist/icons/SqlIcon.js +1 -1
  578. package/dist/icons/StatsIcon.js +1 -1
  579. package/dist/icons/StopIcon.js +1 -1
  580. package/dist/icons/StringIcon.js +1 -1
  581. package/dist/icons/SubtotalsIcon.js +1 -1
  582. package/dist/icons/SwitchIcon.js +1 -1
  583. package/dist/icons/TableIcon.js +1 -1
  584. package/dist/icons/ThumbsDownIcon.js +1 -1
  585. package/dist/icons/ThumbsUpIcon.js +1 -1
  586. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  587. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  588. package/dist/icons/ThunderboltIcon.js +1 -1
  589. package/dist/icons/TimeIcon.js +1 -1
  590. package/dist/icons/TrashIcon.js +1 -1
  591. package/dist/icons/UnlockIcon.js +1 -1
  592. package/dist/icons/UpIcon.js +1 -1
  593. package/dist/icons/UserGroupIcon.js +1 -1
  594. package/dist/icons/UserIcon.js +1 -1
  595. package/dist/icons/UserLockIcon.js +1 -1
  596. package/dist/icons/ViewIcon.js +1 -1
  597. package/dist/icons/WarningFilledIcon.js +1 -1
  598. package/dist/icons/WarningIcon.js +1 -1
  599. package/dist/icons/wrap-icon.js +1 -1
  600. package/dist/index.d.ts +1 -1
  601. package/dist/index.js +2 -2
  602. package/dist/probe/canonicalize.js +1 -1
  603. package/dist/probe/css.js +1 -1
  604. package/dist/probe/index.js +1 -1
  605. package/dist/provider.js +1 -1
  606. package/dist/providers/TrackingProvider.js +1 -1
  607. package/dist/providers/navigation-url.js +15 -3
  608. package/dist/providers/navigation-url.js.map +1 -1
  609. package/dist/providers/navigationAdapter.default.js +1 -1
  610. package/dist/providers/use-navigation.js +1 -1
  611. package/dist/shared/form.d.ts +11 -12
  612. package/dist/tokens/all-tokens.js +1 -1
  613. package/dist/tokens/base.js +1 -1
  614. package/dist/tokens/color-seed.js +1 -1
  615. package/dist/tokens/color-theme.js +1 -1
  616. package/dist/tokens/colors.js +1 -1
  617. package/dist/tokens/layout.js +1 -1
  618. package/dist/tokens/lazy-styles.js +1 -1
  619. package/dist/tokens/legacy-color.js +1 -1
  620. package/dist/tokens/palette-config.js +1 -1
  621. package/dist/tokens/palette.js +1 -1
  622. package/dist/tokens/resolve.js +1 -1
  623. package/dist/tokens/shadows.js +1 -1
  624. package/dist/tokens/sizes.js +1 -1
  625. package/dist/tokens/spacing.js +1 -1
  626. package/dist/tokens/typography.js +1 -1
  627. package/dist/utils/ResizeSensor.js +1 -1
  628. package/dist/utils/colors.js +1 -1
  629. package/dist/utils/dotize.js +1 -1
  630. package/dist/utils/is-dev-env.js +1 -1
  631. package/dist/utils/modules.js +1 -1
  632. package/dist/utils/promise.js +1 -1
  633. package/dist/utils/raf.js +1 -1
  634. package/dist/utils/random.js +1 -1
  635. package/dist/utils/range.js +1 -1
  636. package/dist/utils/react/RenderCache.js +1 -1
  637. package/dist/utils/react/Slots.js +1 -1
  638. package/dist/utils/react/chain.js +1 -1
  639. package/dist/utils/react/disabledProps.js +1 -1
  640. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  641. package/dist/utils/react/index.js +1 -1
  642. package/dist/utils/react/interactions.js +1 -1
  643. package/dist/utils/react/isTextOnly.js +1 -1
  644. package/dist/utils/react/mapProps.js +1 -1
  645. package/dist/utils/react/mergeProps.js +1 -1
  646. package/dist/utils/react/nullableValue.js +18 -9
  647. package/dist/utils/react/nullableValue.js.map +1 -1
  648. package/dist/utils/react/overlayKeyPropagation.js +1 -1
  649. package/dist/utils/react/programmaticFocus.js +1 -1
  650. package/dist/utils/react/resolveIcon.js +1 -1
  651. package/dist/utils/react/sharedStore.js +1 -1
  652. package/dist/utils/react/useBufferedValue.js +1 -1
  653. package/dist/utils/react/useCombinedRefs.js +1 -1
  654. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  655. package/dist/utils/react/useEventBus.js +1 -1
  656. package/dist/utils/react/useId.js +1 -1
  657. package/dist/utils/react/useIsDarwin.js +1 -1
  658. package/dist/utils/react/useKeySymbols.js +1 -1
  659. package/dist/utils/react/useLayoutEffect.js +1 -1
  660. package/dist/utils/react/useLocalStorage.js +1 -1
  661. package/dist/utils/react/useMergeStyles.js +1 -1
  662. package/dist/utils/react/useOverlayEscapeGuard.js +1 -1
  663. package/dist/utils/react/usePopoverSync.js +1 -1
  664. package/dist/utils/react/useQaProps.js +1 -1
  665. package/dist/utils/react/useScheme.js +1 -1
  666. package/dist/utils/react/useViewportSize.js +1 -1
  667. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  668. package/dist/utils/selection.js +1 -1
  669. package/dist/utils/styles.js +1 -1
  670. package/dist/utils/tree.js +1 -1
  671. package/dist/utils/warnings.js +1 -1
  672. package/dist/version.js +2 -2
  673. package/docs/ComplexLayout.md +1 -1
  674. package/docs/CreateComponent.md +6 -0
  675. package/docs/FieldProperties.md +31 -6
  676. package/docs/Theming.md +2 -1
  677. package/docs/Usage.md +6 -0
  678. package/docs/components/Root.md +1 -1
  679. package/docs/components/actions/Button.md +8 -2
  680. package/docs/components/actions/ButtonSplit.md +27 -1
  681. package/docs/components/actions/Link.md +1 -1
  682. package/docs/components/actions/Menu.md +4 -2
  683. package/docs/components/content/InfoBadge.md +2 -0
  684. package/docs/components/content/ItemBadge.md +4 -0
  685. package/docs/components/content/Layout.md +41 -6
  686. package/docs/components/fields/ComboBox.md +30 -19
  687. package/docs/components/fields/FilterListBox.md +2 -2
  688. package/docs/components/fields/FilterPicker.md +2 -2
  689. package/docs/components/fields/ListBox.md +14 -10
  690. package/docs/components/fields/NumberInput.md +20 -11
  691. package/docs/components/fields/PasswordInput.md +6 -7
  692. package/docs/components/fields/Picker.md +6 -5
  693. package/docs/components/fields/RadioGroup.md +1 -1
  694. package/docs/components/fields/SearchInput.md +7 -6
  695. package/docs/components/fields/Select.md +14 -8
  696. package/docs/components/fields/TagInput.md +8 -1
  697. package/docs/components/fields/TextArea.md +4 -3
  698. package/docs/components/fields/TextInput.md +13 -6
  699. package/docs/components/overlays/AlertDialog.md +7 -1
  700. package/docs/components/overlays/Dialog.md +5 -5
  701. package/docs/components/overlays/DialogContainer.md +26 -10
  702. package/docs/components/overlays/DialogTrigger.md +6 -6
  703. package/docs/components/overlays/Tooltip.md +17 -6
  704. package/docs/components/overlays/TooltipTrigger.md +2 -0
  705. package/package.json +1 -1
@@ -31,7 +31,7 @@ A versatile list selection component that allows users to select one or more ite
31
31
  - **`shape`** `'card' | 'plain' | 'popover'` (default: `card`) — Visual shape of the ListBox
32
32
  - **`listGap`** `number` — Space between options, in pixels. Defaults to a hairline (`1bw`)
33
33
  - **`filter`** `(nodes: Iterable<Node>) => Iterable<Node>` — Filter function for the list items
34
- - **`emptyLabel`** `ReactNode` (default: `No items`) — Label shown when no items are available
34
+ - **`emptyLabel`** `ReactNode` (default: `No items`) — Label shown when no items are available. The empty listbox stays in the document, described by this label
35
35
  - **`header`** `ReactNode` — Custom header content
36
36
  - **`footer`** `ReactNode` — Custom footer content
37
37
  - **`focusOnHover`** `boolean` (default: `true`) — Whether moving the pointer over an option will move DOM focus to that option
@@ -41,13 +41,13 @@ A versatile list selection component that allows users to select one or more ite
41
41
  - **`shouldFocusWrap`** `boolean` (default: `false`) — Whether keyboard navigation should wrap around
42
42
  - **`description`** `string` — Field description
43
43
  - **`message`** `string` — Help or error message
44
- - **`showSelectAll`** `boolean` (default: `false`) — Whether to show the "Select All" option in multiple selection mode
45
- - **`selectAllLabel`** `string` (default: `Select All`) — Label for the "Select All" option
44
+ - **`showSelectAll`** `boolean` (default: `false`) — Whether to show the "Select All" checkbox in multiple selection mode
45
+ - **`selectAllLabel`** `string` (default: `Select All`) — Label for the "Select All" checkbox
46
46
  - **`onSelectionChange`** `(keys: Key | Key[] | 'all' | null) => void` — Callback when selection changes
47
47
  - **`onEscape`** `() => void` — Callback when Escape key is pressed
48
48
  - **`onOptionClick`** `(key: Key) => void` — Callback when an option is clicked (non-checkbox area)
49
49
  - **`items`** `Iterable<T>` — Array of items for dynamic content with render function pattern
50
- - **`disableSelectionToggle`** `boolean` (default: `false`) — When true, clicking an already-selected item keeps it selected instead of toggling it off
50
+ - **`disableSelectionToggle`** `boolean` (default: `false`) — When true, clicking an already-selected item keeps it selected instead of toggling it off (single selection mode)
51
51
  - **`isReorderable`** `boolean` (default: `false`) — Enable drag-and-drop item reordering. Disables virtualization when active
52
52
  - **`onReorder`** `(newOrder: string[]) => void` — Callback when items are reordered via drag-and-drop or keyboard (Alt+Arrow)
53
53
 
@@ -137,18 +137,21 @@ The `mods` property accepts the following modifiers you can override:
137
137
 
138
138
  **showSelectAll** (`boolean`, default: `false`)
139
139
 
140
- - When `true` in multiple selection mode, displays a "Select All" option in the header
141
- - The checkbox shows three states: unchecked (none selected), indeterminate (some selected), checked (all selected)
140
+ - When `true` in multiple selection mode, displays a "Select All" checkbox above the list
141
+ - The checkbox shows three states: unchecked (none selected), indeterminate (some selected), checked (every selectable item the list shows is selected, however it got there). Disabled items don't count
142
+ - A press while it is not checked selects every item, reported as `'all'`. A press while it is checked takes the items the list shows out of the selection, so selected keys that are not among its items stay selected
143
+ - Under a `filter` that hides items, it acts on the items shown: a press adds them to the selection or, once all of them are selected, removes them. Selected items the filter hides stay selected
144
+ - It sits outside the listbox as its own Tab stop: `Tab` / `Shift+Tab` reach it and `Space` toggles it
142
145
  - Only works with `selectionMode="multiple"`
143
146
 
144
147
  **selectAllLabel** (`ReactNode`, default: `'Select All'`)
145
148
 
146
- - Custom label for the "Select All" option
149
+ - Custom label for the "Select All" checkbox
147
150
  - Only used when `showSelectAll={true}`
148
151
 
149
152
  **allValueProps** (`Partial<CubeItemProps>`)
150
153
 
151
- - Props to customize the styling and behavior of the "Select All" option
154
+ - Props to customize the styling and behavior of the "Select All" checkbox
152
155
  - Accepts any Item props like `styles`, `icon`, etc.
153
156
 
154
157
  **disallowEmptySelection** (`boolean`, default: `false`)
@@ -163,7 +166,7 @@ The `mods` property accepts the following modifiers you can override:
163
166
 
164
167
  **disableSelectionToggle** (`boolean`, default: `false`)
165
168
 
166
- - When `true`, clicking an already-selected item keeps it selected instead of toggling it off
169
+ - When `true`, clicking an already-selected item keeps it selected instead of toggling it off, and `onSelectionChange` reports that item again. Applies in single selection mode, set or by default
167
170
  - Useful when embedding ListBox inside components like ComboBox
168
171
 
169
172
  **disabledKeys** (`Key[]`)
@@ -700,6 +703,7 @@ const [keyOrder, setKeyOrder] = useState([
700
703
  ### Keyboard Navigation
701
704
 
702
705
  - `Tab` - Moves focus to/from the ListBox. A disabled ListBox is not in the Tab order
706
+ - `Tab` / `Shift+Tab` - Reach the "Select All" checkbox (with `showSelectAll`), which `Space` toggles
703
707
  - `Arrow Keys` - Navigate between options
704
708
  - `Space/Enter` - Select/deselect the focused option
705
709
  - `Home/End` - Move to first/last option
@@ -823,7 +827,7 @@ function Example() {
823
827
 
824
828
  ### Virtualization
825
829
 
826
- For large datasets, use the `items` prop with a render function. This enables automatic virtualization — only visible items are rendered in the DOM, providing smooth scrolling even with thousands of items.
830
+ For large datasets, use the `items` prop with a render function. This enables automatic virtualization — only visible items are rendered in the DOM, providing smooth scrolling even with thousands of items. Moving focus to an option that isn't rendered (`End`, `Home`, `Page Down`, typeahead, or the selected option when the list takes focus) scrolls the list to it.
827
831
 
828
832
  ```jsx
829
833
  const items = Array.from({ length: 1000 }, (_, i) => ({
@@ -16,13 +16,14 @@ A number input component that allows users to enter numeric values and increment
16
16
 
17
17
  ### Properties
18
18
 
19
- - **`value`** `number` — The numeric value in controlled mode
19
+ - **`value`** `number | null` — The numeric value in controlled mode. `null` clears the field and keeps it controlled
20
20
  - **`defaultValue`** `number` — The default numeric value in uncontrolled mode
21
21
  - **`placeholder`** `string` — Placeholder text when input is empty
22
22
  - **`icon`** `ReactElement` — Icon element rendered before the input
23
23
  - **`prefix`** — Input decoration before the main input
24
24
  - **`suffix`** — Input decoration after the main input
25
- - **`suffixPosition`** `'before' | 'after'` (default: `before`) — Position of suffix relative to validation/loading icons
25
+ - **`suffixPosition`** `'before' | 'after'` (default: `before`) — Position of `suffix` relative to the stepper buttons. `before` keeps a unit next to the number (`40 px ⌃⌄`); `after` places the suffix after the steppers. The validation/loading icon always comes before both
26
+ - **`actions`** `ReactNode` — Controls placed last, after the steppers and `suffix` whatever `suffixPosition` is
26
27
  - **`hideStepper`** `boolean` (default: `false`) — Whether to hide the stepper buttons
27
28
  - **`minValue`** `number` — Minimum allowed value
28
29
  - **`maxValue`** `number` — Maximum allowed value
@@ -31,10 +32,11 @@ A number input component that allows users to enter numeric values and increment
31
32
  - **`size`** `'small' | 'medium' | 'large'` (default: `medium`) — Input size
32
33
  - **`autoComplete`** `string` (default: `off`) — HTML [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) token that tells the browser what to autofill (`cc-number`, `one-time-code`, …). A number field opts out of autofill by default.
33
34
  - **`isWheelDisabled`** `boolean` — Whether scrolling the mouse wheel changes the value
34
- - **`decrementAriaLabel`** `string` — Custom aria-label for the decrement button
35
- - **`incrementAriaLabel`** `string` — Custom aria-label for the increment button
35
+ - **`decrementAriaLabel`** `string` — Custom aria-label for the decrement button, in place of the translated "Decrease {label}"
36
+ - **`incrementAriaLabel`** `string` — Custom aria-label for the increment button, in place of the translated "Increase {label}"
36
37
  - **`inputProps`** `Props` — Direct props passed to the native input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced
37
- - **`wrapperProps`** `Props` — Direct props passed to the input wrapper element
38
+ - **`wrapperProps`** `Props` — Direct props passed to the input wrapper element, merged with the `group` props React Aria puts there: event handlers are chained
39
+ - **`validate`** `(value: number) => 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. A typed number is checked once it commits, on blur or `Enter`. An explicit `errorMessage` replaces the returned message, and an explicit `isInvalid` (or a form's validation) takes over from `validate` entirely
38
40
  - **`onChange`** `function` — Callback fired when the input value changes
39
41
  - **`onBlur`** `function` — Callback fired when the input loses focus
40
42
  - **`onFocus`** `function` — Callback fired when the input receives focus
@@ -109,7 +111,7 @@ The `mods` prop accepts the following modifiers you can override:
109
111
  - **`disabled`** `boolean` — Forces disabled appearance.
110
112
  - **`invalid`** `boolean` — Forces invalid state styling.
111
113
  - **`valid`** `boolean` — Forces valid state styling.
112
- - **`loading`** `boolean` — Displays loading spinner.
114
+ - **`hovered`** `boolean` — Forces hover appearance.
113
115
  - **`prefix`** `boolean` — Indicates presence of prefix content.
114
116
  - **`suffix`** `boolean` — Indicates presence of suffix content.
115
117
 
@@ -139,6 +141,14 @@ The `mods` prop accepts the following modifiers you can override:
139
141
  <NumberInput label="Amount" hideStepper />
140
142
  ```
141
143
 
144
+ ### With a Unit Suffix
145
+
146
+ A unit sits between the number and the steppers. Pass `suffixPosition="after"` to put the suffix after the steppers instead.
147
+
148
+ ```jsx
149
+ <NumberInput label="Width" defaultValue={40} suffix={<Text>px</Text>} />
150
+ ```
151
+
142
152
  ### With Min/Max/Step
143
153
 
144
154
  ```jsx
@@ -169,17 +179,16 @@ The `mods` prop accepts the following modifiers you can override:
169
179
 
170
180
  ### Screen Reader Support
171
181
 
172
- - Announces role "spinbutton"
173
- - Announces label, description, and validation messages
174
- - Announces min/max/step constraints
182
+ - Announces a text field described as "Number field", with its label, description and validation messages
183
+ - The stepper buttons are named after the field ("Increase Quantity", "Decrease Quantity"), translated with the UI Kit locale. With a label that is not text, the name is "Increase" or "Decrease" and the label is read after it. They are not in the `Tab` order, and pressing one does not close a popover the field sits in
175
184
  - State changes like "invalid" or "required" are announced
176
- - Loading state is announced to screen readers
185
+ - The loading indicator is visual only: `isLoading` is not announced
177
186
 
178
187
  ### ARIA Properties
179
188
 
180
189
  - `aria-label`, `aria-labelledby` – Accessible name for the input
181
190
  - `aria-describedby` – Links to description and error messages
182
- - `aria-invalid` – Managed automatically based on `isInvalid`
191
+ - `aria-invalid` – Managed automatically based on `isInvalid` and `validate`
183
192
  - `aria-required` – Set when `isRequired` is true
184
193
  - Additional ARIA attributes supported by React Aria's `useNumberField`
185
194
 
@@ -16,7 +16,7 @@ A password input is a specialized text field that masks user input to protect se
16
16
 
17
17
  ### Properties
18
18
 
19
- - **`value`** `string` — The password value in controlled mode
19
+ - **`value`** `string | null` — The password value in controlled mode. `null` clears the field and keeps it controlled
20
20
  - **`defaultValue`** `string` — The default password 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
@@ -26,7 +26,7 @@ A password input is a specialized text field that masks user input to protect se
26
26
  - **`suffixPosition`** `'before' | 'after'` (default: `after`) — Position of suffix relative to validation/loading icons
27
27
  - **`size`** `'small' | 'medium' | 'large'` (default: `medium`) — Input size
28
28
  - **`autoComplete`** `string` — HTML [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) token that tells the browser what to autofill (`current-password`, `new-password`, `off`, …). The lowercase `autocomplete` alias is deprecated.
29
- - **`inputProps`** `Props` — Direct props passed to the native input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced
29
+ - **`inputProps`** `Props` — Direct props passed to the native 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` and `autoComplete` props win over the same attributes in `inputProps` when they are set; one left unset keeps the `inputProps` value
30
30
  - **`wrapperProps`** `Props` — Direct props passed to the input wrapper element
31
31
  - **`onChange`** `function` — Callback fired when the input value changes
32
32
  - **`onBlur`** `function` — Callback fired when the input loses focus
@@ -186,8 +186,8 @@ The `mods` property accepts the following modifiers you can override:
186
186
 
187
187
  ### Keyboard Navigation
188
188
 
189
- - `Tab` - Moves focus to the password input
190
- - `Shift + Tab` - Moves focus to the toggle button
189
+ - `Tab` - Moves focus to the password input, then to the toggle button, which comes after it
190
+ - `Shift + Tab` - Moves focus from the toggle button back to the input
191
191
  - `Enter` - Toggles password visibility when toggle button is focused
192
192
  - `Space` - Toggles password visibility when toggle button is focused
193
193
  - All standard text input keyboard shortcuts work for text entry
@@ -195,8 +195,7 @@ The `mods` property accepts the following modifiers you can override:
195
195
  ### Screen Reader Support
196
196
 
197
197
  - Component announces as "password" input type to screen readers
198
- - Toggle button announces its purpose ("Toggle masking", "Show password", "Hide password")
199
- - Current visibility state is communicated when changed
198
+ - The toggle is a toggle button named "Show password" (translated with the UI Kit locale). Its name stays the same, and `aria-pressed` reports whether the password is shown: "Show password, pressed" while it is visible, "Show password, not pressed" while it is masked
200
199
  - Validation errors and requirements are announced
201
200
 
202
201
  ### ARIA Properties
@@ -206,7 +205,7 @@ The `mods` property accepts the following modifiers you can override:
206
205
  - `aria-describedby` - References additional descriptive text
207
206
  - `aria-invalid` - Indicates validation state
208
207
  - `aria-required` - Indicates if password entry is required
209
- - Toggle button includes appropriate `aria-label` for its function
208
+ - The toggle button has `aria-label="Show password"` and `aria-pressed`, `true` while the password is shown
210
209
 
211
210
  ## Best Practices
212
211
 
@@ -629,9 +629,9 @@ The Picker component is built with React Aria hooks and provides comprehensive a
629
629
 
630
630
  ### Screen Reader Support
631
631
 
632
- - Trigger button announces as "button" with current selection state
633
- - When empty: announces placeholder text
634
- - When selected: announces selected item(s) or count
632
+ - The trigger is a button named by the field `label` (or `aria-label`), so its name does not change with the selection
633
+ - The value the trigger shows is its description, announced after the name: the selected item(s), the `renderSummary` output, or the placeholder while empty (for example "Status, button, Open")
634
+ - With `renderSummary={false}` the trigger shows no value, so it has no value description
635
635
  - Popover opening/closing is announced to screen readers
636
636
  - Item selection changes are announced immediately
637
637
  - Loading state announces "loading" to users
@@ -644,9 +644,10 @@ The component automatically manages ARIA attributes:
644
644
 
645
645
  - **`aria-label`** — Labels the trigger when no visible label exists
646
646
  - **`aria-labelledby`** — Associates the label with the trigger
647
- - **`aria-describedby`** — Associates help text and error messages
647
+ - **`aria-describedby`** — Associates the displayed value, then help text and error messages
648
+ - **`aria-haspopup="dialog"`** — The trigger opens a popover dialog that holds the list
648
649
 
649
- The following ARIA attributes are automatically managed by React Aria and do not need to be set manually: `aria-expanded`, `aria-haspopup`, `aria-invalid`, `aria-required`, `aria-disabled`.
650
+ The trigger also sets `aria-expanded`, and `aria-controls` while the popover is open; none of these need to be set manually. A disabled Picker disables the trigger button.
650
651
 
651
652
  ### Best Practices for Accessibility
652
653
 
@@ -29,7 +29,7 @@ If the control is not a field — a toolbar that swaps which view is on screen,
29
29
  ### Properties
30
30
 
31
31
  - **`children`** — Radio elements that define the available options
32
- - **`value`** `string` — The currently selected value (controlled)
32
+ - **`value`** `string | null` — The currently selected value (controlled). `null` selects nothing and keeps the group controlled
33
33
  - **`defaultValue`** `string` — The default selected value (uncontrolled)
34
34
  - **`type`** `'radio' | 'button' | 'tabs'` (default: `radio`) — Visual type for all radios in the group (button/tabs default to horizontal)
35
35
  - **`orientation`** `undefined | 'vertical' | 'horizontal'` (default: `undefined`) — Orientation of the radio group. When unset it is derived from `type`: `horizontal` for `button` and `tabs`, `vertical` otherwise
@@ -16,7 +16,7 @@ A search input provides a specialized text field for search functionality, featu
16
16
 
17
17
  ### Properties
18
18
 
19
- - **`value`** `string` — The search value in controlled mode
19
+ - **`value`** `string | null` — The search value in controlled mode. `null` clears the field and keeps it controlled
20
20
  - **`defaultValue`** `string` — The default search 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
@@ -24,14 +24,15 @@ A search input provides a specialized text field for search functionality, featu
24
24
  - **`prefix`** `ReactNode` — Content rendered before the input
25
25
  - **`suffix`** — Input decoration after the main input (before clear button)
26
26
  - **`suffixPosition`** `'before' | 'after'` (default: `after`) — Position of suffix relative to validation/loading state icons
27
- - **`isClearable`** `boolean` (default: `false`) — Whether the search input shows a clear button
27
+ - **`isClearable`** `boolean` (default: `false`) — Whether the search input shows a clear button while it has text. `Escape` clears the input either way
28
28
  - **`size`** `'small' | 'medium' | 'large'` (default: `medium`) — Input size
29
29
  - **`autoComplete`** `string` — HTML [`autocomplete`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete) token that tells the browser what to autofill (`off` to suppress autofill on a filter field). The lowercase `autocomplete` alias is deprecated.
30
30
  - **`inputProps`** `Props` — Direct props passed to the native input element, merged over the props React Aria generates: a key you set wins, and event handlers are chained rather than replaced
31
31
  - **`wrapperProps`** `Props` — Direct props passed to the input wrapper element
32
+ - **`inputRef`** `RefObject<HTMLInputElement>` — Ref to the native input element. It is the same element the clear button returns focus to
32
33
  - **`onChange`** `function` — Callback fired when the search value changes
33
34
  - **`onSubmit`** `function` — Callback fired when search is submitted
34
- - **`onClear`** `function` — Callback fired when search is cleared
35
+ - **`onClear`** `function` — Callback fired after the text is cleared, by the clear button or by `Escape`. Not called when there was no text to clear
35
36
  - **`onBlur`** `function` — Callback fired when the input loses focus
36
37
  - **`onFocus`** `function` — Callback fired when the input receives focus
37
38
 
@@ -179,8 +180,8 @@ const [searchValue, setSearchValue] = useState('');
179
180
 
180
181
  ### Keyboard Navigation
181
182
 
182
- - `Tab` - Moves focus to the search input
183
- - `Escape` - Clears the search input (when `isClearable` is true)
183
+ - `Tab` - Moves focus to the search input. The clear button is skipped: it is not in the `Tab` order
184
+ - `Escape` - Clears the search input and calls `onClear`, whether or not `isClearable` is set, as in a native search field. With the input already empty, `Escape` is left to the surrounding UI, so a `Dialog` closes on the next press
184
185
  - `Enter` - Submits search or triggers onSubmit callback
185
186
  - All standard text input keyboard shortcuts work for text entry
186
187
 
@@ -189,7 +190,7 @@ const [searchValue, setSearchValue] = useState('');
189
190
  - Component announces as "search" input type to screen readers
190
191
  - Search icon and clear button have appropriate labels
191
192
  - Current search value and results count are announced when available
192
- - Loading states and validation errors are communicated
193
+ - `isInvalid` sets `aria-invalid` on the input. The loading indicator is visual only: `isLoading` is not announced
193
194
 
194
195
  ### ARIA Properties
195
196
 
@@ -35,7 +35,7 @@ Choose a different component when the interaction has another shape:
35
35
  - **`suffixPosition`** `string` (default: `before`) — Position of suffix relative to validation icons
36
36
  - **`type`** `string` (default: `outline`) — Visual style variant of the select
37
37
  - **`theme`** `string` (default: `default`) — Theme variant affecting overall styling
38
- - **`size`** `string` (default: `medium`) — Size of the select component
38
+ - **`size`** `string` (default: `medium`) — Size of the trigger and of the options in its list (a `small` trigger opens `medium` options)
39
39
  - **`direction`** `string` (default: `bottom`) — Preferred direction for the dropdown menu
40
40
  - **`isClearable`** `boolean` (default: `false`) — Whether the select is clearable using a clear button in the rightIcon slot
41
41
  - **`clearLabel`** `string` — Accessible name for the built-in clear button. Defaults to a localized "Clear value".
@@ -48,10 +48,10 @@ Choose a different component when the interaction has another shape:
48
48
  - **`disabledKeys`** `Iterable<Key>` — Keys of items that are disabled
49
49
  - **`children`** `ReactNode | (item: T) => ReactElement` — Static child items or render function for dynamic items
50
50
  - **`triggerRef`** `RefObject<HTMLButtonElement>` — Ref for the trigger button element
51
- - **`popoverRef`** `RefObject<HTMLInputElement>` — Ref for the popover overlay element
51
+ - **`popoverRef`** `RefObject<HTMLElement | null>` — Ref for the popover overlay element
52
52
  - **`listBoxRef`** `RefObject<HTMLElement>` — Ref for the list box element
53
- - **`loadingIndicator`** `ReactNode` — Custom loading indicator element
54
- - **`hideTrigger`** `boolean` (default: `false`) — Whether to hide the trigger button
53
+ - **`isLoading`** `boolean` — Shows a loading indicator in the trigger and fixes the value until loading ends
54
+ - **`loadingIndicator`** `ReactNode` — Replaces the default loading icon shown while `isLoading` is set
55
55
  - **`styles`** `Styles` — Styles for the root wrapper element
56
56
  - **`inputStyles`** `Styles` — Styles for the input trigger element
57
57
  - **`listBoxStyles`** `Styles` — Styles for the dropdown list container
@@ -59,7 +59,8 @@ Choose a different component when the interaction has another shape:
59
59
  - **`listGap`** `number` — Space between options, in pixels. Defaults to a hairline (`1bw`)
60
60
  - **`overlayStyles`** `Styles` — Styles for the dropdown overlay wrapper
61
61
  - **`triggerStyles`** `Styles` — Styles for the trigger button element
62
- - **`inputProps`** `Props` — Additional props for the input element
62
+ - **`inputProps`** `Props` — Additional props for the trigger button element
63
+ - **`autoFocus`** `boolean` — Focuses the trigger when it mounts
63
64
  - **`triggerDescription`** `ReactNode` — Description text displayed within the trigger button (different from field-level description)
64
65
  - **`descriptionPlacement`** `'inline' | 'block'` — Controls how the trigger description is positioned
65
66
  - **`hotkeys`** `string` — Keyboard shortcut that triggers the select when pressed
@@ -83,6 +84,8 @@ Choose a different component when the interaction has another shape:
83
84
 
84
85
  **onClear** - Callback fired when the clear button is pressed, allowing you to perform custom actions when the selection is cleared.
85
86
 
87
+ **isReadOnly** and **isLoading** - The trigger stays focusable and keeps its accessible name, but the value can't change: the list doesn't open, typeahead and the arrow keys don't pick another option, and the clear button is hidden. If either one, or `isDisabled`, turns on while the list is open, the list closes.
88
+
86
89
  **actions** - Your own controls inside the trigger, rendered to the left of the built-in clear button and dropdown caret. Pressing one runs its handler without opening or closing the popover — including while the popover is open — so an action can do something the clear button cannot, such as restoring a default selection instead of emptying it. Use `Select.Action` so they match the trigger's size and theme. Actions follow the trigger's disabled state but not `isReadOnly`; pass `isDisabled` yourself for an action that changes the value.
87
90
 
88
91
  **tooltip** - Enables tooltip display on the trigger button. Can be:
@@ -524,15 +527,18 @@ const groups = [
524
527
  ### Keyboard Navigation
525
528
 
526
529
  - `Tab` - Moves focus to the select
527
- - `Space/Enter` - Opens the dropdown
528
- - `Arrow Down` - Opens dropdown and moves to first/next option
529
- - `Arrow Up` - Moves to previous option (when open)
530
+ - `Space/Enter` - Opens the dropdown on the selected option, or the first one
531
+ - `Arrow Down` - Opens the dropdown on the selected option, or the first one; moves to the next option when open
532
+ - `Arrow Up` - Opens the dropdown on the last option; moves to the previous option when open
533
+ - `Page Down/Page Up` - Moves about one visible page of options
530
534
  - `Home` - Moves to first option
531
535
  - `End` - Moves to last option
532
536
  - `Escape` - Closes dropdown without selecting
533
537
  - `Enter` - Selects focused option and closes dropdown
534
538
  - Typing - Navigates to options starting with typed character
535
539
 
540
+ Opened with a pointer, the list focuses the selected option, or the list itself when nothing is selected. The focused option is scrolled into view as the list opens.
541
+
536
542
  ### Screen Reader Support
537
543
 
538
544
  - Component announces as "combobox" or "listbox" to screen readers
@@ -69,7 +69,7 @@ A multi-value field. The user types a value into a single-line input and commits
69
69
 
70
70
  **tagProps** - Called per value. Return a theme, an icon or `qa` for the chip. A string `children` replaces the chip's text and also names the value in the input's description and in the "Added"/"Removed" announcements, for values whose label does not come from the options. `isDisabled: true` locks the chip: it has no remove button, the keyboard skips it, and its option cannot be unpicked. An invalid chip stays in the danger theme whatever theme it asks for.
71
71
 
72
- **children / items** - Options turn the input into a combobox. Typing filters them and focuses the option the typed text names, or else the first match. Enter or a click toggles the focused option, and the popover stays open so the user can pick several in a row. A picked option is added as its own key, whatever other options its text resembles. Typed text means "add": pressing Enter on an option that is already a chip refuses it as a duplicate, and unpicking it takes the arrow keys, a click, or an empty input. A picked option shows a checked box. Typed text names an option by its exact label, then by its key, anywhere in the list, before any looser match counts, so `active` finds `active` even when `Active` comes first. Enter, a delimiter, a paste and blur all go by the same rule, and the option the text names stays listed and focused even when the filter would hide it, as when a key is typed, so they always add the same option. Without `allowsCustomValue`, typed text must name an option, and a label in another case or without its accents counts too: `production` adds `Production`. On blur a query that names nothing is dropped. With `allowsCustomValue`, only an exact match counts: `paris` next to an option `Paris` is a value of its own, offered and focused as its own row and added as typed, since a case-sensitive filter treats the two apart. A press on a control outside while the popover shows (a button, a link, another field) is not taken by it: it reaches the control, so a Save button saves on the first click, with the typed text already committed. A press anywhere else, such as the backdrop of a dialog the field sits in, only closes the popover, and the dialog stays open. The typed text is offered as its own option after the matches, the same way [FilterListBox](./FilterListBox.md) does, and custom values already added are listed there too, checked and sorted, so they can be unpicked from the list as well as from their chips. One unpicked in the list stays there, unchecked, until focus leaves the field, so it can be picked back. An option in `disabledKeys` is refused however it is entered. A chip for an option shows the option's label, while the value holds its key. The label is remembered, so it survives server-side filtering (`filter={false}` with changing `items`).
72
+ **children / items** - Options turn the input into a combobox. Typing filters them and focuses the option the typed text names, or else the first match. Enter or a click toggles the focused option, and the popover stays open so the user can pick several in a row. A picked option is added as its own key, whatever other options its text resembles. Typed text means "add": pressing Enter on an option that is already a chip refuses it as a duplicate, and unpicking it takes the arrow keys, a click, or an empty input. A picked option shows a checked box. Typed text names an option by its exact label, then by its key, anywhere in the list, before any looser match counts, so `active` finds `active` even when `Active` comes first. Enter, a delimiter, a paste and blur all go by the same rule, and the option the text names stays listed and focused even when the filter would hide it, as when a key is typed, so they always add the same option. Without `allowsCustomValue`, typed text must name an option, and a label in another case or without its accents counts too: `production` adds `Production`. On blur a query that names nothing is dropped. With `allowsCustomValue`, only an exact match counts: `paris` next to an option `Paris` is a value of its own, offered and focused as its own row and added as typed, since a case-sensitive filter treats the two apart. A press on a control outside while the popover shows (a button, a link, another field) is not taken by it: it reaches the control, so a Save button saves on the first click, with the typed text already committed. A press anywhere else, such as blank space in or the backdrop of a dialog the field sits in, or a control outside the dialog or popover it sits in, only closes the popover, keeps the typed text in the input, and leaves the dialog open. An enabled UI Kit `Button` or `ItemButton` is the exception: it is reached from anywhere. A press on a disabled control never commits the typed text. The typed text is offered as its own option after the matches, the same way [FilterListBox](./FilterListBox.md) does, and custom values already added are listed there too, checked and sorted, so they can be unpicked from the list as well as from their chips. One unpicked in the list stays there, unchecked, until focus leaves the field, so it can be picked back. An option in `disabledKeys` is refused however it is entered. A chip for an option shows the option's label, while the value holds its key. The label is remembered, so it survives server-side filtering (`filter={false}` with changing `items`).
73
73
 
74
74
  ### Base Properties
75
75
 
@@ -79,6 +79,13 @@ Supports [Base properties](../../BaseProperties.md)
79
79
 
80
80
  Supports all [Field properties](../../FieldProperties.md)
81
81
 
82
+ A standalone TagInput renders field chrome by default, so refused values show their reason below the control and the input references that reason through `aria-describedby`, even without a visible `label`. No empty `message` prop is needed. A local rejection takes precedence over the ordinary field error until the draft is edited. With `isBare`, there is no visible message slot; rejection feedback is announced through the live region instead.
83
+
84
+ ```jsx
85
+ <TagInput aria-label="Recipients" defaultValue={['ana@acme.com']} />
86
+ <TagInput isBare aria-label="Inline recipients" defaultValue={['ana@acme.com']} />
87
+ ```
88
+
82
89
  ### Styling Properties
83
90
 
84
91
  #### styles
@@ -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,6 +66,12 @@ 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
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).
@@ -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
 
@@ -17,7 +17,8 @@ A DialogContainer accepts a single Dialog as a child, and manages to show and hi
17
17
  ### Properties
18
18
 
19
19
  - **`children`** — The Dialog to display, if any
20
- - **`type`** `'modal' | 'fullscreen' | 'fullscreenTakeover' | 'panel'` (default: `modal`) — The type of Dialog that should be rendered
20
+ - **`type`** `'modal' | 'tray' | 'fullscreen' | 'fullscreenTakeover' | 'panel'` (default: `modal`) — The type of Dialog that should be rendered
21
+ - **`styles`** `Styles` — Styles for the overlay content shell
21
22
  - **`isDismissable`** `boolean` (default: `true`) — Whether the Dialog is dismissible
22
23
  - **`isKeyboardDismissDisabled`** `boolean` (default: `false`) — Whether pressing the escape key to close the dialog should be disabled
23
24
  - **`isOpen`** `boolean` — Whether the modal is open or not
@@ -26,15 +27,15 @@ A DialogContainer accepts a single Dialog as a child, and manages to show and hi
26
27
 
27
28
  ### Base Properties
28
29
 
29
- Supports [Base properties](../../BaseProperties.md)
30
+ DialogContainer has no DOM root. Apply [Base properties](../../BaseProperties.md) to its child Dialog.
30
31
 
31
32
  ### Styling Properties
32
33
 
33
- DialogContainer has no styling capabilities.
34
+ `styles` customizes the overlay content shell, matching DialogTrigger. Set the child Dialog's `styles` separately: the shell and Dialog have independent size limits. For an expandable tray, keep `type="tray"` and change both style maps; switching between tray and modal/fullscreen types replaces the overlay subtree.
34
35
 
35
36
  ### Style Properties
36
37
 
37
- These properties allow direct style application without using the `styles` prop:
38
+ Set these direct style properties on the child Dialog. DialogContainer itself exposes only the `styles` map for its overlay shell:
38
39
 
39
40
  - **Base:** `display`, `font`, `preset`, `hide`, `whiteSpace`, `opacity`, `transition`
40
41
  - **Dimension:** `width`, `height`, `blockSize`, `inlineSize`, `flexBasis`, `flexGrow`, `flexShrink`, `flex`
@@ -46,6 +47,7 @@ These properties allow direct style application without using the `styles` prop:
46
47
  ### Types
47
48
 
48
49
  - `modal` - Standard modal dialog with backdrop (default)
50
+ - `tray` - Bottom-aligned modal tray with backdrop
49
51
  - `fullscreen` - Takes up entire screen with padding
50
52
  - `fullscreenTakeover` - Fullscreen without padding
51
53
  - `panel` - Side panel overlay
@@ -127,6 +129,26 @@ function ConditionalDialog() {
127
129
  }
128
130
  ```
129
131
 
132
+ ### Custom-size Tray
133
+
134
+ ```jsx
135
+ const dimensions = { width: '(100dvw - 2x)', height: '60dvh' };
136
+
137
+ <DialogContainer
138
+ type="tray"
139
+ styles={dimensions}
140
+ isOpen={isOpen}
141
+ onDismiss={() => setIsOpen(false)}
142
+ >
143
+ <Dialog isDismissable={false} styles={dimensions} aria-label="Chat">
144
+ <Button onPress={() => setIsOpen(false)}>Close chat</Button>
145
+ {/* Conversation and composer */}
146
+ </Dialog>
147
+ </DialogContainer>
148
+ ```
149
+
150
+ The Dialog's `isDismissable={false}` hides its built-in visible Close button. The container remains dismissable with Escape or an outside press. A tray is modal: its backdrop keeps the page visible but prevents interaction with it. To expand without remounting its content, keep the tray type and update both dimensions to `100dvw` / `100dvh`. Test the content with the supported mobile keyboards and short viewports; `dvh` follows the dynamic viewport, not every virtual-keyboard overlay.
151
+
130
152
  ### Non-dismissable Dialog
131
153
 
132
154
  ```jsx
@@ -198,12 +220,6 @@ function ConditionalDialog() {
198
220
  4. **Single Child**: Only pass one Dialog as a child to DialogContainer
199
221
  5. **Cleanup**: Ensure proper cleanup of dialog state when component unmounts
200
222
 
201
- ## Suggested Improvements
202
-
203
- - Enhancement 1: Add support for dialog stacking and z-index management
204
- - Enhancement 2: Implement automatic focus restoration after dialog closes
205
- - Enhancement 3: Add support for custom backdrop click behavior
206
-
207
223
  ## Related Components
208
224
 
209
225
  - [DialogTrigger](./DialogTrigger.md) - Use when you have a specific trigger element