@cube-dev/ui-kit 0.0.0-canary-448aeb3 → 0.0.0-canary-b861864

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 (585) hide show
  1. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  2. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  3. package/dist/_internal/hooks/use-event.js +1 -1
  4. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  5. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  6. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  7. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  8. package/dist/_internal/hooks/use-warn.js +1 -1
  9. package/dist/components/Block.js +1 -1
  10. package/dist/components/CollectionItem.js +1 -1
  11. package/dist/components/GlobalStyles.js +1 -1
  12. package/dist/components/GridProvider.js +1 -1
  13. package/dist/components/HiddenInput.js +1 -1
  14. package/dist/components/Root.js +1 -1
  15. package/dist/components/actions/Action/Action.js +1 -1
  16. package/dist/components/actions/Banner/Banner.js +1 -1
  17. package/dist/components/actions/Button/Button.d.ts +1 -0
  18. package/dist/components/actions/Button/Button.js +1 -1
  19. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  20. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  21. package/dist/components/actions/ButtonSplit/context.js +1 -1
  22. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  23. package/dist/components/actions/CommandMenu/styled.js +1 -1
  24. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  25. package/dist/components/actions/ItemActionContext.js +1 -1
  26. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  27. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  28. package/dist/components/actions/Link/Link.js +1 -1
  29. package/dist/components/actions/Menu/Menu.js +1 -1
  30. package/dist/components/actions/Menu/MenuItem.js +1 -1
  31. package/dist/components/actions/Menu/MenuSection.js +1 -1
  32. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  35. package/dist/components/actions/Menu/context.js +1 -1
  36. package/dist/components/actions/Menu/styled.js +1 -1
  37. package/dist/components/actions/actions-run.js +1 -1
  38. package/dist/components/actions/index.js +1 -1
  39. package/dist/components/actions/use-action.js +1 -1
  40. package/dist/components/actions/use-anchored-menu.js +1 -1
  41. package/dist/components/actions/use-context-menu.js +1 -1
  42. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  43. package/dist/components/content/Alert/Alert.js +1 -1
  44. package/dist/components/content/Alert/use-alert.js +1 -1
  45. package/dist/components/content/Avatar/Avatar.js +1 -1
  46. package/dist/components/content/Badge/Badge.js +1 -1
  47. package/dist/components/content/Card/Card.js +1 -1
  48. package/dist/components/content/Content.js +1 -1
  49. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  50. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  51. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  52. package/dist/components/content/Divider.js +1 -1
  53. package/dist/components/content/Footer.js +1 -1
  54. package/dist/components/content/Header.js +1 -1
  55. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  56. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  57. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  58. package/dist/components/content/Item/Item.js +1 -1
  59. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  60. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  61. package/dist/components/content/Layout/GridLayout.js +1 -1
  62. package/dist/components/content/Layout/Layout.js +1 -1
  63. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  64. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  65. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  66. package/dist/components/content/Layout/LayoutContent.js +1 -1
  67. package/dist/components/content/Layout/LayoutContext.js +1 -1
  68. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  69. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  70. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  71. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  72. package/dist/components/content/Layout/LayoutPane.js +1 -1
  73. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  74. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  75. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  76. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  77. package/dist/components/content/Layout/index.js +1 -1
  78. package/dist/components/content/Layout/utils.js +1 -1
  79. package/dist/components/content/Paragraph.js +1 -1
  80. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  81. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  82. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  83. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  84. package/dist/components/content/Result/Result.js +1 -1
  85. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  86. package/dist/components/content/Tag/Tag.js +1 -1
  87. package/dist/components/content/Text.d.ts +14 -14
  88. package/dist/components/content/Text.js +1 -1
  89. package/dist/components/content/TextItem/TextItem.js +1 -1
  90. package/dist/components/content/Title.js +1 -1
  91. package/dist/components/content/Tree/Tree.js +1 -1
  92. package/dist/components/content/Tree/TreeNode.js +1 -1
  93. package/dist/components/content/Tree/styled.js +1 -1
  94. package/dist/components/content/Tree/tree-index.js +1 -1
  95. package/dist/components/content/Tree/use-checkbox-tree.js +1 -1
  96. package/dist/components/content/Tree/use-load-data.js +1 -1
  97. package/dist/components/content/highlightText.js +1 -1
  98. package/dist/components/content/use-auto-tooltip.js +1 -1
  99. package/dist/components/data/DataTable/DataTable.js +1 -1
  100. package/dist/components/data/ItemTable/ItemTable.js +1 -1
  101. package/dist/components/data/ItemTable/ItemTableBulkBar.js +1 -1
  102. package/dist/components/data/ItemTable/ItemTableDragPreview.js +1 -1
  103. package/dist/components/data/ItemTable/ItemTableFooter.js +1 -1
  104. package/dist/components/data/ItemTable/ItemTableToolbar.js +1 -1
  105. package/dist/components/data/TableBase/ColumnResizer.js +1 -1
  106. package/dist/components/data/TableBase/RowCollection.js +1 -1
  107. package/dist/components/data/TableBase/TableHeaderCell.js +1 -1
  108. package/dist/components/data/TableBase/TableRow.js +1 -1
  109. package/dist/components/data/TableBase/TableView.js +1 -1
  110. package/dist/components/data/TableBase/column-menu.js +1 -1
  111. package/dist/components/data/TableBase/column-tint.js +1 -1
  112. package/dist/components/data/TableBase/row-menu.js +1 -1
  113. package/dist/components/data/TableBase/styled.d.ts +2 -1
  114. package/dist/components/data/TableBase/styled.js +1 -1
  115. package/dist/components/data/TableBase/table-tree.js +1 -1
  116. package/dist/components/data/TableBase/types.js +1 -1
  117. package/dist/components/data/TableBase/use-cell-selection.d.ts +1 -0
  118. package/dist/components/data/TableBase/use-cell-selection.js +0 -0
  119. package/dist/components/data/TableBase/use-column-order.js +1 -1
  120. package/dist/components/data/TableBase/use-container-width.js +1 -1
  121. package/dist/components/data/TableBase/use-row-move-animation.js +1 -1
  122. package/dist/components/data/TableBase/use-scrollability.js +1 -1
  123. package/dist/components/data/TableBase/use-table-columns.js +1 -1
  124. package/dist/components/data/TableBase/use-table-search.js +1 -1
  125. package/dist/components/data/TableBase/use-table-selection.js +1 -1
  126. package/dist/components/data/TableBase/use-table-sort.js +1 -1
  127. package/dist/components/data/TableBase/use-table-sorts.js +1 -1
  128. package/dist/components/data/TableBase/use-table-storage.js +1 -1
  129. package/dist/components/data/TableBase/use-table-tree-state.js +1 -1
  130. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  131. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  132. package/dist/components/fields/Checkbox/context.js +1 -1
  133. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  134. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  135. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  136. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  137. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  138. package/dist/components/fields/CommandTextArea/CommandTextArea.js +1 -1
  139. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  140. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  141. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  142. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  143. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  144. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  145. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  146. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  147. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  148. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  149. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  150. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  151. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  152. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  153. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  154. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  155. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  156. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  157. package/dist/components/fields/DatePicker/period.js +1 -1
  158. package/dist/components/fields/DatePicker/props.js +1 -1
  159. package/dist/components/fields/DatePicker/utils.js +1 -1
  160. package/dist/components/fields/FileInput/FileInput.js +1 -1
  161. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  162. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  163. package/dist/components/fields/Input/Input.js +1 -1
  164. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  165. package/dist/components/fields/ListBox/ListBox.js +1 -1
  166. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  167. package/dist/components/fields/ListBoxPopover/index.d.ts +1 -0
  168. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  169. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +2 -0
  170. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  171. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  172. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  173. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  174. package/dist/components/fields/Picker/Picker.js +1 -1
  175. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  176. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  177. package/dist/components/fields/RadioGroup/context.js +1 -1
  178. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  179. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  180. package/dist/components/fields/Select/Select.js +1 -1
  181. package/dist/components/fields/Slider/Gradation.js +1 -1
  182. package/dist/components/fields/Slider/HueSlider.js +1 -1
  183. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  184. package/dist/components/fields/Slider/Slider.js +1 -1
  185. package/dist/components/fields/Slider/SliderBase.js +1 -1
  186. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  187. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  188. package/dist/components/fields/Slider/elements.js +1 -1
  189. package/dist/components/fields/Slider/index.js +1 -1
  190. package/dist/components/fields/Switch/Switch.js +1 -1
  191. package/dist/components/fields/TextArea/TextArea.js +1 -1
  192. package/dist/components/fields/TextInput/TextInput.js +1 -1
  193. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  194. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  195. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  196. package/dist/components/fields/TriggerActions.js +1 -1
  197. package/dist/components/fields/color/ColorPanel.js +1 -1
  198. package/dist/components/fields/color/channels.js +1 -1
  199. package/dist/components/fields/color/color.js +1 -1
  200. package/dist/components/fields/color/context.js +1 -1
  201. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  202. package/dist/components/form/Form/Field.js +1 -1
  203. package/dist/components/form/Form/Form.js +1 -1
  204. package/dist/components/form/Form/ModernFormRoot.d.ts +3 -1
  205. package/dist/components/form/Form/ModernFormRoot.js +2 -3
  206. package/dist/components/form/Form/ModernFormRoot.js.map +1 -1
  207. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  208. package/dist/components/form/Form/SubmitButton/SubmitButton.d.ts +1 -1
  209. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  210. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  211. package/dist/components/form/Form/SubmitError.js +1 -1
  212. package/dist/components/form/Form/backend.js +1 -1
  213. package/dist/components/form/Form/index.js +1 -1
  214. package/dist/components/form/Form/modern/actions.js +11 -7
  215. package/dist/components/form/Form/modern/actions.js.map +1 -1
  216. package/dist/components/form/Form/modern/context.d.ts +1 -0
  217. package/dist/components/form/Form/modern/context.js +1 -1
  218. package/dist/components/form/Form/modern/controller.js +1 -1
  219. package/dist/components/form/Form/modern/field-binding.js +1 -1
  220. package/dist/components/form/Form/modern/field.js +9 -3
  221. package/dist/components/form/Form/modern/field.js.map +1 -1
  222. package/dist/components/form/Form/modern/react.js +6 -4
  223. package/dist/components/form/Form/modern/react.js.map +1 -1
  224. package/dist/components/form/Form/modern/store.js +28 -13
  225. package/dist/components/form/Form/modern/store.js.map +1 -1
  226. package/dist/components/form/Form/modern/types.d.ts +11 -1
  227. package/dist/components/form/Form/modern/validation.js +4 -4
  228. package/dist/components/form/Form/modern/validation.js.map +1 -1
  229. package/dist/components/form/Form/modern/values.js +12 -2
  230. package/dist/components/form/Form/modern/values.js.map +1 -1
  231. package/dist/components/form/Form/use-field/use-field-binding.js +4 -4
  232. package/dist/components/form/Form/use-field/use-field-binding.js.map +1 -1
  233. package/dist/components/form/Form/use-field/use-field-props.js +2 -2
  234. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  235. package/dist/components/form/Form/use-field/use-field.js +1 -1
  236. package/dist/components/form/Form/use-form.js +1 -1
  237. package/dist/components/form/Form/validation.js +1 -1
  238. package/dist/components/form/Label.js +1 -1
  239. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  240. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  241. package/dist/components/form/validation/use-validation-props.js +1 -1
  242. package/dist/components/form/wrapper.js +1 -1
  243. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  244. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  245. package/dist/components/layout/Board/Board.js +1 -1
  246. package/dist/components/layout/Board/BoardProvider.js +1 -1
  247. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  248. package/dist/components/layout/Board/Widget.js +1 -1
  249. package/dist/components/layout/Board/WidgetHost.js +1 -1
  250. package/dist/components/layout/Board/board-context.js +1 -1
  251. package/dist/components/layout/Board/board-store.js +1 -1
  252. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  253. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  254. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  255. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  256. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  257. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  258. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  259. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  260. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  261. package/dist/components/layout/Board/index.js +1 -1
  262. package/dist/components/layout/Board/responsive-utils.js +1 -1
  263. package/dist/components/layout/Board/use-board-layout.js +1 -1
  264. package/dist/components/layout/Board/use-board-registry.js +1 -1
  265. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  266. package/dist/components/layout/Board/use-board-selection.js +1 -1
  267. package/dist/components/layout/Flex.js +1 -1
  268. package/dist/components/layout/Flow.js +1 -1
  269. package/dist/components/layout/Grid.js +1 -1
  270. package/dist/components/layout/Panel.js +1 -1
  271. package/dist/components/layout/Prefix.js +1 -1
  272. package/dist/components/layout/ResizablePanel.js +1 -1
  273. package/dist/components/layout/Space.js +1 -1
  274. package/dist/components/layout/Suffix.js +1 -1
  275. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  276. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  277. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  278. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  279. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  280. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  281. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  282. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  283. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  284. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  285. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  286. package/dist/components/navigation/Tabs/styled.js +1 -1
  287. package/dist/components/navigation/Tabs/types.js +1 -1
  288. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  289. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  290. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  291. package/dist/components/other/Calendar/Calendar.js +1 -1
  292. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  293. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  294. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  295. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  296. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  297. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  298. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  299. package/dist/components/other/Calendar/styled.js +1 -1
  300. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  301. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  302. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  303. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  304. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  305. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  306. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  307. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  308. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  309. package/dist/components/overlays/Dialog/context.js +1 -1
  310. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  311. package/dist/components/overlays/Modal/Modal.d.ts +2 -1
  312. package/dist/components/overlays/Modal/Modal.js +1 -1
  313. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  314. package/dist/components/overlays/Modal/Overlay.d.ts +1 -0
  315. package/dist/components/overlays/Modal/Overlay.js +1 -1
  316. package/dist/components/overlays/Modal/Popover.js +1 -1
  317. package/dist/components/overlays/Modal/Tray.js +1 -1
  318. package/dist/components/overlays/Modal/Underlay.js +1 -1
  319. package/dist/components/overlays/Modal/types.d.ts +1 -0
  320. package/dist/components/overlays/Notifications/Notification.js +1 -1
  321. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  322. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  323. package/dist/components/overlays/Notifications/NotificationContext.d.ts +2 -0
  324. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  325. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  326. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  327. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  328. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  329. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  330. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  331. package/dist/components/overlays/Notifications/index.js +1 -1
  332. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  333. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  334. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  335. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  336. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  337. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  338. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  339. package/dist/components/overlays/Toast/index.js +1 -1
  340. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  341. package/dist/components/overlays/Toast/useToast.js +1 -1
  342. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  343. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  344. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  345. package/dist/components/overlays/Tooltip/context.js +1 -1
  346. package/dist/components/portal/Portal.js +1 -1
  347. package/dist/components/portal/PortalProvider.d.ts +2 -0
  348. package/dist/components/portal/PortalProvider.js +1 -1
  349. package/dist/components/portal/index.d.ts +1 -0
  350. package/dist/components/portal/usePortal.js +1 -1
  351. package/dist/components/shared/DraggableCollection.js +1 -1
  352. package/dist/components/shared/InvalidIcon.js +1 -1
  353. package/dist/components/shared/ValidIcon.js +1 -1
  354. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  355. package/dist/components/status/Spin/Cube.js +1 -1
  356. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  357. package/dist/components/status/Spin/Spin.js +1 -1
  358. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  359. package/dist/data/item-themes.js +1 -1
  360. package/dist/data/themes.js +1 -1
  361. package/dist/eslint-plugin/defaults.generated.js +1 -1
  362. package/dist/eslint-plugin/index.js +1 -1
  363. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  364. package/dist/i18n/I18nProvider.js +1 -1
  365. package/dist/i18n/createFormatter.js +1 -1
  366. package/dist/i18n/index.js +1 -1
  367. package/dist/i18n/instance.js +1 -1
  368. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  369. package/dist/i18n/locales/en-US/uikit.js +1 -1
  370. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  371. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  372. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  373. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  374. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  375. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  376. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  377. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  378. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  379. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  380. package/dist/i18n/locales.js +1 -1
  381. package/dist/i18n/useFormatter.js +1 -1
  382. package/dist/i18n/useI18n.js +1 -1
  383. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  384. package/dist/icons/AdjustmentsIcon.js +1 -1
  385. package/dist/icons/AiIcon.js +1 -1
  386. package/dist/icons/AreaChartIcon.js +1 -1
  387. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  388. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  389. package/dist/icons/BackwardIcon.js +1 -1
  390. package/dist/icons/BarChartIcon.js +1 -1
  391. package/dist/icons/BellFilledIcon.js +1 -1
  392. package/dist/icons/BellIcon.js +1 -1
  393. package/dist/icons/BooleanIcon.js +1 -1
  394. package/dist/icons/CalendarEditIcon.js +1 -1
  395. package/dist/icons/CalendarIcon.js +1 -1
  396. package/dist/icons/CaretDownIcon.js +1 -1
  397. package/dist/icons/CaretUpIcon.js +1 -1
  398. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  399. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  400. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  401. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  402. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  403. package/dist/icons/ChartBarLineIcon.js +1 -1
  404. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  405. package/dist/icons/ChartBarStackedIcon.js +1 -1
  406. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  407. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  408. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  409. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  410. package/dist/icons/ChartBubbleIcon.js +1 -1
  411. package/dist/icons/ChartDonut2Icon.js +1 -1
  412. package/dist/icons/ChartFunnelIcon.js +1 -1
  413. package/dist/icons/ChartHeatmapIcon.js +1 -1
  414. package/dist/icons/ChartKPIIcon.js +1 -1
  415. package/dist/icons/ChartPie2Icon.js +1 -1
  416. package/dist/icons/ChartScatterIcon.js +1 -1
  417. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  418. package/dist/icons/CheckCircleIcon.js +1 -1
  419. package/dist/icons/CheckIcon.js +1 -1
  420. package/dist/icons/CircleFilledIcon.js +1 -1
  421. package/dist/icons/ClearIcon.js +1 -1
  422. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  423. package/dist/icons/CloseCircleIcon.js +1 -1
  424. package/dist/icons/CloseIcon.js +1 -1
  425. package/dist/icons/CodeIcon.js +1 -1
  426. package/dist/icons/ColumnTotalIcon.js +1 -1
  427. package/dist/icons/CopyIcon.js +1 -1
  428. package/dist/icons/CountIcon.js +1 -1
  429. package/dist/icons/CubeIcon.js +1 -1
  430. package/dist/icons/CubePauseIcon.js +1 -1
  431. package/dist/icons/CubePlayIcon.js +1 -1
  432. package/dist/icons/CurrencyDollarIcon.js +1 -1
  433. package/dist/icons/DangerIcon.js +1 -1
  434. package/dist/icons/DashboardIcon.js +1 -1
  435. package/dist/icons/DatabaseIcon.js +1 -1
  436. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  437. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  438. package/dist/icons/DirectionIcon.js +1 -1
  439. package/dist/icons/DonutIcon.js +1 -1
  440. package/dist/icons/DownIcon.js +1 -1
  441. package/dist/icons/EditIcon.js +1 -1
  442. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  443. package/dist/icons/ExclamationCircleIcon.js +1 -1
  444. package/dist/icons/ExclamationIcon.js +1 -1
  445. package/dist/icons/EyeIcon.js +1 -1
  446. package/dist/icons/EyeInvisibleIcon.js +1 -1
  447. package/dist/icons/FilterIcon.js +1 -1
  448. package/dist/icons/FolderFilledIcon.js +1 -1
  449. package/dist/icons/FolderIcon.js +1 -1
  450. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  451. package/dist/icons/FolderOpenIcon.js +1 -1
  452. package/dist/icons/ForwardIcon.js +1 -1
  453. package/dist/icons/GripVerticalIcon.js +1 -1
  454. package/dist/icons/HierarchyIcon.js +1 -1
  455. package/dist/icons/HierarchyOpenIcon.js +1 -1
  456. package/dist/icons/Icon.js +1 -1
  457. package/dist/icons/InfoCircleIcon.js +1 -1
  458. package/dist/icons/InfoIcon.js +1 -1
  459. package/dist/icons/KeyIcon.js +1 -1
  460. package/dist/icons/LeftIcon.js +1 -1
  461. package/dist/icons/LineChartIcon.js +1 -1
  462. package/dist/icons/LoadingIcon.js +1 -1
  463. package/dist/icons/LockFilledIcon.js +1 -1
  464. package/dist/icons/LockIcon.js +1 -1
  465. package/dist/icons/MoreIcon.js +1 -1
  466. package/dist/icons/NotAllowedIcon.js +1 -1
  467. package/dist/icons/Number123Icon.js +1 -1
  468. package/dist/icons/NumberIcon.js +1 -1
  469. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  470. package/dist/icons/PauseCircleIcon.js +1 -1
  471. package/dist/icons/PauseIcon.js +1 -1
  472. package/dist/icons/PercentageIcon.js +1 -1
  473. package/dist/icons/PieChartIcon.js +1 -1
  474. package/dist/icons/PipetteIcon.js +1 -1
  475. package/dist/icons/PlayCircleIcon.js +1 -1
  476. package/dist/icons/PlayIcon.js +1 -1
  477. package/dist/icons/PlusIcon.js +1 -1
  478. package/dist/icons/ProgressBarIcon.js +1 -1
  479. package/dist/icons/ReloadIcon.js +1 -1
  480. package/dist/icons/ReportIcon.js +1 -1
  481. package/dist/icons/ReturnIcon.js +1 -1
  482. package/dist/icons/RightIcon.js +1 -1
  483. package/dist/icons/RowTotalsIcon.js +1 -1
  484. package/dist/icons/SchemeIcon.js +1 -1
  485. package/dist/icons/SearchIcon.js +1 -1
  486. package/dist/icons/SemanticQueryIcon.js +1 -1
  487. package/dist/icons/SettingsIcon.js +1 -1
  488. package/dist/icons/ShieldFilledIcon.js +1 -1
  489. package/dist/icons/ShieldIcon.js +1 -1
  490. package/dist/icons/SlashIcon.js +1 -1
  491. package/dist/icons/SparklesIcon.js +1 -1
  492. package/dist/icons/SqlIcon.js +1 -1
  493. package/dist/icons/StatsIcon.js +1 -1
  494. package/dist/icons/StopIcon.js +1 -1
  495. package/dist/icons/StringIcon.js +1 -1
  496. package/dist/icons/SubtotalsIcon.js +1 -1
  497. package/dist/icons/SwitchIcon.js +1 -1
  498. package/dist/icons/TableIcon.js +1 -1
  499. package/dist/icons/ThumbsDownIcon.js +1 -1
  500. package/dist/icons/ThumbsUpIcon.js +1 -1
  501. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  502. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  503. package/dist/icons/ThunderboltIcon.js +1 -1
  504. package/dist/icons/TimeIcon.js +1 -1
  505. package/dist/icons/TrashIcon.js +1 -1
  506. package/dist/icons/UnlockIcon.js +1 -1
  507. package/dist/icons/UpIcon.js +1 -1
  508. package/dist/icons/UserGroupIcon.js +1 -1
  509. package/dist/icons/UserIcon.js +1 -1
  510. package/dist/icons/UserLockIcon.js +1 -1
  511. package/dist/icons/ViewIcon.js +1 -1
  512. package/dist/icons/WarningFilledIcon.js +1 -1
  513. package/dist/icons/WarningIcon.js +1 -1
  514. package/dist/icons/wrap-icon.js +1 -1
  515. package/dist/index.js +1 -1
  516. package/dist/probe/canonicalize.js +1 -1
  517. package/dist/probe/css.js +1 -1
  518. package/dist/probe/index.js +1 -1
  519. package/dist/provider.js +1 -1
  520. package/dist/providers/TrackingProvider.js +1 -1
  521. package/dist/providers/navigationAdapter.default.js +1 -1
  522. package/dist/shared/form.d.ts +4 -2
  523. package/dist/tokens/all-tokens.js +1 -1
  524. package/dist/tokens/base.js +1 -1
  525. package/dist/tokens/color-seed.js +1 -1
  526. package/dist/tokens/color-theme.js +1 -1
  527. package/dist/tokens/colors.js +1 -1
  528. package/dist/tokens/layout.js +1 -1
  529. package/dist/tokens/lazy-styles.js +1 -1
  530. package/dist/tokens/legacy-color.js +1 -1
  531. package/dist/tokens/palette-config.js +1 -1
  532. package/dist/tokens/palette.js +1 -1
  533. package/dist/tokens/resolve.js +1 -1
  534. package/dist/tokens/shadows.js +1 -1
  535. package/dist/tokens/sizes.js +1 -1
  536. package/dist/tokens/spacing.js +1 -1
  537. package/dist/tokens/typography.js +1 -1
  538. package/dist/utils/ResizeSensor.js +1 -1
  539. package/dist/utils/colors.js +1 -1
  540. package/dist/utils/dotize.js +1 -1
  541. package/dist/utils/is-dev-env.js +1 -1
  542. package/dist/utils/modules.js +1 -1
  543. package/dist/utils/promise.js +1 -1
  544. package/dist/utils/raf.js +1 -1
  545. package/dist/utils/random.js +1 -1
  546. package/dist/utils/range.js +1 -1
  547. package/dist/utils/react/RenderCache.js +1 -1
  548. package/dist/utils/react/Slots.js +1 -1
  549. package/dist/utils/react/chain.js +1 -1
  550. package/dist/utils/react/disabledProps.js +1 -1
  551. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  552. package/dist/utils/react/index.js +1 -1
  553. package/dist/utils/react/interactions.js +1 -1
  554. package/dist/utils/react/isTextOnly.js +1 -1
  555. package/dist/utils/react/mapProps.js +1 -1
  556. package/dist/utils/react/mergeProps.js +1 -1
  557. package/dist/utils/react/nullableValue.js +1 -1
  558. package/dist/utils/react/resolveIcon.js +1 -1
  559. package/dist/utils/react/sharedStore.js +1 -1
  560. package/dist/utils/react/useBufferedValue.js +1 -1
  561. package/dist/utils/react/useCombinedRefs.js +1 -1
  562. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  563. package/dist/utils/react/useEventBus.js +1 -1
  564. package/dist/utils/react/useId.js +1 -1
  565. package/dist/utils/react/useIsDarwin.js +1 -1
  566. package/dist/utils/react/useKeySymbols.js +1 -1
  567. package/dist/utils/react/useLayoutEffect.js +1 -1
  568. package/dist/utils/react/useLocalStorage.js +1 -1
  569. package/dist/utils/react/useMergeStyles.js +1 -1
  570. package/dist/utils/react/usePopoverSync.js +1 -1
  571. package/dist/utils/react/useQaProps.js +1 -1
  572. package/dist/utils/react/useScheme.js +1 -1
  573. package/dist/utils/react/useViewportSize.js +1 -1
  574. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  575. package/dist/utils/selection.js +1 -1
  576. package/dist/utils/styles.js +1 -1
  577. package/dist/utils/tree.js +1 -1
  578. package/dist/utils/warnings.js +1 -1
  579. package/dist/version.js +2 -2
  580. package/docs/CreateComponent.md +1 -1
  581. package/docs/FieldProperties.md +2 -2
  582. package/docs/Usage.md +1 -1
  583. package/docs/components/form/Form.md +4 -4
  584. package/docs/modern-form-migration.md +15 -5
  585. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/ResizeSensor.ts
