@cube-dev/ui-kit 0.166.0 → 0.167.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 (651) hide show
  1. package/README.md +4 -7
  2. package/dist/CHANGELOG.md +33 -0
  3. package/dist/README.md +4 -7
  4. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  5. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  6. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  7. package/dist/_internal/hooks/use-event.js +1 -1
  8. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  9. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  10. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  11. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  12. package/dist/_internal/hooks/use-warn.js +1 -1
  13. package/dist/components/Block.js +1 -1
  14. package/dist/components/CollectionItem.js +1 -1
  15. package/dist/components/GlobalStyles.js +4 -4
  16. package/dist/components/GlobalStyles.js.map +1 -1
  17. package/dist/components/GridProvider.js +1 -1
  18. package/dist/components/HiddenInput.js +1 -1
  19. package/dist/components/Root.js +1 -2
  20. package/dist/components/Root.js.map +1 -1
  21. package/dist/components/actions/Action/Action.js +1 -1
  22. package/dist/components/actions/Banner/Banner.js +1 -1
  23. package/dist/components/actions/Button/Button.js +1 -1
  24. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  25. package/dist/components/actions/ButtonSplit/ButtonSplit.js +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 +1 -1
  30. package/dist/components/actions/ItemActionContext.js +1 -1
  31. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  32. package/dist/components/actions/Link/Link.js +1 -1
  33. package/dist/components/actions/Menu/Menu.js +1 -1
  34. package/dist/components/actions/Menu/MenuItem.js +1 -1
  35. package/dist/components/actions/Menu/MenuSection.js +1 -1
  36. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  37. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  38. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  39. package/dist/components/actions/Menu/context.js +1 -1
  40. package/dist/components/actions/Menu/styled.js +1 -1
  41. package/dist/components/actions/index.js +1 -1
  42. package/dist/components/actions/use-action.js +1 -1
  43. package/dist/components/actions/use-anchored-menu.d.ts +7 -3
  44. package/dist/components/actions/use-anchored-menu.js +17 -12
  45. package/dist/components/actions/use-anchored-menu.js.map +1 -1
  46. package/dist/components/actions/use-context-menu.d.ts +6 -3
  47. package/dist/components/actions/use-context-menu.js +25 -13
  48. package/dist/components/actions/use-context-menu.js.map +1 -1
  49. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  50. package/dist/components/content/Alert/Alert.js +1 -1
  51. package/dist/components/content/Alert/use-alert.js +1 -1
  52. package/dist/components/content/Avatar/Avatar.js +1 -1
  53. package/dist/components/content/Badge/Badge.js +1 -1
  54. package/dist/components/content/Card/Card.js +1 -1
  55. package/dist/components/content/Content.js +1 -1
  56. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  57. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  58. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  59. package/dist/components/content/Divider.js +1 -1
  60. package/dist/components/content/Footer.js +1 -1
  61. package/dist/components/content/Header.js +1 -1
  62. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  63. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  64. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  65. package/dist/components/content/Item/Item.js +1 -1
  66. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  67. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  68. package/dist/components/content/Layout/GridLayout.js +1 -1
  69. package/dist/components/content/Layout/Layout.js +1 -1
  70. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  71. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  72. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  73. package/dist/components/content/Layout/LayoutContent.js +1 -1
  74. package/dist/components/content/Layout/LayoutContext.js +1 -1
  75. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  76. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  77. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  78. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  79. package/dist/components/content/Layout/LayoutPane.js +1 -1
  80. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  81. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  82. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  83. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  84. package/dist/components/content/Layout/index.js +1 -1
  85. package/dist/components/content/Layout/utils.js +1 -1
  86. package/dist/components/content/Paragraph.js +1 -1
  87. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  88. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  89. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  90. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  91. package/dist/components/content/Result/Result.js +1 -1
  92. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  93. package/dist/components/content/Tag/Tag.js +1 -1
  94. package/dist/components/content/Text.d.ts +14 -14
  95. package/dist/components/content/Text.js +1 -1
  96. package/dist/components/content/TextItem/TextItem.js +1 -1
  97. package/dist/components/content/Title.js +1 -1
  98. package/dist/components/content/Tree/Tree.js +1 -1
  99. package/dist/components/content/Tree/TreeNode.js +1 -1
  100. package/dist/components/content/Tree/styled.js +1 -1
  101. package/dist/components/content/Tree/tree-index.js +1 -1
  102. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  103. package/dist/components/content/Tree/use-load-data.js +1 -1
  104. package/dist/components/content/highlightText.js +1 -1
  105. package/dist/components/content/use-auto-tooltip.js +1 -1
  106. package/dist/components/data/DataTable/DataTable.js +1 -1
  107. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  108. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  109. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  110. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  111. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  112. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  113. package/dist/components/data/TableBase/RowCollection.js +1 -1
  114. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  115. package/dist/components/data/TableBase/TableRow.js +1 -1
  116. package/dist/components/data/TableBase/TableView.js +1 -1
  117. package/dist/components/data/TableBase/column-menu.js +1 -1
  118. package/dist/components/data/TableBase/column-tint.js +1 -1
  119. package/dist/components/data/TableBase/row-menu.js +1 -1
  120. package/dist/components/data/TableBase/styled.js +1 -1
  121. package/dist/components/data/TableBase/table-tree.js +1 -1
  122. package/dist/components/data/TableBase/types.js +1 -1
  123. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  124. package/dist/components/data/TableBase/use-column-order.js +1 -1
  125. package/dist/components/data/TableBase/use-container-width.js +1 -1
  126. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  127. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  128. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  129. package/dist/components/data/TableBase/use-table-search.js +1 -1
  130. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  131. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  132. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  133. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  134. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  135. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  136. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  137. package/dist/components/fields/Checkbox/context.js +1 -1
  138. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  139. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  140. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  141. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  142. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  143. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  144. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  145. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  146. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  147. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  148. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  149. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  150. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  151. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  152. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  153. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  154. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  155. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  156. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  157. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  158. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  159. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  160. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  161. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  162. package/dist/components/fields/DatePicker/period.js +1 -1
  163. package/dist/components/fields/DatePicker/props.js +1 -1
  164. package/dist/components/fields/DatePicker/utils.js +1 -1
  165. package/dist/components/fields/FileInput/FileInput.js +1 -1
  166. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  167. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  168. package/dist/components/fields/Input/Input.js +1 -1
  169. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  170. package/dist/components/fields/ListBox/ListBox.js +1 -1
  171. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  172. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  173. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  174. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  175. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  176. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  177. package/dist/components/fields/Picker/Picker.js +1 -1
  178. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  179. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  180. package/dist/components/fields/RadioGroup/context.js +1 -1
  181. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  182. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  183. package/dist/components/fields/Select/Select.js +1 -1
  184. package/dist/components/fields/Slider/Gradation.js +1 -1
  185. package/dist/components/fields/Slider/HueSlider.js +1 -1
  186. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  187. package/dist/components/fields/Slider/Slider.js +1 -1
  188. package/dist/components/fields/Slider/SliderBase.js +1 -1
  189. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  190. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  191. package/dist/components/fields/Slider/elements.js +1 -1
  192. package/dist/components/fields/Slider/index.js +1 -1
  193. package/dist/components/fields/Switch/Switch.js +1 -1
  194. package/dist/components/fields/TextArea/TextArea.js +1 -1
  195. package/dist/components/fields/TextInput/TextInput.js +1 -1
  196. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  197. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  198. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  199. package/dist/components/fields/color/ColorPanel.js +1 -1
  200. package/dist/components/fields/color/channels.js +1 -1
  201. package/dist/components/fields/color/color.js +1 -1
  202. package/dist/components/fields/color/context.js +1 -1
  203. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  204. package/dist/components/form/Form/Field.js +1 -1
  205. package/dist/components/form/Form/Form.js +1 -1
  206. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  207. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  208. package/dist/components/form/Form/SubmitError.js +1 -1
  209. package/dist/components/form/Form/index.js +1 -1
  210. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  211. package/dist/components/form/Form/use-field/use-field.js +1 -1
  212. package/dist/components/form/Form/use-form.js +1 -1
  213. package/dist/components/form/Form/validation.js +1 -1
  214. package/dist/components/form/Label.js +1 -1
  215. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  216. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  217. package/dist/components/form/validation/use-validation-props.js +1 -1
  218. package/dist/components/form/wrapper.js +1 -1
  219. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  220. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  221. package/dist/components/layout/Board/Board.d.ts +11 -5
  222. package/dist/components/layout/Board/Board.js +15 -7
  223. package/dist/components/layout/Board/Board.js.map +1 -1
  224. package/dist/components/layout/Board/BoardProvider.js +1 -1
  225. package/dist/components/layout/Board/BoardResponsive.d.ts +6 -3
  226. package/dist/components/layout/Board/BoardResponsive.js +3 -3
  227. package/dist/components/layout/Board/BoardResponsive.js.map +1 -1
  228. package/dist/components/layout/Board/Widget.d.ts +29 -1
  229. package/dist/components/layout/Board/Widget.js +5 -2
  230. package/dist/components/layout/Board/Widget.js.map +1 -1
  231. package/dist/components/layout/Board/WidgetHost.js +67 -17
  232. package/dist/components/layout/Board/WidgetHost.js.map +1 -1
  233. package/dist/components/layout/Board/board-context.js +1 -1
  234. package/dist/components/layout/Board/board-context.js.map +1 -1
  235. package/dist/components/layout/Board/board-store.js +2 -2
  236. package/dist/components/layout/Board/board-store.js.map +1 -1
  237. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  238. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  239. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  240. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  241. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  242. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  243. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  244. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  245. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  246. package/dist/components/layout/Board/index.d.ts +2 -1
  247. package/dist/components/layout/Board/index.js +1 -1
  248. package/dist/components/layout/Board/index.js.map +1 -1
  249. package/dist/components/layout/Board/responsive-utils.js +1 -1
  250. package/dist/components/layout/Board/use-board-layout.d.ts +26 -0
  251. package/dist/components/layout/Board/use-board-layout.js +4 -4
  252. package/dist/components/layout/Board/use-board-layout.js.map +1 -1
  253. package/dist/components/layout/Board/use-board-registry.js +4 -4
  254. package/dist/components/layout/Board/use-board-registry.js.map +1 -1
  255. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  256. package/dist/components/layout/Board/use-board-selection.js +1 -1
  257. package/dist/components/layout/Flex.js +1 -1
  258. package/dist/components/layout/Flow.js +1 -1
  259. package/dist/components/layout/Grid.js +1 -1
  260. package/dist/components/layout/Panel.js +1 -1
  261. package/dist/components/layout/Prefix.js +1 -1
  262. package/dist/components/layout/ResizablePanel.js +1 -1
  263. package/dist/components/layout/Space.js +1 -1
  264. package/dist/components/layout/Suffix.js +1 -1
  265. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  266. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  267. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  268. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  269. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  270. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  271. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  272. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  273. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  274. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  275. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  276. package/dist/components/navigation/Tabs/styled.js +1 -1
  277. package/dist/components/navigation/Tabs/types.js +1 -1
  278. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  279. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  280. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  281. package/dist/components/other/Calendar/Calendar.js +1 -1
  282. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  283. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  284. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  285. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  286. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  287. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  288. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  289. package/dist/components/other/Calendar/styled.js +1 -1
  290. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  291. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  292. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  293. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  294. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  295. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  296. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  297. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  298. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  299. package/dist/components/overlays/Dialog/context.js +1 -1
  300. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  301. package/dist/components/overlays/Modal/Modal.js +1 -1
  302. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  303. package/dist/components/overlays/Modal/Overlay.js +1 -1
  304. package/dist/components/overlays/Modal/Popover.js +1 -1
  305. package/dist/components/overlays/Modal/Tray.js +1 -1
  306. package/dist/components/overlays/Modal/Underlay.js +1 -1
  307. package/dist/components/overlays/Notifications/Notification.js +1 -1
  308. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  309. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  310. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  311. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  312. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  313. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  314. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  315. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  316. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  317. package/dist/components/overlays/Notifications/index.js +1 -1
  318. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  319. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  320. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  321. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  322. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  323. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  324. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  325. package/dist/components/overlays/Toast/index.js +1 -1
  326. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  327. package/dist/components/overlays/Toast/useToast.js +1 -1
  328. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  329. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  330. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  331. package/dist/components/overlays/Tooltip/context.js +1 -1
  332. package/dist/components/portal/Portal.js +1 -1
  333. package/dist/components/portal/PortalProvider.js +1 -1
  334. package/dist/components/portal/usePortal.js +1 -1
  335. package/dist/components/shared/DraggableCollection.js +1 -1
  336. package/dist/components/shared/InvalidIcon.js +1 -1
  337. package/dist/components/shared/ValidIcon.js +1 -1
  338. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  339. package/dist/components/status/Spin/Cube.js +1 -1
  340. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  341. package/dist/components/status/Spin/Spin.js +1 -1
  342. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  343. package/dist/data/item-themes.js +1 -1
  344. package/dist/data/themes.js +1 -1
  345. package/dist/eslint-plugin/defaults.generated.js +21 -1
  346. package/dist/eslint-plugin/defaults.generated.js.map +1 -1
  347. package/dist/eslint-plugin/index.js +1 -1
  348. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  349. package/dist/i18n/I18nProvider.js +1 -1
  350. package/dist/i18n/createFormatter.js +1 -1
  351. package/dist/i18n/index.js +1 -1
  352. package/dist/i18n/instance.js +1 -1
  353. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  354. package/dist/i18n/locales/en-US/uikit.js +1 -1
  355. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  356. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  357. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  358. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  359. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  360. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  361. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  362. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  363. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  364. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  365. package/dist/i18n/locales.js +1 -1
  366. package/dist/i18n/useFormatter.js +1 -1
  367. package/dist/i18n/useI18n.js +1 -1
  368. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  369. package/dist/icons/AdjustmentsIcon.js +1 -1
  370. package/dist/icons/AiIcon.js +1 -1
  371. package/dist/icons/AreaChartIcon.js +1 -1
  372. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  373. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  374. package/dist/icons/BackwardIcon.js +1 -1
  375. package/dist/icons/BarChartIcon.js +1 -1
  376. package/dist/icons/BellFilledIcon.js +1 -1
  377. package/dist/icons/BellIcon.js +1 -1
  378. package/dist/icons/BooleanIcon.js +1 -1
  379. package/dist/icons/CalendarEditIcon.js +1 -1
  380. package/dist/icons/CalendarIcon.js +1 -1
  381. package/dist/icons/CaretDownIcon.js +1 -1
  382. package/dist/icons/CaretUpIcon.js +1 -1
  383. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  384. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  385. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  386. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  387. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  388. package/dist/icons/ChartBarLineIcon.js +1 -1
  389. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  390. package/dist/icons/ChartBarStackedIcon.js +1 -1
  391. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  392. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  393. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  394. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  395. package/dist/icons/ChartBubbleIcon.js +1 -1
  396. package/dist/icons/ChartDonut2Icon.js +1 -1
  397. package/dist/icons/ChartFunnelIcon.js +1 -1
  398. package/dist/icons/ChartHeatmapIcon.js +1 -1
  399. package/dist/icons/ChartKPIIcon.js +1 -1
  400. package/dist/icons/ChartPie2Icon.js +1 -1
  401. package/dist/icons/ChartScatterIcon.js +1 -1
  402. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  403. package/dist/icons/CheckCircleIcon.js +1 -1
  404. package/dist/icons/CheckIcon.js +1 -1
  405. package/dist/icons/CircleFilledIcon.js +1 -1
  406. package/dist/icons/ClearIcon.js +1 -1
  407. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  408. package/dist/icons/CloseCircleIcon.js +1 -1
  409. package/dist/icons/CloseIcon.js +1 -1
  410. package/dist/icons/CodeIcon.js +1 -1
  411. package/dist/icons/ColumnTotalIcon.js +1 -1
  412. package/dist/icons/CopyIcon.js +1 -1
  413. package/dist/icons/CountIcon.js +1 -1
  414. package/dist/icons/CubeIcon.js +1 -1
  415. package/dist/icons/CubePauseIcon.js +1 -1
  416. package/dist/icons/CubePlayIcon.js +1 -1
  417. package/dist/icons/CurrencyDollarIcon.js +1 -1
  418. package/dist/icons/DangerIcon.js +1 -1
  419. package/dist/icons/DashboardIcon.js +1 -1
  420. package/dist/icons/DatabaseIcon.js +1 -1
  421. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  422. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  423. package/dist/icons/DirectionIcon.js +1 -1
  424. package/dist/icons/DonutIcon.js +1 -1
  425. package/dist/icons/DownIcon.js +1 -1
  426. package/dist/icons/EditIcon.js +1 -1
  427. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  428. package/dist/icons/ExclamationCircleIcon.js +1 -1
  429. package/dist/icons/ExclamationIcon.js +1 -1
  430. package/dist/icons/EyeIcon.js +1 -1
  431. package/dist/icons/EyeInvisibleIcon.js +1 -1
  432. package/dist/icons/FilterIcon.js +1 -1
  433. package/dist/icons/FolderFilledIcon.js +1 -1
  434. package/dist/icons/FolderIcon.js +1 -1
  435. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  436. package/dist/icons/FolderOpenIcon.js +1 -1
  437. package/dist/icons/ForwardIcon.js +1 -1
  438. package/dist/icons/GripVerticalIcon.js +1 -1
  439. package/dist/icons/HierarchyIcon.js +1 -1
  440. package/dist/icons/HierarchyOpenIcon.js +1 -1
  441. package/dist/icons/Icon.js +1 -1
  442. package/dist/icons/InfoCircleIcon.js +1 -1
  443. package/dist/icons/InfoIcon.js +1 -1
  444. package/dist/icons/KeyIcon.js +1 -1
  445. package/dist/icons/LeftIcon.js +1 -1
  446. package/dist/icons/LineChartIcon.js +1 -1
  447. package/dist/icons/LoadingIcon.js +1 -1
  448. package/dist/icons/LockFilledIcon.js +1 -1
  449. package/dist/icons/LockIcon.js +1 -1
  450. package/dist/icons/MoreIcon.js +1 -1
  451. package/dist/icons/NotAllowedIcon.js +1 -1
  452. package/dist/icons/Number123Icon.js +1 -1
  453. package/dist/icons/NumberIcon.js +1 -1
  454. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  455. package/dist/icons/PauseCircleIcon.js +1 -1
  456. package/dist/icons/PauseIcon.js +1 -1
  457. package/dist/icons/PercentageIcon.js +1 -1
  458. package/dist/icons/PieChartIcon.js +1 -1
  459. package/dist/icons/PipetteIcon.js +1 -1
  460. package/dist/icons/PlayCircleIcon.js +1 -1
  461. package/dist/icons/PlayIcon.js +1 -1
  462. package/dist/icons/PlusIcon.js +1 -1
  463. package/dist/icons/ProgressBarIcon.js +1 -1
  464. package/dist/icons/ReloadIcon.js +1 -1
  465. package/dist/icons/ReportIcon.js +1 -1
  466. package/dist/icons/ReturnIcon.js +1 -1
  467. package/dist/icons/RightIcon.js +1 -1
  468. package/dist/icons/RowTotalsIcon.js +1 -1
  469. package/dist/icons/SchemeIcon.js +1 -1
  470. package/dist/icons/SearchIcon.js +1 -1
  471. package/dist/icons/SemanticQueryIcon.js +1 -1
  472. package/dist/icons/SettingsIcon.js +1 -1
  473. package/dist/icons/ShieldFilledIcon.js +1 -1
  474. package/dist/icons/ShieldIcon.js +1 -1
  475. package/dist/icons/SlashIcon.js +1 -1
  476. package/dist/icons/SparklesIcon.js +1 -1
  477. package/dist/icons/SqlIcon.js +1 -1
  478. package/dist/icons/StatsIcon.js +1 -1
  479. package/dist/icons/StopIcon.js +1 -1
  480. package/dist/icons/StringIcon.js +1 -1
  481. package/dist/icons/SubtotalsIcon.js +1 -1
  482. package/dist/icons/SwitchIcon.js +1 -1
  483. package/dist/icons/TableIcon.js +1 -1
  484. package/dist/icons/ThumbsDownIcon.js +1 -1
  485. package/dist/icons/ThumbsUpIcon.js +1 -1
  486. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  487. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  488. package/dist/icons/ThunderboltIcon.js +1 -1
  489. package/dist/icons/TimeIcon.js +1 -1
  490. package/dist/icons/TrashIcon.js +1 -1
  491. package/dist/icons/UnlockIcon.js +1 -1
  492. package/dist/icons/UpIcon.js +1 -1
  493. package/dist/icons/UserGroupIcon.js +1 -1
  494. package/dist/icons/UserIcon.js +1 -1
  495. package/dist/icons/UserLockIcon.js +1 -1
  496. package/dist/icons/ViewIcon.js +1 -1
  497. package/dist/icons/WarningFilledIcon.js +1 -1
  498. package/dist/icons/WarningIcon.js +1 -1
  499. package/dist/icons/wrap-icon.js +1 -1
  500. package/dist/index.d.ts +6 -3
  501. package/dist/index.js +4 -3
  502. package/dist/index.js.map +1 -1
  503. package/dist/probe/canonicalize.js +1 -1
  504. package/dist/probe/css.js +1 -1
  505. package/dist/probe/index.js +1 -1
  506. package/dist/provider.js +1 -1
  507. package/dist/providers/TrackingProvider.js +1 -1
  508. package/dist/providers/navigationAdapter.default.js +1 -1
  509. package/dist/tokens/all-tokens.d.ts +10 -0
  510. package/dist/tokens/{index.js → all-tokens.js} +7 -25
  511. package/dist/tokens/all-tokens.js.map +1 -0
  512. package/dist/tokens/base.js +2 -1
  513. package/dist/tokens/base.js.map +1 -1
  514. package/dist/tokens/color-seed.js +1 -1
  515. package/dist/tokens/color-theme.js +1 -1
  516. package/dist/tokens/colors.js +1 -1
  517. package/dist/tokens/index.d.ts +3 -10
  518. package/dist/tokens/layout.js +1 -1
  519. package/dist/tokens/lazy-styles.js +1 -1
  520. package/dist/tokens/palette-config.js +1 -1
  521. package/dist/tokens/palette.js +1 -1
  522. package/dist/tokens/resolve.d.ts +113 -0
  523. package/dist/tokens/resolve.js +403 -0
  524. package/dist/tokens/resolve.js.map +1 -0
  525. package/dist/tokens/shadows.js +1 -1
  526. package/dist/tokens/sizes.js +1 -1
  527. package/dist/tokens/spacing.js +1 -1
  528. package/dist/tokens/typography.js +1 -1
  529. package/dist/utils/ResizeSensor.js +1 -1
  530. package/dist/utils/is-dev-env.js +1 -1
  531. package/dist/utils/modules.js +1 -1
  532. package/dist/utils/promise.js +1 -1
  533. package/dist/utils/raf.js +1 -1
  534. package/dist/utils/random.js +1 -1
  535. package/dist/utils/range.js +1 -1
  536. package/dist/utils/react/RenderCache.js +1 -1
  537. package/dist/utils/react/Slots.js +1 -1
  538. package/dist/utils/react/chain.js +1 -1
  539. package/dist/utils/react/disabledProps.js +1 -1
  540. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  541. package/dist/utils/react/index.js +1 -1
  542. package/dist/utils/react/interactions.js +1 -1
  543. package/dist/utils/react/isTextOnly.js +1 -1
  544. package/dist/utils/react/mapProps.js +1 -1
  545. package/dist/utils/react/mergeProps.js +1 -1
  546. package/dist/utils/react/nullableValue.js +1 -1
  547. package/dist/utils/react/resolveIcon.js +1 -1
  548. package/dist/utils/react/sharedStore.js +1 -1
  549. package/dist/utils/react/useBufferedValue.js +1 -1
  550. package/dist/utils/react/useCombinedRefs.js +1 -1
  551. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  552. package/dist/utils/react/useEventBus.js +1 -1
  553. package/dist/utils/react/useId.js +1 -1
  554. package/dist/utils/react/useIsDarwin.js +1 -1
  555. package/dist/utils/react/useKeySymbols.js +1 -1
  556. package/dist/utils/react/useLayoutEffect.d.ts +1 -1
  557. package/dist/utils/react/useLayoutEffect.js +1 -1
  558. package/dist/utils/react/useLocalStorage.js +1 -1
  559. package/dist/utils/react/useMergeStyles.js +1 -1
  560. package/dist/utils/react/usePopoverSync.js +1 -1
  561. package/dist/utils/react/useQaProps.js +1 -1
  562. package/dist/utils/react/useViewportSize.js +1 -1
  563. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  564. package/dist/utils/selection.js +1 -1
  565. package/dist/utils/styles.js +1 -1
  566. package/dist/utils/tree.js +1 -1
  567. package/dist/utils/warnings.js +1 -1
  568. package/dist/version.js +3 -3
  569. package/docs/Colors.md +16 -40
  570. package/docs/ComplexLayout.md +8 -0
  571. package/docs/CreateComponent.md +15 -8
  572. package/docs/Introduction.md +15 -36
  573. package/docs/RenderCache.md +8 -6
  574. package/docs/Theming.md +164 -497
  575. package/docs/Usage.md +129 -138
  576. package/docs/Utilities.md +2 -2
  577. package/docs/components/CollectionItem.md +1 -0
  578. package/docs/components/actions/Banner.md +1 -0
  579. package/docs/components/actions/Button.md +8 -36
  580. package/docs/components/actions/ButtonSplit.md +2 -0
  581. package/docs/components/actions/CommandMenu.md +8 -8
  582. package/docs/components/actions/ItemButton.md +6 -20
  583. package/docs/components/actions/Link.md +10 -5
  584. package/docs/components/actions/Menu.md +24 -11
  585. package/docs/components/actions/MenuTrigger.md +3 -12
  586. package/docs/components/actions/use-anchored-menu.md +5 -5
  587. package/docs/components/actions/use-context-menu.md +11 -7
  588. package/docs/components/content/Badge.md +3 -0
  589. package/docs/components/content/HotKeys.md +21 -14
  590. package/docs/components/content/InlineInput.md +14 -14
  591. package/docs/components/content/Item.md +25 -17
  592. package/docs/components/content/ItemCard.md +1 -0
  593. package/docs/components/content/Layout.md +12 -1
  594. package/docs/components/content/PrismCode.md +13 -18
  595. package/docs/components/content/Tag.md +1 -1
  596. package/docs/components/content/TextItem.md +5 -3
  597. package/docs/components/content/Tree.md +69 -154
  598. package/docs/components/data/DataTable.md +56 -168
  599. package/docs/components/data/ItemTable.md +182 -485
  600. package/docs/components/fields/Checkbox.md +2 -0
  601. package/docs/components/fields/ColorInput.md +38 -79
  602. package/docs/components/fields/ColorPicker.md +17 -39
  603. package/docs/components/fields/ColorSwatch.md +11 -30
  604. package/docs/components/fields/ColorSwatchGroup.md +18 -42
  605. package/docs/components/fields/ComboBox.md +13 -1
  606. package/docs/components/fields/CommandTextArea.md +10 -37
  607. package/docs/components/fields/DatePicker.md +3 -0
  608. package/docs/components/fields/FileInput.md +3 -0
  609. package/docs/components/fields/FilterListBox.md +34 -14
  610. package/docs/components/fields/FilterPicker.md +33 -16
  611. package/docs/components/fields/HueSlider.md +5 -5
  612. package/docs/components/fields/ListBox.md +35 -9
  613. package/docs/components/fields/NumberInput.md +3 -0
  614. package/docs/components/fields/PasswordInput.md +3 -0
  615. package/docs/components/fields/PeriodPicker.md +7 -17
  616. package/docs/components/fields/Picker.md +54 -29
  617. package/docs/components/fields/RadioGroup.md +13 -5
  618. package/docs/components/fields/SearchComboBox.md +3 -0
  619. package/docs/components/fields/SearchInput.md +4 -2
  620. package/docs/components/fields/Select.md +23 -13
  621. package/docs/components/fields/Switch.md +3 -0
  622. package/docs/components/fields/TextInput.md +3 -0
  623. package/docs/components/fields/TextInputMapper.md +1 -2
  624. package/docs/components/form/Field.md +5 -2
  625. package/docs/components/form/Form.md +5 -0
  626. package/docs/components/form/FormInstance.md +1 -1
  627. package/docs/components/helpers/DisplayTransition.md +10 -6
  628. package/docs/components/helpers/IconSwitch.md +1 -0
  629. package/docs/components/layout/Board.md +79 -213
  630. package/docs/components/navigation/Pagination.md +36 -75
  631. package/docs/components/navigation/Tabs.md +3 -15
  632. package/docs/components/other/Calendar.md +22 -39
  633. package/docs/components/other/CubeLogo.md +1 -1
  634. package/docs/components/overlays/Dialog.md +3 -0
  635. package/docs/components/overlays/DialogContainer.md +2 -0
  636. package/docs/components/overlays/DialogForm.md +6 -2
  637. package/docs/components/overlays/DialogTrigger.md +4 -2
  638. package/docs/components/overlays/Notifications.md +7 -0
  639. package/docs/components/overlays/Toast.md +12 -8
  640. package/docs/components/overlays/Tooltip.md +7 -3
  641. package/docs/components/overlays/UseDialogContainer.md +16 -10
  642. package/docs/components/status/LoadingAnimation.md +3 -9
  643. package/docs/tasty/configuration.md +195 -15
  644. package/docs/tasty/dsl.md +40 -5
  645. package/docs/tasty/injector.md +11 -0
  646. package/docs/tasty/methodology.md +1 -1
  647. package/docs/tasty/pipeline.md +1 -4
  648. package/docs/tasty/react-api.md +1 -1
  649. package/docs/tasty/styles.md +8 -1
  650. package/package.json +4 -4
  651. package/dist/tokens/index.js.map +0 -1
