@cube-dev/ui-kit 0.179.0 → 0.180.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 (640) hide show
  1. package/dist/CHANGELOG.md +14 -0
  2. package/dist/_internal/hooks/use-debounced-value.js +1 -1
  3. package/dist/_internal/hooks/use-deprecation-warning.js +1 -1
  4. package/dist/_internal/hooks/use-event.js +1 -1
  5. package/dist/_internal/hooks/use-is-first-render.js +1 -1
  6. package/dist/_internal/hooks/use-sync-ref.js +1 -1
  7. package/dist/_internal/hooks/use-timer/timer.js +1 -1
  8. package/dist/_internal/hooks/use-timer/use-timer.js +1 -1
  9. package/dist/_internal/hooks/use-warn.js +1 -1
  10. package/dist/components/Block.js +1 -1
  11. package/dist/components/CollectionItem.js +1 -1
  12. package/dist/components/GlobalStyles.js +1 -1
  13. package/dist/components/GridProvider.js +1 -1
  14. package/dist/components/HiddenInput.js +1 -1
  15. package/dist/components/Root.js +1 -1
  16. package/dist/components/actions/Action/Action.js +1 -1
  17. package/dist/components/actions/Banner/Banner.js +1 -1
  18. package/dist/components/actions/Button/Button.d.ts +1 -0
  19. package/dist/components/actions/Button/Button.js +1 -1
  20. package/dist/components/actions/ButtonGroup/ButtonGroup.js +1 -1
  21. package/dist/components/actions/ButtonSplit/ButtonSplit.js +1 -1
  22. package/dist/components/actions/ButtonSplit/context.js +1 -1
  23. package/dist/components/actions/CommandMenu/CommandMenu.js +1 -1
  24. package/dist/components/actions/CommandMenu/styled.js +1 -1
  25. package/dist/components/actions/ItemAction/ItemAction.js +1 -1
  26. package/dist/components/actions/ItemActionContext.js +1 -1
  27. package/dist/components/actions/ItemActionsWrapper.js +1 -1
  28. package/dist/components/actions/ItemButton/ItemButton.js +1 -1
  29. package/dist/components/actions/Link/Link.js +1 -1
  30. package/dist/components/actions/Menu/Menu.js +1 -1
  31. package/dist/components/actions/Menu/MenuItem.js +1 -1
  32. package/dist/components/actions/Menu/MenuSection.js +1 -1
  33. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  34. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  35. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  36. package/dist/components/actions/Menu/context.js +1 -1
  37. package/dist/components/actions/Menu/styled.js +1 -1
  38. package/dist/components/actions/actions-run.js +1 -1
  39. package/dist/components/actions/index.js +1 -1
  40. package/dist/components/actions/use-action.js +1 -1
  41. package/dist/components/actions/use-anchored-menu.js +1 -1
  42. package/dist/components/actions/use-context-menu.js +1 -1
  43. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  44. package/dist/components/content/Alert/Alert.js +1 -1
  45. package/dist/components/content/Alert/use-alert.js +1 -1
  46. package/dist/components/content/Avatar/Avatar.js +1 -1
  47. package/dist/components/content/Badge/Badge.js +1 -1
  48. package/dist/components/content/Card/Card.js +1 -1
  49. package/dist/components/content/Content.js +1 -1
  50. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  51. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  52. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  53. package/dist/components/content/Divider.js +1 -1
  54. package/dist/components/content/Footer.js +1 -1
  55. package/dist/components/content/Header.js +1 -1
  56. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  57. package/dist/components/content/InfoBadge/InfoBadge.js +1 -1
  58. package/dist/components/content/InlineInput/InlineInput.js +1 -1
  59. package/dist/components/content/Item/Item.js +1 -1
  60. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  61. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  62. package/dist/components/content/Layout/GridLayout.js +1 -1
  63. package/dist/components/content/Layout/Layout.js +1 -1
  64. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  65. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  66. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  67. package/dist/components/content/Layout/LayoutContent.js +1 -1
  68. package/dist/components/content/Layout/LayoutContext.js +1 -1
  69. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  70. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  71. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  72. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  73. package/dist/components/content/Layout/LayoutPane.js +1 -1
  74. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  75. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  76. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  77. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  78. package/dist/components/content/Layout/index.js +1 -1
  79. package/dist/components/content/Layout/utils.js +1 -1
  80. package/dist/components/content/Paragraph.js +1 -1
  81. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  82. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  83. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  84. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  85. package/dist/components/content/Result/Result.js +1 -1
  86. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  87. package/dist/components/content/Tag/Tag.js +1 -1
  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.d.ts +7 -0
  131. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  132. package/dist/components/fields/Checkbox/Checkbox.js.map +1 -1
  133. package/dist/components/fields/Checkbox/CheckboxGroup.d.ts +1 -1
  134. package/dist/components/fields/Checkbox/CheckboxGroup.js +3 -3
  135. package/dist/components/fields/Checkbox/CheckboxGroup.js.map +1 -1
  136. package/dist/components/fields/Checkbox/context.js +1 -1
  137. package/dist/components/fields/ColorInput/ColorInput.js +1 -1
  138. package/dist/components/fields/ColorPicker/ColorPicker.js +1 -1
  139. package/dist/components/fields/ColorSwatch/ColorSwatch.js +1 -1
  140. package/dist/components/fields/ColorSwatchGroup/ColorSwatchGroup.js +1 -1
  141. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  142. package/dist/components/fields/CommandTextArea/CommandTextArea.js +2 -2
  143. package/dist/components/fields/CommandTextArea/CommandTextArea.js.map +1 -1
  144. package/dist/components/fields/CommandTextArea/caretPosition.js +1 -1
  145. package/dist/components/fields/CommandTextArea/caretPosition.js.map +1 -1
  146. package/dist/components/fields/CommandTextArea/useCaretAnchor.js +1 -1
  147. package/dist/components/fields/DatePicker/DateInput.d.ts +1 -1
  148. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  149. package/dist/components/fields/DatePicker/DateInput.js.map +1 -1
  150. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  151. package/dist/components/fields/DatePicker/DatePicker.d.ts +1 -1
  152. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  153. package/dist/components/fields/DatePicker/DatePicker.js.map +1 -1
  154. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  155. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  156. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  157. package/dist/components/fields/DatePicker/DatePickerInput.js.map +1 -1
  158. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  159. package/dist/components/fields/DatePicker/DateRangePicker.d.ts +1 -1
  160. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  161. package/dist/components/fields/DatePicker/DateRangePicker.js.map +1 -1
  162. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.d.ts +1 -1
  163. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  164. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js.map +1 -1
  165. package/dist/components/fields/DatePicker/MonthPicker.js +1 -1
  166. package/dist/components/fields/DatePicker/PeriodPicker.d.ts +1 -1
  167. package/dist/components/fields/DatePicker/PeriodPicker.js +1 -1
  168. package/dist/components/fields/DatePicker/PeriodPicker.js.map +1 -1
  169. package/dist/components/fields/DatePicker/QuarterPicker.js +1 -1
  170. package/dist/components/fields/DatePicker/TimeInput.d.ts +1 -1
  171. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  172. package/dist/components/fields/DatePicker/TimeInput.js.map +1 -1
  173. package/dist/components/fields/DatePicker/WeekPicker.js +1 -1
  174. package/dist/components/fields/DatePicker/YearPicker.js +1 -1
  175. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  176. package/dist/components/fields/DatePicker/period.js +1 -1
  177. package/dist/components/fields/DatePicker/props.js +1 -1
  178. package/dist/components/fields/DatePicker/utils.js +1 -1
  179. package/dist/components/fields/FileInput/FileInput.d.ts +2 -0
  180. package/dist/components/fields/FileInput/FileInput.js +1 -1
  181. package/dist/components/fields/FileInput/FileInput.js.map +1 -1
  182. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  183. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  184. package/dist/components/fields/Input/Input.js +1 -1
  185. package/dist/components/fields/ListBox/DraggableListBox.js +1 -1
  186. package/dist/components/fields/ListBox/ListBox.js +1 -1
  187. package/dist/components/fields/ListBoxPopover/ListBoxPopover.js +1 -1
  188. package/dist/components/fields/ListBoxPopover/index.d.ts +1 -0
  189. package/dist/components/fields/ListBoxPopover/listNavigation.js +1 -1
  190. package/dist/components/fields/ListBoxPopover/useCompositeFocus.d.ts +2 -0
  191. package/dist/components/fields/ListBoxPopover/useCompositeFocus.js +1 -1
  192. package/dist/components/fields/NumberInput/NumberInput.d.ts +1 -1
  193. package/dist/components/fields/NumberInput/NumberInput.js +3 -3
  194. package/dist/components/fields/NumberInput/NumberInput.js.map +1 -1
  195. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  196. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  197. package/dist/components/fields/Picker/Picker.js +1 -1
  198. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  199. package/dist/components/fields/RadioGroup/RadioGroup.d.ts +1 -1
  200. package/dist/components/fields/RadioGroup/RadioGroup.js +3 -3
  201. package/dist/components/fields/RadioGroup/RadioGroup.js.map +1 -1
  202. package/dist/components/fields/RadioGroup/context.js +1 -1
  203. package/dist/components/fields/SearchComboBox/SearchComboBox.js +1 -1
  204. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  205. package/dist/components/fields/Select/Select.js +1 -1
  206. package/dist/components/fields/Slider/Gradation.js +1 -1
  207. package/dist/components/fields/Slider/HueSlider.js +1 -1
  208. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  209. package/dist/components/fields/Slider/Slider.js +1 -1
  210. package/dist/components/fields/Slider/SliderBase.js +2 -2
  211. package/dist/components/fields/Slider/SliderBase.js.map +1 -1
  212. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  213. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  214. package/dist/components/fields/Slider/elements.js +1 -1
  215. package/dist/components/fields/Slider/index.js +1 -1
  216. package/dist/components/fields/Slider/types.d.ts +1 -1
  217. package/dist/components/fields/Switch/Switch.d.ts +2 -0
  218. package/dist/components/fields/Switch/Switch.js +1 -1
  219. package/dist/components/fields/Switch/Switch.js.map +1 -1
  220. package/dist/components/fields/TextArea/TextArea.js +1 -1
  221. package/dist/components/fields/TextInput/TextInput.js +1 -1
  222. package/dist/components/fields/TextInput/TextInputBase.d.ts +1 -1
  223. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  224. package/dist/components/fields/TextInput/TextInputBase.js.map +1 -1
  225. package/dist/components/fields/TextInput/useAutoSizeTextArea.js +1 -1
  226. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  227. package/dist/components/fields/TriggerActions.js +1 -1
  228. package/dist/components/fields/color/ColorPanel.js +1 -1
  229. package/dist/components/fields/color/channels.js +1 -1
  230. package/dist/components/fields/color/color.js +1 -1
  231. package/dist/components/fields/color/context.js +1 -1
  232. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  233. package/dist/components/form/Form/Field.js +1 -1
  234. package/dist/components/form/Form/Form.d.ts +38 -2
  235. package/dist/components/form/Form/Form.js +86 -16
  236. package/dist/components/form/Form/Form.js.map +1 -1
  237. package/dist/components/form/Form/ModernFormRoot.d.ts +19 -0
  238. package/dist/components/form/Form/ModernFormRoot.js +108 -0
  239. package/dist/components/form/Form/ModernFormRoot.js.map +1 -0
  240. package/dist/components/form/Form/ResetButton/ResetButton.d.ts +2 -1
  241. package/dist/components/form/Form/ResetButton/ResetButton.js +17 -2
  242. package/dist/components/form/Form/ResetButton/ResetButton.js.map +1 -1
  243. package/dist/components/form/Form/SubmitButton/SubmitButton.d.ts +2 -1
  244. package/dist/components/form/Form/SubmitButton/SubmitButton.js +17 -2
  245. package/dist/components/form/Form/SubmitButton/SubmitButton.js.map +1 -1
  246. package/dist/components/form/Form/SubmitError.js +26 -3
  247. package/dist/components/form/Form/SubmitError.js.map +1 -1
  248. package/dist/components/form/Form/backend.d.ts +25 -0
  249. package/dist/components/form/Form/backend.js +30 -0
  250. package/dist/components/form/Form/backend.js.map +1 -0
  251. package/dist/components/form/Form/index.d.ts +18 -4
  252. package/dist/components/form/Form/index.js +8 -2
  253. package/dist/components/form/Form/index.js.map +1 -1
  254. package/dist/components/form/Form/modern/actions.js +41 -0
  255. package/dist/components/form/Form/modern/actions.js.map +1 -0
  256. package/dist/components/form/Form/modern/context.d.ts +9 -0
  257. package/dist/components/form/Form/modern/context.js +14 -0
  258. package/dist/components/form/Form/modern/context.js.map +1 -0
  259. package/dist/components/form/Form/modern/controller.d.ts +23 -0
  260. package/dist/components/form/Form/modern/controller.js +48 -0
  261. package/dist/components/form/Form/modern/controller.js.map +1 -0
  262. package/dist/components/form/Form/modern/field-binding.js +41 -0
  263. package/dist/components/form/Form/modern/field-binding.js.map +1 -0
  264. package/dist/components/form/Form/modern/path-types.d.ts +12 -0
  265. package/dist/components/form/Form/modern/react.d.ts +21 -0
  266. package/dist/components/form/Form/modern/react.js +27 -0
  267. package/dist/components/form/Form/modern/react.js.map +1 -0
  268. package/dist/components/form/Form/modern/store.js +813 -0
  269. package/dist/components/form/Form/modern/store.js.map +1 -0
  270. package/dist/components/form/Form/modern/types.d.ts +173 -0
  271. package/dist/components/form/Form/modern/validation.d.ts +27 -0
  272. package/dist/components/form/Form/modern/validation.js +41 -0
  273. package/dist/components/form/Form/modern/validation.js.map +1 -0
  274. package/dist/components/form/Form/modern/values.d.ts +7 -0
  275. package/dist/components/form/Form/modern/values.js +144 -0
  276. package/dist/components/form/Form/modern/values.js.map +1 -0
  277. package/dist/components/form/Form/use-field/types.d.ts +4 -1
  278. package/dist/components/form/Form/use-field/use-field-binding.js +93 -0
  279. package/dist/components/form/Form/use-field/use-field-binding.js.map +1 -0
  280. package/dist/components/form/Form/use-field/use-field-props.d.ts +12 -1
  281. package/dist/components/form/Form/use-field/use-field-props.js +67 -50
  282. package/dist/components/form/Form/use-field/use-field-props.js.map +1 -1
  283. package/dist/components/form/Form/use-field/use-field.d.ts +6 -0
  284. package/dist/components/form/Form/use-field/use-field.js +47 -22
  285. package/dist/components/form/Form/use-field/use-field.js.map +1 -1
  286. package/dist/components/form/Form/use-form.d.ts +4 -1
  287. package/dist/components/form/Form/use-form.js +6 -2
  288. package/dist/components/form/Form/use-form.js.map +1 -1
  289. package/dist/components/form/Form/validation.js +2 -2
  290. package/dist/components/form/Label.js +1 -1
  291. package/dist/components/form/index.d.ts +8 -1
  292. package/dist/components/form/validation/ValidationIndicator.js +1 -1
  293. package/dist/components/form/validation/resolve-validation-props.js +1 -1
  294. package/dist/components/form/validation/use-validation-props.js +1 -1
  295. package/dist/components/form/wrapper.js +1 -1
  296. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  297. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  298. package/dist/components/layout/Board/Board.js +1 -1
  299. package/dist/components/layout/Board/BoardProvider.js +1 -1
  300. package/dist/components/layout/Board/BoardResponsive.js +1 -1
  301. package/dist/components/layout/Board/Widget.js +1 -1
  302. package/dist/components/layout/Board/WidgetHost.js +1 -1
  303. package/dist/components/layout/Board/board-context.js +1 -1
  304. package/dist/components/layout/Board/board-store.js +1 -1
  305. package/dist/components/layout/Board/grid-core/calculate.js +1 -1
  306. package/dist/components/layout/Board/grid-core/collision-modes.js +1 -1
  307. package/dist/components/layout/Board/grid-core/collision.js +1 -1
  308. package/dist/components/layout/Board/grid-core/compactors.js +1 -1
  309. package/dist/components/layout/Board/grid-core/constraints.js +1 -1
  310. package/dist/components/layout/Board/grid-core/group-move.js +1 -1
  311. package/dist/components/layout/Board/grid-core/layout.js +1 -1
  312. package/dist/components/layout/Board/grid-core/placement.js +1 -1
  313. package/dist/components/layout/Board/grid-core/sort.js +1 -1
  314. package/dist/components/layout/Board/index.js +1 -1
  315. package/dist/components/layout/Board/responsive-utils.js +1 -1
  316. package/dist/components/layout/Board/use-board-layout.js +1 -1
  317. package/dist/components/layout/Board/use-board-registry.js +1 -1
  318. package/dist/components/layout/Board/use-board-select-modifier-key.js +1 -1
  319. package/dist/components/layout/Board/use-board-selection.js +1 -1
  320. package/dist/components/layout/Flex.js +1 -1
  321. package/dist/components/layout/Flow.js +1 -1
  322. package/dist/components/layout/Grid.js +1 -1
  323. package/dist/components/layout/Panel.js +1 -1
  324. package/dist/components/layout/Prefix.js +1 -1
  325. package/dist/components/layout/ResizablePanel.js +1 -1
  326. package/dist/components/layout/Space.js +1 -1
  327. package/dist/components/layout/Suffix.js +1 -1
  328. package/dist/components/navigation/Pagination/Pagination.js +1 -1
  329. package/dist/components/navigation/Pagination/use-pagination.js +1 -1
  330. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  331. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  332. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  333. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  334. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  335. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  336. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  337. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  338. package/dist/components/navigation/Tabs/popover-placement.js +1 -1
  339. package/dist/components/navigation/Tabs/styled.js +1 -1
  340. package/dist/components/navigation/Tabs/types.js +1 -1
  341. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  342. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  343. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  344. package/dist/components/other/Calendar/Calendar.js +1 -1
  345. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  346. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  347. package/dist/components/other/Calendar/CalendarHeader.js +1 -1
  348. package/dist/components/other/Calendar/CalendarPanel.js +1 -1
  349. package/dist/components/other/Calendar/PeriodCalendar.js +1 -1
  350. package/dist/components/other/Calendar/PeriodGrid.js +1 -1
  351. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  352. package/dist/components/other/Calendar/styled.js +1 -1
  353. package/dist/components/other/CubeLogo/CubeLogo.js +1 -1
  354. package/dist/components/other/NoDataIcon/NoDataIcon.js +1 -1
  355. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  356. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  357. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  358. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  359. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  360. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  361. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  362. package/dist/components/overlays/Dialog/context.js +1 -1
  363. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  364. package/dist/components/overlays/Modal/Modal.d.ts +2 -1
  365. package/dist/components/overlays/Modal/Modal.js +1 -1
  366. package/dist/components/overlays/Modal/OpenTransitionContext.js +1 -1
  367. package/dist/components/overlays/Modal/Overlay.d.ts +1 -0
  368. package/dist/components/overlays/Modal/Overlay.js +1 -1
  369. package/dist/components/overlays/Modal/Popover.js +1 -1
  370. package/dist/components/overlays/Modal/Tray.js +1 -1
  371. package/dist/components/overlays/Modal/Underlay.js +1 -1
  372. package/dist/components/overlays/Modal/types.d.ts +1 -0
  373. package/dist/components/overlays/Notifications/Notification.js +1 -1
  374. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  375. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  376. package/dist/components/overlays/Notifications/NotificationContext.d.ts +2 -0
  377. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  378. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  379. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  380. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  381. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  382. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  383. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  384. package/dist/components/overlays/Notifications/index.js +1 -1
  385. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  386. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  387. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  388. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  389. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  390. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  391. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  392. package/dist/components/overlays/Toast/index.js +1 -1
  393. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  394. package/dist/components/overlays/Toast/useToast.js +1 -1
  395. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  396. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  397. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  398. package/dist/components/overlays/Tooltip/context.js +1 -1
  399. package/dist/components/portal/Portal.js +1 -1
  400. package/dist/components/portal/PortalProvider.d.ts +2 -0
  401. package/dist/components/portal/PortalProvider.js +1 -1
  402. package/dist/components/portal/index.d.ts +1 -0
  403. package/dist/components/portal/usePortal.js +1 -1
  404. package/dist/components/shared/DraggableCollection.js +1 -1
  405. package/dist/components/shared/InvalidIcon.js +1 -1
  406. package/dist/components/shared/ValidIcon.js +1 -1
  407. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  408. package/dist/components/status/Spin/Cube.js +1 -1
  409. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  410. package/dist/components/status/Spin/Spin.js +1 -1
  411. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  412. package/dist/data/item-themes.js +1 -1
  413. package/dist/data/themes.js +1 -1
  414. package/dist/eslint-plugin/defaults.generated.js +1 -1
  415. package/dist/eslint-plugin/index.js +1 -1
  416. package/dist/eslint-plugin/rules/no-redundant-default-prop.js +1 -1
  417. package/dist/i18n/I18nProvider.js +1 -1
  418. package/dist/i18n/createFormatter.js +1 -1
  419. package/dist/i18n/index.js +1 -1
  420. package/dist/i18n/instance.js +1 -1
  421. package/dist/i18n/locales/de-DE/uikit.js +1 -1
  422. package/dist/i18n/locales/en-US/uikit.js +1 -1
  423. package/dist/i18n/locales/es-ES/uikit.js +1 -1
  424. package/dist/i18n/locales/es-MX/uikit.js +1 -1
  425. package/dist/i18n/locales/fr-FR/uikit.js +1 -1
  426. package/dist/i18n/locales/it-IT/uikit.js +1 -1
  427. package/dist/i18n/locales/ja-JP/uikit.js +1 -1
  428. package/dist/i18n/locales/nb-NO/uikit.js +1 -1
  429. package/dist/i18n/locales/pt-BR/uikit.js +1 -1
  430. package/dist/i18n/locales/pt-PT/uikit.js +1 -1
  431. package/dist/i18n/locales/sv-SE/uikit.js +1 -1
  432. package/dist/i18n/locales/vi-VN/uikit.js +1 -1
  433. package/dist/i18n/locales.js +1 -1
  434. package/dist/i18n/useFormatter.js +1 -1
  435. package/dist/i18n/useI18n.js +1 -1
  436. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  437. package/dist/icons/AdjustmentsIcon.js +1 -1
  438. package/dist/icons/AiIcon.js +1 -1
  439. package/dist/icons/AreaChartIcon.js +1 -1
  440. package/dist/icons/ArrowNarrowDownIcon.js +1 -1
  441. package/dist/icons/ArrowNarrowUpIcon.js +1 -1
  442. package/dist/icons/BackwardIcon.js +1 -1
  443. package/dist/icons/BarChartIcon.js +1 -1
  444. package/dist/icons/BellFilledIcon.js +1 -1
  445. package/dist/icons/BellIcon.js +1 -1
  446. package/dist/icons/BooleanIcon.js +1 -1
  447. package/dist/icons/CalendarEditIcon.js +1 -1
  448. package/dist/icons/CalendarIcon.js +1 -1
  449. package/dist/icons/CaretDownIcon.js +1 -1
  450. package/dist/icons/CaretUpIcon.js +1 -1
  451. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  452. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  453. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  454. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  455. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  456. package/dist/icons/ChartBarLineIcon.js +1 -1
  457. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  458. package/dist/icons/ChartBarStackedIcon.js +1 -1
  459. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  460. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  461. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  462. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  463. package/dist/icons/ChartBubbleIcon.js +1 -1
  464. package/dist/icons/ChartDonut2Icon.js +1 -1
  465. package/dist/icons/ChartFunnelIcon.js +1 -1
  466. package/dist/icons/ChartHeatmapIcon.js +1 -1
  467. package/dist/icons/ChartKPIIcon.js +1 -1
  468. package/dist/icons/ChartPie2Icon.js +1 -1
  469. package/dist/icons/ChartScatterIcon.js +1 -1
  470. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  471. package/dist/icons/CheckCircleIcon.js +1 -1
  472. package/dist/icons/CheckIcon.js +1 -1
  473. package/dist/icons/CircleFilledIcon.js +1 -1
  474. package/dist/icons/ClearIcon.js +1 -1
  475. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  476. package/dist/icons/CloseCircleIcon.js +1 -1
  477. package/dist/icons/CloseIcon.js +1 -1
  478. package/dist/icons/CodeIcon.js +1 -1
  479. package/dist/icons/ColumnTotalIcon.js +1 -1
  480. package/dist/icons/CopyIcon.js +1 -1
  481. package/dist/icons/CountIcon.js +1 -1
  482. package/dist/icons/CubeIcon.js +1 -1
  483. package/dist/icons/CubePauseIcon.js +1 -1
  484. package/dist/icons/CubePlayIcon.js +1 -1
  485. package/dist/icons/CurrencyDollarIcon.js +1 -1
  486. package/dist/icons/DangerIcon.js +1 -1
  487. package/dist/icons/DashboardIcon.js +1 -1
  488. package/dist/icons/DatabaseIcon.js +1 -1
  489. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  490. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  491. package/dist/icons/DirectionIcon.js +1 -1
  492. package/dist/icons/DonutIcon.js +1 -1
  493. package/dist/icons/DownIcon.js +1 -1
  494. package/dist/icons/EditIcon.js +1 -1
  495. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  496. package/dist/icons/ExclamationCircleIcon.js +1 -1
  497. package/dist/icons/ExclamationIcon.js +1 -1
  498. package/dist/icons/EyeIcon.js +1 -1
  499. package/dist/icons/EyeInvisibleIcon.js +1 -1
  500. package/dist/icons/FilterIcon.js +1 -1
  501. package/dist/icons/FolderFilledIcon.js +1 -1
  502. package/dist/icons/FolderIcon.js +1 -1
  503. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  504. package/dist/icons/FolderOpenIcon.js +1 -1
  505. package/dist/icons/ForwardIcon.js +1 -1
  506. package/dist/icons/GripVerticalIcon.js +1 -1
  507. package/dist/icons/HierarchyIcon.js +1 -1
  508. package/dist/icons/HierarchyOpenIcon.js +1 -1
  509. package/dist/icons/Icon.js +1 -1
  510. package/dist/icons/InfoCircleIcon.js +1 -1
  511. package/dist/icons/InfoIcon.js +1 -1
  512. package/dist/icons/KeyIcon.js +1 -1
  513. package/dist/icons/LeftIcon.js +1 -1
  514. package/dist/icons/LineChartIcon.js +1 -1
  515. package/dist/icons/LoadingIcon.js +1 -1
  516. package/dist/icons/LockFilledIcon.js +1 -1
  517. package/dist/icons/LockIcon.js +1 -1
  518. package/dist/icons/MoreIcon.js +1 -1
  519. package/dist/icons/NotAllowedIcon.js +1 -1
  520. package/dist/icons/Number123Icon.js +1 -1
  521. package/dist/icons/NumberIcon.js +1 -1
  522. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  523. package/dist/icons/PauseCircleIcon.js +1 -1
  524. package/dist/icons/PauseIcon.js +1 -1
  525. package/dist/icons/PercentageIcon.js +1 -1
  526. package/dist/icons/PieChartIcon.js +1 -1
  527. package/dist/icons/PipetteIcon.js +1 -1
  528. package/dist/icons/PlayCircleIcon.js +1 -1
  529. package/dist/icons/PlayIcon.js +1 -1
  530. package/dist/icons/PlusIcon.js +1 -1
  531. package/dist/icons/ProgressBarIcon.js +1 -1
  532. package/dist/icons/ReloadIcon.js +1 -1
  533. package/dist/icons/ReportIcon.js +1 -1
  534. package/dist/icons/ReturnIcon.js +1 -1
  535. package/dist/icons/RightIcon.js +1 -1
  536. package/dist/icons/RowTotalsIcon.js +1 -1
  537. package/dist/icons/SchemeIcon.js +1 -1
  538. package/dist/icons/SearchIcon.js +1 -1
  539. package/dist/icons/SemanticQueryIcon.js +1 -1
  540. package/dist/icons/SettingsIcon.js +1 -1
  541. package/dist/icons/ShieldFilledIcon.js +1 -1
  542. package/dist/icons/ShieldIcon.js +1 -1
  543. package/dist/icons/SlashIcon.js +1 -1
  544. package/dist/icons/SparklesIcon.js +1 -1
  545. package/dist/icons/SqlIcon.js +1 -1
  546. package/dist/icons/StatsIcon.js +1 -1
  547. package/dist/icons/StopIcon.js +1 -1
  548. package/dist/icons/StringIcon.js +1 -1
  549. package/dist/icons/SubtotalsIcon.js +1 -1
  550. package/dist/icons/SwitchIcon.js +1 -1
  551. package/dist/icons/TableIcon.js +1 -1
  552. package/dist/icons/ThumbsDownIcon.js +1 -1
  553. package/dist/icons/ThumbsUpIcon.js +1 -1
  554. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  555. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  556. package/dist/icons/ThunderboltIcon.js +1 -1
  557. package/dist/icons/TimeIcon.js +1 -1
  558. package/dist/icons/TrashIcon.js +1 -1
  559. package/dist/icons/UnlockIcon.js +1 -1
  560. package/dist/icons/UpIcon.js +1 -1
  561. package/dist/icons/UserGroupIcon.js +1 -1
  562. package/dist/icons/UserIcon.js +1 -1
  563. package/dist/icons/UserLockIcon.js +1 -1
  564. package/dist/icons/ViewIcon.js +1 -1
  565. package/dist/icons/WarningFilledIcon.js +1 -1
  566. package/dist/icons/WarningIcon.js +1 -1
  567. package/dist/icons/wrap-icon.js +1 -1
  568. package/dist/index.d.ts +10 -3
  569. package/dist/index.js +3 -3
  570. package/dist/probe/canonicalize.js +1 -1
  571. package/dist/probe/css.js +1 -1
  572. package/dist/probe/index.js +1 -1
  573. package/dist/provider.js +1 -1
  574. package/dist/providers/TrackingProvider.js +1 -1
  575. package/dist/providers/navigationAdapter.default.js +1 -1
  576. package/dist/shared/form.d.ts +16 -2
  577. package/dist/shared/index.d.ts +1 -1
  578. package/dist/tokens/all-tokens.js +1 -1
  579. package/dist/tokens/base.js +1 -1
  580. package/dist/tokens/color-seed.js +1 -1
  581. package/dist/tokens/color-theme.js +1 -1
  582. package/dist/tokens/colors.js +1 -1
  583. package/dist/tokens/layout.js +1 -1
  584. package/dist/tokens/lazy-styles.js +1 -1
  585. package/dist/tokens/legacy-color.js +1 -1
  586. package/dist/tokens/palette-config.js +1 -1
  587. package/dist/tokens/palette.js +1 -1
  588. package/dist/tokens/resolve.js +1 -1
  589. package/dist/tokens/shadows.js +1 -1
  590. package/dist/tokens/sizes.js +1 -1
  591. package/dist/tokens/spacing.js +1 -1
  592. package/dist/tokens/typography.js +1 -1
  593. package/dist/utils/ResizeSensor.js +1 -1
  594. package/dist/utils/colors.js +1 -1
  595. package/dist/utils/dotize.js +1 -1
  596. package/dist/utils/is-dev-env.js +1 -1
  597. package/dist/utils/modules.js +1 -1
  598. package/dist/utils/promise.js +1 -1
  599. package/dist/utils/raf.js +1 -1
  600. package/dist/utils/random.js +1 -1
  601. package/dist/utils/range.js +1 -1
  602. package/dist/utils/react/RenderCache.js +1 -1
  603. package/dist/utils/react/Slots.js +1 -1
  604. package/dist/utils/react/chain.js +1 -1
  605. package/dist/utils/react/disabledProps.js +1 -1
  606. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  607. package/dist/utils/react/index.js +1 -1
  608. package/dist/utils/react/interactions.js +1 -1
  609. package/dist/utils/react/isTextOnly.js +1 -1
  610. package/dist/utils/react/mapProps.js +1 -1
  611. package/dist/utils/react/mergeProps.js +1 -1
  612. package/dist/utils/react/nullableValue.js +1 -1
  613. package/dist/utils/react/resolveIcon.js +1 -1
  614. package/dist/utils/react/sharedStore.js +1 -1
  615. package/dist/utils/react/useBufferedValue.js +1 -1
  616. package/dist/utils/react/useCombinedRefs.js +1 -1
  617. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  618. package/dist/utils/react/useEventBus.js +1 -1
  619. package/dist/utils/react/useId.js +1 -1
  620. package/dist/utils/react/useIsDarwin.js +1 -1
  621. package/dist/utils/react/useKeySymbols.js +1 -1
  622. package/dist/utils/react/useLayoutEffect.js +1 -1
  623. package/dist/utils/react/useLocalStorage.js +1 -1
  624. package/dist/utils/react/useMergeStyles.js +1 -1
  625. package/dist/utils/react/usePopoverSync.js +1 -1
  626. package/dist/utils/react/useQaProps.js +1 -1
  627. package/dist/utils/react/useScheme.js +1 -1
  628. package/dist/utils/react/useViewportSize.js +1 -1
  629. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  630. package/dist/utils/selection.js +1 -1
  631. package/dist/utils/styles.js +1 -1
  632. package/dist/utils/tree.js +1 -1
  633. package/dist/utils/warnings.js +1 -1
  634. package/dist/version.js +3 -3
  635. package/docs/CreateComponent.md +4 -0
  636. package/docs/Usage.md +2 -0
  637. package/docs/components/form/Form.md +51 -1
  638. package/docs/modern-form-migration.md +104 -0
  639. package/docs/modern-form-typecheck.md +35 -0
  640. package/package.json +12 -3