3
3
  /**
4
4
  * Iterate over each of the provided element(s).
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { hslToSrgb, okhslToOklch, okhslToSrgb, okhstToOkhsl, oklabToOkhsl, parseHexAlpha } from "@tenphi/glaze";
3
3
 
4
4
  //#region src/utils/colors.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/dotize.ts
3
3
  /**
4
4
  * Flattens a nested object into dot paths: `{ a: { b: 1 } }` becomes
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/is-dev-env.ts
3
3
  /**
4
4
  * `NODE_ENV` as the environment that is actually running reports it, or
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/modules.ts
3
3
  function extractModule(promise) {
4
4
  return promise.then((module) => module.default || module);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/promise.ts
3
3
  function timeout(ms = 30) {
4
4
  return new Promise((resolve) => {
package/dist/utils/raf.js CHANGED
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/raf.ts
3
3
  /**
4
4
  * Chains N requestAnimationFrame calls and returns a cancel function.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/random.ts
3
3
  function random(min, max) {
4
4
  const realMin = min < max ? min : max;
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/range.ts
3
3
  function range(count) {
4
4
  return Array.from({ length: count }, (_, i) => i);
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useRef } from "react";
3
3
  import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { mergeProps } from "./mergeProps.js";
3
3
  import { Children, cloneElement, createContext, useContext, useMemo } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/react/chain.ts
3
3
  /**
4
4
  * Calls all functions in the order they were chained with the same arguments.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/react/disabledProps.ts
3
3
  /**
4
4
  * Tags where `disabled` is a real HTML attribute. Browsers refuse to dispatch
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/react/forwardRefWithGenerics.tsx
3
3
  /**
4
4
  * A helper for creating forwardRef components with generic types.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { getDisabledElementProps, omitActivationEventProps } from "./disabledProps.js";
4
4
  import { forwardRefWithGenerics } from "./forwardRefWithGenerics.js";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useState } from "react";
3
3
  import { useFocus, useFocusVisible } from "react-aria";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { Children, isValidElement } from "react";
3
3
 
4
4
  //#region src/utils/react/isTextOnly.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/react/mapProps.ts
3
3
  /** Converts AriaButtonProps to CubeButtonProps */