@@ -183,34 +183,20 @@ Actions automatically inherit the parent button's `type` prop and adjust their s
183
183
 
184
184
  ## Behaviour Inside Popovers
185
185
 
186
- Like `Button`, an `ItemButton` press inside an open popover **dismisses
187
- that popover** by default — popovers are transient surfaces and any action
188
- inside them should close them. Modals/trays/fullscreen Dialogs are not
189
- affected.
186
+ Like `Button`, an `ItemButton` press inside an open popover **dismisses that popover** by default — popovers are transient surfaces and any action inside them should close them. Modals/trays/fullscreen Dialogs are not affected.
190
187
 
191
188
  ### Opt-outs
192
189
 
193
- - **Automatic for popover triggers** — `MenuTrigger`, `DialogTrigger
194
- type="popover"`, and the picker components (`FilterPicker`, `Picker`,
195
- `ComboBox`, `Select`) mark their trigger ItemButtons with
196
- `data-popover-trigger` so they don't dismiss the popover they themselves
197
- live in.
198
- - **Manual via `data-popover-keep`** — add to the ItemButton (toggle) or
199
- any ancestor (whole subtree):
190
+ - **Automatic for popover triggers** — `MenuTrigger`, `DialogTrigger type="popover"`, and the picker components (`FilterPicker`, `Picker`, `ComboBox`, `Select`) mark their trigger ItemButtons with `data-popover-trigger` so they don't dismiss the popover they themselves live in.
191
+ - **Manual via `data-popover-keep`** add to the ItemButton (toggle) or any ancestor (whole subtree):
200
192
  ```jsx
201
193
  <ItemButton data-popover-keep onPress={() => setMode((m) => !m)}>
202
194
  Toggle Mode
203
195
  </ItemButton>
204
196
  ```