@@ -0,0 +1,48 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
2
+ import { FORM_BACKEND, isModernFormController } from "../backend.js";
3
+ import { createFormStore } from "./store.js";
4
+
5
+ //#region src/components/form/Form/modern/controller.ts
6
+ const CONTROLLER_STORE = Symbol.for("@cube-dev/ui-kit/form-controller-store");
7
+ /** Pure allocation for the creation hook; no listeners or external effects. */
8
+ function createFormController(options) {
9
+ const store = createFormStore(options);
10
+ const serverSnapshot = store.getSnapshot();
11
+ const internals = {
12
+ store,
13
+ getServerSnapshot: () => serverSnapshot
14
+ };
15
+ return Object.freeze({
16
+ [FORM_BACKEND]: "modern",
17
+ [CONTROLLER_STORE]: internals,
18
+ validate: store.validate,
19
+ submit: store.submit,
20
+ blur: store.blur,
21
+ getSnapshot: store.getSnapshot,
22
+ getFieldSnapshot: store.getFieldSnapshot,
23
+ getValue: store.getValue,
24
+ getValues: store.getValues,
25
+ getActiveValues: store.getActiveValues,
26
+ subscribe: store.subscribe,
27
+ setValue: store.setValue,
28
+ setValues: store.setValues,
29
+ batch: store.batch,
30
+ setDefaultValues: store.setDefaultValues,
31
+ adoptDefaultValues: store.adoptDefaultValues,
32
+ reset: store.reset,
33
+ touch: store.touch,
34
+ setFieldErrors: store.setFieldErrors,
35
+ clearFieldErrors: store.clearFieldErrors,
36
+ setSubmitError: store.setSubmitError,
37
+ clearSubmitError: store.clearSubmitError
38
+ });
39
+ }
40
+ function getControllerInternals(controller, receiver) {
41
+ const internals = isModernFormController(controller) ? controller[CONTROLLER_STORE] : void 0;
42
+ if (!internals) throw new Error(`${receiver} requires a modern form controller created by Form.useController(). Legacy Form instances and bare backend brands are not supported.`);
43
+ return internals;
44
+ }
45
+
46
+ //#endregion
47
+ export { createFormController, getControllerInternals };
48
+ //# sourceMappingURL=controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controller.js","names":[],"sources":["../../../../../src/components/form/Form/modern/controller.ts"],"sourcesContent":["import { FORM_BACKEND, isModernFormController } from '../backend';\n\nimport { createFormStore } from './store';\n\nimport type { ReactNode } from 'react';\nimport type { FormValueAtPath } from './path-types';\nimport type {\n FormState,\n FormStore,\n FormStoreOptions,\n SetValueOptions,\n ModernFieldValidationResult as StoreFieldValidationResult,\n ModernSubmitResult as StoreSubmitResult,\n ModernValidationResult as StoreValidationResult,\n} from './types';\nimport type { ModernValidationRule as StoreValidationRule } from './validation';\nimport type { FormPath } from './values';\n\nexport type ModernValidationRule = StoreValidationRule<ReactNode>;\nexport type ModernValidationResult = StoreValidationResult<ReactNode>;\nexport type ModernFieldValidationResult = StoreFieldValidationResult<ReactNode>;\nexport type ModernSubmitResult = StoreSubmitResult<ReactNode>;\n\nexport type ModernFormState<T extends object = Record<string, unknown>> =\n FormState<T, ReactNode>;\n\nexport type UseFormControllerOptions<\n T extends object = Record<string, unknown>,\n> = FormStoreOptions<T>;\n\n/** Public commands; registration and pipeline state tokens stay internal. */\nexport type FormController<T extends object = Record<string, unknown>> =\n Readonly<\n Pick<\n FormStore<T, ReactNode>,\n | typeof FORM_BACKEND\n | 'validate'\n | 'submit'\n | 'blur'\n | 'getSnapshot'\n | 'getFieldSnapshot'\n | 'getValues'\n | 'getActiveValues'\n | 'subscribe'\n | 'setValues'\n | 'batch'\n | 'setDefaultValues'\n | 'adoptDefaultValues'\n | 'reset'\n | 'touch'\n | 'setFieldErrors'\n | 'clearFieldErrors'\n | 'setSubmitError'\n | 'clearSubmitError'\n > & {\n getValue<const Path extends FormPath>(\n path: Path,\n ): FormValueAtPath<T, Path> | undefined;\n setValue<const Path extends FormPath>(\n path: Path,\n value: FormValueAtPath<T, NoInfer<Path>> | undefined,\n options?: SetValueOptions,\n ): void;\n }\n >;\n\n// Symbol.for also lets two copies of the kit share a controller, just as the\n// backend brand does. This symbol and the store are not package exports.\nconst CONTROLLER_STORE = Symbol.for('@cube-dev/ui-kit/form-controller-store');\n\ninterface ControllerInternals<T extends object> {\n store: FormStore<T, ReactNode>;\n getServerSnapshot(): ModernFormState<T>;\n}\n\n/** Pure allocation for the creation hook; no listeners or external effects. */\nexport function createFormController<T extends object>(\n options?: UseFormControllerOptions<T>,\n): FormController<T> {\n const store = createFormStore<T, ReactNode>(options);\n const serverSnapshot = store.getSnapshot();\n const internals: ControllerInternals<T> = {\n store,\n getServerSnapshot: () => serverSnapshot,\n };\n return Object.freeze({\n [FORM_BACKEND]: 'modern' as const,\n [CONTROLLER_STORE]: internals,\n validate: store.validate,\n submit: store.submit,\n blur: store.blur,\n getSnapshot: store.getSnapshot,\n getFieldSnapshot: store.getFieldSnapshot,\n getValue: store.getValue,\n getValues: store.getValues,\n getActiveValues: store.getActiveValues,\n subscribe: store.subscribe,\n setValue: store.setValue,\n setValues: store.setValues,\n batch: store.batch,\n setDefaultValues: store.setDefaultValues,\n adoptDefaultValues: store.adoptDefaultValues,\n reset: store.reset,\n touch: store.touch,\n setFieldErrors: store.setFieldErrors,\n clearFieldErrors: store.clearFieldErrors,\n setSubmitError: store.setSubmitError,\n clearSubmitError: store.clearSubmitError,\n }) as FormController<T>;\n}\n\nexport function getControllerInternals<T extends object>(\n controller: FormController<T>,\n receiver: string,\n): ControllerInternals<T> {\n const internals = isModernFormController(controller)\n ? (controller as unknown as Record<symbol, ControllerInternals<T>>)[\n CONTROLLER_STORE\n ]\n : undefined;\n if (!internals) {\n throw new Error(\n `${receiver} requires a modern form controller created by Form.useController(). Legacy Form instances and bare backend brands are not supported.`,\n );\n }\n return internals;\n}\n"],"mappings":";;;;;AAoEA,MAAM,mBAAmB,OAAO,IAAI,yCAAyC;;AAQ7E,SAAgB,qBACd,SACmB;CACnB,MAAM,QAAQ,gBAA8B,QAAQ;CACpD,MAAM,iBAAiB,MAAM,aAAa;CAC1C,MAAM,YAAoC;EACxC;EACA,yBAAyB;EAC1B;AACD,QAAO,OAAO,OAAO;GAClB,eAAe;GACf,mBAAmB;EACpB,UAAU,MAAM;EAChB,QAAQ,MAAM;EACd,MAAM,MAAM;EACZ,aAAa,MAAM;EACnB,kBAAkB,MAAM;EACxB,UAAU,MAAM;EAChB,WAAW,MAAM;EACjB,iBAAiB,MAAM;EACvB,WAAW,MAAM;EACjB,UAAU,MAAM;EAChB,WAAW,MAAM;EACjB,OAAO,MAAM;EACb,kBAAkB,MAAM;EACxB,oBAAoB,MAAM;EAC1B,OAAO,MAAM;EACb,OAAO,MAAM;EACb,gBAAgB,MAAM;EACtB,kBAAkB,MAAM;EACxB,gBAAgB,MAAM;EACtB,kBAAkB,MAAM;EACzB,CAAC;;AAGJ,SAAgB,uBACd,YACA,UACwB;CACxB,MAAM,YAAY,uBAAuB,WAAW,GAC/C,WACC,oBAEF;AACJ,KAAI,CAAC,UACH,OAAM,IAAI,MACR,GAAG,SAAS,sIACb;AAEH,QAAO"}
@@ -0,0 +1,41 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
2
+ import { getFieldKey } from "./values.js";
3
+ import { getControllerInternals } from "./controller.js";
4
+
5
+ //#region src/components/form/Form/modern/field-binding.ts
6
+ function sameFieldView(a, b) {
7
+ return Object.is(a?.value, b?.value) && a?.errors === b?.errors && a?.status === b?.status;
8
+ }
9
+ function createModernFieldBackend(form, name) {
10
+ const { store, getServerSnapshot } = getControllerInternals(form, `The "${name}" field`);
11
+ const key = getFieldKey(name);
12
+ return {
13
+ subscribe: store.subscribe,
14
+ getSnapshot: () => store.getFieldSnapshot(name),
15
+ getServerSnapshot: () => getServerSnapshot().fields[key],
16
+ register: () => store.register(name),
17
+ change: (value, dontTouch) => store.setValue(name, value, {
18
+ source: "user",
19
+ touch: !dontTouch,
20
+ validate: dontTouch ? "never" : "auto"
21
+ }),
22
+ blur: () => store.blur(name)
23
+ };
24
+ }
25
+ function fieldRegistrationOptions(props, defaultTrigger) {
26
+ const rules = props.rules?.flat(Infinity);
27
+ return {
28
+ ...Object.hasOwn(props, "defaultValue") ? { defaultValue: props.defaultValue } : {},
29
+ preserve: props.preserve,
30
+ isEqual: props.isEqual,
31
+ rules: props.isRequired && !rules?.some((rule) => rule.required) ? [{ required: true }, ...rules ?? []] : rules,
32
+ rulesKey: props.rulesKey === void 0 ? void 0 : `${props.isRequired ? "required:" : ""}${props.rulesKey}`,
33
+ validationDelay: props.validationDelay,
34
+ validateTrigger: props.validateTrigger ?? defaultTrigger ?? "onBlur",
35
+ errorPolicy: props.errorPolicy
36
+ };
37
+ }
38
+
39
+ //#endregion
40
+ export { createModernFieldBackend, fieldRegistrationOptions, sameFieldView };
41
+ //# sourceMappingURL=field-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-binding.js","names":[],"sources":["../../../../../src/components/form/Form/modern/field-binding.ts"],"sourcesContent":["import { getControllerInternals } from './controller';\nimport { getFieldKey } from './values';\n\nimport type { ReactNode } from 'react';\nimport type { FieldCoreProps, ValidateTrigger } from '../../../../shared/form';\nimport type { FormController } from './controller';\nimport type {\n FieldState,\n RegistrationOptions,\n RegistrationToken,\n} from './types';\n\n/** The only state a bound input renders; metadata stays in selector subscribers. */\nexport type FieldView = Pick<\n FieldState<ReactNode>,\n 'value' | 'errors' | 'status'\n>;\n\nexport interface FieldBackendHandle {\n subscribe(listener: () => void): () => void;\n getSnapshot(): FieldView | undefined;\n getServerSnapshot(): FieldView | undefined;\n register(): RegistrationToken<ReactNode> | undefined;\n change(value: unknown, dontTouch: boolean, trigger: ValidateTrigger): void;\n blur(): void;\n}\n\nexport function sameFieldView(a?: FieldView, b?: FieldView) {\n return (\n Object.is(a?.value, b?.value) &&\n a?.errors === b?.errors &&\n a?.status === b?.status\n );\n}\n\nexport function createModernFieldBackend(\n form: FormController<any>,\n name: string,\n): FieldBackendHandle {\n const { store, getServerSnapshot } = getControllerInternals(\n form,\n `The \"${name}\" field`,\n );\n const key = getFieldKey(name);\n return {\n subscribe: store.subscribe,\n getSnapshot: () => store.getFieldSnapshot(name),\n getServerSnapshot: () => getServerSnapshot().fields[key],\n register: () => store.register(name),\n change: (value, dontTouch) =>\n store.setValue(name, value, {\n source: 'user',\n touch: !dontTouch,\n validate: dontTouch ? 'never' : 'auto',\n }),\n blur: () => store.blur(name),\n };\n}\n\nexport function fieldRegistrationOptions(\n props: FieldCoreProps & {\n defaultValue?: unknown;\n validateTrigger?: ValidateTrigger;\n },\n defaultTrigger?: ValidateTrigger,\n): RegistrationOptions<ReactNode> {\n const rules = props.rules?.flat(Infinity);\n return {\n ...(Object.hasOwn(props, 'defaultValue')\n ? { defaultValue: props.defaultValue }\n : {}),\n preserve: props.preserve,\n isEqual: props.isEqual,\n rules:\n props.isRequired && !rules?.some((rule) => rule.required)\n ? [{ required: true }, ...(rules ?? [])]\n : rules,\n rulesKey:\n props.rulesKey === undefined\n ? undefined\n : `${props.isRequired ? 'required:' : ''}${props.rulesKey}`,\n validationDelay: props.validationDelay,\n validateTrigger: props.validateTrigger ?? defaultTrigger ?? 'onBlur',\n errorPolicy: props.errorPolicy,\n };\n}\n"],"mappings":";;;;;AA2BA,SAAgB,cAAc,GAAe,GAAe;AAC1D,QACE,OAAO,GAAG,GAAG,OAAO,GAAG,MAAM,IAC7B,GAAG,WAAW,GAAG,UACjB,GAAG,WAAW,GAAG;;AAIrB,SAAgB,yBACd,MACA,MACoB;CACpB,MAAM,EAAE,OAAO,sBAAsB,uBACnC,MACA,QAAQ,KAAK,SACd;CACD,MAAM,MAAM,YAAY,KAAK;AAC7B,QAAO;EACL,WAAW,MAAM;EACjB,mBAAmB,MAAM,iBAAiB,KAAK;EAC/C,yBAAyB,mBAAmB,CAAC,OAAO;EACpD,gBAAgB,MAAM,SAAS,KAAK;EACpC,SAAS,OAAO,cACd,MAAM,SAAS,MAAM,OAAO;GAC1B,QAAQ;GACR,OAAO,CAAC;GACR,UAAU,YAAY,UAAU;GACjC,CAAC;EACJ,YAAY,MAAM,KAAK,KAAK;EAC7B;;AAGH,SAAgB,yBACd,OAIA,gBACgC;CAChC,MAAM,QAAQ,MAAM,OAAO,KAAK,SAAS;AACzC,QAAO;EACL,GAAI,OAAO,OAAO,OAAO,eAAe,GACpC,EAAE,cAAc,MAAM,cAAc,GACpC,EAAE;EACN,UAAU,MAAM;EAChB,SAAS,MAAM;EACf,OACE,MAAM,cAAc,CAAC,OAAO,MAAM,SAAS,KAAK,SAAS,GACrD,CAAC,EAAE,UAAU,MAAM,EAAE,GAAI,SAAS,EAAE,CAAE,GACtC;EACN,UACE,MAAM,aAAa,SACf,SACA,GAAG,MAAM,aAAa,cAAc,KAAK,MAAM;EACrD,iBAAiB,MAAM;EACvB,iBAAiB,MAAM,mBAAmB,kBAAkB;EAC5D,aAAa,MAAM;EACpB"}
@@ -0,0 +1,12 @@
1
+
2
+ import { FormPath } from "./values.js";
3
+
4
+ //#region src/components/form/Form/modern/path-types.d.ts
5
+ /** Resolve only the supplied path; never enumerate a model's possible paths. */
6
+ type SegmentValue<Value, Key extends string | number> = Value extends null | undefined ? undefined : Key extends keyof Value ? Value[Key] : Value extends readonly (infer Item)[] ? Key extends `${number}` ? Item : unknown : unknown;
7
+ type TupleValue<Value, Path extends readonly (string | number)[]> = Path extends readonly [infer Key extends string | number, ...infer Rest extends readonly (string | number)[]] ? Rest extends readonly [] ? SegmentValue<Value, Key> : TupleValue<SegmentValue<Value, Key>, Rest> : unknown;
8
+ /** Strings are literal keys; unknown/dynamic names and paths return unknown. */
9
+ type FormValueAtPath<Values extends object, Path extends FormPath> = Path extends string ? Path extends keyof Values ? Values[Path] : unknown : Path extends readonly (string | number)[] ? TupleValue<Values, Path> : unknown;
10
+ //#endregion
11
+ export { FormValueAtPath };
12
+ //# sourceMappingURL=path-types.d.ts.map
@@ -0,0 +1,21 @@
1
+
2
+ import { FormController, ModernFormState, UseFormControllerOptions } from "./controller.js";
3
+ import { ReactNode } from "react";
4
+ import * as react_jsx_runtime0 from "react/jsx-runtime";
5
+
6
+ //#region src/components/form/Form/modern/react.d.ts
7
+ declare function useFormController<T extends object = Record<string, unknown>>(options?: UseFormControllerOptions<T>): FormController<T>;
8
+ interface FormSelectorOptions<Selected> {
9
+ isEqual?: (previous: Selected, next: Selected) => boolean;
10
+ }
11
+ declare function useFormSelector<T extends object, Selected>(controller: FormController<T>, selector: (state: ModernFormState<T>) => Selected, options?: FormSelectorOptions<Selected>): Selected;
12
+ interface FormSubscribeProps<T extends object, Selected> extends FormSelectorOptions<Selected> {
13
+ /** Omit to use modern context. An explicit undefined detaches from context. */
14
+ form?: FormController<T>;
15
+ selector: (state: ModernFormState<T>) => Selected;
16
+ children: (selected: Selected) => ReactNode;
17
+ }
18
+ declare function FormSubscribe<T extends object = Record<string, unknown>, Selected = unknown>(props: FormSubscribeProps<T, Selected>): react_jsx_runtime0.JSX.Element;
19
+ //#endregion
20
+ export { FormSelectorOptions, FormSubscribe, FormSubscribeProps, useFormController, useFormSelector };
21
+ //# sourceMappingURL=react.d.ts.map
@@ -0,0 +1,27 @@
1
+ /** @license MIT | @cube-dev/ui-kit v0.180.0 | Cube Dev Team */
2
+ import { ModernControllerContext } from "./context.js";
3
+ import { createFormController, getControllerInternals } from "./controller.js";
4
+ import { useContext, useState } from "react";
5
+ import { Fragment as Fragment$1, jsx } from "react/jsx-runtime";
6
+ import { useSyncExternalStoreWithSelector } from "use-sync-external-store/with-selector.js";
7
+
8
+ //#region src/components/form/Form/modern/react.tsx
9
+ function useFormController(options) {
10
+ const [controller] = useState(() => createFormController(options));
11
+ return controller;
12
+ }
13
+ function useFormSelector(controller, selector, options) {
14
+ const { getServerSnapshot } = getControllerInternals(controller, "Form.useSelector()");
15
+ return useSyncExternalStoreWithSelector(controller.subscribe, controller.getSnapshot, getServerSnapshot, selector, options?.isEqual);
16
+ }
17
+ function FormSubscribe(props) {
18
+ const fromContext = useContext(ModernControllerContext);
19
+ const controller = Object.hasOwn(props, "form") ? props.form : fromContext;
20
+ if (!controller) throw new Error("<Form.Subscribe> requires a modern form prop or a modern <Form> root.");
21
+ const selected = useFormSelector(controller, props.selector, { isEqual: props.isEqual });
22
+ return /* @__PURE__ */ jsx(Fragment$1, { children: props.children(selected) });
23
+ }
24
+
25
+ //#endregion
26
+ export { FormSubscribe, useFormController, useFormSelector };
27
+ //# sourceMappingURL=react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"react.js","names":[],"sources":["../../../../../src/components/form/Form/modern/react.tsx"],"sourcesContent":["import { useContext, useState } from 'react';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/with-selector.js';\n\nimport { ModernControllerContext } from './context';\nimport { createFormController, getControllerInternals } from './controller';\n\nimport type { ReactNode } from 'react';\nimport type {\n FormController,\n ModernFormState,\n UseFormControllerOptions,\n} from './controller';\n\nexport function useFormController<T extends object = Record<string, unknown>>(\n options?: UseFormControllerOptions<T>,\n): FormController<T> {\n // Initial options seed synchronously. A new options object never resets the\n // controller, and the creator does not subscribe its owner to form changes.\n const [controller] = useState(() => createFormController(options));\n // Do not dispose from effect cleanup: Strict Mode and hidden React trees\n // reconnect effects while preserving state. Subscriptions own their cleanup;\n // the controller has no external resources and is collected with its owner.\n return controller;\n}\n\nexport interface FormSelectorOptions<Selected> {\n isEqual?: (previous: Selected, next: Selected) => boolean;\n}\n\nexport function useFormSelector<T extends object, Selected>(\n controller: FormController<T>,\n selector: (state: ModernFormState<T>) => Selected,\n options?: FormSelectorOptions<Selected>,\n): Selected {\n const { getServerSnapshot } = getControllerInternals(\n controller,\n 'Form.useSelector()',\n );\n return useSyncExternalStoreWithSelector(\n controller.subscribe,\n controller.getSnapshot,\n getServerSnapshot,\n selector,\n options?.isEqual,\n );\n}\n\nexport interface FormSubscribeProps<T extends object, Selected>\n extends FormSelectorOptions<Selected> {\n /** Omit to use modern context. An explicit undefined detaches from context. */\n form?: FormController<T>;\n selector: (state: ModernFormState<T>) => Selected;\n children: (selected: Selected) => ReactNode;\n}\n\nexport function FormSubscribe<\n T extends object = Record<string, unknown>,\n Selected = unknown,\n>(props: FormSubscribeProps<T, Selected>) {\n const fromContext = useContext(ModernControllerContext);\n const controller = Object.hasOwn(props, 'form') ? props.form : fromContext;\n if (!controller) {\n throw new Error(\n '<Form.Subscribe> requires a modern form prop or a modern <Form> root.',\n );\n }\n const selected = useFormSelector(controller, props.selector, {\n isEqual: props.isEqual,\n });\n return <>{props.children(selected)}</>;\n}\n"],"mappings":";;;;;;;;AAaA,SAAgB,kBACd,SACmB;CAGnB,MAAM,CAAC,cAAc,eAAe,qBAAqB,QAAQ,CAAC;AAIlE,QAAO;;AAOT,SAAgB,gBACd,YACA,UACA,SACU;CACV,MAAM,EAAE,sBAAsB,uBAC5B,YACA,qBACD;AACD,QAAO,iCACL,WAAW,WACX,WAAW,aACX,mBACA,UACA,SAAS,QACV;;AAWH,SAAgB,cAGd,OAAwC;CACxC,MAAM,cAAc,WAAW,wBAAwB;CACvD,MAAM,aAAa,OAAO,OAAO,OAAO,OAAO,GAAG,MAAM,OAAO;AAC/D,KAAI,CAAC,WACH,OAAM,IAAI,MACR,wEACD;CAEH,MAAM,WAAW,gBAAgB,YAAY,MAAM,UAAU,EAC3D,SAAS,MAAM,SAChB,CAAC;AACF,QAAO,4CAAG,MAAM,SAAS,SAAS,GAAI"}