4
4
  function ariaToCubeButtonProps(props) {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { chain } from "./chain.js";
3
3
  import { mergeIds } from "./useId.js";
4
4
  import { mergeStyles } from "@tenphi/tasty";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/react/nullableValue.ts
3
3
  function castNullableStringValue(props) {
4
4
  return castNullableField(props, ["value", "defaultValue"], "string", (v) => String(v));
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/react/resolveIcon.ts
3
3
  /**
4
4
  * Resolves a dynamic icon prop to its content and slot state.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { isDevEnv } from "../is-dev-env.js";
4
4
  import { useSyncExternalStore } from "react";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { useCallback, useRef, useState } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useEffect, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useCombinedRefs.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { createSharedStore } from "./sharedStore.js";
3
3
  import { useEffect } from "react";
4
4
  import { useFocusVisible } from "react-aria";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef } from "react";
3
3
 
4
4
  //#region src/utils/react/useEventBus.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useLayoutEffect as useLayoutEffect$1 } from "./useLayoutEffect.js";
3
3
  import { useEffect, useRef, useState } from "react";
4
4
  import { useSSRSafeId } from "@react-aria/ssr";
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useIsDarwin.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useIsDarwin } from "./useIsDarwin.js";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import * as React$1 from "react";
3
3
 
4
4
  //#region src/utils/react/useLayoutEffect.tsx
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useEvent } from "../../_internal/hooks/use-event.js";
3
3
  import { useCallback, useSyncExternalStore } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { mergeStyles } from "@tenphi/tasty";
3
3
  import { useMemo } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { EventBusContext, useEventBus } from "./useEventBus.js";
3
3
  import { useCallback, useContext, useEffect, useRef } from "react";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/react/useQaProps.ts
3
3
  /**
4
4
  * Processes QA props.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useSyncExternalStore } from "react";
3
3
 
4
4
  //#region src/utils/react/useScheme.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { useEffect, useState } from "react";
3
3
 
4
4
  //#region src/utils/react/useViewportSize.ts
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { isValidElement } from "react";
3
3
  import { isFragment } from "react-is";
4
4
 
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/selection.ts
3
3
  /**
4
4
  * Deduplicate/toggle keys in a selection: if a key appears twice it is
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/styles.ts
3
3
  /**
4
4
  * Split properties into style and non-style properties.
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/utils/tree.ts
3
3
  function toFlatTree(tree, includingFolders) {
4
4
  return tree.reduce((result, node) => {
@@ -1,4 +1,4 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  import { isDevEnvOrTest } from "./is-dev-env.js";
3
3
 
4
4
  //#region src/utils/warnings.ts
package/dist/version.js CHANGED
@@ -1,6 +1,6 @@
1
- /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-448aeb3 | Cube Dev Team */
1
+ /** @license MIT | @cube-dev/ui-kit v0.0.0-canary-b861864 | Cube Dev Team */
2
2
  //#region src/version.ts
3
- const VERSION = "0.0.0-canary-448aeb3";
3
+ const VERSION = "0.0.0-canary-b861864";
4
4
  const TASTY_VERSION = "3.9.2";
5
5
  if (typeof window !== "undefined") {
6
6
  const version = VERSION;
@@ -15,7 +15,7 @@ Creating a component involves several optional but recommended elements:
15
15
 
16
16
  Everything is optional - you can create simplified components without all features, but exported UI Kit components should be feature-rich and consistent.
17
17
 
18
- Form-aware inputs use `useFieldProps` for both legacy instances and modern controllers. Map the control’s value API with `valuePropsMapper` and pass the resolved props to `wrapWithField`. The hook owns modern registration after commit, narrow subscriptions, cleanup, and unique accessible ids. Do not register during render, call the legacy adapter directly, or wrap a modern control in `Form.Item`. Modern validation options (`rules`, `deps`, `dependsOn`, `rulesKey`, `validationDelay`, `validateTrigger`, `errorPolicy`) flow through the same hook. Validators receive an AbortSignal and return or reject with a message; use `deps` for external closure inputs. Extend `FieldBaseProps<Value>` to constrain typed modern descriptors to accepted model values, including `null | undefined` when supported even if change callbacks emit only non-null values; `useFieldProps` resolves descriptors and strips them before DOM forwarding. Descriptor options override only the input options they explicitly supply; put custom validation and structural rules together on the descriptor. See [Form](./components/form/Form.md) for the integration contract.
18
+ Form-aware inputs use `useFieldProps` for both legacy instances and modern controllers. Map the control’s value API with `valuePropsMapper` and pass the resolved props to `wrapWithField`. The hook owns modern registration after commit, narrow subscriptions, cleanup, and unique accessible ids. Do not register during render, call the legacy adapter directly, or wrap a modern control in `Form.Item`. Modern validation options (`rules`, `deps`, `dependsOn`, `rulesKey`, `validationDelay`, `validateTrigger`, `errorPolicy`) flow through the same hook. Validators receive an AbortSignal and return or reject with a message; use `deps` for external closure inputs and `dependsOn` for form paths that trigger revalidation. `rulesKey` explicitly versions functions and skips source comparison while declarative constraints remain reactive. Extend `FieldBaseProps<Value>` to constrain typed modern descriptors to accepted model values, including `null | undefined` when supported even if change callbacks emit only non-null values; `useFieldProps` resolves descriptors and strips them before DOM forwarding. Descriptor options override only the input options they explicitly supply; put custom validation and structural rules together on the descriptor. See [Form](./components/form/Form.md) for the integration contract.
19
19
 
20
20
  The [compiled custom-control example](https://github.com/cube-js/cube-ui-kit/blob/main/typecheck/consumer/modern-form-examples.tsx) shows explicit DOM forwarding, async validation, and default adoption. Shared input rule props accept existing legacy validators; use `ModernValidationRule` for strict modern success/error return types, and adapt legacy validators that resolve data before migrating them.
21
21
 
@@ -71,8 +71,8 @@ When used inside a [Form](./components/form/Form.md), these properties are autom
71
71
  - **`validateTrigger`** `'onBlur' | 'onChange' | 'onSubmit'` — When to trigger validation.
72
72
  - **`validationDelay`** `number` — Debounce delay in milliseconds before running validation.
73
73
  - **`deps`** `readonly unknown[]` — Modern validator inputs captured from outside the form. Compared with `Object.is`; changes invalidate prior validation.
74
- - **`dependsOn`** `readonly FormPath[]` — Explicit modern field dependencies. Validator reads also track dependencies automatically.
75
- - **`rulesKey`** `string` — Explicit modern validator revision, checked alongside structural rule constraints.
74
+ - **`dependsOn`** `readonly FormPath[]` — Modern form paths that trigger revalidation, including conditional reads. Validator reads only cancel in-flight work.
75
+ - **`rulesKey`** `string` — Manual modern function revision. Skips validator/transform source comparison; declarative constraints are always compared. Update it when a function or its captures change.
76
76
  - **`errorPolicy`** `'first' | 'all'` — Modern rule error collection policy, inherited from the controller by default.
77
77
  - **`showValid`** `boolean` — Whether to show the valid state icon after successful validation.
78
78
  - **`errorMessage`** `ReactNode` — Error message always displayed in danger state, regardless of validation state.
package/docs/Usage.md CHANGED
@@ -473,7 +473,7 @@ const [form] = useForm();
473
473
 
474
474
  `Form.useController()` is the explicit modern alternative. Its creator does not subscribe; use `Form.useSelector(controller, selector, { isEqual })` or `<Form.Subscribe>` for reactive reads, and `Form.useControllerContext()` for descendant access. Named UI Kit inputs bind to modern controllers through commit-time registration and per-field subscriptions. Custom controls use `useFieldProps`; `Form.Item` remains legacy-only. Modern rules support cancellation, delayed validation, and ReactNode errors. Root callbacks and `Form.Submit`, `Form.Reset`, and `Form.SubmitError` use the modern pipeline; native action forms keep browser submission. Known keys and nested tuple commands infer their value types; dynamic paths stay supported. See the [Form documentation](./components/form/Form.md) for scope, defaults, and SSR contracts, and the [migration checklist](https://github.com/cube-js/cube-ui-kit/blob/main/docs/modern-form-migration.md) before converting an existing form.
475
475
 
476
- For new modern forms, prefer `<TextInput field={form.field('email', { validate, deps })} />`; descriptors check names and value types and support nested tuple paths. Built-in bindings accept nullable model values without replacing stored `null` with display fallbacks; declare `null` in the model when it can come from the API. `Form.useValue(form, path)` and `Form.useFieldState(form, path)` provide narrow reactive reads; date-control values retain their methods and types. Hook callbacks stay fresh after commit; defaults change through explicit commands. Validator field reads track dependencies automatically; external captures belong in `deps`. Submission failures are discriminated by `status`, and explicit-controller action/error helpers work in external footers. `<Form submitValues="all">` includes retained values while continuing to validate active fields.
476
+ For new modern forms, prefer `<TextInput field={form.field('email', { validate, deps })} />`; descriptors check names and value types and support nested tuple paths. Built-in bindings accept nullable model values without replacing stored `null` with display fallbacks; declare `null` in the model when it can come from the API. `Form.useValue(form, path)` and `Form.useFieldState(form, path)` provide narrow reactive reads; date-control values retain their methods and types. Hook callbacks stay fresh after commit; defaults change through explicit commands. Declare sibling validation dependencies with `dependsOn` and external captures with `deps`; reads only cancel stale in-flight work. Modern Submit stays enabled after validation errors by default. Both action buttons honor `onClick` cancellation; `state.canReset` exposes reset availability. Submission failures are discriminated by `status`, and explicit-controller action/error helpers work in external footers. `<Form submitValues="all">` includes retained values while continuing to validate active fields.
477
477
 
478
478
  Returns a `CubeFormInstance` with:
479
479
 
@@ -62,13 +62,13 @@ const form = Form.useController<Profile>({
62
62
  />;
63
63
  ```
64
64
 
65
- `validate(value, context)` infers the field value and checked paths in `context.getValue(path)`. Declare external inputs with `deps`, compared by `Object.is`. Field reads through `getValue` automatically become dependencies; `getValues()` depends on the whole values object. `dependsOn` can declare paths before the validator reads them. Each run reads one captured snapshot. Changes abort obsolete work, invalidate the dependent result, and revalidate previously validated or validating fields (unless a value command requests `validate: 'never'`). Rule/dependency changes preserve visible errors while the replacement run is pending. Inline function identity does not restart validation, so change `deps` when captured inputs change.
65
+ `validate(value, context)` infers the field value and checked paths in `context.getValue(path)`. Use `deps` for external inputs, compared by `Object.is`, and `dependsOn` for form paths that should trigger revalidation. Declare conditional reads too: `dependsOn: ['password']` reruns confirmation validation when the password changes, even if the previous run stopped at an empty confirmation. Each run reads one captured snapshot. Reads through `getValue`/`getValues` cancel in-flight work if those values change, but do not schedule another run; revalidation requires `dependsOn`. Declared dependency changes revalidate previously validated or validating fields unless a value command requests `validate: 'never'`. Rule/dependency changes preserve visible errors while the replacement run is pending. Equivalent inline functions do not restart validation. Function source detects replacements; use `deps` for captures and distinct functions with identical source (including bound/native functions).
66
66
 
67
- Use `Form.useValue(form, path)` for a reactive value and `Form.useFieldState(form, path)` for typed value/defaults, errors, status, dirty/touched, and active state. Both support nested tuples and subscribe only to their selection; place them in leaf components when the form owner should not rerender. State may be `undefined` before a field has registered. Plain objects and arrays have deeply readonly, potentially incomplete read types; use controller commands for writes. Platform values and date-control values (`CalendarDate`, `CalendarDateTime`, `ZonedDateTime`, and `Time`) retain their types and methods.
67
+ Use `Form.useValue(form, path)` for a reactive value and `Form.useFieldState(form, path)` for typed value/defaults, errors, status, dirty/touched, and active state. Both support nested tuples and subscribe only to their selection; place them in leaf components when the form owner should not rerender. Descendants can get a typed controller with `Form.useControllerContext<Model>()` instead of receiving a prop. State may be `undefined` before a field has registered. Plain objects and arrays have deeply readonly, potentially incomplete read types; use controller commands for writes. Platform values and date-control values (`CalendarDate`, `CalendarDateTime`, `ZonedDateTime`, and `Time`) retain their types and methods.
68
68
 
69
69
  ### Modern actions and errors
70
70
 
71
- `<Form submitValues="all">` includes retained values for native Enter and button submission; the default is `active`. Validation still targets active registrations. Explicit-controller Submit buttons target that controller even in an external footer or another DOM form, preserve native action forms, and submit once. `disableOnInvalid={false}` allows a modern Submit button to run validation while errors are visible; the default remains `true`. Reset is enabled when values, interaction state, validation state, or submit errors can be reset; root reset cancellation is honored.
71
+ `<Form submitValues="all">` includes retained values for native Enter and button submission; the default is `active`. Validation still targets active registrations. Explicit-controller Submit buttons target that controller even in an external footer or another DOM form, preserve native action forms, and submit once. Modern Submit stays enabled while validation errors are visible, so another submission can display feedback; opt into disabling with `disableOnInvalid`. Legacy Submit keeps its existing default. `state.canReset` enables Reset when edits, touched/validation state, or submit errors can be cleared, and is false during submission. Both buttons preserve `onPress`; use `onClick` with `event.preventDefault()` to cancel the action. A controller root's `onReset` runs before reset and can cancel with `preventDefault()`. Reset interception also prevents nested controls from restoring their own mount-time defaults, including when reset is cancelled; `onResetCapture` is reserved for this interception. Native `action` forms retain browser reset behavior.
72
72
 
73
73
  Root business callbacks override hook callbacks while mounted. Omitted or undefined root callbacks restore the latest committed hook callback. Changing defaults remains an explicit command. Unmounting the owning root cancels pending submission. Use one owning root per controller; duplicate roots report a development error and the newest binding wins.
74
74
 
@@ -80,7 +80,7 @@ Use `rules`, `isRequired`, `validateTrigger`, and `validationDelay` on named inp
80
80
 
81
81
  `form.validate()` validates active fields immediately; `form.validate(['email'])` selects literal names and `form.validate([['users', 0, 'email']])` selects a nested path. `{ immediate: false }` honors field delays. `form.blur(name)` touches the field and runs an on-blur rule. No-rule fields become valid synchronously. The form is valid only when at least one field is active and every active field is valid. Existing errors stay visible during revalidation; an edit that does not revalidate clears them. `setValue` and `setValues` accept `validate: 'auto' | 'always' | 'never'`: auto revalidates on-change fields or fields showing errors. Once an on-blur field becomes valid, subsequent edits await its next blur.
82
82
 
83
- `errorPolicy: 'first' | 'all'` controls rule-order errors (default `first`), on the creator or individual field. Equivalent inline rules do not restart validation: primitive constraints and RegExp source/flags form the signature; messages and function identity/source do not. Use `deps` for external captured inputs. `rulesKey` remains an additional revision key and never suppresses structural constraint checks. The latest updated duplicate registration owns its rules and trigger.
83
+ `errorPolicy: 'first' | 'all'` controls rule-order errors (default `first`), on the creator or individual field. Equivalent inline rules do not restart validation: primitive constraints, RegExp source/flags, and function source form the signature; messages and function identity do not. Use `deps` for external captured inputs. `rulesKey` versions validator/transform functions explicitly and skips their source comparison; declarative constraints are always compared. Change the key or `deps` when a function or its captures change. `deps` alone does not disable automatic function-source comparison. The latest updated duplicate registration owns its rules and trigger.
84
84
 
85
85
  `form.submit()` validates and submits `activeValues`; `form.submit({ include: 'all' })` includes retained values deliberately. `onSubmit(values, { include, signal })` may return a promise. Concurrent submissions return `{ status: 'ignored', reason: 'submitting' }`; other results are `submitted`, `invalid` with an error map, `failed` with an error, or `stale` after cancellation. Validation failures call `onSubmitFailed({ status: 'invalid', errors })` without setting `submitError`; submission failures call it with `{ status: 'failed', error }` and set the error. Submit start and reset clear `submitError`; ordinary edits keep it. Explicit error commands remain available. A modern root without `action` prevents navigation and routes submission to the controller. A native `action`/`method` form preserves browser submission and bypasses the controller pipeline.
86
86
 
@@ -55,7 +55,7 @@ const form = Form.useController<Profile>({
55
55
  />;
56
56
  ```
57
57
 
58
- `validate(value, context)` infers the field value and checked paths in `context.getValue(path)`. Declare external inputs with `deps`, compared by `Object.is`. Field reads through `getValue` automatically become dependencies; `getValues()` depends on the whole values object. `dependsOn` can declare paths before the validator reads them. Each run reads one captured snapshot. Changes abort obsolete work, invalidate the dependent result, and revalidate previously validated or validating fields (unless a value command requests `validate: 'never'`). Rule/dependency changes preserve visible errors while the replacement run is pending. Inline function identity does not restart validation, so change `deps` when captured inputs change.
58
+ `validate(value, context)` infers the field value and checked paths in `context.getValue(path)`. Use `deps` for external inputs, compared by `Object.is`, and `dependsOn` for form paths that should trigger revalidation. Declare conditional reads too: `dependsOn: ['password']` reruns confirmation validation when the password changes, even if the previous run stopped at an empty confirmation. Each run reads one captured snapshot. Reads through `getValue`/`getValues` cancel in-flight work if those values change, but do not schedule another run; revalidation requires `dependsOn`. Declared dependency changes revalidate previously validated or validating fields unless a value command requests `validate: 'never'`. Rule/dependency changes preserve visible errors while the replacement run is pending. Equivalent inline functions do not restart validation. Function source detects replacements; use `deps` for captures and distinct functions with identical source (including bound/native functions).
59
59
 
60
60
  Use `Form.useValue(form, path)` for a reactive value and `Form.useFieldState(form, path)` for typed value/defaults, errors, status, dirty/touched, and active state. Both support nested tuples and subscribe only to their selection; place them in leaf components when the form owner should not rerender. State may be `undefined` before a field has registered. Plain objects and arrays have deeply readonly, potentially incomplete read types; use controller commands for writes. Platform values and date-control values (`CalendarDate`, `CalendarDateTime`, `ZonedDateTime`, and `Time`) retain their types and methods.
61
61
 
@@ -71,6 +71,16 @@ Creation does not subscribe the component. A selector subscribes its caller; a `
71
71
 
72
72
  Selectors and equality functions must be pure. Select a primitive or a stable snapshot branch. A newly allocated object compares unequal with the default `Object.is`; supply `isEqual` when selecting several values into a fresh object. `Form.useControllerContext<T>()` gives a descendant the controller without subscribing it. The generic describes that root's values; it cannot verify an ancestor's type.
73
73
 
74
+ A leaf component can get its controller from context without prop threading, while retaining checked paths and inferred values:
75
+
76
+ ```tsx
77
+ function EmailPreview() {
78
+ const form = Form.useControllerContext<Profile>();
79
+ const email = Form.useValue(form, 'email');
80
+ return <output>{email}</output>;
81
+ }
82
+ ```
83
+
74
84
  `getValue`, `getValues`, `getActiveValues`, `getFieldSnapshot`, and `getSnapshot` are imperative reads for handlers and effects. They do not make JSX reactive. `subscribe(listener)` supports imperative observers and returns an unsubscribe function. `batch(fn)` groups synchronous commands into one publication; it is not a rollback transaction, and the callback must not be async.
75
85
 
76
86
  Omitted `form` props use context. Explicit `form={undefined}` detaches an input. `Form.Subscribe` and `useControllerContext` require modern context; legacy roots and `FormScopeMask` mask it. An explicit modern controller can be used outside a root. Use only one owning root for each controller.
@@ -110,7 +120,7 @@ Built-in named inputs register after commit and select only their value, errors,
110
120
 
111
121
  For modern custom validators, return an error (including a ReactNode), or throw/reject it. Return undefined, null, or an empty string on success. A legacy validator that resolves a data object must be adapted: a modern validator treats that result as an error. Use `ModernValidationRule` to check authored modern rules strictly; shared input props remain permissive enough for existing legacy rules. Legacy forms keep their existing validator behavior.
112
122
 
113
- Validators receive `{ signal, name, getValue, getValues }` as the third argument. Pass the signal to network requests. Superseded work settles as stale even if the validator ignores cancellation. List external captured inputs in `deps` (for example, `deps: [organizationId, checkEmail]`). Field reads track dependencies automatically; use `dependsOn` to declare them before an asynchronous validator reads them. `rulesKey` is an optional explicit revision. Function identity and source text do not restart validation; structural rule changes, changed `deps`, and changed `rulesKey` do.
123
+ Validators receive `{ signal, name, getValue, getValues }` as the third argument. Pass the signal to network requests. Superseded work settles as stale even if the validator ignores cancellation. List external captured inputs in `deps` (for example, `deps: [organizationId, checkEmail]`). Use `dependsOn` for field-triggered revalidation; read tracking only cancels in-flight work. Rule constraints and function source are compared automatically. `rulesKey` versions validator/transform functions explicitly and skips their source comparison; declarative constraints such as `min`, `pattern`, and `required` are still compared. Change the key or `deps` when a function or its captures change. Providing `deps` alone keeps automatic function-source comparison, so replacing a validator is still detected. Prefer `deps` for ordinary captured inputs, including string IDs: strings in `deps` are values, while strings in `dependsOn` are field paths.
114
124
 
115
125
  `validationDelay` coalesces automatic validation; explicit validation and submission run immediately by default. Auto writes revalidate on-change fields and fields already showing errors. On-blur fields otherwise wait for blur. `errorPolicy` chooses first/all rule errors. Errors remain visible while revalidating and clear on nonvalidating edits.
116
126
 
@@ -118,7 +128,7 @@ Root `onSubmit` receives the selected payload and an abort signal; `onSubmitFail
118
128
 
119
129
  ## Modern actions and errors
120
130
 
121
- `<Form submitValues="all">` includes retained values for native Enter and button submission; the default is `active`. Validation still targets active registrations. Explicit-controller Submit buttons target that controller even in an external footer or another DOM form, preserve native action forms, and submit once. `disableOnInvalid={false}` allows a modern Submit button to run validation while errors are visible; the default remains `true`. Reset is enabled when values, interaction state, validation state, or submit errors can be reset; root reset cancellation is honored.
131
+ `<Form submitValues="all">` includes retained values for native Enter and button submission; the default is `active`. Validation still targets active registrations. Explicit-controller Submit buttons target that controller even in an external footer or another DOM form, preserve native action forms, and submit once. Modern Submit stays enabled while validation errors are visible, so another submission can display feedback; opt into disabling with `disableOnInvalid`. Legacy Submit keeps its existing default. `state.canReset` enables Reset when edits, touched/validation state, or submit errors can be cleared, and is false during submission. Both buttons preserve `onPress`; use `onClick` with `event.preventDefault()` to cancel the action. A controller root's `onReset` runs before reset and can cancel with `preventDefault()`. Reset interception also prevents nested controls from restoring their own mount-time defaults, including when reset is cancelled; `onResetCapture` is reserved for this interception. Native `action` forms retain browser reset behavior.
122
132
 
123
133
  Root business callbacks override hook callbacks while mounted. Omitted or undefined root callbacks restore the latest committed hook callback. Changing defaults remains an explicit command. Unmounting the owning root cancels pending submission.
124
134
 
@@ -130,9 +140,9 @@ Root business callbacks override hook callbacks while mounted. Omitted or undefi
130
140
  2. Check surrounding wrappers. Migrate a wrapper explicitly or choose a form that does not rely on its legacy instance API.
131
141
  3. Create a typed controller and move initial defaults into its creation options. Choose adoption/reset semantics for later data.
132
142
  4. Replace render-time getters and flags with narrow selectors or `Subscribe`. Update custom controls through `useFieldProps`.
133
- 5. Adapt validators' success values and cancellation, and declare external captured inputs in `deps`.
143
+ 5. Adapt validators' success values and cancellation. Declare external captured inputs in `deps` and sibling form paths in `dependsOn`.
134
144
  6. Decide whether hidden fields are retained and whether submission uses active or all values. Verify the actual payload with conditional sections both visible and hidden.
135
- 7. Test required/async errors, double submit, server failure, reset, unmount during requests, keyboard focus, and navigation guards. Confirm unaffected fields and the creator do not rerender on each keystroke.
145
+ 7. Test required/async errors, double submit, server failure, reset, unmount during requests, keyboard focus, and navigation guards. Modern Submit stays enabled after validation errors; pass `disableOnInvalid` to retain the legacy disabled-button behavior. Verify this visible change with QA. Confirm unaffected fields and the creator do not rerender on each keystroke.
136
146
  8. Run source and built-consumer type checks, the frozen legacy contract suite, React 18/19 compiler checks, and relevant browser checks. Review visual changes before merging.
137
147
 
138
148
  To revert a migrated form, render the preserved legacy component again and restore its legacy defaults/callback/validator contracts. Remount the boundary and deliberately transfer serializable draft values if needed. Do not cast the modern controller to a legacy instance or toggle hook implementations in place.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cube-dev/ui-kit",
3
- "version": "0.0.0-canary-448aeb3",
3
+ "version": "0.0.0-canary-b861864",
4
4
  "type": "module",
5
5
  "description": "UIKit for Cube Projects",
6
6
  "repository": {