205
- - **Custom non-Cube triggers** — call `useDismissParentPopover()` directly
206
- if you build a control on top of something other than `Button` /
207
- `ItemButton`.
208
-
209
- The dismiss is dispatched via the EventBus, which defers with `setTimeout(0)`
210
- — so synchronous `onPress` handlers (and the React state updates they
211
- trigger) flush BEFORE the popover closes. This makes the "open a hoisted
212
- modal from a popover footer" pattern work without flicker: the modal mounts
213
- first, then the popover closes behind it.
197
+ - **Custom non-Cube triggers** — call `useDismissParentPopover()` directly if you build a control on top of something other than `Button` / `ItemButton`.
198
+
199
+ The dismiss is dispatched via the EventBus, which defers with `setTimeout(0)` — so synchronous `onPress` handlers (and the React state updates they trigger) flush BEFORE the popover closes. This makes the "open a hoisted modal from a popover footer" pattern work without flicker: the modal mounts first, then the popover closes behind it.
214
200
 
215
201
  ## Best Practices
216
202
 
@@ -27,6 +27,7 @@ Supports [Base properties](../../BaseProperties.md)
27
27
  Customizes the root element of the component.
28
28
 
29
29
  Sub-elements:
30
+
30
31
  - `ButtonIcon` – wrapper around `icon` and `rightIcon` when used.
