@cube-dev/ui-kit 0.0.0-canary-d688797 → 0.0.0-canary-bdfccbd

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 (501) hide show
  1. package/dist/_internal/hooks/use-chained-callback.js +1 -1
  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.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/ItemButton/ItemButton.js +1 -1
  27. package/dist/components/actions/Link/Link.js +1 -1
  28. package/dist/components/actions/Menu/Menu.js +1 -1
  29. package/dist/components/actions/Menu/MenuItem.js +1 -1
  30. package/dist/components/actions/Menu/MenuSection.js +1 -1
  31. package/dist/components/actions/Menu/MenuTrigger.js +1 -1
  32. package/dist/components/actions/Menu/SubMenuTrigger.js +1 -1
  33. package/dist/components/actions/Menu/SubmenuTriggerContext.js +1 -1
  34. package/dist/components/actions/Menu/context.js +1 -1
  35. package/dist/components/actions/Menu/styled.js +1 -1
  36. package/dist/components/actions/index.js +1 -1
  37. package/dist/components/actions/use-action.js +1 -1
  38. package/dist/components/actions/use-anchored-menu.js +1 -1
  39. package/dist/components/actions/use-context-menu.js +1 -1
  40. package/dist/components/content/ActiveZone/ActiveZone.js +1 -1
  41. package/dist/components/content/Alert/Alert.js +1 -1
  42. package/dist/components/content/Alert/use-alert.js +1 -1
  43. package/dist/components/content/Avatar/Avatar.js +1 -1
  44. package/dist/components/content/Badge/Badge.js +1 -1
  45. package/dist/components/content/Card/Card.js +1 -1
  46. package/dist/components/content/Content.js +1 -1
  47. package/dist/components/content/CopyPasteBlock/CopyPasteBlock.js +1 -1
  48. package/dist/components/content/CopySnippet/CopySnippet.js +1 -1
  49. package/dist/components/content/Disclosure/Disclosure.js +1 -1
  50. package/dist/components/content/Divider.js +1 -1
  51. package/dist/components/content/Footer.js +1 -1
  52. package/dist/components/content/Header.js +1 -1
  53. package/dist/components/content/HotKeys/HotKeys.js +1 -1
  54. package/dist/components/content/Item/Item.js +1 -1
  55. package/dist/components/content/ItemBadge/ItemBadge.js +1 -1
  56. package/dist/components/content/ItemCard/ItemCard.js +1 -1
  57. package/dist/components/content/Layout/GridLayout.js +1 -1
  58. package/dist/components/content/Layout/Layout.js +1 -1
  59. package/dist/components/content/Layout/LayoutBlock.js +1 -1
  60. package/dist/components/content/Layout/LayoutCenter.js +1 -1
  61. package/dist/components/content/Layout/LayoutContainer.js +1 -1
  62. package/dist/components/content/Layout/LayoutContent.js +1 -1
  63. package/dist/components/content/Layout/LayoutContext.js +1 -1
  64. package/dist/components/content/Layout/LayoutFlex.js +1 -1
  65. package/dist/components/content/Layout/LayoutFooter.js +1 -1
  66. package/dist/components/content/Layout/LayoutGrid.js +1 -1
  67. package/dist/components/content/Layout/LayoutHeader.js +1 -1
  68. package/dist/components/content/Layout/LayoutPane.js +1 -1
  69. package/dist/components/content/Layout/LayoutPanel.js +1 -1
  70. package/dist/components/content/Layout/LayoutPanelHeader.js +1 -1
  71. package/dist/components/content/Layout/LayoutToolbar.js +1 -1
  72. package/dist/components/content/Layout/hooks/useTinyScrollbar.js +1 -1
  73. package/dist/components/content/Layout/index.js +1 -1
  74. package/dist/components/content/Layout/utils.js +1 -1
  75. package/dist/components/content/Paragraph.js +1 -1
  76. package/dist/components/content/Placeholder/Placeholder.js +1 -1
  77. package/dist/components/content/PrismCode/PrismCode.js +1 -1
  78. package/dist/components/content/PrismCode/prismSetup.js +1 -1
  79. package/dist/components/content/PrismDiffCode/PrismDiffCode.js +1 -1
  80. package/dist/components/content/Result/Result.js +1 -1
  81. package/dist/components/content/Skeleton/Skeleton.js +1 -1
  82. package/dist/components/content/Tag/Tag.js +1 -1
  83. package/dist/components/content/Text.js +1 -1
  84. package/dist/components/content/TextItem/TextItem.js +1 -1
  85. package/dist/components/content/Title.js +1 -1
  86. package/dist/components/content/highlightText.js +1 -1
  87. package/dist/components/content/use-auto-tooltip.js +1 -1
  88. package/dist/components/fields/Checkbox/Checkbox.js +1 -1
  89. package/dist/components/fields/Checkbox/CheckboxGroup.js +1 -1
  90. package/dist/components/fields/Checkbox/context.js +1 -1
  91. package/dist/components/fields/ComboBox/ComboBox.js +1 -1
  92. package/dist/components/fields/DatePicker/DateInput.js +1 -1
  93. package/dist/components/fields/DatePicker/DateInputBase.js +1 -1
  94. package/dist/components/fields/DatePicker/DatePicker.js +1 -1
  95. package/dist/components/fields/DatePicker/DatePickerButton.js +1 -1
  96. package/dist/components/fields/DatePicker/DatePickerElement.js +1 -1
  97. package/dist/components/fields/DatePicker/DatePickerInput.js +1 -1
  98. package/dist/components/fields/DatePicker/DatePickerSegment.js +1 -1
  99. package/dist/components/fields/DatePicker/DateRangePicker.js +1 -1
  100. package/dist/components/fields/DatePicker/DateRangeSeparatedPicker.js +1 -1
  101. package/dist/components/fields/DatePicker/TimeInput.js +1 -1
  102. package/dist/components/fields/DatePicker/intl.js +1 -1
  103. package/dist/components/fields/DatePicker/parseDate.js +1 -1
  104. package/dist/components/fields/DatePicker/props.js +1 -1
  105. package/dist/components/fields/DatePicker/utils.js +1 -1
  106. package/dist/components/fields/FileInput/FileInput.js +1 -1
  107. package/dist/components/fields/FilterListBox/FilterListBox.js +1 -1
  108. package/dist/components/fields/FilterPicker/FilterPicker.js +1 -1
  109. package/dist/components/fields/Input/Input.js +1 -1
  110. package/dist/components/fields/ListBox/ListBox.js +1 -1
  111. package/dist/components/fields/NumberInput/NumberInput.js +1 -1
  112. package/dist/components/fields/NumberInput/StepButton.js +1 -1
  113. package/dist/components/fields/PasswordInput/PasswordInput.js +1 -1
  114. package/dist/components/fields/Picker/Picker.js +1 -1
  115. package/dist/components/fields/RadioGroup/Radio.js +1 -1
  116. package/dist/components/fields/RadioGroup/RadioGroup.js +1 -1
  117. package/dist/components/fields/RadioGroup/context.js +1 -1
  118. package/dist/components/fields/SearchInput/SearchInput.js +1 -1
  119. package/dist/components/fields/Select/Select.d.ts +8 -2
  120. package/dist/components/fields/Select/Select.js +1 -1
  121. package/dist/components/fields/Select/Select.js.map +1 -1
  122. package/dist/components/fields/Slider/Gradation.js +1 -1
  123. package/dist/components/fields/Slider/HueSlider.js +1 -1
  124. package/dist/components/fields/Slider/RangeSlider.js +1 -1
  125. package/dist/components/fields/Slider/Slider.js +1 -1
  126. package/dist/components/fields/Slider/SliderBase.js +1 -1
  127. package/dist/components/fields/Slider/SliderThumb.js +1 -1
  128. package/dist/components/fields/Slider/SliderTrack.js +1 -1
  129. package/dist/components/fields/Slider/elements.js +1 -1
  130. package/dist/components/fields/Slider/index.js +1 -1
  131. package/dist/components/fields/Switch/Switch.js +1 -1
  132. package/dist/components/fields/TextArea/TextArea.js +1 -1
  133. package/dist/components/fields/TextInput/TextInput.js +1 -1
  134. package/dist/components/fields/TextInput/TextInputBase.js +1 -1
  135. package/dist/components/fields/TextInputMapper/TextInputMapper.js +1 -1
  136. package/dist/components/form/FieldWrapper/FieldWrapper.js +1 -1
  137. package/dist/components/form/FieldWrapper/extract-field-wrapper-props.js +1 -1
  138. package/dist/components/form/Form/Field.js +1 -1
  139. package/dist/components/form/Form/Form.js +1 -1
  140. package/dist/components/form/Form/ResetButton/ResetButton.js +1 -1
  141. package/dist/components/form/Form/SubmitButton/SubmitButton.js +1 -1
  142. package/dist/components/form/Form/SubmitError.js +1 -1
  143. package/dist/components/form/Form/index.js +1 -1
  144. package/dist/components/form/Form/use-field/use-field-props.js +1 -1
  145. package/dist/components/form/Form/use-field/use-field.js +1 -1
  146. package/dist/components/form/Form/use-form.js +1 -1
  147. package/dist/components/form/Form/validation.js +1 -1
  148. package/dist/components/form/Label.js +1 -1
  149. package/dist/components/form/wrapper.js +1 -1
  150. package/dist/components/helpers/DisplayTransition/DisplayTransition.js +1 -1
  151. package/dist/components/helpers/IconSwitch/IconSwitch.js +1 -1
  152. package/dist/components/layout/Flex.js +1 -1
  153. package/dist/components/layout/Flow.js +1 -1
  154. package/dist/components/layout/Grid.js +1 -1
  155. package/dist/components/layout/Panel.js +1 -1
  156. package/dist/components/layout/Prefix.js +1 -1
  157. package/dist/components/layout/ResizablePanel.js +1 -1
  158. package/dist/components/layout/Space.js +1 -1
  159. package/dist/components/layout/Suffix.js +1 -1
  160. package/dist/components/navigation/Tabs/DraggableTabList.js +1 -1
  161. package/dist/components/navigation/Tabs/EditableTitle.js +1 -1
  162. package/dist/components/navigation/Tabs/TabButton.js +1 -1
  163. package/dist/components/navigation/Tabs/TabDropIndicator.js +1 -1
  164. package/dist/components/navigation/Tabs/TabPanel.js +1 -1
  165. package/dist/components/navigation/Tabs/TabPicker.js +1 -1
  166. package/dist/components/navigation/Tabs/Tabs.js +1 -1
  167. package/dist/components/navigation/Tabs/TabsAction.js +1 -1
  168. package/dist/components/navigation/Tabs/TabsContext.js +1 -1
  169. package/dist/components/navigation/Tabs/styled.js +1 -1
  170. package/dist/components/navigation/Tabs/types.js +1 -1
  171. package/dist/components/navigation/Tabs/use-tab-editing.js +1 -1
  172. package/dist/components/navigation/Tabs/use-tab-indicator.js +1 -1
  173. package/dist/components/organisms/FileTabs/FileTabs.js +1 -1
  174. package/dist/components/organisms/StatsCard/StatsCard.js +1 -1
  175. package/dist/components/other/Calendar/Calendar.js +1 -1
  176. package/dist/components/other/Calendar/CalendarCell.js +1 -1
  177. package/dist/components/other/Calendar/CalendarGrid.js +1 -1
  178. package/dist/components/other/Calendar/RangeCalendar.js +1 -1
  179. package/dist/components/other/CloudLogo/CloudLogo.js +1 -1
  180. package/dist/components/overlays/AlertDialog/AlertDialog.js +1 -1
  181. package/dist/components/overlays/AlertDialog/AlertDialogApiProvider.js +1 -1
  182. package/dist/components/overlays/AlertDialog/AlertDialogZone.js +1 -1
  183. package/dist/components/overlays/Dialog/Dialog.js +1 -1
  184. package/dist/components/overlays/Dialog/DialogContainer.js +1 -1
  185. package/dist/components/overlays/Dialog/DialogForm.js +1 -1
  186. package/dist/components/overlays/Dialog/DialogTrigger.js +1 -1
  187. package/dist/components/overlays/Dialog/context.js +1 -1
  188. package/dist/components/overlays/Dialog/use-dialog-container.js +1 -1
  189. package/dist/components/overlays/Modal/Modal.js +1 -1
  190. package/dist/components/overlays/Modal/OpenTransition.js +1 -1
  191. package/dist/components/overlays/Modal/Overlay.js +1 -1
  192. package/dist/components/overlays/Modal/Popover.js +1 -1
  193. package/dist/components/overlays/Modal/Tray.js +1 -1
  194. package/dist/components/overlays/Modal/Underlay.js +1 -1
  195. package/dist/components/overlays/Notifications/Notification.js +1 -1
  196. package/dist/components/overlays/Notifications/NotificationAction.js +1 -1
  197. package/dist/components/overlays/Notifications/NotificationCard.js +1 -1
  198. package/dist/components/overlays/Notifications/NotificationContext.js +1 -1
  199. package/dist/components/overlays/Notifications/NotificationItem.js +1 -1
  200. package/dist/components/overlays/Notifications/OverlayContainer.js +1 -1
  201. package/dist/components/overlays/Notifications/OverlayProvider.js +1 -1
  202. package/dist/components/overlays/Notifications/PersistentNotificationsList.js +1 -1
  203. package/dist/components/overlays/Notifications/dismissed-storage.js +1 -1
  204. package/dist/components/overlays/Notifications/format-relative-time.js +1 -1
  205. package/dist/components/overlays/Notifications/index.js +1 -1
  206. package/dist/components/overlays/Notifications/use-notification-state.js +1 -1
  207. package/dist/components/overlays/Notifications/use-notifications.js +1 -1
  208. package/dist/components/overlays/Notifications/use-overlay-timers.js +1 -1
  209. package/dist/components/overlays/Notifications/use-persistent-notifications.js +1 -1
  210. package/dist/components/overlays/Notifications/use-persistent-state.js +1 -1
  211. package/dist/components/overlays/Notifications/use-toast-state.js +1 -1
  212. package/dist/components/overlays/Toast/ToastItem.js +1 -1
  213. package/dist/components/overlays/Toast/index.js +1 -1
  214. package/dist/components/overlays/Toast/useProgressToast.js +1 -1
  215. package/dist/components/overlays/Toast/useToast.js +1 -1
  216. package/dist/components/overlays/Tooltip/Tooltip.js +1 -1
  217. package/dist/components/overlays/Tooltip/TooltipProvider.js +1 -1
  218. package/dist/components/overlays/Tooltip/TooltipTrigger.js +1 -1
  219. package/dist/components/overlays/Tooltip/context.js +1 -1
  220. package/dist/components/portal/Portal.js +1 -1
  221. package/dist/components/portal/PortalProvider.js +1 -1
  222. package/dist/components/portal/usePortal.js +1 -1
  223. package/dist/components/shared/InvalidIcon.js +1 -1
  224. package/dist/components/shared/ValidIcon.js +1 -1
  225. package/dist/components/status/LoadingAnimation/LoadingAnimation.js +1 -1
  226. package/dist/components/status/Spin/Cube.js +1 -1
  227. package/dist/components/status/Spin/InternalSpinner.js +1 -1
  228. package/dist/components/status/Spin/Spin.js +1 -1
  229. package/dist/components/status/Spin/SpinsContainer.js +1 -1
  230. package/dist/data/item-themes.js +1 -1
  231. package/dist/data/themes.js +1 -1
  232. package/dist/icons/AdjustmentsHorizontalIcon.js +1 -1
  233. package/dist/icons/AdjustmentsIcon.js +1 -1
  234. package/dist/icons/AiIcon.js +1 -1
  235. package/dist/icons/AreaChartIcon.js +1 -1
  236. package/dist/icons/BackwardIcon.js +1 -1
  237. package/dist/icons/BarChartIcon.js +1 -1
  238. package/dist/icons/BellFilledIcon.js +1 -1
  239. package/dist/icons/BellIcon.js +1 -1
  240. package/dist/icons/BooleanIcon.js +1 -1
  241. package/dist/icons/CalendarEditIcon.js +1 -1
  242. package/dist/icons/CalendarIcon.js +1 -1
  243. package/dist/icons/CaretDownIcon.js +1 -1
  244. package/dist/icons/CaretUpIcon.js +1 -1
  245. package/dist/icons/ChartAreaStackedIcon.js +1 -1
  246. package/dist/icons/ChartAreaStackedPercentageIcon.js +1 -1
  247. package/dist/icons/ChartBarGroupedHorizontalIcon.js +1 -1
  248. package/dist/icons/ChartBarGroupedIcon.js +1 -1
  249. package/dist/icons/ChartBarHorizontalIcon.js +1 -1
  250. package/dist/icons/ChartBarLineIcon.js +1 -1
  251. package/dist/icons/ChartBarStackedHorizontalIcon.js +1 -1
  252. package/dist/icons/ChartBarStackedIcon.js +1 -1
  253. package/dist/icons/ChartBarStackedPercentageHorizontalIcon.js +1 -1
  254. package/dist/icons/ChartBarStackedPercentageIcon.js +1 -1
  255. package/dist/icons/ChartBoxPlot2Icon.js +1 -1
  256. package/dist/icons/ChartBoxPlotIcon.js +1 -1
  257. package/dist/icons/ChartBubbleIcon.js +1 -1
  258. package/dist/icons/ChartDonut2Icon.js +1 -1
  259. package/dist/icons/ChartFunnelIcon.js +1 -1
  260. package/dist/icons/ChartHeatmapIcon.js +1 -1
  261. package/dist/icons/ChartKPIIcon.js +1 -1
  262. package/dist/icons/ChartPie2Icon.js +1 -1
  263. package/dist/icons/ChartScatterIcon.js +1 -1
  264. package/dist/icons/CheckCircleFilledIcon.js +1 -1
  265. package/dist/icons/CheckCircleIcon.js +1 -1
  266. package/dist/icons/CheckIcon.js +1 -1
  267. package/dist/icons/CircleFilledIcon.js +1 -1
  268. package/dist/icons/ClearIcon.js +1 -1
  269. package/dist/icons/CloseCircleFilledIcon.js +1 -1
  270. package/dist/icons/CloseCircleIcon.js +1 -1
  271. package/dist/icons/CloseIcon.js +1 -1
  272. package/dist/icons/CodeIcon.js +1 -1
  273. package/dist/icons/ColumnTotalIcon.js +1 -1
  274. package/dist/icons/CopyIcon.js +1 -1
  275. package/dist/icons/CountIcon.js +1 -1
  276. package/dist/icons/CubeIcon.js +1 -1
  277. package/dist/icons/CubePauseIcon.js +1 -1
  278. package/dist/icons/CubePlayIcon.js +1 -1
  279. package/dist/icons/CurrencyDollarIcon.js +1 -1
  280. package/dist/icons/DangerIcon.js +1 -1
  281. package/dist/icons/DashboardIcon.js +1 -1
  282. package/dist/icons/DatabaseIcon.js +1 -1
  283. package/dist/icons/DecimalDecreaseIcon.js +1 -1
  284. package/dist/icons/DecimalIncreaseIcon.js +1 -1
  285. package/dist/icons/DirectionIcon.js +1 -1
  286. package/dist/icons/DonutIcon.js +1 -1
  287. package/dist/icons/DownIcon.js +1 -1
  288. package/dist/icons/EditIcon.js +1 -1
  289. package/dist/icons/ExclamationCircleFilledIcon.js +1 -1
  290. package/dist/icons/ExclamationCircleIcon.js +1 -1
  291. package/dist/icons/ExclamationIcon.js +1 -1
  292. package/dist/icons/EyeIcon.js +1 -1
  293. package/dist/icons/EyeInvisibleIcon.js +1 -1
  294. package/dist/icons/FilterIcon.js +1 -1
  295. package/dist/icons/FolderFilledIcon.js +1 -1
  296. package/dist/icons/FolderIcon.js +1 -1
  297. package/dist/icons/FolderOpenFilledIcon.js +1 -1
  298. package/dist/icons/FolderOpenIcon.js +1 -1
  299. package/dist/icons/ForwardIcon.js +1 -1
  300. package/dist/icons/HierarchyIcon.js +1 -1
  301. package/dist/icons/HierarchyOpenIcon.js +1 -1
  302. package/dist/icons/Icon.js +1 -1
  303. package/dist/icons/InfoCircleIcon.js +1 -1
  304. package/dist/icons/InfoIcon.js +1 -1
  305. package/dist/icons/KeyIcon.js +1 -1
  306. package/dist/icons/LeftIcon.js +1 -1
  307. package/dist/icons/LineChartIcon.js +1 -1
  308. package/dist/icons/LoadingIcon.js +1 -1
  309. package/dist/icons/LockFilledIcon.js +1 -1
  310. package/dist/icons/LockIcon.js +1 -1
  311. package/dist/icons/MoreIcon.js +1 -1
  312. package/dist/icons/NotAllowedIcon.js +1 -1
  313. package/dist/icons/Number123Icon.js +1 -1
  314. package/dist/icons/NumberIcon.js +1 -1
  315. package/dist/icons/PauseCircleFilledIcon.js +1 -1
  316. package/dist/icons/PauseCircleIcon.js +1 -1
  317. package/dist/icons/PauseIcon.js +1 -1
  318. package/dist/icons/PercentageIcon.js +1 -1
  319. package/dist/icons/PieChartIcon.js +1 -1
  320. package/dist/icons/PlayCircleIcon.js +1 -1
  321. package/dist/icons/PlayIcon.js +1 -1
  322. package/dist/icons/PlusIcon.js +1 -1
  323. package/dist/icons/ProgressBarIcon.js +1 -1
  324. package/dist/icons/ReloadIcon.js +1 -1
  325. package/dist/icons/ReportIcon.js +1 -1
  326. package/dist/icons/ReturnIcon.js +1 -1
  327. package/dist/icons/RightIcon.js +1 -1
  328. package/dist/icons/RowTotalsIcon.js +1 -1
  329. package/dist/icons/SchemeIcon.js +1 -1
  330. package/dist/icons/SearchIcon.js +1 -1
  331. package/dist/icons/SemanticQueryIcon.js +1 -1
  332. package/dist/icons/SettingsIcon.js +1 -1
  333. package/dist/icons/ShieldFilledIcon.js +1 -1
  334. package/dist/icons/ShieldIcon.js +1 -1
  335. package/dist/icons/SlashIcon.js +1 -1
  336. package/dist/icons/SparklesIcon.js +1 -1
  337. package/dist/icons/SqlIcon.js +1 -1
  338. package/dist/icons/StatsIcon.js +1 -1
  339. package/dist/icons/StopIcon.js +1 -1
  340. package/dist/icons/StringIcon.js +1 -1
  341. package/dist/icons/SubtotalsIcon.js +1 -1
  342. package/dist/icons/SwitchIcon.js +1 -1
  343. package/dist/icons/TableIcon.js +1 -1
  344. package/dist/icons/ThumbsDownIcon.js +1 -1
  345. package/dist/icons/ThumbsUpIcon.js +1 -1
  346. package/dist/icons/ThunderboltCrossedIcon.js +1 -1
  347. package/dist/icons/ThunderboltFilledIcon.js +1 -1
  348. package/dist/icons/ThunderboltIcon.js +1 -1
  349. package/dist/icons/TimeIcon.js +1 -1
  350. package/dist/icons/TrashIcon.js +1 -1
  351. package/dist/icons/UnlockIcon.js +1 -1
  352. package/dist/icons/UpIcon.js +1 -1
  353. package/dist/icons/UserGroupIcon.js +1 -1
  354. package/dist/icons/UserIcon.js +1 -1
  355. package/dist/icons/UserLockIcon.js +1 -1
  356. package/dist/icons/ViewIcon.js +1 -1
  357. package/dist/icons/WarningFilledIcon.js +1 -1
  358. package/dist/icons/WarningIcon.js +1 -1
  359. package/dist/icons/wrap-icon.js +1 -1
  360. package/dist/index.js +1 -1
  361. package/dist/provider.js +1 -1
  362. package/dist/providers/TrackingProvider.js +1 -1
  363. package/dist/providers/navigationAdapter.default.js +1 -1
  364. package/dist/tokens/base.js +1 -1
  365. package/dist/tokens/colors.js +1 -1
  366. package/dist/tokens/index.js +1 -1
  367. package/dist/tokens/layout.js +1 -1
  368. package/dist/tokens/shadows.js +1 -1
  369. package/dist/tokens/sizes.js +1 -1
  370. package/dist/tokens/spacing.js +1 -1
  371. package/dist/utils/ResizeSensor.js +1 -1
  372. package/dist/utils/is-dev-env.js +1 -1
  373. package/dist/utils/modules.js +1 -1
  374. package/dist/utils/promise.js +1 -1
  375. package/dist/utils/raf.js +1 -1
  376. package/dist/utils/random.js +1 -1
  377. package/dist/utils/range.js +1 -1
  378. package/dist/utils/react/RenderCache.js +1 -1
  379. package/dist/utils/react/Slots.js +1 -1
  380. package/dist/utils/react/chain.js +1 -1
  381. package/dist/utils/react/forwardRefWithGenerics.js +1 -1
  382. package/dist/utils/react/index.js +1 -1
  383. package/dist/utils/react/interactions.js +1 -1
  384. package/dist/utils/react/isTextOnly.js +1 -1
  385. package/dist/utils/react/mapProps.js +1 -1
  386. package/dist/utils/react/mergeProps.js +1 -1
  387. package/dist/utils/react/nullableValue.js +1 -1
  388. package/dist/utils/react/resolveIcon.js +1 -1
  389. package/dist/utils/react/sharedStore.js +1 -1
  390. package/dist/utils/react/useCombinedRefs.js +1 -1
  391. package/dist/utils/react/useControlledFocusVisible.js +1 -1
  392. package/dist/utils/react/useEventBus.js +1 -1
  393. package/dist/utils/react/useId.js +1 -1
  394. package/dist/utils/react/useIsDarwin.js +1 -1
  395. package/dist/utils/react/useKeySymbols.js +1 -1
  396. package/dist/utils/react/useLayoutEffect.js +1 -1
  397. package/dist/utils/react/useLocalStorage.js +1 -1
  398. package/dist/utils/react/useMergeStyles.js +1 -1
  399. package/dist/utils/react/useQaProps.js +1 -1
  400. package/dist/utils/react/useViewportSize.js +1 -1
  401. package/dist/utils/react/wrapNodeIfPlain.js +1 -1
  402. package/dist/utils/tree.js +1 -1
  403. package/dist/utils/warnings.js +1 -1
  404. package/dist/version.js +2 -2
  405. package/docs/BaseProperties.md +78 -0
  406. package/docs/ComplexLayout.md +31 -41
  407. package/docs/RenderCache.md +5 -0
  408. package/docs/Result.md +8 -1
  409. package/docs/components/Block.md +33 -0
  410. package/docs/components/CollectionItem.md +14 -20
  411. package/docs/components/GridProvider.md +38 -0
  412. package/docs/components/Root.md +50 -0
  413. package/docs/components/actions/Action.md +47 -0
  414. package/docs/components/actions/Banner.md +11 -5
  415. package/docs/components/actions/Button.md +45 -19
  416. package/docs/components/actions/ButtonGroup.md +46 -0
  417. package/docs/components/actions/ButtonSplit.md +11 -1
  418. package/docs/components/actions/CommandMenu.md +17 -25
  419. package/docs/components/actions/ItemAction.md +60 -0
  420. package/docs/components/actions/ItemButton.md +25 -13
  421. package/docs/components/actions/Link.md +1 -1
  422. package/docs/components/actions/Menu.md +49 -73
  423. package/docs/components/actions/MenuTrigger.md +47 -0
  424. package/docs/components/actions/SubMenuTrigger.md +38 -0
  425. package/docs/components/actions/use-anchored-menu.md +6 -8
  426. package/docs/components/actions/use-context-menu.md +6 -8
  427. package/docs/components/content/ActiveZone.md +37 -0
  428. package/docs/components/content/Alert.md +40 -0
  429. package/docs/components/content/Avatar.md +37 -0
  430. package/docs/components/content/Badge.md +7 -0
  431. package/docs/components/content/Card.md +40 -0
  432. package/docs/components/content/Content.md +44 -0
  433. package/docs/components/content/CopyPasteBlock.md +36 -0
  434. package/docs/components/content/CopySnippet.md +43 -0
  435. package/docs/components/content/Disclosure.md +14 -10
  436. package/docs/components/content/Divider.md +39 -0
  437. package/docs/components/content/Footer.md +35 -0
  438. package/docs/components/content/Header.md +35 -0
  439. package/docs/components/content/HotKeys.md +1 -1
  440. package/docs/components/content/Item.md +46 -35
  441. package/docs/components/content/ItemBadge.md +31 -0
  442. package/docs/components/content/ItemCard.md +7 -1
  443. package/docs/components/content/Layout.md +91 -114
  444. package/docs/components/content/Paragraph.md +32 -0
  445. package/docs/components/content/Placeholder.md +37 -0
  446. package/docs/components/content/PrismCode.md +36 -0
  447. package/docs/components/content/PrismDiffCode.md +29 -0
  448. package/docs/components/content/Result.md +46 -0
  449. package/docs/components/content/Skeleton.md +35 -0
  450. package/docs/components/content/Tag.md +9 -0
  451. package/docs/components/content/Text.md +54 -0
  452. package/docs/components/content/TextItem.md +7 -1
  453. package/docs/components/content/Title.md +45 -0
  454. package/docs/components/fields/Checkbox.md +10 -12
  455. package/docs/components/fields/ComboBox.md +48 -11
  456. package/docs/components/fields/DatePicker.md +8 -10
  457. package/docs/components/fields/FileInput.md +7 -9
  458. package/docs/components/fields/FilterListBox.md +48 -23
  459. package/docs/components/fields/FilterPicker.md +64 -22
  460. package/docs/components/fields/HueSlider.md +3 -5
  461. package/docs/components/fields/ListBox.md +52 -29
  462. package/docs/components/fields/NumberInput.md +8 -10
  463. package/docs/components/fields/PasswordInput.md +7 -9
  464. package/docs/components/fields/Picker.md +93 -70
  465. package/docs/components/fields/RadioGroup.md +5 -7
  466. package/docs/components/fields/SearchInput.md +7 -9
  467. package/docs/components/fields/Select.md +26 -31
  468. package/docs/components/fields/Switch.md +9 -11
  469. package/docs/components/fields/TextInput.md +18 -14
  470. package/docs/components/form/Field.md +21 -29
  471. package/docs/components/form/Form.md +304 -115
  472. package/docs/components/form/FormInstance.md +25 -37
  473. package/docs/components/helpers/DisplayTransition.md +15 -6
  474. package/docs/components/helpers/IconSwitch.md +5 -1
  475. package/docs/components/layout/Flex.md +51 -0
  476. package/docs/components/layout/Flow.md +32 -0
  477. package/docs/components/layout/Grid.md +46 -0
  478. package/docs/components/layout/Panel.md +65 -0
  479. package/docs/components/layout/Prefix.md +37 -0
  480. package/docs/components/layout/ResizablePanel.md +69 -0
  481. package/docs/components/layout/Space.md +44 -0
  482. package/docs/components/layout/Suffix.md +39 -0
  483. package/docs/components/navigation/Tabs.md +71 -49
  484. package/docs/components/organisms/FileTabs.md +39 -0
  485. package/docs/components/organisms/StatsCard.md +40 -0
  486. package/docs/components/other/CloudLogo.md +33 -0
  487. package/docs/components/overlays/AlertDialog.md +51 -0
  488. package/docs/components/overlays/Dialog.md +3 -5
  489. package/docs/components/overlays/DialogContainer.md +1 -1
  490. package/docs/components/overlays/DialogForm.md +15 -10
  491. package/docs/components/overlays/DialogTrigger.md +1 -1
  492. package/docs/components/overlays/Notifications.md +9 -13
  493. package/docs/components/overlays/Toast.md +5 -1
  494. package/docs/components/overlays/Tooltip.md +37 -8
  495. package/docs/components/overlays/TooltipProvider.md +42 -0
  496. package/docs/components/overlays/TooltipTrigger.md +42 -0
  497. package/docs/components/overlays/UseDialogContainer.md +8 -14
  498. package/docs/components/portal/Portal.md +29 -0
  499. package/docs/components/status/LoadingAnimation.md +27 -0
  500. package/docs/components/status/Spin.md +35 -0
  501. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