31
32
 
32
33
  ### Style Properties
@@ -69,6 +70,7 @@ These properties allow direct style application without using the `styles` prop:
69
70
  ```
70
71
 
71
72
  Notes:
73
+
72
74
  - Adds `target="_blank"` and `rel="noopener noreferrer"` automatically.
73
75
  - Cmd/Ctrl/Shift + click also opens in a new tab, like a native link.
74
76
 
@@ -101,11 +103,13 @@ Notes:
101
103
  ```
102
104
 
103
105
  Accepted object shape:
106
+
104
107
  ```ts
105
108
  { pathname?: string; search?: string; hash?: string }
106
109
  ```
107
110
 
108
111
  Notes:
112
+
109
113
  - `search` and `hash` are auto-prefixed with `?` and `#` if needed
110
114
  - `pathname` can be relative (e.g., `../parent`) or absolute (e.g., `/root`)
111
115
  - Works with `!` and `@` prefixes when passed as strings
@@ -124,6 +128,7 @@ Notes:
124
128
  ```
125
129
 
126
130
  Behavior:
131
+
127
132
  - Uses `navigate(delta)` from the navigation adapter with overload signature
128
133
  - The default adapter calls `window.history.go(delta)`
129
134
 
@@ -217,6 +222,7 @@ export function App() {
217
222
  ```
218
223
 
219
224
  Default adapter behavior:
225
+
220
226
  - String/object navigation uses `window.location.assign(href)`
221
227
  - History navigation uses `window.history.go(delta)`
222
228
  - `!` prefix opens resolved URLs in a new tab
@@ -230,10 +236,10 @@ Default adapter behavior:
230
236
  Control navigation behavior via the `navigationOptions` prop:
231
237
 
232
238
  ```jsx
233
- <Link
239
+ <Link
234
240
  to="/search"
235
- navigationOptions={{
236
- replace: true,
241
+ navigationOptions={{
242
+ replace: true,
237
243
  state: { from: 'homepage' },
238
244
  relative: 'path',
239
245
  preventScrollReset: true
@@ -246,7 +252,7 @@ Control navigation behavior via the `navigationOptions` prop:
246
252
  ### Available options
247
253
 
248
254
  - `replace`: Replace current history entry instead of pushing a new one
249
- - `state`: Navigation state data (router-specific)
255
+ - `state`: Navigation state data (router-specific)
250
256
  - `relative`: How relative paths are resolved (`'route'` | `'path'`)
251
257
  - `preventScrollReset`: Prevent scroll reset on navigation
252
258
 
@@ -326,4 +332,3 @@ These options are passed to the router's `navigate` function and have no effect
326
332
  ## Related Components
327
333
 
328
334
  - [Button](./Button.md) – Action component with multiple visual styles, including `type="link"`.
329
-
@@ -62,6 +62,7 @@ Supports [Base properties](../../BaseProperties.md)
62
62
  Customizes the root menu container element.
63
63
 
64
64
  **Sub-elements:**
65
+
65
66
  - `Header` - Optional header element at the top of the menu
66
67
  - `Divider` - Separator elements between sections
67
68
 
@@ -70,14 +71,17 @@ Customizes the root menu container element.
70
71
  Customizes individual menu items.
71
72
 
72
73
  **Sub-elements:**
74
+
73
75
  - `Icon` - Icon element within menu items
74
76
  - `Text` - Main text content of menu items
75
77
  - `Description` - Secondary text content for items with descriptions
78
+
76
79
  #### sectionStyles
77
80
 
78
81
  Customizes section container elements.
79
82
 
80
83
  **Sub-elements:**
84
+
81
85
  - `SectionHeading` - Section title/heading element
82
86
 
83
87
  #### sectionHeadingStyles
@@ -117,6 +121,7 @@ The `mods` property accepts the following modifiers you can override:
117
121
  - **`selectedKeys`** `string[]` — Currently selected keys (controlled)
118
122
  - **`defaultSelectedKeys`** `string[]` — Initially selected keys (uncontrolled)
119
123
  - **`onSelectionChange`** `(keys: string[]) => void` — Handler for selection changes
124
+
120
125
  ### State Properties
121
126
 
122
127
  - **`disabledKeys`** `Iterable<Key>` — Keys of disabled items
@@ -167,16 +172,16 @@ For detailed information about all available item properties, see [Item document
167
172
 
168
173
  ```jsx
169
174
  <Menu>
170
- <Menu.Item
171
- key="save"
175
+ <Menu.Item
176
+ key="save"
172
177
  icon={<IconSave />}
173
178
  hotkeys="cmd+s"