1
  # Form
2
2
 
3
- <Badge variant="accent">Form component</Badge>
4
-
5
3
  Forms allow users to enter data that can be submitted while providing alignment and styling for form fields. The Form component provides structure, validation, and state management for user input through a collection of input components with built-in field support.
6
4
 
5
+ The form system is inspired by AntD Forms and [rc-field-form](https://field-form-react-component.vercel.app/) with a similar API.
6
+
7
7
  ## When to Use
8
8
 
9
9
  - When collecting user information or input data
@@ -15,78 +15,64 @@ Forms allow users to enter data that can be submitted while providing alignment
15
15
 
16
16
  ## Properties
17
17
 
18
- ### Base Properties
18
+ ### Form-specific Properties
19
19
 
20
- Supports [Base properties](../../tasty/tasty.md)
20
+ - **`name`** `string` — Form name attribute
21
+ - **`defaultValues`** `Partial<T>` — Default field values
22
+ - **`onValuesChange`** `(data: T) => void` — Triggered when any field value changes
23
+ - **`onSubmit`** `(data: T) => void | Promise<void>` — Triggered on successful form submission. When returning a promise, the form and submit button show loading state until resolved
24
+ - **`onSubmitFailed`** `(error: any) => void` — Triggered when form submission fails
25
+ - **`form`** `CubeFormInstance<T>` — Form instance created by `Form.useForm()`
26
+ - **`labelWidth`** `Styles['width']` — Width of label area for side-positioned labels
27
+ - **`orientation`** `'vertical' | 'horizontal'` (default: `vertical`) — Form layout orientation
21
28
 
22
- ### Styling Properties
29
+ ### Inherited Form Properties
23
30
 
24
- #### styles
31
+ These properties are inherited by all input components within the form:
25
32
 
26
- Customizes the root form element.
33
+ - **`labelPosition`** `'top' | 'side' | 'split'` (default: `top`) — Where to place labels relative to inputs. `'top'` places labels above inputs, `'side'` places labels beside inputs with fixed width, `'split'` places labels and inputs on opposite sides without fixed label width
34
+ - **`labelStyles`** `Styles` — Styles applied to field labels
35
+ - **`requiredMark`** `boolean` (default: `true`) — Whether to show required field indicators
36
+ - **`necessityIndicator`** `'icon' | 'label'` (default: `icon`) — Type of necessity indicator
37
+ - **`isReadOnly`** `boolean` (default: `false`) — Whether fields are read-only by default
38
+ - **`validationState`** `'valid' | 'invalid'` — Validation state for all fields
39
+ - **`validateTrigger`** `'onBlur' | 'onChange' | 'onSubmit'` (default: `onBlur`) — When to trigger validation
40
+ - **`showValid`** `boolean` (default: `false`) — Whether to show valid state indicators
27
41
 
28
- The Form component does not expose styled sub-elements via the `styles` prop. It uses a simple container layout that can be customized through the main styles property.
42
+ ### HTML Form Properties
29
43
 
30
- ### Style Properties
44
+ - **`action`** `string` — Form action URL (for server submission)
45
+ - **`autoComplete`** `string` — Browser autocomplete behavior
46
+ - **`encType`** `string` — Form encoding type
47
+ - **`method`** `'get' | 'post'` — HTTP method for form submission
48
+ - **`target`** `string` — Target for form submission
31
49
 
32
- These properties allow direct style application without using the `styles` prop: `display`, `flow`, `gap`, `placeItems`, `width`, `height`, `padding`, `margin`.
50
+ ### Base Properties
33
51
 
34
- ### Form-specific Properties
52
+ Supports [Base properties](../../BaseProperties.md)
35
53
 
36
- | Property | Type | Description |
37
- |----------|------|-------------|
38
- | `name` | `string` | Form name attribute |
39
- | `defaultValues` | `Partial<T>` | Default field values |
40
- | `onValuesChange` | `(data: T) => void` | Triggered when any field value changes |
41
- | `onSubmit` | `(data: T) => void \| Promise<void>` | Triggered on successful form submission |
42
- | `onSubmitFailed` | `(error: any) => void` | Triggered when form submission fails |
43
- | `form` | `CubeFormInstance<T>` | Form instance created by `useForm` |
44
- | `labelWidth` | `Styles['width']` | Width of label area for side-positioned labels |
45
- | `orientation` | `'vertical' \| 'horizontal'` | Form layout orientation |
54
+ ### Styling Properties
46
55
 
47
- ### Inherited Form Properties
56
+ #### styles
48
57
 
49
- These properties are inherited by all input components within the form:
58
+ Customizes the root form element.
50
59
 
51
- | Property | Type | Description |
52
- |----------|------|-------------|
53
- | `labelPosition` | `'top' \| 'side' \| 'split'` | Where to place labels relative to inputs. `'top'` places labels above inputs, `'side'` places labels beside inputs with fixed width, `'split'` places labels and inputs on opposite sides without fixed label width |
54
- | `requiredMark` | `boolean` | Whether to show required field indicators |
55
- | `isRequired` | `boolean` | Whether fields are required by default |
56
- | `necessityIndicator` | `'icon' \| 'label'` | Type of necessity indicator |
57
- | `isReadOnly` | `boolean` | Whether fields are read-only by default |
58
- | `validationState` | `'valid' \| 'invalid'` | Validation state for all fields |
59
- | `validateTrigger` | `'onBlur' \| 'onChange' \| 'onSubmit'` | When to trigger validation |
60
- | `showValid` | `boolean` | Whether to show valid state indicators |
60
+ The Form component does not expose styled sub-elements via the `styles` prop. It uses a simple container layout that can be customized through the main styles property.
61
61
 
62
- ### HTML Form Properties
62
+ ### Style Properties
63
63
 
64
- | Property | Type | Description |
65
- |----------|------|-------------|
66
- | `action` | `string` | Form action URL (for server submission) |
67
- | `autoComplete` | `string` | Browser autocomplete behavior |
68
- | `encType` | `string` | Form encoding type |
69
- | `method` | `'get' \| 'post'` | HTTP method for form submission |
70
- | `target` | `string` | Target for form submission |
64
+ These properties allow direct style application without using the `styles` prop: `display`, `flow`, `gap`, `placeItems`, `width`, `height`, `padding`, `margin`.
71
65
 
72
66
  ### Modifiers
73
67
 
74
68
  The `mods` property accepts the following modifiers:
75
69
 
76
- | Modifier | Type | Description |
77
- |----------|------|-------------|
78
- | `has-sider` | `boolean` | Applied when `labelPosition="side"` |
79
- | `has-split` | `boolean` | Applied when `labelPosition="split"` |
80
- | `horizontal` | `boolean` | Applied when `orientation="horizontal"` |
81
-
82
- ## Variants
83
-
84
- The Form component does not have built-in variants. Styling is controlled through the `styles` prop and layout properties.
70
+ - **`has-sider`** `boolean` — Applied when `labelPosition="side"`
71
+ - **`has-split`** `boolean` — Applied when `labelPosition="split"`
72
+ - **`horizontal`** `boolean` — Applied when `orientation="horizontal"`
85
73
 
86
74
  ## Static Methods
87
75
 
88
- The Form component provides several static methods for form functionality:
89
-
90
76
  ### Form.useForm
91
77
 
92
78
  ```jsx
@@ -95,13 +81,26 @@ const [form] = Form.useForm();
95
81
 
96
82
  Creates a form instance for programmatic control. See [FormInstance documentation](./FormInstance.md) for detailed API.
97
83
 
84
+ You can also pass options:
85
+
86
+ ```jsx
87
+ const [form] = Form.useForm(undefined, undefined, {
88
+ onSubmit: async (data) => {
89
+ await apiCall(data);
90
+ },
91
+ onValuesChange: (data) => {
92
+ console.log('Changed:', data);
93
+ },
94
+ });
95
+ ```
96
+
98
97
  ### Form.Submit (SubmitButton)
99
98
 
100
99
  ```jsx
101
100
  <Form.Submit>Submit</Form.Submit>
102
101
  ```
103
102
 
104
- Specialized button that automatically handles form submission and loading states.
103
+ Specialized button that automatically handles form submission and loading states. When `onSubmit` returns a promise, the button shows a loading spinner until the promise resolves.
105
104
 
106
105
  ### Form.Reset (ResetButton)
107
106
 
@@ -127,16 +126,16 @@ Component that displays submission errors returned from the `onSubmit` handler.
127
126
  </Form.Item>
128
127
  ```
129
128
 
130
- **⚠️ Deprecated**: The Field wrapper is deprecated and not recommended for regular use. Input components now have built-in field support, so you can pass field properties directly to them.
129
+ **Deprecated**: The Field wrapper is not recommended for regular use. Input components now have built-in field support, so you can pass field properties directly to them.
131
130
 
132
- The Field component should only be used when wrapping read-only content to make it appear as a form field.
131
+ The Field component should only be used when wrapping read-only content or custom components without built-in field support.
133
132
 
134
133
  ## Built-in Field Support
135
134
 
136
135
  **All input components have built-in field support**, meaning you can pass field properties directly to them without needing a wrapper:
137
136
 
138
137
  ```jsx
139
- // ✅ Recommended - Direct field properties
138
+ // Recommended — direct field properties
140
139
  <Input.Text
141
140
  name="email"
142
141
  label="Email"
@@ -144,7 +143,7 @@ The Field component should only be used when wrapping read-only content to make
144
143
  placeholder="Enter your email"
145
144
  />
146
145
 
147
- // ❌ Deprecated - Field wrapper (still works but not recommended)
146
+ // Deprecated — Field wrapper (still works but not recommended)
148
147
  <Field name="email" label="Email" rules={[{ required: true, type: 'email' }]}>
149
148
  <Input.Text placeholder="Enter your email" />
150
149
  </Field>
@@ -154,17 +153,92 @@ The Field component should only be used when wrapping read-only content to make
154
153
 
155
154
  All input components within a Form accept these field-related properties:
156
155
 
157
- | Property | Type | Description |
158
- |----------|------|-------------|
159
- | `name` | `string` | Field name for form data |
160
- | `label` | `ReactNode` | Field label text |
161
- | `rules` | `ValidationRule[]` | Validation rules array |
162
- | `required` | `boolean` | Whether the field is required |
163
- | `help` | `ReactNode` | Help text displayed below the field |
164
- | `extra` | `ReactNode` | Additional information displayed below help text |
165
- | `tooltip` | `ReactNode` | Tooltip content for the field label |
166
- | `dependencies` | `string[]` | Other field names this field depends on |
167
- | `shouldUpdate` | `boolean \| (prevValues, curValues) => boolean` | When to re-render this field |
156
+ - **`name`** `string` — Field name for form data. Supports dot notation for nested objects (e.g. `"user.email"`)
157
+ - **`label`** `ReactNode` — Field label text
158
+ - **`description`** `ReactNode` — Help text displayed below the field
159
+ - **`errorMessage`** `ReactNode` — Error message displayed when validation fails
160
+ - **`rules`** `ValidationRule[]` — Validation rules array (see [Validation Rules](#validation-rules))
161
+ - **`isRequired`** `boolean` — Whether the field is required
162
+ - **`extra`** `ReactNode` — Additional content displayed next to the label
163
+ - **`tooltip`** `ReactNode` — Tooltip content for the field label
164
+ - **`labelSuffix`** `ReactNode` — Content appended after the label
165
+ - **`isHidden`** `boolean` — Hides the field
166
+ - **`validateTrigger`** `'onBlur' | 'onChange' | 'onSubmit'` — When to validate (overrides form-level setting)
167
+
168
+ ## Validation Rules
169
+
170
+ The form uses an async rule-based validation system. Each rule is an object with one or more validators:
171
+
172
+ ### Built-in Validators
173
+
174
+ - **`required`** `boolean` — Field must have a non-empty value
175
+ - **`type`** `string` — Validates data type: `'string'`, `'number'`, `'boolean'`, `'email'`, `'url'`, `'integer'`, `'array'`, `'object'`, `'date'`, `'hex'`, `'regexp'`
176
+ - **`pattern`** `RegExp` — Value must match the regex pattern
177
+ - **`min`** `number` — Minimum length (for strings/arrays) or minimum value (for numbers)
178
+ - **`max`** `number` — Maximum length (for strings/arrays) or maximum value (for numbers)
179
+ - **`len`** `number` — Exact length (for strings/arrays) or exact value (for numbers)
180
+ - **`enum`** `any[]` — Value must be one of the allowed values
181
+ - **`whitespace`** `boolean` — String must not be only whitespace
182
+ - **`validator`** `(rule, value) => Promise<void>` — Custom async validation function. Throw an `Error` to fail validation
183
+ - **`transform`** `(value) => value` — Transform the value before validation
184
+ - **`message`** `string` — Error message displayed when the rule fails
185
+
186
+ ### Rules Example
187
+
188
+ ```jsx
189
+ <Input.Text
190
+ name="email"
191
+ label="Email"
192
+ rules={[
193
+ { required: true, message: 'Email is required' },
194
+ { type: 'email', message: 'Please enter a valid email' },
195
+ ]}
196
+ />
197
+
198
+ <Input.Text
199
+ name="username"
200
+ label="Username"
201
+ rules={[
202
+ { required: true, message: 'Username is required' },
203
+ { min: 3, message: 'Must be at least 3 characters' },
204
+ { max: 20, message: 'Must be at most 20 characters' },
205
+ { pattern: /^[a-zA-Z0-9_]+$/, message: 'Only letters, numbers, and underscores' },
206
+ ]}
207
+ />
208
+
209
+ <Input.Text
210
+ name="invite"
211
+ label="Invite Code"
212
+ rules={[
213
+ {
214
+ async validator(rule, value) {
215
+ const isValid = await checkInviteCode(value);
216
+ if (!isValid) {
217
+ throw new Error('Invalid invite code');
218
+ }
219
+ },
220
+ },
221
+ ]}
222
+ />
223
+ ```
224
+
225
+ Rules can also be functions that receive the form instance, useful for cross-field validation:
226
+
227
+ ```jsx
228
+ <Input.Password
229
+ name="confirmPassword"
230
+ label="Confirm Password"
231
+ rules={[
232
+ (form) => ({
233
+ async validator(rule, value) {
234
+ if (value !== form.getFieldValue('password')) {
235
+ throw new Error('Passwords do not match');
236
+ }
237
+ },
238
+ }),
239
+ ]}
240
+ />
241
+ ```
168
242
 
169
243
  ## Examples
170
244
 
@@ -186,7 +260,7 @@ function BasicForm() {
186
260
  type="email"
187
261
  rules={[
188
262
  { required: true, message: 'Email is required' },
189
- { type: 'email', message: 'Please enter a valid email' }
263
+ { type: 'email', message: 'Please enter a valid email' },
190
264
  ]}
191
265
  placeholder="Enter your email"
192
266
  />
@@ -196,11 +270,51 @@ function BasicForm() {
196
270
  label="Password"
197
271
  rules={[
198
272
  { required: true, message: 'Password is required' },
199
- { min: 6, message: 'Password must be at least 6 characters' }
273
+ { min: 6, message: 'Password must be at least 6 characters' },
200
274
  ]}
201
275
  placeholder="Enter your password"
202
276
  />
203
277
 
278
+ <Form.SubmitError />
279
+ <SubmitButton>Submit</SubmitButton>
280
+ </Form>
281
+ );
282
+ }
283
+ ```
284
+
285
+ ### Login Form
286
+
287
+ An example with async submission that shows loading state:
288
+
289
+ ```jsx
290
+ import { Form, Field, SubmitButton, Input, SubmitError } from '@cube-dev/ui-kit';
291
+
292
+ export function LoginForm() {
293
+ async function onSubmit(data) {
294
+ await Auth.login(data); // { email, password }
295
+ }
296
+
297
+ return (
298
+ <Form onSubmit={onSubmit} requiredMark={false}>
299
+ <Input.Text
300
+ name="email"
301
+ label="Email"
302
+ description="Your email"
303
+ type="email"
304
+ autoFocus
305
+ rules={[
306
+ { required: true, message: 'E-mail required' },
307
+ { type: 'email', message: 'Please enter a valid e-mail' },
308
+ ]}
309
+ />
310
+
311
+ <Input.Password
312
+ name="password"
313
+ label="Password"
314
+ rules={[{ required: true, message: 'Password required' }]}
315
+ />
316
+
317
+ <Form.SubmitError />
204
318
  <SubmitButton>Submit</SubmitButton>
205
319
  </Form>
206
320
  );
@@ -236,7 +350,7 @@ function BasicForm() {
236
350
  <Form
237
351
  defaultValues={{
238
352
  email: 'user@example.com',
239
- name: 'John Doe'
353
+ name: 'John Doe',
240
354
  }}
241
355
  onSubmit={handleSubmit}
242
356
  >
@@ -272,7 +386,7 @@ function BasicForm() {
272
386
  options={[
273
387
  { value: 'us', label: 'United States' },
274
388
  { value: 'uk', label: 'United Kingdom' },
275
- { value: 'ca', label: 'Canada' }
389
+ { value: 'ca', label: 'Canada' },
276
390
  ]}
277
391
  />
278
392
 
@@ -286,27 +400,137 @@ function BasicForm() {
286
400
  </Form>
287
401
  ```
288
402
 
403
+ ### Nested Field Names
404
+
405
+ Use dot notation in field names to create nested data structures:
406
+
407
+ ```jsx
408
+ <Form onSubmit={(data) => console.log(data)}>
409
+ <Input.Text name="user.firstName" label="First Name" />
410
+ <Input.Text name="user.lastName" label="Last Name" />
411
+ <Input.Text name="user.address.city" label="City" />
412
+
413
+ {/* Submits: { user: { firstName: '...', lastName: '...', address: { city: '...' } } } */}
414
+ <SubmitButton>Submit</SubmitButton>
415
+ </Form>
416
+ ```
417
+
418
+ ### Programmatic Form Control
419
+
420
+ ```jsx
421
+ function ControlledForm() {
422
+ const [form] = Form.useForm();
423
+
424
+ const handleReset = () => {
425
+ form.resetFields();
426
+ };
427
+
428
+ const handleFillDemo = () => {
429
+ form.setFieldsValue({
430
+ email: 'demo@example.com',
431
+ name: 'Demo User',
432
+ });
433
+ };
434
+
435
+ return (
436
+ <Form form={form} onSubmit={handleSubmit}>
437
+ <Input.Text name="email" label="Email" type="email" />
438
+ <Input.Text name="name" label="Name" />
439
+
440
+ <Space>
441
+ <SubmitButton>Submit</SubmitButton>
442
+ <Button onPress={handleReset}>Reset</Button>
443
+ <Button onPress={handleFillDemo}>Fill Demo Data</Button>
444
+ </Space>
445
+ </Form>
446
+ );
447
+ }
448
+ ```
449
+
289
450
  ### When to Use Field Component
290
451
 
291
452
  The Field component should **only** be used when wrapping read-only content or custom components that don't have built-in field support:
292
453
 
293
454
  ```jsx
294
455
  <Form onSubmit={handleSubmit}>
295
- {/* Regular inputs - use built-in field support */}
456
+ {/* Regular inputs — use built-in field support */}
296
457
  <Input.Text name="name" label="Name" rules={[{ required: true }]} />
297
458
 
298
- {/* Read-only content - use Field wrapper */}
459
+ {/* Read-only content — use Field wrapper */}
299
460
  <Field name="readonly" label="Read-only Information">
300
461
  <div>This is some read-only content that should look like a field</div>
301
462
  </Field>
302
463
 
303
- {/* Custom component without field support - use Field wrapper */}
464
+ {/* Custom component without field support — use Field wrapper */}
304
465
  <Field name="custom" label="Custom Component" rules={[{ required: true }]}>
305
466
  <CustomComponent />
306
467
  </Field>
307
468
  </Form>
308
469
  ```
309
470
 
471
+ ### Dialog Form
472
+
473
+ It's possible to create forms inside dialogs. The `DialogForm` contains all props of `Form` and `Dialog` components. When `onSubmit` returns a promise, the dialog stays open with a loading state until the promise resolves.
474
+
475
+ ```jsx
476
+ import {
477
+ DialogForm,
478
+ Field,
479
+ Paragraph,
480
+ Input,
481
+ Text,
482
+ } from '@cube-dev/ui-kit';
483
+
484
+ export function ConfirmDeletionDialogForm({ name, onSubmit, onDismiss }) {
485
+ return (
486
+ <DialogForm
487
+ title="Delete Deployment"
488
+ onSubmit={onSubmit}
489
+ onDismiss={onDismiss}
490
+ submitProps={{
491
+ label: 'Delete',
492
+ theme: 'danger',
493
+ }}
494
+ cancelProps={{
495
+ label: 'I changed my mind',
496
+ }}
497
+ >
498
+ <Paragraph>
499
+ To delete the instance, please enter its full name:{' '}
500
+ <Text.Strong>{name}</Text.Strong>
501
+ </Paragraph>
502
+
503
+ <Input.Text
504
+ name="name"
505
+ rules={[
506
+ { required: true, message: 'This field is required' },
507
+ {
508
+ async validator(rule, value) {
509
+ if (value !== name) {
510
+ throw new Error('Incorrect name');
511
+ }
512
+ },
513
+ },
514
+ ]}
515
+ placeholder="Enter the name of the instance"
516
+ />
517
+ </DialogForm>
518
+ );
519
+ }
520
+ ```
521
+
522
+ ## Known Differences with AntD Forms
523
+
524
+ - `onSubmit` instead of `onSuccess`
525
+ - `onSubmitFailed` instead of `onFailed`
526
+ - `defaultValues` instead of `initialValues`
527
+ - `onSubmit` can return a promise — the form and submit button show loading state until the promise resolves
528
+ - Arrays inside form data are not supported
529
+ - `preserve` property is not yet implemented
530
+ - The `Field` component is a virtual wrapper (does not render a DOM element)
531
+ - Nested properties are handled via field names with `.` dot notation
532
+ - Does not support `validating` state (but validation rules can be async)
533
+
310
534
  ## Accessibility
311
535
 
312
536
  ### Keyboard Navigation
@@ -336,10 +560,10 @@ The Field component should **only** be used when wrapping read-only content or c
336
560
 
337
561
  1. **Use direct field properties**: Pass field properties directly to input components instead of using Field wrapper
338
562
  ```jsx
339
- // ✅ Recommended
563
+ // Recommended
340
564
  <Input.Text name="email" label="Email" type="email" rules={[{ required: true }]} />
341
565
 
342
- // ❌ Deprecated
566
+ // Deprecated
343
567
  <Field name="email" label="Email" rules={[{ required: true }]}>
344
568
  <Input.Text type="email" />
345
569
  </Field>
@@ -350,7 +574,7 @@ The Field component should **only** be used when wrapping read-only content or c
350
574
  <Input.Text name="email" label="Email Address" type="email" />
351
575
  ```
352
576
 
353
- 3. **Use appropriate validation**: Implement both client-side and server-side validation
577
+ 3. **Use appropriate validation**: Combine built-in validators for common cases and custom validators for complex logic
354
578
  ```jsx
355
579
  <Input.Text
356
580
  name="email"
@@ -358,7 +582,7 @@ The Field component should **only** be used when wrapping read-only content or c
358
582
  type="email"
359
583
  rules={[
360
584
  { required: true, message: 'Email is required' },
361
- { type: 'email', message: 'Please enter a valid email' }
585
+ { type: 'email', message: 'Please enter a valid email' },
362
586
  ]}
363
587
  />
364
588
  ```
@@ -384,40 +608,6 @@ The Field component should **only** be used when wrapping read-only content or c
384
608
  <Form labelPosition="side"> {/* for wide layouts */}
385
609
  ```
386
610
 
387
- ## Form Management
388
-
389
- Forms can be controlled programmatically using the form instance:
390
-
391
- ```jsx
392
- function ControlledForm() {
393
- const [form] = Form.useForm();
394
-
395
- const handleReset = () => {
396
- form.resetFields();
397
- };
398
-
399
- const handleFillDemo = () => {
400
- form.setFieldsValue({
401
- email: 'demo@example.com',
402
- name: 'Demo User'
403
- });
404
- };
405
-
406
- return (
407
- <Form form={form} onSubmit={handleSubmit}>
408
- <Input.Text name="email" label="Email" type="email" />
409
- <Input.Text name="name" label="Name" />
410
-
411
- <Space>
412
- <SubmitButton>Submit</SubmitButton>
413
- <Button onPress={handleReset}>Reset</Button>
414
- <Button onPress={handleFillDemo}>Fill Demo Data</Button>
415
- </Space>
416
- </Form>
417
- );
418
- }
419
- ```
420
-
421
611
  ## Integration with Input Components
422
612
 
423
613
  All input components automatically register with the parent Form and inherit form-level properties:
@@ -437,7 +627,6 @@ Field properties can be passed directly to any input component:
437
627
  <Select name="select" label="Select" options={[]} />
438
628
  <Checkbox name="checkbox" label="Checkbox" />
439
629
  <RadioGroup name="radio" label="Radio Group" options={[]} />
440
- <TextArea name="textarea" label="Text Area" />
441
630
  <DatePicker name="date" label="Date Picker" />
442
631
  <Slider name="slider" label="Slider" />
443
632
  <Switch name="switch" label="Switch" />
@@ -447,9 +636,9 @@ Field properties can be passed directly to any input component:
447
636
  ## Related Components
448
637
 
449
638
  - [FormInstance](./FormInstance.md) - Programmatic form control API
639
+ - [Field](./Field.md) - Field wrapper (deprecated for regular use)
450
640
  - [Input.Text](../fields/TextInput.md) - Text input field
451
641
  - [Input.Password](../fields/PasswordInput.md) - Password input field
452
642
  - [Select](../fields/Select.md) - Dropdown selection field
453
643
  - [Checkbox](../fields/Checkbox.md) - Checkbox input field
454
- - [Field](./Field.md) - Field wrapper (deprecated for regular use)
455
644
  - [DialogForm](../overlays/DialogForm.md) - Form within a dialog