174
179
  description="Save the current document"
175
180
  >
176
181
  Save
177
182
  </Menu.Item>
178
- <Menu.Item
179
- key="export"
183
+ <Menu.Item
184
+ key="export"
180
185
  icon={<IconExport />}
181
186
  suffix="PDF"
182
187
  tooltip="Export as PDF file"
@@ -215,6 +220,7 @@ For detailed information about all available item properties, see [Item document
215
220
  ## Selection Modes
216
221
 
217
222
  ### None (Default)
223
+
218
224
  Items are not selectable and only trigger `onAction` when activated.
219
225
 
220
226
  ```jsx
@@ -225,6 +231,7 @@ Items are not selectable and only trigger `onAction` when activated.
225
231
  ```
226
232
 
227
233
  ### Single Selection
234
+
228
235
  Only one item can be selected at a time.
229
236
 
230
237
  ```jsx
@@ -235,6 +242,7 @@ Only one item can be selected at a time.
235
242
  ```
236
243
 
237
244
  ### Multiple Selection
245
+
238
246
  Multiple items can be selected simultaneously.
239
247
 
240
248
  ```jsx
@@ -309,8 +317,8 @@ const items = [
309
317
  <Menu.Item key="copy" tooltip="Copy selected text">
310
318
  Copy
311
319
  </Menu.Item>
312
- <Menu.Item
313
- key="paste"
320
+ <Menu.Item
321
+ key="paste"
314
322
  tooltip={{ title: "Paste from clipboard", placement: "left" }}
315
323
  >
316
324
  Paste
@@ -324,7 +332,7 @@ const items = [
324
332
  <Menu onAction={(key) => console.log(key)}>
325
333
  <Menu.Item key="copy">Copy</Menu.Item>
326
334
  <Menu.Item key="paste">Paste</Menu.Item>
327
-
335
+
328
336
  <Menu.SubMenuTrigger>
329
337
  <Menu.Item key="share">Share</Menu.Item>
330
338
  <Menu onAction={(key) => console.log(key)}>
@@ -333,7 +341,7 @@ const items = [
333
341
  <Menu.Item key="share-sms">SMS</Menu.Item>
334
342
  </Menu>
335
343
  </Menu.SubMenuTrigger>
336
-
344
+
337
345
  <Menu.Item key="delete">Delete</Menu.Item>
338
346
  </Menu>
339
347
  ```
@@ -343,13 +351,13 @@ const items = [
343
351
  ```jsx
344
352
  <Menu onAction={(key) => console.log(key)}>
345
353
  <Menu.Item key="new">New File</Menu.Item>
346
-
354
+
347
355
  <Menu.SubMenuTrigger>
348
356
  <Menu.Item key="export">Export</Menu.Item>
349
357
  <Menu onAction={(key) => console.log(key)}>
350
358
  <Menu.Item key="export-pdf">Export as PDF</Menu.Item>
351
359
  <Menu.Item key="export-image">Export as Image</Menu.Item>
352
-
360
+
353
361
  <Menu.SubMenuTrigger>
354
362
  <Menu.Item key="export-formats">More formats</Menu.Item>
355
363
  <Menu onAction={(key) => console.log(key)}>
@@ -368,7 +376,7 @@ const items = [
368
376
  ```jsx
369
377
  <Menu onAction={(key) => console.log(key)}>
370
378
  <Menu.Item key="copy">Copy</Menu.Item>
371
-
379
+
372
380
  <Menu.SubMenuTrigger>
373
381
  <Menu.Item key="settings">Settings</Menu.Item>
374
382
  <Menu onAction={(key) => console.log(key)}>
@@ -418,12 +426,14 @@ const items = [
418
426
  ## Best Practices
419
427
 
420
428
  1. **Clear Labels**: Use descriptive, action-oriented labels
429
+
421
430
  ```jsx
422
431
  <Menu.Item key="save">Save Document</Menu.Item> // Good
423
432
  <Menu.Item key="save">Save</Menu.Item> // Less clear
424
433
  ```
425
434
 
426
435
  2. **Logical Grouping**: Group related actions using sections
436
+
427
437
  ```jsx
428
438
  <Menu.Section title="File Operations">
429
439
  <Menu.Item key="new">New</Menu.Item>
@@ -432,16 +442,19 @@ const items = [
432
442
  ```
433
443
 
434
444
  3. **Keyboard Shortcuts**: Include shortcuts for common actions
445
+
435
446
  ```jsx
436
447
  <Menu.Item key="copy" hotkeys="Ctrl+C">Copy</Menu.Item>
437
448
  ```
438
449
 
439
450
  4. **Appropriate Selection**: Choose the right selection mode
451
+
440
452
  - Use `selectionMode="none"` for action menus
441
453
  - Use `selectionMode="single"` for mutually exclusive options
442
454
  - Use `selectionMode="multiple"` for independent toggles
443
455
 
444
456
  5. **Disabled States**: Clearly indicate unavailable actions
457
+
445
458
  ```jsx
446
459
  <Menu disabledKeys={['paste']}>
447
460
  <Menu.Item key="paste">Paste</Menu.Item>
@@ -41,10 +41,7 @@ These properties allow direct style application without using the `styles` prop:
41
41
 
42
42
  ## Focus restoration
43
43
 
44
- When the menu closes, focus returns to the trigger — **unless the action that
45
- closed it moved focus somewhere else**. An item whose action opens a panel, a
46
- dialog or an inline editor just focuses that surface; a single `focus()` call
47
- from a mount effect is enough, and the menu leaves it alone:
44
+ When the menu closes, focus returns to the trigger — **unless the action that closed it moved focus somewhere else**. An item whose action opens a panel, a dialog or an inline editor just focuses that surface; a single `focus()` call from a mount effect is enough, and the menu leaves it alone:
48
45
 
49
46
  ```jsx
50
47
  function Panel() {
@@ -70,15 +67,9 @@ function Panel() {
70
67
  </MenuTrigger>;
71
68
  ```
72
69
 
73
- Focusing the surface's own container rather than its first tabbable child
74
- matters when a header carries a close button — `<FocusScope autoFocus>` would
75
- land the user on ✕, with <kbd>Enter</kbd> already meaning "close the thing that
76
- just opened".
70
+ Focusing the surface's own container rather than its first tabbable child matters when a header carries a close button — `<FocusScope autoFocus>` would land the user on ✕, with <kbd>Enter</kbd> already meaning "close the thing that just opened".
77
71
 
78
- `shouldRestoreFocus={false}` covers the remaining case: a surface that claims
79
- focus *later* than the menu's restore — after an async load, an entry
80
- animation, or a `requestAnimationFrame`. Without it the trigger takes focus
81
- first and the user sees a flash.
72
+ `shouldRestoreFocus={false}` covers the remaining case: a surface that claims focus _later_ than the menu's restore — after an async load, an entry animation, or a `requestAnimationFrame`. Without it the trigger takes focus first and the user sees a flash.
82
73
 
83
74
  ```jsx
84
75
  <MenuTrigger shouldRestoreFocus={false}>
@@ -68,7 +68,7 @@ function useAnchoredMenu&lt;P, T = ComponentProps&lt;typeof MenuTrigger&gt;&gt;(
68
68
  The hook provides full programmatic control over the menu:
69
69
 
70
70
  - **`open()`** opens the menu with provided props
71
- - **`update()`** updates menu props without closing/reopening
71
+ - **`update()`** updates the runtime menu props without closing/reopening — only needed for props the caller owns, since `defaultMenuProps` are re-read on every render
72
72
  - **`close()`** closes the menu
73
73
  - **No automatic triggering** - designed for manual control via events or state
74
74
 
@@ -83,8 +83,8 @@ Positions menus relative to the anchor element:
83
83
 
84
84
  ### Props Merging Strategy
85
85
 
86
- - **`defaultMenuProps`** - Used as base props for the menu component
87
- - **Runtime props** (via `open()`/`update()`) - Merged with defaults, taking precedence
86
+ - **`defaultMenuProps`** - Used as base props for the menu component, and re-read on every render: changing them updates a menu that is already open, so content kept there (items, `isDisabled`, `disabledKeys`) stays current without an `update()` call
87
+ - **Runtime props** (via `open()`/`update()`) - Merged over the defaults, taking precedence, and held until the next `open()`/`update()`
88
88
  - **Trigger props** - Merged with `defaultTriggerProps` for positioning control
89
89
 
90
90
  ### Menu Synchronization
@@ -103,7 +103,7 @@ import { IconDotsVertical } from '@tabler/icons-react';
103
103
 
104
104
  function TabWithMultipleTriggers() {
105
105
  const menu = useAnchoredMenu(
106
- Menu,
106
+ Menu,
107
107
  {
108
108
  placement: 'top end',
109
109
  },
@@ -206,7 +206,7 @@ The hook positions the menu by:
206
206
 
207
207
  ---
208
208
 
209
- *Last updated: 2025-01-16*
209
+ _Last updated: 2025-01-16_
210
210
 
211
211
  ### Style Properties
212
212
 
@@ -29,7 +29,8 @@ function useContextMenu<P, T = ComponentProps<typeof MenuTrigger>>(
29
29
 
30
30
  /**
31
31
  * Programmatically opens the menu at the specified coordinates or element center.
32
- * Runtime props are merged with defaultMenuProps (runtime props take precedence).
32
+ * Runtime props are merged with the current defaultMenuProps on every render
33
+ * (runtime props take precedence).
33
34
  *
34
35
  * @param props - Props to pass to the menu component (optional, defaults to defaultMenuProps)
35
36
  * @param triggerProps - Additional props for MenuTrigger (merged with defaultTriggerProps)
@@ -42,8 +43,8 @@ function useContextMenu<P, T = ComponentProps<typeof MenuTrigger>>(
42
43
  ): void;
43
44
 
44
45
  /**
45
- * Updates the props of the currently open menu without repositioning.
46
- * Props are merged with defaultMenuProps.
46
+ * Updates the runtime props of the currently open menu without repositioning.
47
+ * Props are merged over the current defaultMenuProps.
47
48
  */
48
49
  update(props: P, triggerProps?: T): void;
49
50
 
@@ -83,6 +84,7 @@ The hook automatically binds `onContextMenu` events to the `targetRef` element:
83
84
  `useContextMenu` supports two positioning modes:
84
85
 
85
86
  1. **Coordinate-Based Positioning** (when event is provided):
87
+
86
88
  - Creates an **invisible anchor element** at click coordinates
87
89
  - Supports **collision detection** and automatic repositioning
88
90
  - **Clamps coordinates** to stay within the container bounds
@@ -97,8 +99,8 @@ The hook automatically binds `onContextMenu` events to the `targetRef` element:
97
99
 
98
100
  The hook provides flexible prop management:
99
101
 
100
- - **`defaultMenuProps`** - Used for automatic right-click opening
101
- - **Runtime props** (via `open()`) - Merged with defaults, taking precedence
102
+ - **`defaultMenuProps`** - Used for automatic right-click opening, and re-read on every render: changing them updates a menu that is already open, so content kept there (items, `isDisabled`, `disabledKeys`) stays current without an `update()` call
103
+ - **Runtime props** (via `open()`/`update()`) - Merged over the defaults, taking precedence, and held until the next `open()`/`update()`
102
104
  - **Trigger props** - Merged with `defaultTriggerProps` for positioning control
103
105
 
104
106
  ### Menu Synchronization
@@ -122,7 +124,7 @@ function FileItem({ file }) {
122
124
  const { targetRef, rendered } = useContextMenu(
123
125
  Menu,
124
126
  { placement: 'bottom start' }, // trigger props
125
- {
127
+ {
126
128
  onAction: handleAction,
127
129
  children: (
128
130
  <>
@@ -162,6 +164,7 @@ function FileItem({ file }) {
162
164
  The hook calculates menu position differently based on whether an event is provided:
163
165
 
164
166
  **With Event (Coordinate-Based):**
167
+
165
168
  1. **Getting viewport coordinates** from the pointer event
166
169
  2. **Converting to container-relative coordinates** accounting for borders and scroll
167
170
  3. **Clamping to container bounds** to ensure the menu stays visible
@@ -169,6 +172,7 @@ The hook calculates menu position differently based on whether an event is provi
169
172
  5. **Delegating to MenuTrigger** for collision detection and final positioning
170
173
 
171
174
  **Without Event (Center-Based):**
175
+
172
176
  1. **Calculating element center** using `clientWidth/2` and `clientHeight/2`
173
177
  2. **Accounting for scroll offset** to position relative to content area
174
178
  3. **Clamping to container bounds** to ensure proper positioning
@@ -215,7 +219,7 @@ The `{rendered}` element contains the invisible anchor and MenuTrigger component
215
219
 
216
220
  ---
217
221
 
218
- *Last updated: 2025-01-16*
222
+ _Last updated: 2025-01-16_
219
223
 
220
224
  ### Style Properties
221
225
 
@@ -56,6 +56,7 @@ Supports [Base properties](../../BaseProperties.md)
56
56
  Badges support multiple themes for different semantic meanings:
57
57
 
58
58
  Available themes:
59
+
59
60
  - **Special** (default): Purple background, highlighted features
60
61
  - **Warning**: Yellow/amber background, caution or attention needed
61
62
  - **Note**: Violet background, informational content
@@ -68,6 +69,7 @@ Available themes:
68
69
  Badges commonly display numerical counts:
69
70
 
70
71
  Best practices for numbers:
72
+
71
73
  - Use single digits for small counts (1-9)
72
74
  - Show exact numbers up to 99
73
75
  - Consider "99+" format for counts over 99
@@ -84,6 +86,7 @@ Best practices for numbers:
84
86
  Short text labels work well in badges:
85
87
 
86
88
  Guidelines for text badges:
89
+
87
90
  - Keep text to 2-4 characters maximum
88
91
  - Use uppercase for better readability
89
92
  - Common patterns: "NEW", "HOT", "BETA", "PRO"
@@ -30,6 +30,7 @@ Supports [Base properties](../../BaseProperties.md)
30
30
  Customizes the root element of the component (Space component).
31
31
 
32
32
  **Sub-elements:**
33
+
33
34
  - None - The component uses Tag components for individual keys
34
35
 
35
36
  ### Style Properties
@@ -112,7 +113,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
112
113
  ### With Description
113
114
 
114
115
  ```jsx
115
- <HotKeys
116
+ <HotKeys
116
117
  aria-label="Command palette"
117
118
  aria-description="Opens the command palette for quick actions"
118
119
  >
@@ -123,7 +124,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
123
124
  ### Alternative Shortcuts
124
125
 
125
126
  ```jsx
126
- <HotKeys
127
+ <HotKeys
127
128
  aria-label="Search"
128
129
  aria-description="Opens the search dialog"
129
130
  >
@@ -134,7 +135,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
134
135
  ### Complex Alternatives
135
136
 
136
137
  ```jsx
137
- <HotKeys
138
+ <HotKeys
138
139
  aria-label="Quick actions"
139
140
  aria-description="Multiple ways to access quick actions menu"
140
141
  >
@@ -145,7 +146,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
145
146
  ### Function Keys
146
147
 
147
148
  ```jsx
148
- <HotKeys
149
+ <HotKeys
149
150
  aria-label="Help functions"
150
151
  aria-description="Function keys for help, rename, and search"
151
152
  >
@@ -156,7 +157,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
156
157
  ### Arrow Keys
157
158
 
158
159
  ```jsx
159
- <HotKeys
160
+ <HotKeys
160
161
  aria-label="Navigation"
161
162
  aria-description="Arrow keys for directional navigation"
162
163
  >
@@ -167,7 +168,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
167
168
  ### Special Keys
168
169
 
169
170
  ```jsx
170
- <HotKeys
171
+ <HotKeys
171
172
  aria-label="Common actions"
172
173
  aria-description="Frequently used special keys"
173
174
  >
@@ -178,7 +179,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
178
179
  ### Platform-Specific Keys
179
180
 
180
181
  ```jsx
181
- <HotKeys
182
+ <HotKeys
182
183
  aria-label="Copy"
183
184
  aria-description="Copy selected content to clipboard"
184
185
  >
@@ -189,7 +190,7 @@ The inherit type is particularly useful when the HotKeys component needs to matc
189
190
  ### With Custom Styles
190
191
 
191
192
  ```jsx
192
- <HotKeys
193
+ <HotKeys
193
194
  aria-label="Styled shortcuts"
194
195
  aria-description="Custom styled keyboard shortcuts"
195
196
  styles={{
@@ -263,9 +264,10 @@ The HotKeys component is designed with comprehensive accessibility support:
263
264
  ## Best Practices
264
265
 
265
266
  1. **Provide meaningful labels**: Always use the `aria-label` prop to describe what the shortcuts do
267
+
266
268
  ```jsx
267
- <HotKeys
268
- aria-label="Search"
269
+ <HotKeys
270
+ aria-label="Search"
269
271
  aria-description="Opens the search dialog"
270
272
  >
271
273
  mod+k
@@ -273,14 +275,16 @@ The HotKeys component is designed with comprehensive accessibility support:
273
275
  ```
274
276
 
275
277
  2. **Use platform-appropriate modifiers**: Use `mod` instead of `ctrl` for cross-platform shortcuts
278
+
276
279
  ```jsx
277
280
  <HotKeys aria-label="Search">mod+k</HotKeys> // Good: Works on both Mac and PC
278
281
  <HotKeys aria-label="Search">ctrl+k</HotKeys> // Limited: PC-specific
279
282
  ```
280
283
 
281
284
  3. **Group related alternatives**: Separate alternative shortcuts with commas
285
+
282
286
  ```jsx
283
- <HotKeys
287
+ <HotKeys
284
288
  aria-label="Search"
285
289
  aria-description="Opens search dialog"
286
290
  >
@@ -289,8 +293,9 @@ The HotKeys component is designed with comprehensive accessibility support:
289
293
  ```
290
294
 
291
295
  4. **Provide descriptions for complex shortcuts**: Use the `aria-description` prop for clarity
296
+
292
297
  ```jsx
293
- <HotKeys
298
+ <HotKeys
294
299
  aria-label="Command palette"
295
300
  aria-description="Opens the command palette for quick actions"
296
301
  >
@@ -299,12 +304,14 @@ The HotKeys component is designed with comprehensive accessibility support:
299
304
  ```
300
305
 
301
306
  5. **Use clear, recognizable keys**: Stick to standard key names
307
+
302
308
  ```jsx
303
309
  <HotKeys aria-label="Confirm">enter, space</HotKeys> // Good: Clear key names
304
310
  <HotKeys aria-label="Confirm">ret, spc</HotKeys> // Avoid: Unclear abbreviations
305
311
  ```
306
312
 
307
313
  6. **Keep combinations reasonable**: Avoid overly complex key combinations
314
+
308
315
  ```jsx
309
316
  <HotKeys aria-label="Command palette">mod+shift+p</HotKeys> // Good: Reasonable complexity
310
317
  <HotKeys aria-label="Command palette">mod+ctrl+shift+alt+p</HotKeys> // Avoid: Too complex
@@ -312,7 +319,7 @@ The HotKeys component is designed with comprehensive accessibility support:
312
319
 
313
320
  7. **Consider context**: Provide context about when and where shortcuts are available
314
321
  ```jsx
315
- <HotKeys
322
+ <HotKeys
316
323
  aria-label="Cancel"
317
324
  aria-description="Cancel current action and close dialog"
318
325
  >
@@ -342,4 +349,4 @@ This ensures users see familiar symbols regardless of their operating system.
342
349
  - Consider adding animation for key press feedback
343
350
  - Support for custom key symbol mappings
344
351
  - Integration with system accessibility preferences
345
- - Support for voice command alternatives
352
+ - Support for voice command alternatives
@@ -87,15 +87,15 @@ These properties allow direct style application without using the `styles` prop:
87
87
 
88
88
  The `mods` property is automatically populated. Consumers can target these in their own `styles`:
89
89
 
90
- | Modifier | Type | Description |
91
- | ---------- | --------- | --------------------------------------------------------------------------------- |
92
- | editing | `boolean` | Currently in edit mode |
93
- | editable | `boolean` | `editTrigger` is `dblclick` or `click` and not disabled/read-only |
94
- | focused | `boolean` | The component is focused — keyboard-focused on the display, **or** while editing. Always `false` when `keyboardActivation={false}` (the host owns the focus indication). |
95
- | disabled | `boolean` | `isDisabled` is `true` |
96
- | read-only | `boolean` | `isReadOnly` is `true` |
97
- | styled | `boolean` | `isStyled` is `true` |
98
- | empty | `boolean` | The committed value is empty |
90
+ | Modifier | Type | Description |
91
+ | --- | --- | --- |
92
+ | editing | `boolean` | Currently in edit mode |
93
+ | editable | `boolean` | `editTrigger` is `dblclick` or `click` and not disabled/read-only |
94
+ | focused | `boolean` | The component is focused — keyboard-focused on the display, **or** while editing. Always `false` when `keyboardActivation={false}` (the host owns the focus indication). |
95
+ | disabled | `boolean` | `isDisabled` is `true` |
96
+ | read-only | `boolean` | `isReadOnly` is `true` |
97
+ | styled | `boolean` | `isStyled` is `true` |
98
+ | empty | `boolean` | The committed value is empty |
99
99
 
100
100
  ## Examples
101
101
 
@@ -283,11 +283,11 @@ When leaving edit mode, focus is not restored automatically — the host is resp
283
283
 
284
284
  These look similar but fire under different conditions. Pick the one that matches your intent:
285
285
 
286
- | Event | Fires when | Typical use |
287
- | ----------- | ------------------------------------------------------------------------- | ---------------------------------------- |
288
- | `onChange` | The committed value is **different** from the previous value | Updating state (controlled pattern) |
289
- | `onSubmit` | The user commits (Enter / blur / `ref.stopEditing(true)`) — always fires | Side effects (server save, toasts) |
290
- | `onCancel` | Escape, empty submit (when `allowEmpty=false`), or `ref.stopEditing(false)` | Reverting UI, cleanup |
286
+ | Event | Fires when | Typical use |
287
+ | --- | --- | --- |
288
+ | `onChange` | The committed value is **different** from the previous value | Updating state (controlled pattern) |
289
+ | `onSubmit` | The user commits (Enter / blur / `ref.stopEditing(true)`) — always fires | Side effects (server save, toasts) |
290
+ | `onCancel` | Escape, empty submit (when `allowEmpty=false`), or `ref.stopEditing(false)` | Reverting UI, cleanup |
291
291
 
292
292
  ### Optimistic Display
293
293